1

私は現在、かなり大きな調整が必要なモデルを作成しています。基本的に、都市のセットである現在のセット V を拡張して、都市と時間のセットにする必要があります。たとえば、V の要素 Kir は、単純に "Kir" から "Kir1"、"Kir2"、...、"Kir72" に拡張して、都市 Kir と番号で指定された時間枠を表す必要があります。

これを (.mod ファイルで) 次のように定義し始めました。K を V 内に設定します。

.dat ファイルでは、これをどのように記述すればよいかよくわかりません。セット K に「文字列」Kir を含める簡単な方法がない場合は、次のように記述します。

set V := 1 2 3 4 5;
set K := 1 2;

例えば。私の質問は、どうすればこれを行うことができますか? 都市名のキルを含めることはできますか? 具体的には、元の V セットの都市間の距離のピボット テーブルを定義しました。たとえば、都市 Kir と Sto の間の元のセット V 内の距離は、拡張セット内の Kir1 と Sto1 の間の距離と同じでなければなりません。また、Kir1 と Sto72 の間の距離も同じでなければなりません。元の距離は同じである必要があります。つまり、時間枠に関係なくです。AMPL内でこれを行う簡単な方法はありますか?

編集: タグ Python を追加しました。これはPythonでも実現できると思います。以下を使用して、新しいセットを定義することができました。

text = 'Kir'
string2 = [i for i in range(1,49)]
for i in string2:
    print (text+str(i))

例えば。私は距離行列に関して立ち往生しています

4

1 に答える 1

1

都市名と時間を連結してセットを作成することもできますが、都市を表す最初のインデックスと 2 番目の時間を表す 2 次元セットを使用する方がよいと思います。

set K dimen 2;

data;

set K :=
Kir 1
Kir 2
Kir 3;

セットには、 、、 のKペアが含まれます。('Kir', 1)('Kir', 2)('Kir', 3)

于 2014-10-03T17:17:12.773 に答える