問題タブ [julia-jump]

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 に答える
1057 参照

julia - JuMP - MethodError: `getindex` に getindex(::Function, ::Int64) に一致するメソッドがありません

この多目的問題の理想的なベクトルを計算する必要があります。@objective の functs_BK1() の 1 番目と 2 番目の関数にアクセスする方法がわかりません。すべてを動的にしてn関数をサポートする方法はありますか?

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

julia - Julia/JuMPにユーザー定義関数が既に登録されているか確認する方法

JuMP/julia にユーザー定義関数が既に登録されているかどうかを確認したい。次に例を示します。

コメントから明らかなように、2 回目の使用にはチェックが必要です。私が知る限り、JuMP は関数をグローバル レベルで登録します。一度登録すると、ローカルで再定義することはできません (そうですよね? 可能であれば、これで私の問題も解決します!)。

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

python - Julia JuMP を Python PuLP に変換する

Julia から Python に変換したいソフトウェアを偶然見つけました (Julia の経験はあまりありません)。私が抱えている主な問題は、コメント #PROBLEM BELOW/ABOVE でマークしたセクションで何が起こっているのか正確に理解できないことです。

skaters_teams は 180 x 10 の行列 (180 人のスケーターと 10 チーム) であり、チームはバイナリ配列として格納されます。ここで、skators_teams[0] はプレーヤー 0 の配列を与えます ex:[1, 0, 0, 0, 0, 0, 0 、0、0、0]。

次のようにループしていますか?

また、 で 3 つのパラメーターを使用することに関するドキュメントが見つかりません@addConstraint。1 つ目は追加する問題で、3 つ目は追加する制約です。2番目は何ですか?

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

julia - JuMP で利用可能なソルバーを一覧表示する

をインストールJuMPして初期化しようとしModel()ましたが、使用可能なものに基づいてソルバーを指定したいと思います。このために、利用可能なソルバーのリストを取得するにはどうすればよいですか?

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

julia - JuMP 制約マクロは、以前に宣言された変数の型を変更します

私は解決しようとしている簡単な数学プログラムを持っています:

A は型のある行列ですArray{Float64,2

この線:

@constraint(m, x, sum(x)==1))

のタイプをxからArray{JuMP.Variable,1}に変更しJuMP.ConstraintRef{JuMP.Model,JuMP.GenericRangeConstraint{JuMP.GenericAffExpr{Float64,JuMP.Variable}}}ます。

  1. x以前に変数として宣言されているので、型は同じままであるべきではありませんか? (さらに、上記の行が実行されると、すべてが機能しますがgetvalue、タイプの変更により機能しなくなります。)

  2. タイプを変更せずに合計制約を追加する方法はありますかx

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

performance - 非線形ソルバーでは、ソルバー時間と NLP 関数の評価に影響を与えるものは何ですか?

非線形最適化のパフォーマンスが、ソルバー エンジンのインターフェースの特定の方法によってどのように影響されるかを理解するのに、いくつかの困難があります。

最初のバージョンでは GAMS で書かれた最適化モデルがあります。IPOPT (一般的な FOOS 非線形ソルバー エンジン) は、最適化ごとに IPOPT (関数評価なし) で 1.4 CPU 秒、関数評価で 0.2 CPU 秒の実行時間を返していました。

モデルを C++ に変換し (モデルの最適化されていないコンポーネントをより適切に説明するため)、その C++ API を介して IPOPT をインターフェースした (AD 用の ADOL-C および ColPack を使用) と、IPOPT で 0.7 秒、9.4 秒の実行時間が得られました。数秒の関数評価 (IPOPT の改善は、ソースごとに IPOPT をコンパイルすることで、IPOPT の GAMS バージョンでは利用できないより優れた線形ソルバーを使用できたことが原因である可能性があります)。

そのため、C++ を使用すると、明らかに最適化が不十分なコードを使用すると、GAMS よりも 50 倍遅い結果が得られましたが、ソルバー時間の短縮によって部分的に補償されました。

現在、モデルを他の言語 (Pyomo を使用した Python、または JuMP を使用した Julia) に変換する可能性を評価しています。

しかし、最初に、各ステップでソルバーによって行われる関数評価が、実装されている特定の言語にどのように依存するかを理解したいと思います。

C++ では、最適化モデルを作成する関数が反復ごとに直接実行 (評価) されることは明らかであるため、それらの実装方法が重要です (特に、少なくとも私たちの実装では、勾配とヘシアンは毎回再計算されます)。 .

PyomoとJuMPはどうですか?Python と Julia で評価される各反復か、それとも Pyomo と JuMP が代わりに (私が推測する) C で最初にモデルをレンダリングし、勾配とヘッセ行列を一度だけ計算 (評価しない) し、それからこの「C バージョン」です。毎回評価されますか?特にpythonの場合、明らかに大きな違いがあります..

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

routing - VRP フロー制約をモデル化する方法

Juliaでこの制約をモデル化するのに問題があります

ここに画像の説明を入力

今私は持っています

ここで、nodes は顧客セット、n にはデポとデポ クローンが含まれます。K は車両の台数、i は開始ノード、j は終了ノードです。