Difference between revisions of "Error Messages/41323"
Line 1: | Line 1: | ||
− | + | [[Category: Error messages]] | |
− | The first constraint specified in the linear optimization problem defined in | + | == Example error messages == |
− | (((3*(X^2))+4)<=8) | + | <pre style="background:white; border:white; margin-left: 1em; font-style:italic"> |
+ | The first constraint specified in the linear optimization problem defined in 'My_opt' is non-linear: | ||
+ | (((3*(X^2)) + 4) <= 8) | ||
− | The linear optimization defined in | + | The linear optimization defined in 'My_opt' contains the non-linear constraint 'Inventory_requirement'. |
− | was first detected in | + | The non-linearity was first detected in 'Variable Customer_growth_pot'. |
− | The linear optimization defined in | + | The linear optimization defined in 'Portfolio_QP' contains a non-linear constraint 'Risk_thresh'. |
+ | </pre> | ||
− | = Cause = | + | == Cause == |
− | In the specification of your optimization problem using [[DefineOptimization]], you have specified the type of optimization problem in the «type» parameter. When [[DefineOptimization]] analyzed your model, it found that a constraint was not of the specified type. For example, if you declare <code>type:"LP"</code>, but a constraint turns out to be a non-linear function of the decision variables, than this message results. | + | In the specification of your optimization problem using [[DefineOptimization]], you have specified the type of optimization problem in the «type» parameter. When [[DefineOptimization]] analyzed your model, it found that a constraint was not of the specified type. For example, if you declare <code>type: "LP"</code>, but a constraint turns out to be a non-linear function of the decision variables, than this message results. |
In some cases, Analytica may conclude that a constraint is non-linear or non-quadratic when intermediate computations involve non-quadratic, or potentially non-quadratic, operations. A simple example would be: | In some cases, Analytica may conclude that a constraint is non-linear or non-quadratic when intermediate computations involve non-quadratic, or potentially non-quadratic, operations. A simple example would be: | ||
− | + | :<code>(x^3 - 7) - x^3</code> | |
Although this is a quadratic relationship of the decision variable ''x'', an intermediate involves a non-quadratic (''x^3''), and hence Analytica will conclude that the relationship is not quadratic. | Although this is a quadratic relationship of the decision variable ''x'', an intermediate involves a non-quadratic (''x^3''), and hence Analytica will conclude that the relationship is not quadratic. | ||
− | = Remedy = | + | == Remedy == |
[[DefineOptimization]] allows you to specify the «type» explicitly so that you can catch cases where non-linearity or non-quadraticity is accidentally introduced into the model. Since linear and quadratic problems usually solve faster and more reliably, odds are that you'll want to remove the non-linearity or non-quadratic operation. | [[DefineOptimization]] allows you to specify the «type» explicitly so that you can catch cases where non-linearity or non-quadraticity is accidentally introduced into the model. Since linear and quadratic problems usually solve faster and more reliably, odds are that you'll want to remove the non-linearity or non-quadratic operation. | ||
− | If you decide to relax your optimization, say to a non-linear optimization, you can either remove the «type» parameter entirely from your call to [[DefineOptimization]], or set it to <code>type:"NLP"</code>. If you set it <code>type:"NLP"</code>, you can save time by allowing [[DefineOptimization]] skip its attempt to determine whether the model is linear or quadratic. | + | If you decide to relax your optimization, say to a non-linear optimization, you can either remove the «type» parameter entirely from your call to [[DefineOptimization]], or set it to <code>type: "NLP"</code>. If you set it <code>type: "NLP"</code>, you can save time by allowing [[DefineOptimization]] skip its attempt to determine whether the model is linear or quadratic. |
− | |||
− | |||
+ | == See Also == | ||
* [[DefineOptimization]] | * [[DefineOptimization]] | ||
+ | * [[Analytica Optimizer Guide]] |
Latest revision as of 22:43, 16 March 2016
Example error messages
The first constraint specified in the linear optimization problem defined in 'My_opt' is non-linear: (((3*(X^2)) + 4) <= 8) The linear optimization defined in 'My_opt' contains the non-linear constraint 'Inventory_requirement'. The non-linearity was first detected in 'Variable Customer_growth_pot'. The linear optimization defined in 'Portfolio_QP' contains a non-linear constraint 'Risk_thresh'.
Cause
In the specification of your optimization problem using DefineOptimization, you have specified the type of optimization problem in the «type» parameter. When DefineOptimization analyzed your model, it found that a constraint was not of the specified type. For example, if you declare type: "LP"
, but a constraint turns out to be a non-linear function of the decision variables, than this message results.
In some cases, Analytica may conclude that a constraint is non-linear or non-quadratic when intermediate computations involve non-quadratic, or potentially non-quadratic, operations. A simple example would be:
(x^3 - 7) - x^3
Although this is a quadratic relationship of the decision variable x, an intermediate involves a non-quadratic (x^3), and hence Analytica will conclude that the relationship is not quadratic.
Remedy
DefineOptimization allows you to specify the «type» explicitly so that you can catch cases where non-linearity or non-quadraticity is accidentally introduced into the model. Since linear and quadratic problems usually solve faster and more reliably, odds are that you'll want to remove the non-linearity or non-quadratic operation.
If you decide to relax your optimization, say to a non-linear optimization, you can either remove the «type» parameter entirely from your call to DefineOptimization, or set it to type: "NLP"
. If you set it type: "NLP"
, you can save time by allowing DefineOptimization skip its attempt to determine whether the model is linear or quadratic.
Enable comment auto-refresher