- 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. HereRowNrs
is a subset ofIntegers
with indexr
.! 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 optionAlways_Store_Marginals
is set.