ProfitOracleRb class

Oracle for a profit maximization problem (robust version)

This example is taken from [Aliabadi and Salahi, 2013]:

max     p'(A x1^alpha' x2^beta') - v1'*x1 - v2'*x2
s.t.    x1 \le k'

where: alpha' = alpha \pm e1 beta' = beta \pm e2 p' = p \pm e3 k' = k \pm e4 v' = v \pm e5

Constructors, destructors, conversion operators

ProfitOracleRb(double p, double A, double k, const Vec& a, const Vec& v, const Vec& e, double e3)
Construct a new profit rb oracle object.

Public functions

auto assess_optim(const Vec& y, double& gamma) -> std::tuple< Cut, bool > -> auto
Make object callable for cutting_plane_optim()

Function documentation

ProfitOracleRb::ProfitOracleRb(double p, double A, double k, const Vec& a, const Vec& v, const Vec& e, double e3)

Construct a new profit rb oracle object.

Parameters
in the market price per unit
in the scale of production
in a given constant that restricts the quantity of x1
in the output elasticities
in output price
in paramters for uncertainty
e3 in paramters for uncertainty

auto ProfitOracleRb::assess_optim(const Vec& y, double& gamma) -> std::tuple< Cut, bool >

Make object callable for cutting_plane_optim()

Parameters
in input quantity (in log scale)
gamma in/out the best-so-far optimal value
Returns Cut and the updated best-so-far value