Markup#
Markup pricing implementation.
API path: apem.unit_based_model.pricing.algorithms.markup
- class Markup[source]#
Bases:
PricingAlgorithmImplementation of Markup Pricing.
This pricing method is currently supported only for the unit-based IEEE_RTS, PJM, and ARPA datasets, since only these have buyers’ valuations.
- compute_prices(scenario, configuration, file_prices=None, alpha=0)[source]#
Compute prices and a feasible allocation using a two-stage markup procedure.
Stages:
Stage 1 (price computation): scale buyer valuation blocks by
1 / (1 + alpha), solve a relaxed DCOPF, and extract nodal prices from the relaxed run.Stage 2 (feasibility search): try several commitment thresholds on first-stage unit commitment, re-solve the non-relaxed problem for each threshold, and return the best feasible allocation by welfare together with stage-1 prices.
Reference: Solving large-scale electricity market pricing problems in polynomial time (https://www.sciencedirect.com/science/article/pii/S0377221724003576).
- Parameters:
scenario (Scenario) – scenario for which prices are computed
configuration (SolverConfiguration) – configuration object containing model/solver parameters
file_prices (str | None) – base output path used to derive intermediate result files
alpha (float | None) – valuation markdown parameter used in stage 1
- Returns:
tuple
(Allocation, Pricing)if a feasible second-stage solution is found, otherwiseError- Return type:
Tuple[Allocation, Pricing] | Error