Procedure GMP::Solution::SetRowValue(GMP, solution, row, value, valueType)

# GMP::Solution::SetRowValue

The procedure GMP::Solution::SetRowValue sets the level value or shadow price of a row in a solution in the solution repository of a generated mathematical program.

GMP::Solution::SetRowValue(
GMP,            ! (input) a generated mathematical program
solution,       ! (input) a solution
row,            ! (input) a scalar reference or row number
value,          ! (input) a scalar value
[valueType]     ! (input/optional) a scalar value
)


## Arguments

GMP

An element in AllGeneratedMathematicalPrograms.

solution

An integer scalar reference to a solution.

row

A scalar reference to an existing row in the matrix or an element in the set Integers in the range $$\{ 0 .. m-1 \}$$ where $$m$$ is the number of rows in the matrix.

value

The value to be assigned to the row.

valueType

A scalar value specifying the value type. If 0 (the default) then the level value will be set. If 1, the shadow price.

## Return Value

The procedure returns 1 on success, or 0 otherwise.

Note

If the row has a unit then the scaled value should be passed. You can get the scale factor by using the function GMP::Row::GetScale.

## Example

Assume we have a GMP for which we want to multiply all shadow prices in a solution by some value, say 10. This can be done in a generic way using the function GMP::Instance::GetRowNumbers as follows. Here RowNrs is a subset of Integers with index r.

! Get the row numbers of all constraints in myGMP.
RowNrs := GMP::Instance::GetRowNumbers( myGMP, AllConstraints );

for ( r ) do
! Get shadow price of row r in solution 1.
val := GMP::Solution::GetRowValue( myGMP, 1, r, valueType : 1 );

! Assign new value for shadow price to row r in solution 1.
GMP::Solution::SetRowValue( myGMP, 1, r, 10 * val, valueType : 1 );
endfor;

! Send solution to the (symbolic) model identifiers.
GMP::Solution::SendToModel( myGMP, 1 );


Note: the shadow prices will only be stored in the data structures of the constraints if the ShadowPrice property of the variables is set, or if the option Always_Store_Marginals is set.