問題タブ [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.
optimization - cplex を使用した AMPL 非二次非線形制約
私は最適化プロジェクトに取り組んでおり、小さな問題に直面しました。私のプロジェクトでは、AMPL と CPLEX をソルバーとして使用しています。私のコードには、e1、e2、...、en で示されるいくつかの要素があります。これらの要素内にタプルを含むセットもあります。moveTuples セット内の 1 つのタプル内の 2 つの要素ごとの距離を最大化するように、各要素に 1 から 'n' までの数値を割り当てる必要があります (それらを順序付ける必要がありますが、同じタプル内の要素間の距離を保つようにしてください)。 .
すべての要素には割り当てられた番号が 1 つだけ必要であり、各番号は 1 つの要素だけに与えられる必要があります。この目的のために、次のコードを書きました。
これで問題は明確になり、前の例の場合、出力は次のいずれかになります。
e1 -> 1
e2 -> 3
e3 -> 2
また
e1 -> 3
e2 -> 1
e3 -> 2
タプル (e1,e2) を使用して e2 から e1 を移動するだけでよいためです。前のコードを実行すると、次のエラーが表示されます: ... 非二次非線形制約 (間違いなく "moveApart" 制約) が含まれています。この問題を解決する方法を教えてください。前もって感謝します。
optimization - 最適化問題のソルバーとモデリング言語の選択
私は現在、(R からの) lp_solve を使用して、計画/最適化およびその他のオペレーションズ リサーチ風味の仕事で発生する問題のために、かなり大きな (しかしまばらな) LP/IP を解決しています。
大まかに言えば、それはうまく機能し、私はRで作業するのが好きですが、私たちが検討するモデルは、少なくとも本質的に2次になるように進化する必要があることを知っています(一般的に非凸である可能性があります)。
この分野での「業界標準」が何であるかを知りたいのですが、AMPL/CPLEX の組み合わせを超えて検討すべきではありませんか (そしてそこに時間を投資する必要があります)。追加の質問: GAMS/AMPL のどちらがより良い選択ですか? (どちらも得意ではありませんが、機能的に必要なものはわかっています: たとえば、スパース マトリックスのサポート) 本当に大規模な LP/QP/IP の場合、CPLEX はクラスター間でどの程度うまくスケーリングしますか? そのようなクラスターをセットアップ/実行できるようになるまでに、どのくらいの曲線がありますか?
gnu - GLPK: セットの要素を持つ変数のインデックス付け
このように定義されたセットと変数があるとしましょう:
と の 3 つの変数がx[Animals]
ありx[Plantes]
ますx[Persones]
。>=0 であり、>=7 である必要がありますx[Animals]
。「対象」セクションでそれを定義するために頭に浮かんだすべての論理的な方法を試しましたが、うまくいきません。3 番目の変数 <=7 を行うにはどうすればよいですか?x[Plantes]
x[Persones]
ampl - AMPL の構文エラー
AMPL でこのスクリプトを実行すると、構文エラーが発生します。誰かがこれを解決するのを手伝ってくれますか?
このコードを tex ファイル (.rtf) に書き、これを neos-server にアップロードします。
ソルバーからの出力は次のとおりです。
amplin、7 行目 (オフセット 54):
構文エラー
コンテキスト: >>> {\ <<< rtf1\ansi\ansicpg1252\cocoartf12処理コマンド。
neos-2.neos-server.org での実行
エラー (2) in /opt/ampl/ampl -R amplin
ampl - AMPL IDE ウィンドウを開けません
AMPL 試用ライセンスを取得しました。すべての指示に従って、すべてのソルバーをダウンロードしました。amplide アイコンをクリックすると、次のメッセージが表示されます。
この問題を解決するにはどうすればよいですか?
ampl - AMPL で削減されたコストを見つける
AMPL で線形計画法を理解しようとしていますが、情報を見つけるのに苦労しています。export_price
製品の輸出が利益を生み始めるカットオフ値を で見つけましたprod_trans.rc
。の初期値export_price
はゼロでした。
import_price
ここで、初期値もゼロであるのカットオフを見つけたいと思います。初期値を大きな数値に設定M
して、削減されたコストをもう一度確認することができます。そうすれば、カットオフは M から削減されたコストを引いたものになります。しかし、これは洗練されておらず、直感的には、輸入価格が 0 に設定されている場合でも、カットオフ値を読み取る方法があるに違いないと思います.方法はありますか?
これは、目的関数の関連部分です。
ampl - AMPL 派生変数を値に「ロック」する
追加の生産設備に投資することが有益かどうかを調査したいので、目的関数で資本化を説明する必要があります。
そのため、たとえば、y[t] = 1 の場合、g != t、g > t に対して y[g] = 1 が可能かどうか疑問に思っています。ここで、g,t は設定された時間間隔のサブセットです。 T.
私の最初の考えは、次のことでした。
しかし、それは確かに y の解を y[0] の開始値にする必要があります。これは明らかに望んでいないことです。
明確にするために。y[t] は、投資が時間 t に開始された場合は値が 1、それ以外の場合は 0 であるバイナリ変数であると仮定します。
誰かがこれに光を当ててくれることを願っています!
よろしく
ampl - AMPL はこれを再帰的に処理できますか、それとも改造が必要ですか?
AMPL を使用して、処理方法がよくわからない 2 つの特定の制約があるプロダクションをモデル化しています。
編集:ここで、x[i,t] は供給ポイント i からの製品の量です。u[i] は、製品を作成するための供給ポイント i からの原材料の「交換レート」を示します。つまり、原材料の一部は最終製品になりますが、一部の原材料は廃棄されます。同じことが RecycledU[f] にも当てはまります。ここで、f は F にあり、それが精製された精製ステーションを示します。違いは、RecycledU[f] は、Recycled がすでに f からの完成品であるため、無駄になる割合がはるかに低いことです (ただし、収益性ははるかに低くなります)。つまり、リサイクルはすでに原材料になるプロセスを「通過」しています x が、より早い段階で、またはできれば (モデル化できる場合は) これと同じ期間に完成品になっています。実際のモデルでは「製品」としての物
私が達成したいのは、生産された製品の量が、期間 t に販売されたすべてのアイテムと、期間 tにリサイクルされた製品の量の合計であるということです (リサイクルとは、最終製品が製造現場でさらに長く保管されることを意味します)。タイムステップ g でのリファインメント、g>t)。
私がやったように、prod[t] に 2 つの等号を書くことは可能ですか? また、Recycle[t]の扱い方は?AMPL は、これらが同じ時間ステップで表されるため、制約を再帰的に処理する必要があることを「理解」できますか?
編集: 期間は年で表されるため、Recycle[t-1] を使用した表現は避けたいと思います。
EDIT2: prod と x はパラメーターで、Recycle と Solditems は変数です。
誰かがこれに光を当ててくれることを願っています!
センダーズ