- Function GMP::Solution::GetPenalizedObjective(GMP, solution1, solution2, skipObj)
GMP::Solution::GetPenalizedObjective
The function GMP::Solution::GetPenalizedObjective
calculates the
penalized objective for a generated mathematical program by using the
level values of the columns in a first solution and the shadow prices in
a second solution as the penalty multipliers for the rows. To avoid a
very large value, the penalized objective value is divided by the square
of the number of rows.
GMP::Solution::GetPenalizedObjective(
GMP, ! (input) a generated mathematical program
solution1, ! (input) a solution
solution2, ! (input) a solution
[skipObj] ! (optional, default 0) a scalar value
)
Arguments
- GMP
An element in
AllGeneratedMathematicalPrograms
.- solution1
An integer scalar reference to a solution.
- solution2
An integer scalar reference to a solution.
- skipObj
A scalar binary value to indicate whether the objective defining constraint should be skipped (value 1) or not (value 0).
Return Value
In case of success, the penalized objective function value of the GMP associated with both solutions. Otherwise it returns -1e80 for a maximization problem, and 1e80 for a minimization problem (or a feasibility problem).
Note
Assume that \(x\) denotes the level values of the columns in solution1 and \(w\) the shadow prices of the rows in solution2. Then the penalized objective function \(P(x,w)\) is defined as
where \(f(x)\) denotes the objective function value, \(m\) is the number of rows and the function \(viol(g_i(x))\) equals the absolute amount by which the \(i\)th row is violated at the point \(x\). Here \(dirval\) is 1 in case of minization and -1 in case of maximization.
See also
The procedure GMP::Solution::UpdatePenaltyWeights
.