2017-01-09 12 views
2

私はAMPLのモデルを持っています。このモデルは3回実行する必要があり、各反復で結果は以前に定義されたセットのサイズを再定義する必要があります。AMPLの実行間でセットを再定義する方法

例:

set item := 1..12; 
... 
var out{other_set} >=0 integer; 

モデルが出でソリューションを実行し、私になるだろう。次に、itemを次のように設定し直します:

set item := 1..out. 

これは可能ですか?私はこれを見つけたマニュアルのページ462で

Recursive definitions of indexed sets are allowed, so long as the assigned 
values can be computed in a sequence that only references previously computed values. 

私は右、これは私が欲しいものである思考にいますか?

ありがとうございました

答えて

2

新しい値をセットに割り当てることができます。これを行うには、最初に宣言に:=がないことを確認してください。デフォルトの句とそれを置き換えることができます。

let item := 1..out; 

注意あなたが必要となりますので、あなたの例ではoutはセットの上にインデックス付けされていること:

set item default 1..12; 

は、その後、新しい値を代入するletステートメントを使用します添字out[...]を提供する。

+0

ありがとうございます、私は次の日にこれを試してみましょう、私はあなたに結果を知らせるでしょう。 – mclzc

関連する問題