Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review - done - Lauren--> The AMPL Syntax Guide | ||||||||
Line: 16 to 16 | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > | ||||||||
Commenting |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review - done - Lauren--> The AMPL Syntax Guide | ||||||||
Line: 23 to 23 | ||||||||
The # is used for commenting, any characters on a line after the # are ignored by AMPL.
Examples | ||||||||
Changed: | ||||||||
< < | The Whiskas Cat Food Problem # The set of all possible ingredients for the cat food set INGREDIENTS; | |||||||
> > | The Whiskas Cat Food Problem
# The set of all possible ingredients for the cat food set INGREDIENTS; | |||||||
The Surfboard Production Problem | ||||||||
Added: | ||||||||
> > | ||||||||
Changed: | ||||||||
< < | param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
> > | param Supply {MATERIALS}; # The supply of each raw material param Recipe {MATERIALS, SURFBOARDS}; # The "recipe" for making surfboards | |||||||
Using =symbolic |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review - done - Lauren--> The AMPL Syntax Guide | ||||||||
Line: 13 to 13 | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > | ||||||||
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review - done - Lauren--> The AMPL Syntax Guide | ||||||||
Line: 13 to 13 | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Commenting |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
<-- Ready to Review - done - Lauren--> The AMPL Syntax Guide | ||||||||
Line: 18 to 18 | ||||||||
| ||||||||
Changed: | ||||||||
< < | Commenting Fix stacking on this page - Lauren | |||||||
> > | Commenting | |||||||
The # is used for commenting, any characters on a line after the # are ignored by AMPL. | ||||||||
Line: 26 to 26 | ||||||||
The Whiskas Cat Food Problem # The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem | ||||||||
Changed: | ||||||||
< < | param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
> > | param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
Using =symbolicThesymbolic keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).
Example. Searching a 1-Dimensional set | ||||||||
Changed: | ||||||||
< < | param gotcha symbolic within SET; for {s in SET} { if then let gotcha := s; } # gotcha now contains the (last) element in SET that satisfies the condition | |||||||
> > | param gotcha symbolic within SET; for {s in SET} { if then let gotcha := s; } # gotcha now contains the (last) element in SET that satisfies the condition | |||||||
Example. Searching a 2-Dimensional Set | ||||||||
Changed: | ||||||||
< < | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if then { let got_one := s; let got_two := t; } } # (got_one, got_two) now contains the (last) element in TWO_D_SET # that satisfies the condition | |||||||
> > | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if then { let got_one := s; let got_two := t; } } # (got_one, got_two) now contains the (last) element in TWO_D_SET # that satisfies the condition | |||||||
To build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the %g format from printf![]() | ||||||||
Added: | ||||||||
> > | ||||||||
Example. Dynamically Building a Set | ||||||||
Changed: | ||||||||
< < | param name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
> > | param name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
-- MichaelOSullivan - 27 Feb 2008 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | <-- Ready to Review --> | |||||||
> > | <-- Ready to Review - done - Lauren--> | |||||||
The AMPL Syntax GuideDisclaimer This is a guide to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming![]() | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | Commenting | |||||||
> > | Commenting Fix stacking on this page - Lauren | |||||||
The # is used for commenting, any characters on a line after the # are ignored by AMPL.
Examples | ||||||||
Changed: | ||||||||
< < | The Whiskas Cat Food Problem
# The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
> > | The Whiskas Cat Food Problem # The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
Using =symbolicThesymbolic keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).
Example. Searching a 1-Dimensional set | ||||||||
Changed: | ||||||||
< < | param gotcha symbolic within SET; for {s in SET} { if | |||||||
> > | param gotcha symbolic within SET; for {s in SET} { if then let gotcha := s; } # gotcha now contains the (last) element in SET that satisfies the condition | |||||||
Example. Searching a 2-Dimensional Set | ||||||||
Changed: | ||||||||
< < | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if | |||||||
> > | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if then { let got_one := s; let got_two := t; } } # (got_one, got_two) now contains the (last) element in TWO_D_SET # that satisfies the condition | |||||||
Changed: | ||||||||
< < | To build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the %g format from printf![]() | |||||||
> > | To build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the %g format from printf![]() | |||||||
Example. Dynamically Building a Set | ||||||||
Changed: | ||||||||
< < | param name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
> > | param name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
-- MichaelOSullivan - 27 Feb 2008 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Added: | ||||||||
> > | <-- Ready to Review --> | |||||||
The AMPL Syntax Guide | ||||||||
Changed: | ||||||||
< < | Disclaimer This is a guide to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming. | |||||||
> > | Disclaimer This is a guide to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming![]() | |||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Commenting | ||||||||
Line: 22 to 23 | ||||||||
The # is used for commenting, any characters on a line after the # are ignored by AMPL.
Examples | ||||||||
Changed: | ||||||||
< < | The Whiskas Cat Food Problem # The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
> > | The Whiskas Cat Food Problem
# The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
Using =symbolicThesymbolic keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).
Example. Searching a 1-Dimensional set | ||||||||
Changed: | ||||||||
< < | param gotcha symbolic within SET; for {s in SET} { if then let gotcha := s; } # gotcha now contains the (last) element in SET that satisfies the condition | |||||||
> > | param gotcha symbolic within SET; for {s in SET} { if | |||||||
Example. Searching a 2-Dimensional Set | ||||||||
Changed: | ||||||||
< < | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if then { let got_one := s; let got_two := t; } } # (got_one, got_two) now contains the (last) element in TWO_D_SET # that satisfies the condition | |||||||
> > | set SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if | |||||||
Changed: | ||||||||
< < | To build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the =%g= format from =printf=![]() | |||||||
> > | To build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the %g format from printf![]() | |||||||
Example. Dynamically Building a Set | ||||||||
Changed: | ||||||||
< < | param name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
> > | param name symbolic; | |||||||
Changed: | ||||||||
< < | Sets in AMPLVariables Parameters Expressions Objective Function Constraints Logical Statements Looping Statements Displaying and Printing Miscellaneous AMPL Commands | |||||||
> > | let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } | |||||||
-- MichaelOSullivan - 27 Feb 2008 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
The AMPL Syntax Guide | ||||||||
Changed: | ||||||||
< < | Disclaimer This is a *guide* to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming. | |||||||
> > | Disclaimer This is a guide to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming. | |||||||
Changed: | ||||||||
< < |
CommentingThe {\tt #} is used for commenting, any characters after the {\tt #} are ignored by AMPL.ExamplesThe Whiskas Cat Food Problem\begin{verbatim} var x1 >= 0; # Percentage chicken meat used in 100g of cat food (= g) \end{verbatim} The Surfboard Production Problem \begin{verbatim} param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available \end{verbatim}
Using {\tt symbolic}The {\tt symbolic} keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).Example. Searching a 1-Dimensional set\begin{verbatim}
param gotcha symbolic within SET;
for {s in SET} {
if
\begin{verbatim}
set SET1;
set SET2;
\begin{verbatim}
param name symbolic;
| |||||||
> > | ||||||||
Changed: | ||||||||
< < | Logical Statements | |||||||
> > | Commenting | |||||||
Changed: | ||||||||
< < | Looping Statements | |||||||
> > | The # is used for commenting, any characters on a line after the # are ignored by AMPL. | |||||||
Changed: | ||||||||
< < | Displaying and Printing | |||||||
> > | ExamplesThe Whiskas Cat Food Problem# The set of all possible ingredients for the cat food set INGREDIENTS;The Surfboard Production Problem param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available | |||||||
Changed: | ||||||||
< < | Miscellaneous AMPL Commands | |||||||
> > | Using =symbolicThesymbolic keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).
Example. Searching a 1-Dimensional setparam gotcha symbolic within SET; for {s in SET} { if then let gotcha := s; } # gotcha now contains the (last) element in SET that satisfies the condition Example. Searching a 2-Dimensional Setset SET1; set SET2; set TWO_D_SET within SET1 cross SET2; param got_one symbolic within SET1; param got_two symbolic within SET2; for {(s, t) in TWO_D_SET} { if then { let got_one := s; let got_two := t; } } # (got_one, got_two) now contains the (last) element in TWO_D_SET # that satisfies the conditionTo build labels for set elements you need a symbolic parameter and the parts of the label. You can then "glue" the parts of the label together by enclosing the label within ( and ) and joining the parts with & . The parts can be set elements, strings or numbers. Numbers are converted to strings using the =%g= format from =printf=![]() Example. Dynamically Building a Setparam name symbolic; let SUPPLY_NODES := {}; for {s in SUPPLY_LOCATIONS} { let name := (s & '-Woodchips'); let SUPPLY_NODES := SUPPLY_NODES union {name}; let Supply[name] := MaterialSupply[s, 'Woodchips']; let {d in DEMAND_NODES} Cost[name, d] := TransportationCost[s, d]; let dummyDemandCost[name] := DisposalCost['Woodchips']; } Sets in AMPLVariables Parameters Expressions Objective Function Constraints Logical Statements Looping Statements Displaying and Printing Miscellaneous AMPL Commands | |||||||
-- MichaelOSullivan - 27 Feb 2008 |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
The AMPL Syntax GuideDisclaimer This is a *guide* to the AMPL syntax only. For a comprehensive reference to the AMPL language see AMPL: A Modeling Language for Mathematical Programming.
CommentingThe {\tt #} is used for commenting, any characters after the {\tt #} are ignored by AMPL.ExamplesThe Whiskas Cat Food Problem\begin{verbatim} var x1 >= 0; # Percentage chicken meat used in 100g of cat food (= g) \end{verbatim} The Surfboard Production Problem \begin{verbatim} param Resin {SURFBOARDS} >= 0; # Amount of resin (in kilos) needed for a board param TotalResin >= 0; # Total amount of resin available \end{verbatim}
Using {\tt symbolic}The {\tt symbolic} keyword is used to create parameters that represent character strings. Usually they are used to represent members of 1-dimensional sets or part of a tuple for multi-dimensional sets. However, they can also be used to represent file names or to automatically build labels (for entry in a set, for example).Example. Searching a 1-Dimensional set\begin{verbatim}
param gotcha symbolic within SET;
for {s in SET} {
if
\begin{verbatim}
set SET1;
set SET2;
\begin{verbatim}
param name symbolic;
|