問題タブ [scip]
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.
linear-programming - LP の計算時間 IP 自体の最適化よりも高い IP の緩和
これは、 SCIP を使用した MIP の LP 緩和に関する以前の質問のフォローアップです。
MIP (CPLEX 形式) を SoPlex に渡すだけで MIP の LP 緩和ソリューションを計算できますが、SoPlex にかかる計算時間は、SCIP 自体を使用して MIP を最適化するよりも長いことがわかります (より小さな入力のテスト)。 )。SCIP は MIP を解決する前に SoPlex を内部的に使用するため、これはどのように可能ですか? さらに、私の LP 緩和の結果は、実際には整数解を与えており、MIP と同じ目的値です。LPリラクゼーションを間違えていますか?それとも、私の問題/定式化の特性ですか?
私は、ソルバーによって出力された合計計算時間を参照しています (自分で計算したものではありません)。
cplex - Cplexを使用したSCIP
cplex で scip を実行する際に問題が発生しました。「make LPS=cpx ZIMPL=false」を実行すると、次のエラーが表示されました: make LPS=
cpx ZIMPL = ~/scipoptsuite-3.0.2/scip-3.0.2/lib/liblpicpx.linux.x86_64.gnu.opt.a', needed by
false 止まる。
誰か助けてくれませんか?
glpk - MathProg MIP ファイルを SCIP で認識される形式に変換することはできますか?
GLPK を使用して、混合整数計画問題を解決してきました。MathProg 形式のサンプル入力ファイルを次に示します。
私は、この種のより大きな問題でパフォーマンスの問題に直面してきました。SCIP は MIP の GLPK よりも数倍高速であると主張しているため、調査する価値があるようです。ただし、入力ファイル形式に関しては、ドキュメントの頭や尾を作ることができませんでした。SCIP のホームページは AMPL フォーマットをサポートしていると述べており、GLPK のホームページは MathProg が AMPL のサブセットであると述べています。上記のファイルを経由で SCIP 3.1.0 にフィードしようとするとscip -f file.nl
、次のエラーが返されます。
これが、AMPL をサポートする SCIP のビルドに失敗したためなのか、それとも別の理由によるものなのかはわかりません。AMPL をサポートする SCIP の構築に関するこのブログ投稿を見つけましたが、SCIP 3.1.0 のソース zip にはinterfaces
フォルダーが含まれていないため、手順が古くなっているようです。
だから、私は2つの質問があります:
- SCIP に私の MathProg 入力をそのまま認識させることは可能ですか?
- そうでない場合は、認識されている形式に変換する方法について誰かアドバイスできますか? さらに別のフォーマットを学ぶ必要はありませんので、自動化された方法が望ましいですが、手動の方法は何もないよりはましです.
助けてくれてありがとう、そして私の無知をお詫びします!
integer-programming - MINLP を使用した SCIP 実行不可能性の検出
混合整数非線形計画問題 (MINLP) を解くために SCIAMPL を使用しています。ほとんどの場合、うまく機能していますが、ソルバーが実行不可能性を誤って検出する例を見つけました。
ソルバーは、事前解決フェーズで実行不可能性を検出しています。ただし、x と y を 4 と 12 に固定する 2 つの制約のコメントを外すと、ソルバーが機能し、正しい v と z の値が出力されます。
なぜこれが起こっているのか、そしてそれを回避するために別の方法で問題を定式化できるかどうかに興味があります. 私が得た 1 つの提案は、通常、非凸の問題では実行不可能性の検出があまりうまくいかないというものでした。
編集: これは単なる SCIP の問題ではないことに注意してください。SCIP は、この特定のセット K で問題を解決するだけです。たとえば、別のグローバル MINLP ソルバーである bonmin を使用すると、この特定の K の問題を解決できますが、K を 15 まで拡張すると、bonmin は実行不可能性を検出します。問題は実行可能のままです。その K については、実際に機能するソルバーをまだ見つけていません。FILTER に基づく minlp ソルバーも試しました。BARON は GAMS 入力のみを使用するため、まだ試していません。
c++ - SCIPと支店と価格
SCIP について一般的な質問があります。問題の Branch and Price フレームワークとして SCIP を使用する必要があります。C++ でコーディングしているので、VRP の例をテンプレートとして使用しました。一部のインスタンスでは、コードは分数解で停止し、最適な解としてそれを返します。何かが間違っていると思います。SCIP に整数解を探すように指示するためにいくつかのパラメーターを設定する必要がありますか、それとも間違いを犯しましたか?停止すべきではなく、整数解に到達するまで分数解で分岐する必要があると考えています (他の負の削減コスト列はありません)。副問題も最適解!何かコメントはありますか?!
scip - SCIPincludeBranchruleMybranchingrule() が何度も呼び出される
SCIP に独自の分岐ルールを含めており、SCIPincludeBranchruleMybranchingrule()
関数を使用して分岐ルール データを初期化しています。私が行うことの 1 つは、SCIPgetNVars()
関数を呼び出すことです。コードを実行すると、関数が何度も呼び出されていることがわかり (B&B アルゴリズムが開始される前に、思ったように 1 回ではありませんでした)、SCIPgetNVars()
関数によってトリガーされた次のエラーが表示されます。
[src/scip/scip.c:10048] ERROR: invalid SCIP stage <0>
SCIPincludeBranchruleMybranchingrule()
ドキュメントには、この関数を使用して分岐規則データを初期化できると記載されているため、の使用について混乱しています。すべての B&B ノードで使用できるいくつかのデータを初期化したいのですが、分岐ルール データが正しい方法ではない可能性があります。
どんな助けにも感謝します!
scip - SCIPsolve 呼び出し外のプラグインでデータを使用する
プラグインとメイン関数の間でデータを共有したいと考えています (つまり、SCIPsolve
関数の呼び出しの外で使用します)。たとえば、分岐ルールは特定の int 変数を 1 に設定し、最適化が完了したら、変数が変更されたかどうかを確認することができます。
プラグイン データ (例: ) を使用してこれを達成できると思ってSCIP_BranchruleData
いましたが、プラグインのソース ファイルの外部からアクセスすることはできません。
どうすればいいですか?どんな助けにも感謝します。ロドルフォ