Difference between revisions of "Error Messages/40936"

 
Line 1: Line 1:
= Error Message =
+
[[Category: Error messages]]
  
  The first constraint in the structured NLP defined in ''The_Nlp'' evaluates to a result whose dimensions contain the  
+
== Error message ==
  following unexpected index(es):
+
 
  Required_Resource_Constraint
+
<pre style="background:white; border:white; margin-left: 1em; font-style:italic">
 +
  The first constraint in the structured NLP defined in 'The_Nlp' evaluates to a result whose dimensions contain the  
 +
  following unexpected index(es): Required_Resource_Constraint
 
  &nbsp;
 
  &nbsp;
What you have here is an array of constraints.  If your intention is for all of those constraints to be active in the
+
What you have here is an array of constraints.  If your intention is for all of those constraints to be active  
same structured NLP, then you should move this constraint to its own variable and specify these indexes in the OptDimensions
+
in the same structured NLP, then you should move this constraint to its own variable  
  attribute.  If your intention is to have an array of separate optimization problems along these indexes, then you will need  
+
and specify these indexes in the OptDimensions  attribute.   
to utilize the Over and SetContext parameters of [[DefineOptimization]]Se the Analytica Optimizer Guide for details.
+
If your intention is to have an array of separate optimization problems along these indexes, then you will need  
 +
to utilize the «Over» and «SetContext» parameters of DefineOptimization.   
 +
See the Analytica Optimizer Guide for details.
 +
</pre>
  
= Cause =
+
== Cause ==
  
When you have not explicitly specified the dimensions for a constraint, then in general it may be ambiguous as to whether
+
When you have not explicitly specified the dimensions for a constraint, then in general it may be ambiguous as to whether Analytica could assimilate any extra indexes into the optimization problem or should array abstract over any extra indexes. Assimilation means that the constraint is really an array-of-constraints for the optimization problem, in which the solution found must satisfy many "scalar" constraints that vary over the extra indexes.  If the index is [[Array Abstraction|array abstracted]], then you end up with multiple optimization problems, where one particular constraint varies over each optimization problem to be solved.
Analytica could assimilate any extra indexes into the optimization problem or should array abstract over any extra indexes.
 
Assimilation means that the constraint is really an array-of-constraints for the optimization problem, in which the solution
 
found must satisfy many "scalar" constraints that vary over the extra indexes.  If the index is array abstracted, then you  
 
end up with multiple optimization problems, where one particular constraint varies over each optimization problem to be  
 
solved.
 
  
When you see this error, it means that you have not explicitly indicated how extra indexes encountered in the constraint
+
When you see this error, it means that you have not explicitly indicated how extra indexes encountered in the constraint should be handled.  Normally, when you don't indicate this, [[DefineOptimization]] will attempt to infer your most likely intention, and when it is able to do so, this message does not appear.   
should be handled.  Normally, when you don't indicate this, [[DefineOptimization]] will attempt to infer your most likely  
 
intention, and when it is able to do so, this message does not appear.   
 
  
One scenario that can arise that would prevent Analytica from making a reasonable guess would be if the dimensionality  
+
One scenario that can arise that would prevent Analytica from making a reasonable guess would be if the dimensionality of the constraint can vary with the candidate solution point.  [[DefineOptimization]] will usually evaluate the constraint when defining the optimization problem in order to determine its dimensionality.  When doing so, it needs to evaluate the constraint with one particular guess.  If your model contains dimensionalities that are only introduced for some candidate points, then [[DefineOptimization]] could easily miss a dimension when it is determining how to handle extra dimensions, and then encounter the extra dimension(s) later during the solution process.  Conditional dimensionality as described here is illustrated by the following constraint example:
of the constraint can vary with the candidate solution point.  [[DefineOptimization]] will usually evaluate the constraint
 
when defining the optimization problem in order to determine its dimensionality.  When doing so, it needs to evaluate the
 
constraint with one particular guess.  If your model contains dimensionalities that are only introduced for some candidate
 
points, then [[DefineOptimization]] could easily miss a dimension when it is determining how to handle extra dimensions,
 
