離散最適化コース ノート (5) - 混合整数計画法

ディレクトリ

1. MIP (混合整数計画) の概要

Case1: 倉庫の場所

Case2: ナップザック問題(分岐と束縛)

2. MIPモデル(モデリング) 

Case3: 色付け問題(Big-M変換) 

3. 切断面

4. 多面体カット

Case4: ノードパッキング(クリークファセット)

Case3: 色付けの問題

5. ブランチアンドカット

5.1 カバーカット

5.2 ブランチアンドカット

5.3 分離の問題

5.4 MIP+TSP

6. 施設の位置プログラミングの割り当て


1. MIP (混合整数計画) の概要

MIP 問題は、LP 問題に変数丸めの制約を追加したものです。

Case1: 倉庫の場所

倉庫の場所の問題では、倉庫には一連のオプションがあります。顧客が与えられた場合、倉庫をどこに建設するかを決定し、各顧客を対応する倉庫に割り当てる必要があります。各倉庫には、倉庫から各顧客までの固定コストがかかります. 交通費が発生し、総額が最小限で済むこと

  • 決定変数: 2 つの 0/1 決定変数。x_w倉庫 w を開くかどうかを表し、_{トイレ}倉庫 w が顧客 c にサービスを提供するかどうかを表します。
  • 制約: 倉庫は開いているときのみ顧客にサービスを提供できy_{トイレ}<x_w、顧客は 1 つの倉庫でのみサービスを提供できます。
  • 目的関数:倉庫開設コスト+輸送コスト

 上記のモデルでは、決定変数は 0/1 変数です。この問題は 0/1 整数計画問題とも呼ばれます。MIP モデルでは、通常、決定変数を 0/1 変数として設定します。

Case2: ナップザック問題(分岐と束縛)

MIP 問題を解決するには多くの方法がありますが、分岐限定が一般的に使用される方法です。

  • バウンディング: 楽観的な余裕を見つける
  • 分岐: 問題を複数の下位問題に分割します。

線形緩和: MIP 問題の変数に対する整数制約を考慮せずに得られる LP モデルの最適解は、MIP の線形緩和と呼ばれます。

 あらゆる MIP 問題は、LP 緩和 + 追加の制約 (一部の変数には整数が必要) と見なすことができるため、LP 緩和は MIP 削減制約、またはより緩和されたバージョンであり、MIP の実行可能領域は、その LP 緩和の実行可能領域に含まれなければなりません。最大化問題の場合、LP 緩和の最適解 >= MIP の最適解、同様に、最小化問題の場合、LP 緩和の最適解 <= MIP の最適解。LP 緩和を分枝限定法と組み合わせて上限 (下限) を見つけることができます。

  • 現在の線形緩和は、以前に見つかった解よりも悪いです。この部分問題の探索を中止してください。たとえば、x2=1 の場合の緩和解は 71.33 であり、これまでに見つかった 80 よりも悪化しています。この分岐の探索を中止してください。
  • 現在の線形緩和は整数解であり、x1=1、x2=0、x3=1 などの実現可能な解が見つかりました。
  • それ以外の場合は、分岐する線形緩和解の非整数値変数を選択し、初期線形緩和が 92 であるなど、2 つのサブ問題を作成します。ここで、x1=1、x2=0.25、x3=1、分岐する x2 を選択します。 x2=0 と x2 = 1 の 2 つのサブ質問

MIP の LP 緩和の意味は、最適解の上限 (下限) を与えることです。優れた MIP モデルは良好な LP 緩和を持ちます。 

2. MIPモデル(モデリング) 

 MIP 問題のモデルはさまざまな形で表現できますが、適切な MIP モデルとは何でしょうか?

  • 0/1 変数を使用することを好む
  • 良好な線形緩和がある

たとえば、Case1: 倉庫の場所の制約 1 では、次のy_{トイレ}<x_w図に示すように、他の方法で表現することもできます。元の制約は各倉庫と各顧客に対する WC 制約の合計でしたが、現在は倉庫ごとに制約されています。 、制約を使用します。条件によって元の C 制約が置き換えられ、2 つの制約が比較されます。元の制約の解は、後の制約の解に含まれている必要があります。したがって、元の制約の方が効果的です。問題は総コストを最小限に抑えることです。元の制約の LP 緩和目標値はより大きく、その線形緩和はより良く、求められた下限はより高くなります。MIP モデルが異なればスラック制約も異なり、検索効率も異なります。これがモデルの重要性です。

Case3: 色付け問題(Big-M変換) 

