Variable¶
-
class
Variable
: public ampl::BasicEntity<VariableInstance>¶ Represents an AMPL decision variable.
Note that, in case of a scalar variable, all the properties of the variable instance can be accessed through methods like Variable.value. The methods have the same name of the corresponding AMPL suffixes. See http://www.ampl.com/NEW/suffbuiltin.html for a list of the available suffixes.
All these methods throw an std::logic_error if called for an entity which is not scalar and an std::runtime_error if the entity has been deleted.
The instances, represented by the class VariableInstance can be accessed via the operator Variable::operator[](), via the methods Variable::get() or via the iterators provided.
To gain access to all the values in an entity (for all instances and all suffixes for that entities), see Entity::getValues() and the DataFrame class.
Instance access
Methods to access the instances which are part of this Entity
-
VariableInstance
get
() const Get the instance corresponding to a scalar entity.
- Return
- The corresponding instance.
- Exceptions
runtime_error
: if the entity has been deleted in the underlying AMPL interpreterlogic_error
: if the entity is not scalar
-
VariableInstance
get
(TupleRef index) const¶ Get the instance with the specified index.
- Return
- The corresponding instance
- Parameters
index
: The tuple specifying the index
- Exceptions
out_of_range
: if an instance with the specified index does not existout_of_range
: if the entity has been deleted in the underlying AMPL interpreterampl::UnsupportedOperationException
: if the entity is scalar
-
VariableInstance
get
(VariantRef v1) const¶ Get the instance with the specified index.
-
VariableInstance
get
(VariantRef v1, VariantRef v2) const¶ Get the instance with the specified index.
-
VariableInstance
get
(VariantRef v1, VariantRef v2, VariantRef v3) const¶ Get the instance with the specified index.
-
VariableInstance
get
(VariantRef v1, VariantRef v2, VariantRef v3, VariantRef v4) const¶ Get the instance with the specified index.
- Return
- The corresponding instance
- Parameters
v1
: The VariantRef specifying the first element of the indexing tuplev2
: The VariantRef specifying the second element of the indexing tuplev3
: The VariantRef specifying the third element of the indexing tuplev4
: The VariantRef specifying the fourth element of the indexing tuple
- Exceptions
out_of_range
: if an instance with the specified index does not existruntime_error
: if the entity has been deleted in the underlying AMPL interpreterampl::UnsupportedOperationException
: if the entity is scalar
-
VariableInstance
operator[]
(TupleRef index) const
-
VariableInstance
operator[]
(VariantRef v1) const¶
Public Types
-
typedef internal::CountedIterator<internal::EntityWrapper<VariableInstance>>
iterator
Iterator for entities, represented by an iterator pointing to elements of type std::pair<TupleRef, InstanceClass>
Public Functions
-
double
value
() const¶ Get the current value of this variable.
-
var::Integrality
integrality
() const¶ Get the integrality type for this variable.
- Return
- Type of integrality (integer, binary, continuous)
-
void
fix
()¶ Fix all instances of this variable to their current value.
-
void
fix
(double value)¶ Fix all instances of this variable to the specified value.
-
void
unfix
()¶ Unfix this variable instances.
-
void
setValue
(double value)¶ Set the current value of this variable (does not fix it), equivalent to the AMPL command
let
- Parameters
value
: Value to be set
-
std::string
astatus
() const¶ Get the AMPL status (fixed, presolved, or substituted out)
-
int
defeqn
() const¶ Get the index in
_con
of “defining constraint” used to substitute variable out.
-
double
dual
() const¶ Get the dual value on defining constraint of variable substituted out.
-
double
init
() const¶ Get the current initial guess.
-
double
init0
() const¶ Get the original initial guess (set by
:=
ordefault
or by a data statement)
-
double
lb
() const¶ Returns the current lower bound. See Note on variables suffixes.
-
double
ub
() const¶ Returns the current lower bound. See Note on variables suffixes.
-
double
lb0
() const¶ Returns the initial lower bounds, from the var declaration.
-
double
ub0
() const¶ Returns the initial upper bound, from the var declaration.
-
double
lb1
() const¶ Returns the weaker lower bound from AMPL’s presolve phase.
-
double
ub1
() const¶ Returns the weaker upper bound from AMPL’s presolve phase.
-
double
lb2
() const¶ Returns the stronger lower bound from AMPL’s presolve phase.
-
double
ub2
() const¶ Returns the stronger upper bound from AMPL’s presolve phase.
-
double
lrc
() const¶ Returns the reduced cost at lower bound.
-
double
urc
() const¶ Returns the reduced cost at upper bound.
-
double
lslack
() const¶ Return the slack at lower bound (
val - lb
). See Note on variables suffixes.
-
double
uslack
() const¶ Return the slack at upper bound (
ub - val
). See Note on variables suffixes.
-
double
rc
() const¶ Get the reduced cost (at the nearer bound)
-
double
slack
() const¶ Returns the bound slack which is the lesser of lslack() and uslack(). See Note on variables suffixes.
-
std::string
sstatus
() const¶ Solver status (basis status of variable)
-
std::string
status
() const¶ AMPL status if not
in
, otherwise solver status
-
iterator
begin
() const Get an iterator pointing to the first instance in this entity.
-
iterator
end
() const Get an iterator pointing after the last instance in this entity.
-
VariableInstance