Line: 1 to 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<-- Ready to Review --> | |||||||||||
Line: 98 to 98 | |||||||||||
Defining 2-Dimensional ParametersIn a similar way to 2-dimensional sets, there are three different ways to define 2-dimensional parameters. | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
model; param Min {ARCS} integer, default 0; data; param Min := Youngstown 'Kansas City' 1000 Pittsburgh 'Kansas City' 2000 Cincinnati Albany 1000
param : ... := ... ... ... ;If the element does not exist or the default value is correct then place a . in the table. Otherwise, put the parameter value.
param Cost: Cincinnati 'Kansas City' Chicago Albany Houston Tempe Gary := Youngstown 350 450 375 500 . . . Pittsburgh 350 450 400 . . . 450 Cincinnati . . . 350 550 . . 'Kansas City' . . . . 375 650 . Chicago . . . . . 600 120 ;You can also define parameter data in a transposed table using almost the same syntax, but with the (tr) keyword and reversing the indexing sets
param (tr) : ... := ... ... ... ;
param Cost := [Youngstown, *] Cincinnati 350 'Kansas City' 450 ... ... [Chicago, *] ... Gary 120 ;Note The row indices have [=} and =] around them (as opposed to ( and ) for sets). | ||||||||||
Defining Multi-Dimensional ParametersSince we have multi-dimensional sets, we might need multi-dimensional parameters, e.g.,Cost {TIME_ARCS} has four dimensions. We can define these parameters in a similar way to multi-dimensional sets: | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
[ ] around *, May, *, May as opposed to the ( ) for sets! | ||||||||||
Defining Multiple Parameters | |||||||||||
Changed: | |||||||||||
< < | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param: ... : ... ... ;If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
> > | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows.
param: ... : ... ... ;If a parameter is not defined or the default value is sufficient, use the . operator.
model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
| |||||||||||
Line: 119 to 177 | |||||||||||
| |||||||||||
Changed: | |||||||||||
< < | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
> > | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
Return to top | |||||||||||
Line: 128 to 192 | |||||||||||
Parameter values are accessed by specifying the indices of the parameter you want to access within [ and ] .
Examples | |||||||||||
Changed: | |||||||||||
< < | See Cost and Contributes below. # Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
> > | See Cost and Contributes below.
# Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
Return to top |
Line: 1 to 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<-- Ready to Review --> | |||||||||||
Line: 20 to 20 | |||||||||||
Declaring a ParameterAMPL parameters are created in a similar way to AMPL variables, using theparam keyword followed by a label. | |||||||||||
Changed: | |||||||||||
< < | param ; | ||||||||||
> > | param <my param name>; | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param [{}] []; | ||||||||||
> > | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param <my param name>[{<(optional) indexing set>}] [<(optional) bounds, default values>]; | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param ProteinPercent {INGREDIENTS} >= 0 <= 100; | ||||||||||
> > | param ProteinPercent {INGREDIENTS} >= 0 <= 100; | ||||||||||
Return to top | |||||||||||
Line: 41 to 45 | |||||||||||
As well as using parameter types to check the validity of data, real and integer parameters can also have bounds set during their declaration. These bounds will be checked by AMPL any time the value of the parameter changes and, if they are violated, an error will be generated.
Example | |||||||||||
Changed: | |||||||||||
< < | param counter integer >= 0; let counter := -1; # This generates an error as counter is < 0 | ||||||||||
> > | param counter integer >= 0; let counter := -1; # This generates an error as counter is < 0 | ||||||||||
Return to top | |||||||||||
Line: 49 to 56 | |||||||||||
Default parameter values can be used to quickly set a large number of parameter values automatically. If a parameter is used without being explicitly assigned a value the default value is used for that parameter. AMPL uses a default value of 0 if no default value is given.
Example | |||||||||||
Changed: | |||||||||||
< < | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
> > | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
The AMPL macros Infinity and -Infinity are useful as defaults for parameters that act as bounds ( Infinity as a default upper bound, 0 or -Infinity as a default lower bound).
Return to top
Defining a Parameter | |||||||||||
Changed: | |||||||||||
< < | Once a parameter has been declared it is usually defined in a data file. This is done simply for a single value using the assignment operator := : param MinProtein := 8.0 ; | ||||||||||
> > | Once a parameter has been declared it is usually defined in a data file. This is done simply for a single value using the assignment operator := : param MinProtein := 8.0 ; | ||||||||||
For parameters declared over a 1-dimensional set this can be done using default values and a list for those parameters that don't take default values: | |||||||||||
Changed: | |||||||||||
< < | model; param Min {REQUIREMENTS} default -Infinity; data; param Min := PROTEIN 8.0 FAT 6.0 ; | ||||||||||
> > | model; param Min {REQUIREMENTS} default -Infinity; data; param Min := PROTEIN 8.0 FAT 6.0 ; | ||||||||||
Defining 2-Dimensional ParametersIn a similar way to 2-dimensional sets, there are three different ways to define 2-dimensional parameters. | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
| ||||||||||
Defining Multi-Dimensional ParametersSince we have multi-dimensional sets, we might need multi-dimensional parameters, e.g.,Cost {TIME_ARCS} has four dimensions. We can define these parameters in a similar way to multi-dimensional sets: | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
| ||||||||||
Defining Multiple Parameters | |||||||||||
Changed: | |||||||||||
< < | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param: ... : ... ... ;If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
> > | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param: ... : ... ... ;If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
| |||||||||||
Line: 85 to 119 | |||||||||||
| |||||||||||
Changed: | |||||||||||
< < | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
> > | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
Return to top | |||||||||||
Line: 94 to 128 | |||||||||||
Parameter values are accessed by specifying the indices of the parameter you want to access within [ and ] .
Examples | |||||||||||
Changed: | |||||||||||
< < | See Cost and Contributes below. # Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
> > | See Cost and Contributes below. # Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
Return to top |
Line: 1 to 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<-- Ready to Review --> | |||||||||||
Line: 20 to 20 | |||||||||||
Declaring a ParameterAMPL parameters are created in a similar way to AMPL variables, using theparam keyword followed by a label. | |||||||||||
Changed: | |||||||||||
< < | param | ||||||||||
> > | param ; | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param | ||||||||||
> > | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param [{}] []; | ||||||||||
Exampleparam ProteinPercent {INGREDIENTS} >= 0 <= 100; | |||||||||||
Line: 49 to 49 | |||||||||||
Default parameter values can be used to quickly set a large number of parameter values automatically. If a parameter is used without being explicitly assigned a value the default value is used for that parameter. AMPL uses a default value of 0 if no default value is given.
Example | |||||||||||
Changed: | |||||||||||
< < | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
> > | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
The AMPL macros Infinity and -Infinity are useful as defaults for parameters that act as bounds ( Infinity as a default upper bound, 0 or -Infinity as a default lower bound). | |||||||||||
Line: 63 to 63 | |||||||||||
Defining 2-Dimensional Parameters | |||||||||||
Changed: | |||||||||||
< < | In a similar way to 2-dimensional sets, there are three different ways to define 2-dimensional sets. | ||||||||||
> > | In a similar way to 2-dimensional sets, there are three different ways to define 2-dimensional parameters. | ||||||||||
| |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
| ||||||||||
Defining Multi-Dimensional Parameters | |||||||||||
Line: 75 to 75 | |||||||||||
Defining Multiple Parameters | |||||||||||
Changed: | |||||||||||
< < | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param:If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
> > | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param: ... : ... ... ;If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
|
Line: 1 to 1 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
<-- Ready to Review --> | |||||||||||
Line: 20 to 20 | |||||||||||
Declaring a ParameterAMPL parameters are created in a similar way to AMPL variables, using theparam keyword followed by a label. | |||||||||||
Changed: | |||||||||||
< < | param <paramname>; | ||||||||||
> > | param | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param <paramname> [{<indexname>}] [<attributes>]; | ||||||||||
> > | param MinProtein;Like variables parameters are often defined over a set and may have several attributes: param | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param ProteinPercent {INGREDIENTS} >= 0 <= 100; | ||||||||||
> > | param ProteinPercent {INGREDIENTS} >= 0 <= 100; | ||||||||||
Return to top | |||||||||||
Line: 48 to 38 | |||||||||||
Parameter Bounds | |||||||||||
Changed: | |||||||||||
< < | As well as using parameter types to check the validity of data, real and integer parameters can also have bounds set during their declaration. These bounds will be checked by AMPL any time the value of the parameter changes and, if they are violated, and error will be generated. | ||||||||||
> > | As well as using parameter types to check the validity of data, real and integer parameters can also have bounds set during their declaration. These bounds will be checked by AMPL any time the value of the parameter changes and, if they are violated, an error will be generated. | ||||||||||
Example | |||||||||||
Changed: | |||||||||||
< < | param counter integer >= 0; let counter := -1; # This generates an error as counter is < 0 | ||||||||||
> > | param counter integer >= 0; let counter := -1; # This generates an error as counter is < 0 | ||||||||||
Return to top | |||||||||||
Line: 63 to 49 | |||||||||||
Default parameter values can be used to quickly set a large number of parameter values automatically. If a parameter is used without being explicitly assigned a value the default value is used for that parameter. AMPL uses a default value of 0 if no default value is given.
Example | |||||||||||
Changed: | |||||||||||
< < | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
> > | set DIGITS := 1..5; param isok {DIGITS} binary default 1; let isok[3] := 0; display {i in DIGITS} isok[i]; # Result # ====== # isok[i] [*] := # 1 1 # 2 1 # 3 0 # 4 1 # 5 1 # ; | ||||||||||
The AMPL macros Infinity and -Infinity are useful as defaults for parameters that act as bounds (Infinity as a default upper bound, 0 or -Infinity as a default lower bound).
Return to top
Defining a Parameter | |||||||||||
Changed: | |||||||||||
< < | Once a parameter has been declared it is usually defined in a data file. This is done simply for a single value
using the assignment operator := :
param MinProtein := 8.0 ; | ||||||||||
> > | Once a parameter has been declared it is usually defined in a data file. This is done simply for a single value using the assignment operator := : param MinProtein := 8.0 ; | ||||||||||
For parameters declared over a 1-dimensional set this can be done using default values and a list for those parameters that don't take default values: | |||||||||||
Changed: | |||||||||||
< < | model; param Min {REQUIREMENTS} default -Infinity; data; param Min := PROTEIN 8.0 FAT 6.0 ; | ||||||||||
> > | model; param Min {REQUIREMENTS} default -Infinity; data; param Min := PROTEIN 8.0 FAT 6.0 ; | ||||||||||
Defining 2-Dimensional ParametersIn a similar way to 2-dimensional sets, there are three different ways to define 2-dimensional sets. | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
| ||||||||||
Defining Multi-Dimensional ParametersSince we have multi-dimensional sets, we might need multi-dimensional parameters, e.g.,Cost {TIME_ARCS} has four dimensions. We can define these parameters in a similar way to multi-dimensional sets: | |||||||||||
Changed: | |||||||||||
< < |
| ||||||||||
> > |
| ||||||||||
Defining Multiple Parameters | |||||||||||
Changed: | |||||||||||
< < | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows.
param: <name1> <name2> ... : <element1> <value1,1> <value1,2> ... <element2> <value2,1> <value2,2> ... ;If a parameter is not defined or the default value is sufficient, use the . operator.
model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
> > | Using the : operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows. param:If a parameter is not defined or the default value is sufficient, use the . operator. model; # The lower and upper bounds on the requirements param Min {REQUIREMENTS} default -Infinity; param Max {REQUIREMENTS} default Infinity; data; param: Min Max:= PROTEIN 8.0 . FAT 6.0 . FIBRE . 2.0 SALT . 0.4 ;This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties | ||||||||||
| |||||||||||
Line: 210 to 85 | |||||||||||
| |||||||||||
Changed: | |||||||||||
< < | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
> > | param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | ||||||||||
Return to top
Accessing a Parameter | |||||||||||
Changed: | |||||||||||
< < | Parameter values are accessed by specifying the indices of the parameter you want to access within [ and ] . | ||||||||||
> > | Parameter values are accessed by specifying the indices of the parameter you want to access within [ and ] . | ||||||||||
Examples | |||||||||||
Changed: | |||||||||||
< < | See Cost and Contributes below.
# Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
> > | See Cost and Contributes below. # Objective: minimise the cost per (100g) can minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; # Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; | ||||||||||
Return to top |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review --> |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Added: | ||||||||
> > | <-- Ready to Review --> | |||||||
Parameters in AMPL |
Line: 1 to 1 | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameters in AMPL | |||||||||||||||||||||||||||||||
Line: 8 to 8 | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | |||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||
DescriptionParameters hold "hard" values in AMPL. The values of parameters can be defined and changed in AMPL, but a solver will not change them while looking for an optimal solution. | |||||||||||||||||||||||||||||||
Line: 174 to 174 | |||||||||||||||||||||||||||||||
... ; | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | ??? Up to here ???
Defining Multiple ParametersUsing the {\tt :} operator, multiple parameters may be defined at once. Simply state the names of the parameters and the {\tt :=} operator. Then list the set elements and values on the following rows.\begin{verbatim}
param:
If a parameter is not defined or the default value is sufficient, use the {\tt .} operator.
\begin{verbatim} | ||||||||||||||||||||||||||||||
> > | Defining Multiple ParametersUsing the: operator, multiple parameters may be defined at once. Simply state the names of the parameters and the := operator. Then list the set elements and values on the following rows.
param: <name1> <name2> ... : <element1> <value1,1> <value1,2> ... <element2> <value2,1> <value2,2> ... ;If a parameter is not defined or the default value is sufficient, use the . operator.
| ||||||||||||||||||||||||||||||
model; # The lower and upper bounds on the requirements | |||||||||||||||||||||||||||||||
Line: 199 to 197 | |||||||||||||||||||||||||||||||
FIBRE . 2.0 SALT . 0.4 ; | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | \end{verbatim} This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties \begin{verbatim} From node To node Cost Minimum Maximum Youngstown Albany 500 - 1000 Youngstown Cincinnati 350 - 3000 Youngstown Kansas City 450 1000 5000 Youngstown Chicago 375 - 5000 etc \end{verbatim} | ||||||||||||||||||||||||||||||
> > |
This approach also works for 2-dimensional parameters and lists, for the American Steel problem this allows us to "cut-and-paste" the list of arc properties
| ||||||||||||||||||||||||||||||
becomes | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | \begin{verbatim} | ||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||
param: Cost Min Max:= Youngstown Cincinnati 350 0 3000 Youngstown 'Kansas City' 450 1000 5000 ... Chicago Gary 120 0 4000 ; | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | \end{verbatim} | ||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | Accessing a ParameterParameter values are accessed by specifying the indices of the parameter you want to access within {\tt [} and {\tt ]}.ExamplesSee {\tt Cost} and {\tt Contributes} below.\begin{verbatim} | ||||||||||||||||||||||||||||||
> > | Return to top
Accessing a ParameterParameter values are accessed by specifying the indices of the parameter you want to access within[ and ] .
ExamplesSeeCost and Contributes below.
| ||||||||||||||||||||||||||||||
# Objective: minimise the cost per (100g) can | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Percentage[i]; | ||||||||||||||||||||||||||||||
> > | minimize TotalCost: sum {i in INGREDIENTS} Cost[i] * Amount[i]; | ||||||||||||||||||||||||||||||
# Constraints: Meet the nutritional requirements subject to MeetRequirement {r in REQUIREMENTS}: | |||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||
< < | Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Percentage[i] <= Max[r]; \end{verbatim} | ||||||||||||||||||||||||||||||
> > | Min[r] <= sum {i in INGREDIENTS} Contributes[i, r] * Amount[i] <= Max[r]; Return to top -- MichaelOSullivan - 02 Mar 2008 |