グラフの色付けの問題には制約があります。隣接する点は異なる色であり、数学的に表現されます。x\neq yこれは線形制約ではないため、変換が必要です。これは、x\neq yx が大きいか y が大きいという 2 つの状況があることを意味します。 MIP 問題では当てはまりません 接続制約が許可されているため、ビッグ M 法が導入されています 変数 b は 0/1 変数、M は無限数です以下に示すように、x\neq y2 つの制約となり、次の場合に満たされますb=0 でx\leqslant y-1あり、 b=1 の場合に満たされますx\geq y+1 。big M で変換した後、MIP モデルが確立され、LP 緩和が解決されます。ターゲット値は 0 で、少なくとも 1 つの色が必要であることを示します。明らかに、この緩和は無効であり、MIP モデルを再構築する必要があります。

上記のモデルでは、決定変数は各点の色であり、値の範囲は {0,1,2,3} です。前述したように、MIP は 0/1 変数を優先するため、決定変数を変更して次のように置き換えます。 0/1 変数 、各ポイントに 4 つの 0/1 変数を設定し、ポイントが特定の色を使用するかどうかを表します。

  • 各ポイントは 1 つの色のみを持つことができます。b_{x=0}+b_{x=1}+b_{x=3}+b_{x=4}=1 
  • 異なる色の隣接する点:b_{x=0}+b_{y=0}\leq 1

0/1 変数を使用して MIP モデルによって解かれた LP 緩和は 0.27 です。ここでの v の値は 0 から始まることに注意してください。つまり、v は少なくとも 1 であり、合計で少なくとも 2 色が必要です。以前のモデル LP 緩和よりも優れています。緩和を取得した後、変数分岐を選択する必要がありますが、変数分岐の数が多すぎるため、このモデルも改善できます 

最初の制約と 2 番目の制約を次の制約に組み合わせると、LP 緩和では検索するノードが少なくなります。 

MIP モデルが異なれば LP 緩和も異なり、次回の探索効率に影響するため、適切な MIP モデルを選択する必要があります。

3. 切断面

切断面の中心的な考え方は、MIP の実現可能な解を排除することなく、制約を追加することで LP 緩和の最適解を改善できるということです。以下の図に示すように、LP 緩和と MIP の違いは、後者の解には整数が必要であるため、整数解を含まない LP 緩和の部分を完全に削除できるため、次の実現可能な解を確実に得ることができます。 LP増加中にMIPは破壊されない最適解の境界容量を緩和します。

上記の要件を満たす拘束は Gomory カットと呼ばれます。切断面法の鍵は、Gomory カットを見つけ、新しい拘束を追加し、LP 緩和ソリューションを更新することです。以下の図に示すように、LP 緩和解から小数値を持つ変数を選択します。x1 が b1 の値を小数値として受け取ると仮定すると、次の変換を通じてカットを取得できます。これにより、新しい制約が得られます\sum (a_{1j}-\left \lfloor a_{1j} \right \rfloor)x_{j}\geq b_{1}-\left \lfloor b_{1} \right \rfloor。 。新しい制約を追加して LP 緩和を解決します。

次の質問を例として考えてみましょう

  • 元の LP 緩和解の後のテーブルは次のとおりです、x2=3/2 なので、切断する線 x2 を選択し、新しい制約を見つけます\frac{1}{4}x_{3}+\frac{1}{4}x_{4}\geq \frac{1}{2}

  • x_{1}\leq 1上記の制約を上記の x1、x2 に置き換えると、元の実行可能領域がカットされたことを示す が得られます。人工変数 s1 を導入し、反復テーブルを更新します。x1 の値は 2/3 で、 の行を選択します 。x1 をカットする場合、新しい制約は次のとおりです。\frac{2}{3}x_{4}+\frac{2}{3}s_{1}\geq \frac{2}{3}

  •  上記の制約を x1、x2 に置き換えると、x1-x2>=0 が得られ、非整数の実行可能領域の一部をカットできます。 

 切断面法の考え方をまとめると

  • 線形緩和問題を解く
  • 値が分数である変数を選択し、ゴモリーカットを追加します
  • デュアルシンプレックス法による新たな最適解の取得
  • 解が整数の要件を満たすか、実行可能な解がなくなるまで繰り返します。

Gomory 切断に基づいて、Balas、Ceria、Cornuejols、Natraj (1994-1996) は、Gomory 切断とブランチおよびバインドを組み合わせて、一度に複数の切断を生成し、境界を改善するのに役立つ限り切断を生成する方法を研究しました。現在の MIP 問題では、SOTA モデルのエッジは Gomory 切断を使用しています。

4. 多面体カット

上記で説明したカット方法はほんの 1 つであり、問​​題の構造に応じて複数のカット タイプを使用することができます。

  • 凸包: 実ベクトル空間 V において、指定された集合 X に対して、X を含むすべての凸集合の交点 S をX の凸包と呼びます。
  • 多面体カット: 整数解の凸包を表すカット

 多面体カットはセクション 3 で紹介した反復テーブルから得られるカットとは異なりますが、制約自体の構造特性から始まります。これらも効果的であり、MIP の実行可能な解決策を排除しませんが、現在の LP 緩和を行います。 LP の境界を緩和する能力を向上させるための、基本的な実行可能な解決策は実行可能ではありません。多面体カットを次の 2 つの例で示します。