and then encounter the extra dimension(s) later during the solution process.  Conditional dimensionality as described ehre is illustrated by the following constraint example:
 
  
:Volume >= (if H>5 then [1000,2000] else 1000)
+
:<code>Volume >= (if H > 5 then [1000, 2000] else 1000)</code>
  
In this example, [[DefineOptimization]] might try ''H=1'', and thus miss the implicit dimension, but during the search when H=6 is tried, suddenly an extra dimension is encountered and this error message appears.
+
In this example, [[DefineOptimization]] might try ''H = 1'', and thus miss the implicit dimension, but during the search when H = 6 is tried, suddenly an extra dimension is encountered and this error message appears.
  
= Remedy =
+
== Remedy ==
  
 
To avoid this problem, you should explicitly specify which indexes are to be assimilated into your optimization problem for the
 
To avoid this problem, you should explicitly specify which indexes are to be assimilated into your optimization problem for the
Line 40: Line 33:
  
 
To declare the dimensionality of a constraint, you must locate your constraint in a constraint node.  So, if you've simply declared your constraint using an expression, be sure to move it into its own constraint node first.
 
To declare the dimensionality of a constraint, you must locate your constraint in a constraint node.  So, if you've simply declared your constraint using an expression, be sure to move it into its own constraint node first.
 +
 +
==See Also==
 +
* [[DefineOptimization]]
 +
* [[Analytica Optimizer Guide]]
 +
* [[Display of constraint results]]

Latest revision as of 23:53, 11 March 2016


Error message

 The first constraint in the structured NLP defined in 'The_Nlp' evaluates to a result whose dimensions contain the 
 following unexpected index(es): Required_Resource_Constraint
  
What you have here is an array of constraints.  If your intention is for all of those constraints to be active 
in the same structured NLP, then you should move this constraint to its own variable 
and specify these indexes in the OptDimensions  attribute.  
If your intention is to have an array of separate optimization problems along these indexes, then you will need 
to utilize the «Over» and «SetContext» parameters of DefineOptimization.  
See the Analytica Optimizer Guide for details.

Cause

When you have not explicitly specified the dimensions for a constraint, then in general it may be ambiguous as to whether Analytica could assimilate any extra indexes into the optimization problem or should array abstract over any extra indexes. Assimilation means that the constraint is really an array-of-constraints for the optimization problem, in which the solution found must satisfy many "scalar" constraints that vary over the extra indexes. If the index is array abstracted, then you end up with multiple optimization problems, where one particular constraint varies over each optimization problem to be solved.

When you see this error, it means that you have not explicitly indicated how extra indexes encountered in the constraint should be handled. Normally, when you don't indicate this, DefineOptimization will attempt to infer your most likely intention, and when it is able to do so, this message does not appear.

One scenario that can arise that would prevent Analytica from making a reasonable guess would be if the dimensionality of the constraint can vary with the candidate solution point. DefineOptimization will usually evaluate the constraint when defining the optimization problem in order to determine its dimensionality. When doing so, it needs to evaluate the constraint with one particular guess. If your model contains dimensionalities that are only introduced for some candidate points, then DefineOptimization could easily miss a dimension when it is determining how to handle extra dimensions, and then encounter the extra dimension(s) later during the solution process. Conditional dimensionality as described here is illustrated by the following constraint example:

Volume >= (if H > 5 then [1000, 2000] else 1000)

In this example, DefineOptimization might try H = 1, and thus miss the implicit dimension, but during the search when H = 6 is tried, suddenly an extra dimension is encountered and this error message appears.

Remedy

To avoid this problem, you should explicitly specify which indexes are to be assimilated into your optimization problem for the constraint in question. You do this by bringing up the object window for the constraint and pressing the Indexes button in the Opt Dimensions attribute. If your constraint is scalar, then leave the right-hand side window blank, but when asked press the Scalar option.

To declare the dimensionality of a constraint, you must locate your constraint in a constraint node. So, if you've simply declared your constraint using an expression, be sure to move it into its own constraint node first.

See Also

Comments


You are not allowed to post comments.