Difference between revisions of "Error Messages/40699"
m (→Cause) |
|||
Line 5: | Line 5: | ||
= Cause = | = Cause = | ||
− | The [[LpShadow]] function can only be used to compute the [[LpShadow|shadow price]] (or dual value of constraints) for a linear program created via a call to [[LpDefine]]. It cannot be used with [[QpDefine|quadratic programs]] or [[NlpDefine|NLPs]]. | + | The [[LpShadow]] function can only be used to compute the [[LpShadow|shadow price]] (or dual value of constraints) for a linear program, or quadratic program with linear constraints, created via a call to [[LpDefine]] or [[QpDefine]]. It cannot be used with [[QpDefine|quadratic programs]] when quadratic constraints are present, or with [[NlpDefine|NLPs]]. |
− | The concept of a shadow price is meaningful in the context of | + | The concept of a shadow price is meaningful in the context of a QCP or NLP, but not computed by this function. You could compute the shadow price of a QCP (i.e., with convex quadratic constraints), for example, by using: |
[[Var]] delta := 1e-6; | [[Var]] delta := 1e-6; | ||
Line 15: | Line 15: | ||
) | ) | ||
− | where ''my_qp'' is the variable defined by [[QpDefine]], ''constraint'' is the constraint index passed to [[QpDefine]] in ''my_qp'', and ''rhs'' is a variable passed as the «rhs» parameter to [[QpDefine]]. This causes the | + | where ''my_qp'' is the variable defined by [[QpDefine]], ''constraint'' is the constraint index passed to [[QpDefine]] in ''my_qp'', and ''rhs'' is a variable passed as the «rhs» parameter to [[QpDefine]]. This causes the QCP to be solved multiple times to compute these shadow prices. |
= See Also = | = See Also = | ||
* [[LpShadow]] | * [[LpShadow]] |
Revision as of 22:21, 28 January 2010
Error Text
The shadow price (dual of constraints) is not available for non-linear problems.
Cause
The LpShadow function can only be used to compute the shadow price (or dual value of constraints) for a linear program, or quadratic program with linear constraints, created via a call to LpDefine or QpDefine. It cannot be used with quadratic programs when quadratic constraints are present, or with NLPs.
The concept of a shadow price is meaningful in the context of a QCP or NLP, but not computed by this function. You could compute the shadow price of a QCP (i.e., with convex quadratic constraints), for example, by using:
Var delta := 1e-6; Var obj := LpOpt(my_qp); For i:=@constraint Do ( WhatIf( (LpOpt(my_qp), If @constraint=i Then rhs+delta else rhs ) - obj) / delta )
where my_qp is the variable defined by QpDefine, constraint is the constraint index passed to QpDefine in my_qp, and rhs is a variable passed as the «rhs» parameter to QpDefine. This causes the QCP to be solved multiple times to compute these shadow prices.
Enable comment auto-refresher