Case4: ノードパッキング(クリークファセット)

ノード パッキング問題は、最大独立集合、つまり最大独立集合問題とも呼ばれます。最大独立集合は、グラフ頂点のサブセットであり、任意の 2 点間にエッジ接続がないことを満たします。これは、次のように MIP で表されます。右の図では、決定変数は 0/1 変数であり、頂点が最大独立集合内にあるかどうかに関係なく、線形緩和解はすべての変数に対して 1/2 であり、スコア変数が多すぎることを意味します。改善する必要がある、切り口を見つける

  •  クリーク: 無向グラフの完全なサブグラフ。無向グラフのいくつかの頂点が互いに隣接している場合、これらの頂点はクリークを形成していると言われます
  • 最大クリーク: 無向グラフ内で最も多くの点を含む完全なグラフ

最大の独立セットでは頂点間の接続は必要ありません。これは、最大クリーク内の頂点が独立セット内に最大 1 つの頂点しか持てないことを示しています。したがって、上記のノード パッキング問題では、線形緩和を解決するためのカットとして 5 つの最大クリーク制約を使用できます。 x1=0、オリジナルよりも優れています

​​​​​​​

Case3: 色付けの問題

グラフの色付け問題でも、クリークカット法を使用して線形緩和を改善できます。

5. ブランチアンドカット

5.1 カバーカット

  • Cover: 制約の場合\sum_{j=1}^{n}a_{j}x_{j}\leq b、セットはC\subseteq N=\left \{ 1,...n \right \}次の場合にカバーです。\sum_{j\in C}^{}a_{j}>b

x は 0/1 変数であるため、カバレッジ C 内の変数がすべて 1 をとることができないことを意味し、カバレッジの不等式が得られます。カバレッジ\sum_{j\in C}^{}x_{j}\leq |C|-1C 内の変数がすべて 1 をとることができない場合は、より大きな変数を追加します。 C をカバーする変数の係数が E (C) になると、この制約も満たされ、下の右図に示すように拡張カバレッジ不等式になります。元の制約によれば、カバレッジ不等式 x3+x4+x5+x6<= 3、x1 と x2 の係数比は、x3、x4、x5、x5 です。係数はすべて大きいため、強化されたカバレッジの不等式は、x1+x2+x3+x4+x5+x6<=3 として取得できます。

5.2 ブランチアンドカット

  • MIP モデルとして問題をモデル化する
  • 線形緩和を解く (整数の場合)、終了
  • 直線的なたるみをカットするカットを見つけます。そのようなカットが見つかった場合は、ステップ 2 に戻ります。
  • 切断せずに見つかった場合は変数で分岐します

ブランチとカットの重要なステップ: 適切なカットを見つけることで、線形緩和の最適解を改善できます。すべてのカットを一度にリストする必要はありません。現在の最適なソリューションを削除するカットを見つけるだけで済みます。

5.3 分離の問題

Branch and Cut プロセスから、仮想線形緩和の最適解はいくつかの切断によって改善できることがわかりますx^{*}。切断できるカバー カットがあるかどうかを知りたいと考えていますx^{*}。本来の最適解を不可能な解に変え、切断をより効率的にします。を削除するには、以前のカバレッジの不等式に違反する、違反した制約を見つける必要x^{*}があります。目的関数の値が 1 未満の場合、削除できるカットが見つかり、の変数がカットを形成しますx^{*}\sum_{j\in C}^{}x_{j}\leq |C|-1\sum_{j\in C}^{}(1-x_{j})\geq 1\sum_{j\in C}^{}(1-x_{j})< 1z_{j}=1x^{*}z_{j}=1

5.4 MIP+TSP

TSP の MIP モデリングの考え方は次のとおりです。

  • 決定変数:x_{e}エッジ e が解内にあるかどうかを表します
  • 制約: 各頂点に接続されている 2 つのエッジがあります。 

TSPを従来の考え方で解くと部分円の問題が発生しますが、部分円の問題を解消するには次のような考え方が考えられます。

(1)サブツアー制約の分離

(2)コーム制約 

TSP ベース テストによると、サブツアー除去では 2% の最適性ギャップを達成でき、サブツアー + コーム カットでは 0.5% の最適性ギャップを達成できます。切断 + 線形緩和は MIP を解決する非常に効果的な方法であり、切断の種類、特定の問題、特定の用途が多数あります。

6. 施設の位置プログラミングの割り当て

Gurobi ソリューション、80/80、コードについては私の github を参照するか、Gurobi+Python を使用して施設の場所の問題 (施設の場所) を解決する_bujbujbiu のブログ - CSDN ブログを参照してください。

おすすめ

転載: blog.csdn.net/weixin_45526117/article/details/128335479