ConstraintInstance#

public class ConstraintInstance extends BasicInstance<ConstraintInstanceBase>#

This class represent an instance of a constraint.

In general, all AMPL suffixes for a constraint are available through methods with the same name in this class. See http://www.ampl.com/NEW/suffbuiltin.html for a list of the available suffixes.

Note that, since this class represents instances of both algebraic and logical constraints, some suffixes might not be available for every instance. If a wrong suffix for the specific class of constraint is accessed, an UnsupportedOperationException is thrown.

All the accessors in this class throw a IllegalArgumentException if the instance has been deleted in the underlying AMPL interpreter.

Constructors#

ConstraintInstance#

ConstraintInstance(ConstraintInstanceBase impl)#

Methods#

astatus#

public String astatus()#

Get the current AMPL status (dropped, presolved, or substituted out)

body#

public double body()#

Get the current value of the constraint’s body

defvar#

public int defvar()#

Get the index in _var of “defined variable” substituted out by the constraint

dinit#

public double dinit()#

Get the current initial guess for the constraint’s dual variable

dinit0#

public double dinit0()#

Get the original initial guess for the constraint’s dual variable

drop#

public void drop()#

Drop this constraint instance

dual#

public double dual()#

Get the current value of the constraint’s dual variable.

Note that dual values are often reset by the underlying AMPL interpreter by the presolve functionalities triggered by some methods. A possible workaround is to set the option presolve to false (see AMPL.setBoolOption).

impl#

ConstraintInstanceBase impl()#

lb#

public double lb()#

Get the current value of the constraint’s lower bound

lbs#

public double lbs()#

Get the constraint lower bound sent to the solver (reflecting adjustment for fixed variables)

ldual#

public double ldual()#

Get the current dual value associated with the lower bound

lslack#

public double lslack()#

Get the slack at lower bound body - lb

restore#

public void restore()#

Restore this constraint instance (if it had been dropped, no effect otherwise)

setDual#

public void setDual(double dual)#

Set the value of the dual variable associated to this constraint (valid only if the constraint is scalar). Equivalent to the AMPL statement:

let c := dual;

Note that dual values are often reset by the underlying AMPL interpreter by the presolve functionalities triggered by some methods. A possible workaround is to set the option presolve to false (see AMPL.setBoolOption).

Parameters:
  • dual – The value to be assigned to the dual variable

slack#

public double slack()#

Constraint slack (the lesser of lslack and uslack)

sstatus#

public String sstatus()#

Get the solver status (basis status of constraint’s slack or artificial variable)

status#

public String status()#

Get the AMPL status if not in, otherwise solver status

ub#

public double ub()#

Get the current value of the constraint’s upper bound

ubs#

public double ubs()#

Get the constraint upper bound sent to the solver (reflecting adjustment for fixed variables)

udual#

public double udual()#

Get the current dual value associated with the upper bounds

uslack#

public double uslack()#

Get the slack at upper bound ub - body

val#

public double val()#

Get the AMPL val suffix. Valid only for logical constraints.