CostHelper class
#include <gtopt/cost_helper.hpp>
Handles cost calculations with time discounting for optimization problems.
Provides methods for:
- Calculating discounted costs for blocks, stages and scenarios
- Generating cost scaling factors
- Applying probability and discount factors
Derived classes
- class SystemContext
Constructors, destructors, conversion operators
- CostHelper(const PlanningOptionsLP& options, const std::vector<ScenarioLP>& scenarios, const std::vector<StageLP>& stages) explicit
Public functions
-
auto block_discount_icost_factors() const -> const block_
factor_ matrix_ t& - Returns cached discount-only inverse cost factors for blocks.
- auto block_ecost(const ScenarioLP& scenario, const StageLP& stage, const BlockLP& block, const double cost) const -> constexpr double noexcept
- Calculates the energy cost coefficient for a block.
-
auto block_icost_factors() const -> const block_
factor_ matrix_ t& - Returns cached inverse cost factors for blocks (1/cost_factor).
- auto cost_factor(const double probability, const double discount, const double duration = 1.0) const -> constexpr double noexcept
- auto cost_factor(const ScenarioLP& scenario, const StageLP& stage) const -> constexpr double noexcept
- auto cost_factor(const ScenarioLP& scenario, const StageLP& stage, const BlockLP& block) const -> constexpr double noexcept
- auto cost_factor(const StageLP& stage, double probability = 1.0) const -> constexpr double noexcept
- auto scenario_stage_ecost(const ScenarioLP& scenario, const StageLP& stage, const double cost) const -> constexpr double noexcept
- Calculates the energy cost coefficient for a scenario-stage pair.
-
auto scenario_stage_icost_factors() const -> const scenario_
stage_ factor_ matrix_ t& - Returns cached inverse cost factors for scenario-stage pairs.
- auto stage_ecost(const StageLP& stage, double cost, double probability = 1.0) const -> constexpr double noexcept
- Calculates the energy cost coefficient for a stage.
-
auto stage_icost_factors() const -> const stage_
factor_ matrix_ t& - Returns cached inverse cost factors for stages (1/cost_factor).
Function documentation
const block_ factor_ matrix_ t& gtopt:: CostHelper:: block_discount_icost_factors() const
Returns cached discount-only inverse cost factors for blocks.
| Returns | Const reference to cached matrix of discount-only inverse cost factors |
|---|
Lazily computed on first call, then cached. Formula: scale_objective / discount[t] (same for all s, b in stage t)
constexpr double gtopt:: CostHelper:: block_ecost(const ScenarioLP& scenario,
const StageLP& stage,
const BlockLP& block,
const double cost) const noexcept
Calculates the energy cost coefficient for a block.
| Returns | Total energy cost coefficient for LP formulation |
|---|
Computes the total energy cost for a power variable over a block duration, applying:
- Scenario probability weighting
- Stage discount factor
- Block duration
- Objective scaling
Formula: cost * probability * discount * duration / scale_objective
const block_ factor_ matrix_ t& gtopt:: CostHelper:: block_icost_factors() const
Returns cached inverse cost factors for blocks (1/cost_factor).
| Returns | Const reference to cached matrix of inverse cost factors |
|---|
Lazily computed on first call, then cached for subsequent accesses. Formula: 1 / (probability * discount * duration / scale_objective)
constexpr double gtopt:: CostHelper:: scenario_stage_ecost(const ScenarioLP& scenario,
const StageLP& stage,
const double cost) const noexcept
Calculates the energy cost coefficient for a scenario-stage pair.
| Returns | Total energy cost coefficient for LP formulation |
|---|
Computes the total energy cost for a power variable over a stage duration, applying:
- Scenario probability weighting
- Stage discount factor
- Stage duration
- Objective scaling
Formula: cost * probability * discount * duration / scale_objective
const scenario_ stage_ factor_ matrix_ t& gtopt:: CostHelper:: scenario_stage_icost_factors() const
Returns cached inverse cost factors for scenario-stage pairs.
| Returns | Const reference to cached matrix of inverse cost factors |
|---|
Lazily computed on first call, then cached. Formula: 1 / (probability * discount * duration / scale_objective)
constexpr double gtopt:: CostHelper:: stage_ecost(const StageLP& stage,
double cost,
double probability = 1.0) const noexcept
Calculates the energy cost coefficient for a stage.
| Returns | Total energy cost coefficient for LP formulation |
|---|
Computes the total energy cost for a power variable over a stage duration, applying:
- Probability weighting (default 1.0)
- Stage discount factor
- Stage duration
- Objective scaling
Formula: cost * probability * discount * duration / scale_objective
const stage_ factor_ matrix_ t& gtopt:: CostHelper:: stage_icost_factors() const
Returns cached inverse cost factors for stages (1/cost_factor).
| Returns | Const reference to cached vector of inverse cost factors |
|---|
Lazily computed on first call (probability = 1.0), then cached. Formula: 1 / (discount * duration / scale_objective)