問題タブ [ampl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ampl - 実行不能を回避するために改造する必要がある
私は林業で最適化を行っており、一連の企業 C が収穫エリア セット I からいくつかの品揃えセット A からいくつかの材木を差し引く可能性があります。パラメーター x[I,J,V,T,C,A ] 変数は、時間 T に車両 V を使用して、品揃え A の会社 C を使用して、収穫エリア I から製材所 J までの流れを表します。
私が抱えている問題は、各製材所が最小要件 d_minus に準拠しなければならないことです。これは次の場所で行われます。
問題は、車両 V が次のようにモデル化された特定の容量を持っていることです。
ただし、これによりコンパイラは、constraint2 での不可能な境界について不平を言います。例えば
4台の車両を使用し、各車両の容量は40です(400と1000も使用してみましたが、エラーが残りました)。d_minus パラメータは 500 から 1000 の間です。
パラメータが狭すぎてはいけないと私は考えています。1000 の容量を使用すると、3 台の車両フリートのニーズを満たす必要があります。「すべての」制約がソリューションを制限し、エラーを引き起こしていると思います。Constraint2 に「for all t in T, j in J」を使用してみましたが、d_minus の添え字が見つかりません。誰にも手がかりはありますか?
よろしく
equation - AMPL コードで構文エラーが発生する原因は何ですか?
この ampl コードの場合、この mod ファイルを実行しようとすると、構文エラーが発生し続けます。正しい方程式を書き留めているので、どこが間違っているのかよくわかりません。
これを修正するにはどうすればよいですか?
変数 P >= 0;
変数 Q >= 0;
変数 R >= 0;
変数 S >= 0;
var T >= 0;
変数 U >= 0;
変数 V >= 0;
コストの最大化: 4*P + 5*Q + 1*R + 3*S - 5*T + 8*U;
Sup1 の対象: P - 4*R + 3*S + T + U + 2*V = 1 ;
Sup2 の対象: 5*P + 3*Q + R − 5*T + 3*U <= 4 ;
Sup3 の対象: 4*P + 5*Q − 3*R + 3*S − 4*T + U <= 4 ;
Sup4 の対象: − Q + 2*S + T − 5*U <= 5 ;
Sup5 の対象: −2*P + Q + R + S + 2*T + 2*U <= 7 ;
Sup6 の対象: 2*P − 3*Q + 2*R - S + 4*T + 5*U <= 5 ;
ampl - AMPL、2 つのセットからデータを選択
私は次の2つのセットを持っています:
次の行のように、これらのセットからデータを選択する制約が必要です。
これは、s1 と s2 からのデータの選択が次のようになることを意味します。
x[0,0,0] = x[1,3,0];
x[0,1,0] = x[1,4,0];
x[0,5,0] = x[1,8,0];
x[0,6,0] = x[1,9,0];
しかし、私が書いたコードには構文エラーがあります。助けてくれませんか
ありがとう
set - AMPL エラー、セットの重複番号
AMPL には、いくつかの同様の値を格納する必要があるセットがあります。しかし、「重複番号」エラーがあります。
それを行う方法はありますか?この問題を解決する最も簡単な方法は何ですか?
セットは次のとおりです。
セットA;
データ: セット A := 1 1 2;
ありがとう
variables - Ampl コロンを使用したインデックス式のエラー: セット指定のそのような部分の変数
制約の 1 つでこのエラーが発生する理由を理解しようとしています。
行は次のとおりです。
これは、バイナリ変数「操作」が 1 であるすべての時間について、つまり操作が特定の時間 t に特定のマシン/リソースを使用していることを意味し、その操作の処理が完了するまで、他の操作を開始してはならないことを示しています。