Source code for apem.order_book_based_model.euphemia.runner
from typing import Any, Dict, Optional
from apem.order_book_based_model.euphemia.enums.datasets import OrderBookBased_Datasets
from apem.order_book_based_model.euphemia.enums.cut_types import CutTypes
from apem.order_book_based_model.euphemia.euphemia_config import EuphemiaConfig
from apem.order_book_based_model.euphemia.master_problem.master_problem import MasterProblem
[docs]
def solve_euphemia(
dataset: OrderBookBased_Datasets,
cut_type: CutTypes,
config_overrides: Optional[Dict[str, Any]] = None,
) -> str:
"""
Solve a Euphemia scenario and return the run output directory.
Constructs a ``EuphemiaConfig`` object, applies configuration overrides,
loads the selected dataset into a ``ZonalScenario``, and starts the ``MasterProblem`` solve loop.
:param dataset: Order-book dataset to parse and solve.
:param cut_type: Cutting strategy used by the master problem.
:param config_overrides: Optional overrides applied to ``EuphemiaConfig``
before the solve starts.
:return: Absolute path to the created run directory.
"""
config = EuphemiaConfig()
config.apply_overrides(config_overrides or {})
config.set_dataset(dataset)
config.cutting_strategy = cut_type
euphemia = MasterProblem(config)
euphemia.run()
return str(euphemia.run_root)