15 const std::vector<Benders::Criterion::CriterionSingleInputData>& outer_loop_input_data);
16 bool Update_bilevel_data_if_feasible(
const Point& x,
17 const std::vector<double>& outer_loop_criterion,
19 double invest_cost_at_x,
22 void Init(
const std::vector<double>& obj,
23 const Point& max_invest,
24 const VariableMap& master_variable);
26 double LambdaMax()
const
31 double LambdaMin()
const
36 void SetLambda(
double lambda)
41 double BilevelBestub()
const
43 return bilevel_best_ub_;
46 bool FoundFeasible()
const
48 return found_feasible_;
51 const Point& BilevelBestX()
const;
54 bool Check_bilevel_feasibility(
const std::vector<double>& outer_loop_criterion,
56 void SetLambdaMaxToMaxInvestmentCosts(
const std::vector<double>& obj,
57 const Point& max_invest,
58 const VariableMap& master_variable);
59 void Update(
const Point& x,
double overall_cost,
double invest_cost_at_x);
60 bool IsCriterionSatisfied(
const std::vector<double>& outer_loop_criterions);
61 bool found_feasible_ =
false;
62 double bilevel_best_ub_ = +1e20;
63 Point bilevel_best_x_;
66 double lambda_max_ = 0.0;
67 double lambda_min_ = 0.0;
69 const std::vector<Benders::Criterion::CriterionSingleInputData>& outer_loop_input_data_;