2017-12-13 27 views
0

Pythonの混合整数非線形プログラミングライブラリで外部カスタム関数を動的制約として追加することはできますか?私はboolean変数とNumpy行列(サイズm x n)を使って作業しています。要求された合計値の合計を最小限にする必要があります(例:tot_vals = 2,3 ...... n)。したがって、私はいくつかの "空間的な"制約を追加したい、私は(ブールインデックスに基づいて)関数を作成し、私は自分の最適化手順でそれらを実装しようとします。 CVXPYではCVXPYのフォーマットされた制約を(私が知る限り)追加することができないため、PULPはLP問題のみで動作するので失敗します。Pyomo、OpenOpt、PySCIPoptなどがあります。MINLPのPython外部制約関数

はこれが可能であるPySCIPOptであなたの助け

答えて

0

のために事前にありがとうございます。現行のLPソリューションを実現可能にチェックし、次のノードの実行不可能性を回避するために有効な不等式を追加するカスタム制約ハンドラを作成する必要があります。

この手順の一例は、PySCIPOPでTSP implementationです。これは、PySCIPOPについてのthis tutorial articleでさらに詳細に説明されています。

+0

あなたのご意見やご感想をお寄せいただきありがとうございます。私の唯一の選択肢とチャンスはグラフを使って作業しています。私はPySCIPoptをインストールしようとしていますが、インストールがちょっと難解で、ちょうど1つの 'pip install'より複雑ですか?Windows 10のPython 3.6で作業しています。 –

+0

実際は複雑ではありません。提供されているWindowsインストーラを使用してSCIP Opt Suiteをインストールし、それに応じてPATHとSCIPOPTDIR環境変数を設定し、 'pip install pyscipopt'を実行する必要があります。解決できない問題がある場合は、私はPySCIPOP GitHubページで問題を開くことを検討します。 – mattmilten