問題タブ [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.

0 投票する
1 に答える
306 参照

ampl - 大きな問題に関するAMPLの限界

修士論文の作業を最適化に向けて間もなく採用しようとしていますが、AMPL の制限に関していくつか質問があります。

私の家庭教師は、たとえば Gurobi ソルバーのフル ライセンスが使用されている場合 (私の大学は持っています)、AMPL がほぼすべての状況を処理できると確信しているようです。

それでも、ほとんどの現在の論文では、ほとんどの人がまだC、C#、Pythonなどの他の言語で遺伝的アルゴリズムとヒューリスティックを使用していることがわかります。他の言語で独自のヒューリスティックを実装することが望ましいですか、それともこれを提供する設定がありますか?いくつかのソルバーのフル ライセンスを持っている場合、AMPL では?

これまでのところ、私の大学では、独自のヒューリスティックを採用しなければならない場合に実際的な問題は発生していません。つまり、卒業論文の作業が始まろうとしているまで、最後のコースと並行してこれらを勉強しなければならないということです。

前もって感謝します!センダーズ

0 投票する
1 に答える
104 参照

ampl - ampl はランダムな外部関数をインポートできません

AMPLで次のコードを使用しています

エラーが発生します:

プラットフォーム: Windows

上記のアプローチは、他の機能でもうまく機能します。gsl_ran_binomial_pdf

0 投票する
1 に答える
958 参照

linear-programming - または、GLPSOL AMPL/MathProg を使用した線形計画法の条件付け

いくつかの制約に応じて、2 つのタスクのうち小さい方を選択する最適化モデルを作成したいと考えています。

ここで、T1 と T2 はタスクの期間を表し、doT1 はこれらのタスクを実行するためのフラグを表します。必要に応じて、この最適化でそのうちの 1 つだけを選択するようにします。

制約を入れると

glpsol で線形形式の乗算が許可されていないというエラー メッセージが表示されます。

線形計画法で OR 条件を表現することはできますか?

0 投票する
2 に答える
491 参照

output - AMPL で特定のメッセージをオフにするにはどうすればよいですか?

線形プログラムで何度も「ソルブ」を呼び出す AMPL スクリプトがあります。私が使っているソルバーはMINOSです。解決するたびに、次のように出力されます。

ミノス 5.51:

「オプション abs_boundtol 2.220446049250313e-16;」または「オプション rel_boundtol 2.220446049250313e-16;」推定された二重値を変更します。

このメッセージを抑制する方法はありますか?

私はMINOSの指示でこれを読みました:

AMPL の solve コマンドまたはフォームからの呼び出しの場合

ミノスタブ ...

(stub.nl は AMPL の -ob または -og 出力オプションからのものです)、outlev= を使用して出力の量と種類を制御できます。

outlev=0 stdout でチャタリングなし

outlev=1 は stdout のオプションのみを報告します

outlev=2 標準出力の要約ファイル

stdout の outlev=3 ログ ファイル、解決策なし

outlev=4 ログ ファイル (ソリューションを含む)、標準出力

関連するかもしれませんが、私はそれを理解していません。

「option solver_msg 0;」を含めました。私のスクリプトで; これは、非常に多くの反復で最適な値を取得したという MINOS からのアナウンスをオフにしますが、ここで求めているメッセージには影響しません。

0 投票する
1 に答える
1341 参照

ampl - オペランドの前 > 無効な型があります

私はこの変数を持っています:

produced内部の値が 0 より大きい値の数を見つけようとしています。

しかし、それはこのエラーをスローします:「先行するオペランド > 無効な型があります」...

これを解決するにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
385 参照

python - IPython: AMPL は Gecode を実行するために何を指す必要がありますか?

この投稿に続いて - http://zverovich.net/2013/06/27/visualizing-geographical-ampl-data-using-ipython-and-google-charts.html

私はこのようなことを試しました:

なしで実行:

Windows に gecode をインストールした後、指定する特定のファイルが表示されません。IPython プロジェクトには、ampl.exe 以外の AMPL ファイルが必要ですか、それとも gecode が不足しているだけですか?

0 投票する
1 に答える
198 参照

c++ - AMPL .dat ファイルから C++ の特定のデータを読み取る

AMPL 構文のデータを含む .dat ファイルを C++ で読み込もうとしています (以下を参照)。セットを無視して、必要なパラメーター マトリックスのみを C++ 配列に読み込むことができるかどうかを教えてください。たとえば、ORCT、H、T、D、TO、RT、TLCT、P、V、E、NM、A を読みたいのですが、それ以外はすべて無視します。現在、ファイルを読み取ることはできますが、コードの特定のセクションの読み取りに関する情報は見つかりません。どんな助けでも大歓迎です。ありがとう。

0 投票する
1 に答える
320 参照

mathematical-optimization - セット内の整数の合計と選択された要素の数を最小化する AMPL

以前、セットから最小数の整数を選択し、合計 >= 定数を持つ方法について尋ねた質問を投稿しました。私のコードは次のとおりでした:

合計を最小化するという新しい目的も追加することにしました。前の例では、cplex は 12 (7 と 5) を生成します。11 (7 と 4) を生成するようにします。この目的のために、次の目的を追加しました。

残念ながら、私は AMPL の学生版を持っているので、2 つの目標を使用することはできません。これで、私の新しいコードで問題は解決しますが、回避策や、2 つの目的を 1 つにまとめて同じ機能を維持するためのトリックがあるかどうかを尋ねたいと思います。

編集:合計を最小化するよりも、要素の数を最小化することに関心があります。

0 投票する
1 に答える
156 参照

optimization - 反復操作を使用して制約の数を最小化する AMPL

後でプログラムで使用するために AMPL を学習しています。解決したい小さな問題があります。タイトルが示すように、反復操作を使用して制約の数を最小限に抑えようとしています。したがって、問題は次のとおりです。ABの2つのセットがあり、コードがあると仮定します。

ここで、前の制約を展開すると、次の制約が形成されます。

x[1,a] + x[2,a] + x[3,a] <=1;

x[1,b] + x[2,b] + x[3,b] <=1;

x[1,c] + x[2,c] + x[3,c] <=1;

x[4,a] + x[5,a] + x[6,a] <=1;

x[4,b] + x[5,b] + x[6,b] <=1;

x[4,c] + x[5,c] + x[6,c] <=1;

これは、A のyサブセットとBのz要素に対して、合計y*z制約を取得することを意味します (この場合は 2 x 3 = 6 制約です)。

ここで、制約を次のように変更すると:

結果は次のようになります。

{(x[1,a] + x[2,a] + x[3,a]) * (x[1,b] + x[2,b] + x[3,b]) * (x[1,c] + x[2,c] + x[3,c])} <= 1;

{(x[4,a] + x[5,a] + x[6,a]) * (x[4,b] + x[5,b] + x[6,b]) * (x[4,c] + x[5,c] + x[6,c])} <= 1;

前のフォームと同じ結果になるはずですが、制約の数をy*zからyに減らしました。これは良い改善です!! もう1つの改善点は、論理的および制約です。

結果は次のようになります。

{(x[1,a] + x[2,a] + x[3,a]) <= 1} && {(x[1,b] + x[2,b] + x[3,b]) <= 1} && {(x[1,c] + x[2,c] + x[3,c]) <= 1};

{(x[4,a] + x[5,a] + x[6,a]) <= 1} && {(x[4,b] + x[5,b] + x[6,b]) <= 1} && {(x[4,c] + x[5,c] + x[6,c]) <= 1};

問題は、これを行うと、問題を線形または二次方程式から非二次方程式に変更し、cplexがそれを解決できなくなることです:/

問題を非二次問題に変換せずにこれを実行できるようにするための回避策やトリックはありますか (少なくともcplexを使用して解決する必要があります)。

これは、 Ax[1,a] + x[1,b] + x[1,c] = 1の他の要素にも当てはまります。どうぞよろしくお願いいたします。

0 投票する
1 に答える
521 参照

mathematical-optimization - 「カウント」を使用して制約から目標を作成する AMPL の難しさ

AMPL で小さな問題を解決しようとしていますが、それを制約に変換できないという問題に直面しました。問題は次のとおりです。 AB、およびCの 3 つのセットがあるとします。Cの 1 つのサブセットに存在する場合、 A の2 つ以下の要素がBの 1 つの要素にリンクされるように、A の要素をBの要素にリンクしたい( Cの任意のサブセットの 3 つの要素のうち最大 2 つ) Bの 1 つの要素にリンクされています)。私はすでにこの部分をやった

この制約を書いたとします。

subject to constr {(i,j,k) in C, b in B}: x[i,b] + x[j,b] + x[k,b] <= 2;

コードの目的は、次の場合を最大化することです。 {(i,j,k) in C, b in B}: x[i,b] + x[j,b] + x[k,b] <= 1;

つまり、次の場合を最小限に抑えるために:

{(i,j,k) in C, b in B}: x[i,b] + x[j,b] + x[k,b] = 2;.

この目的はどのように書けばよいでしょうか?また、( constraint is = 2 ) <= 定数 (MAX など)の回数を取得したい場合、どうすればそれを行うことができますか? 以下は、これまでに書いたコードです。AMPL の学生版と cplex の学生版を使用しています。どうぞよろしくお願いいたします。

私はこれを試しましたが、うまくいきませんでした(numberofもうまくいきませんでした):

subject to constr2 {b in B}: count {(i,j,k) in C} ( (x[i,b] + x[j,b] + x[k,b]) = 2 ) <= MAX;ここで、MAX は次のように宣言されます。