Variable

public class Variable extends Entity<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 UnsupportedOperationException if called for an entity which is not scalar.

Otherwise, use the method Variable.get to obtain the objects of type VariableInstance, from which to access all properties (corresponding to AMPL suffixes). See section Access to instances and values for further information on how to access set instances.

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.

Constructors

Variable

protected Variable(VariableBase impl)

Methods

astatus

public String astatus()

Get the AMPL status (fixed, presolved, or substituted out)

defeqn

public int defeqn()

Get the index in _con of “defining constraint” used to substitute variable out

dual

public double dual()

Get the dual value on defining constraint of variable substituted out

fix

public void fix()

Fix all instances of this variable to their current value, equivalent to:

fix varname;

fix

public void fix(double value)

(for scalar variables) fix the variable to the specified value, equivalent to:

fix varname := value;

get

public VariableInstance get()

Get the corresponding VariableInstance instance (for not indexed variables)

Throws:

get

public final VariableInstance get(Object... key)

Get the variable instance corresponding to the specified key. See Access to instances and values for further information on how the key can be specified.

Parameters:
  • key – The key to be found
Throws:
Returns:

The instance corresponding to the specified key. Returns null if the specified key is not present.

get

public VariableInstance get(Tuple key)

Get the variable instance corresponding to the specified key, expressed as a Tuple. See Access to instances and values for further information on how the key can be specified.

Parameters:
  • key – The indexing Tuple of the instance to be found
Throws:
Returns:

The variable instance corresponding to the specified key. Returns null if the specified key is not present.

impl

VariableBase impl()

init

public double init()

Get the current initial guess

init0

public double init0()

Get the original initial guess (set by := or default or by a data statement)

integrality

public Integrality integrality()

Get the integrality status

Returns:Type of integrality (integer, binary, continuous)

iterator

public Iterator<VariableInstance> iterator()

lb

public double lb()

Returns the current lower bound. See Note on variables suffixes.

lb0

public double lb0()

Returns the initial lower bounds, from the var declaration

lb1

public double lb1()

Returns the weaker lower bound from AMPL’s presolve phase

lb2

public double lb2()

Returns the stronger lower bound from AMPL’s presolve phase

lrc

public double lrc()

Returns the reduced cost at lower bound

lslack

public double lslack()

Return the slack at lower bound (val - lb). See Note on variables suffixes.

rc

public double rc()

Get the reduced cost (at the nearer bound)

setValue

public void setValue(double value)

Set the current value of this variable instance

Parameters:
  • value – Value to be set
Throws:

slack

public double slack()

Returns the bound slack which is the lesser of lslack and uslack. See Note on variables suffixes.

sstatus

public String sstatus()

Solver status (basis status of variable)

status

public String status()

AMPL status if not in, otherwise solver status

toString

public String toString()

Returns a string representation of this variable. Equivalent to the AMPL statement

show variableName;

ub

public double ub()

Returns the current upper bound. See Note on variables suffixes.

ub0

public double ub0()

Returns the initial upper bound, from the var declaration

ub1

public double ub1()

Returns the weaker upper bound from AMPL’s presolve phase

ub2

public double ub2()

Returns the stronger upper bound from AMPL’s presolve phase

unfix

public void unfix()

Unfix all instances of the current variable, equivalent to the AMPL code:

unfix varname;

urc

public double urc()

Returns the reduced cost at upper bound

uslack

public double uslack()

Return the slack at upper bound (ub - val). See Note on variables suffixes.

value

public double value()

Get the current value of this variable instance