オリジナルURL:What types of models can Gurobi solve?
Gurobiバージョン9.0以降では、線形制約、二次制約(凸および非凸)、二次錐制約を持つモデルを解くことができます。連続変数と整数変数の組合せは問いません。標準形は以下の通りです:
\begin{alignat}{3}\min_x\ x^\top Q x + c^\top x &+ d && && \textrm{(Objective)} \\ \textrm{s.t.} \qquad\qquad\enspace Ax &= b && && \textrm{(Linear constraints)} \\x^\top Q_i x + c_i^\top x &\le d_i && \forall i \in I && \textrm{(Quadratic constraints)} \\ \ell \le x &\le u && && \textrm{(Bound constraints)} \\ x_j &\in \mathbb{Z} && \forall j \in J && \textrm{(Integrality constraints)} \\ x_k &\in \textrm{second-order cones} \quad && \forall k \in K && \textrm{(Cone constraints)} \\ x_h &\in \textrm{SOS} && \forall h \in H \qquad && \textrm{(Special ordered set constraints)} \end{alignat}
上記のすべての要素が必要なわけではありません。例えば \(Q=0\) かつ \(I=K=\emptyset\) ならば、モデルは混合整数線形計画問題(MILP)になります。
Gurobi 9.0より前では、モデルの凸性を担保するために行列\(Q\)と\(Q_i\)はそれぞれ半正定値(PSD)行列である必要がありました。Gurobi 9.0以降では双線形制約と二次の等式制約を含む一般の非凸二次制約と非凸な二次の目的関数をサポートしています。
非凸なモデルは通常、凸条件を満たしているモデルよりも解くのが困難です。可能であれば、モデルを凸問題に再定式化することを検討してください。偶発的に非凸モデルが作成されるのを防ぐために、非凸制約または目的関数を持つ問題の最適化を有効にするには、 NonConvex パラメータを2に設定する必要があります。詳細については、リファレンスマニュアルの Quadratic Constraints を参照してください。
Gurobiには、多くの非凸関数を表現または近似することができる区分線形目的関数および制約を作成する機能が組み込まれています。詳細は、リファレンスマニュアルの General Constraints と Function Constraintsのセクションを参照してください。
Comments
0 comments
Article is closed for comments.