整数計画法—第 1 章 はじめに
整数計画法は、整変数を使用した最適化問題です。つまり、変数のすべてまたは一部が整数であり、一連の等式条件と不等式条件によって制約される多変量関数を最大化または最小化する最適化問題です。経済学、経営学、輸送、通信、工学における最適化問題の多くは、整数計画法を使用してモデル化できます。
テレビ工場の生産計画の問題を考えてみましょう。線形計画法モデルによって与えられる最適な生産計画が 1 日あたり 102.4 ユニットを生産することである場合、1 日あたり 102 または 103 ユニットの生産計画を選択できます。一方、検討中の問題が倉庫の場所である場合、線形計画法によって与えられる最適解は、場所 A に 0.6 個の倉庫を建設または購入し、場所 B に 0.4 個の倉庫を建設または購入することであると仮定します。ウェアハウスの数は整数である必要があり、線形計画法による解決策は有用な意思決定ソリューションを提供できません。実際、整数変数は、決定変数の離散性を記述するだけでなく、論理関係、固定コスト、オプション変数の上限、順序と並べ替えの関係、シャーディングなど、最適化モデリングにおける多くの制約を特徴付けるのに役立ちます。等
整数計画法の歴史は 1950 年代にまで遡ることができます。オペレーションズ リサーチの創設者であり、線形計画法のシンプレックス アルゴリズムの発明者である Dantzig は、0 ~ 1 の変数を使用して固定費、変数の上限、最適化モデルの非凸点、スライス線形関数など フルカーソンおよびジョンソンとの巡回販売員問題 (TSP) に関する彼の研究は、後の分岐切断法と現代の混合整数計画法アルゴリズムの始まりとなりました。1958 年に、Gomory は、一般的な線形整数計画法の最初の収束アルゴリズムである切断面法を発見しました。整数計画法理論とアルゴリズムの発展に伴い、整数計画法は最も広く使用される最適化手法の 1 つとなり、特に近年では、整数計画法アルゴリズム技術とソフトウェア システム (CPLEX など) の開発と普及により、整数計画法はますます普及してきました。製造企業、サービス、運行管理、輸送、通信などの分野で広く応用され、発展しています。
1.1 分類とモデリング
1.1.1 線形混合整数計画法
線形混合整数計画法 (混合整数計画/プログラミング、MIP) の一般的な形式は次のとおりです。
(MIP) min c T x + h T y , s 。と。A x + G y ≤ b 、 x ∈ Z + n 、 y ∈ R + p 、 \begin{aligned} (\text{MIP})\quad\quad& \min \ c^T x+h^Ty,\\ \ & st\quad Ax+Gy\le b,\ x\in \Z^n_+,y\in \R^p_+, \end{aligned}( MIP ) 分 cT ×+hタイ、_s 。と。あ×+ジー_≤b 、 バツ∈Z+ん、y∈R+p、
其中 Z + n \Z^n_+ Z+んはい、_n次元の非負の整数ベクトルR + p \R^p_+R+pppですp次元の非負の実数ベクトルのコレクション。
問題 (MIP) に連続決定変数がない場合、(MIP) は (純粋に) 線形整数プログラムになります。
(IP) min c T x 、 s 。と。A x ≤ b , x ∈ Z + n , \begin{aligned} (\text{IP})\quad\quad& \min \ c^T x,\\\ & st\quad Ax\le b,\ x\ \Z^n_+ で、\end{整列}( IP ) 分 cTx、_s 。と。あ×≤b 、 バツ∈Z+ん、
バックパックの問題bbの耐荷重を持つバックパックがありますb。n 個の項目を検討します。そのうちのjj 番目j個α j α_jあるj、値はcj c_jです。cj。バックパック内のアイテムの合計価値を最大化するために、バックパックに入れるアイテムを選択するにはどうすればよいですか?
設定
xj = { j 番目の項目が選択されている場合は 1、選択されていない場合は 0。 x_j=\begin{cases} 1,&j 番目の項目が選択されている場合、\\ 0,&選択されていない場合。 \end{cases}バツj={ 1 、0、j 番目の項目が選択されている場合、選択されていない場合。
この場合、ナップザック問題は次の線形 0-1 計画法として表現できます。
最大 ∑ j = 1 ncjxj , s 。と。∑ j = 1 najxj ≤ b , x ∈ { 0 , 1 } n 。\begin{aligned}&\max \sum_{j=1}^n c_jx_j,\\ &s.t.\ \sum_{j=1}^n a_jx_j\le b,\\ &\quad\quad x\in \{0,1\}^n。\end{整列}最大j = 1∑んcjバツj、s 。と。 j = 1∑んあるjバツj≤b 、バツ∈{ 0 ,1 }n .
割り当て問題mmを搭載m台のマシン、nnアーティファクト、iiiマシンbi b_ib私は ,第 i i マシンi が jj番目j個のワークに必要な作業時間はaij a_{ij}あるイジ、コストはcij c_{ij}です。cイジ。機械生産を最適に割り当てる方法を尋ねます。
設定
xij = { 1、i 番目の機械が j 番目のワークを処理する場合、0、その他 x_{ij}=\begin{cases} 1、& \i\ 番目の機械が \j\ 番目のワークを処理する場合ワークピース、\ 0、&その他\end{cases}バツイジ={ 1 、0、i番目の機械がj番目のワークを加工すると、 その他。
この場合、割り当て問題は次の 0-1 計画問題として表現できます。
min ∑ i = 1 n ∑ j = 1 ncijxij , s 。と。∑ j = 1 naijxij ≤ bi , i = 1 , . 。。, m , ∑ i = 1 mxij = 1 , j = 1 , . 。。, n , x ∈ { 0 , 1 } n 。\begin{aligned}&\min \sum_{i=1}^n\sum_{j=1}^n c_{ij}x_{ij},\\ &s.t.\ \sum_{j=1}^ n a_{ij}x_{ij}\le b_i,\ i = 1,...,m,\\ &\quad\quad\sum_{i = 1}^m x_{ij} =1,j=1 ,...,n, \\ &\quad\quad x\in \{0,1\}^n。\end{整列}分i = 1∑んj = 1∑んcイジバツイジ、s 。と。 j = 1∑んあるイジバツイジ≤b私は、 私=1 、... 、メートル、i = 1∑メートルバツイジ=1 、j=1 、... 、n 、バツ∈{ 0 ,1 }n .
コレクションの対象範囲の問題ある地域がいくつかのエリアに分かれており、複数の救急センター(消防署、救護所など)を設置する必要がある場合、各センターの開設にはホームページ構築費用が必要となります。候補センターがわかっているため、各センターはサービスエリアを事前に把握しており、緊急サービスがエリア全体をカバーし、Web サイトの構築コストを最小限に抑えるためにセンターを選択する方法を決定します。
注M = { 1 , ⋅ ⋅ ⋅ , m } M=\{1,···,m\}M={ 1 、⋅⋅⋅、m }は領域内の面積です、N = { 1 , ⋅ ⋅ ⋅ , n } N=\{1,···,n\}N={ 1 、⋅⋅⋅、n } は、 S ≤ MS ≤ Mと仮定した場合の、オプションの中心です。S≤Mは中心j∈N j∈Nj∈Nがサービスを提供できる領域のセット、cj c_jcjセンターのJJですjの Web サイト構築コスト、0-1 相関行列を定義A = ( aij ) A=(a_{ij})あ=( _イジ)、ここでi ∈ S ji∈S_j私∈Sj,aij = 1 a_{ij}=1あるイジ=1 ,否则 a i j = 0 a_{ij}=0 あるイジ=0。
設定
xj = { 1、中心 j が選択されている場合、0、その他。x_j=\begin{cases} 1,&中心 j が選択されている場合、\\ 0,&その他。\end{cases}バツj={ 1 、0、中心jを選択すると、その他。
この場合、問題は次のように表現できます。
最小 ∑ j = 1 ncjxj , s 。と。∑ j = 1 naijxj ≥ 1 、 i = 1 、... 。。, m , x ∈ { 0 , 1 } n 。\begin{aligned}&\min \sum_{j=1}^n c_jx_j,\\ &s.t.\ \sum_{j=1}^n a_{ij}x_j\ge 1,i=1,.. .,m,\\ &\quad\quad x\in \{0,1\}^n。\end{整列}分j = 1∑んcjバツj、s 。と。 j = 1∑んあるイジバツj≥1 、私=1 、... 、メートル、バツ∈{ 0 ,1 }n .
巡回販売員問題(TSP)巡回セールスマンが製品を販売するために n 都市に行く必要があるとします。彼は各都市を 1 回ずつ訪問し、最後に最初の都市に戻る必要があります。また、訪問できるのは最初の都市です。各都市から別の都市までの距離が直接わかっていると仮定します (できない場合)。直接到達できる場合は距離を+∞に設定できますが、総移動距離が最短になるように移動ルートを選択するにはどうすればよいでしょうか?
都市IIを想定します私はシティへjの距離はcij c_{ij}ですcイジ、設定
xij = { 1, 彼の旅行ルートに都市 i から都市 j への直接旅行が含まれる場合、0, その他 x_{ij}=\begin{cases} 1,& 彼の旅行ルートに都市 i から直接旅行が含まれる場合都市 j、\\ 0、その他。\end{cases}バツイジ={ 1 、0、彼の旅行ルートに都市iから都市jへの直接旅行が含まれている場合、その他。
制限:
街を離れるii私は一度:
∑ j ≠ ixij = 1 、 i = 1 、... 。。, n \sum_{j\not= i}x_{ij}=1,\ i=1,...,nj=私∑バツイジ=1 、 私=1 、... 、n
jj市に到着j 1 回:
∑ i ≠ jxij = 1 、 j = 1 、... 。。, n \sum_{i\not= j}x_{ij}=1,\ j=1,...,n私= j∑バツイジ=1 、 j=1 、... 、n
上記の制約により、各都市を 1 回だけ通過できますが、円を含むが接続されていないルートが含まれる可能性があります。
この状況を排除するには、次の制約を使用する必要があります。∑ i ∈ S ∑ j ∉ S xij ≥ 1 , ∀ S ⊂ N = { 1 , . 。。, n } , S ≠ ∅ \sum_{i\in S}\sum_{j\not\in S}x_{ij}\ge 1,\quad \forall S\sub N=\{1,... ,n\},S\not =\emptyseti ∈ S∑j∈ S∑バツイジ≥1 、∀S _⊂N={ 1 、... 、n } 、S=∅
または
∑ i ∈ S ∑ j ∈ S xij ≤ ∣ S ∣ − 1 , ∀ S ⊂ N , 2 ≤ ∣ S ∣ ≤ n − 1 \sum_{i\in S}\sum_{j\in S} x_{ij} \le |S|-1,\quad \forall S\sub N,\quad 2\le|S|\le n-1i ∈ S∑j ∈ S∑バツイジ≤∣ S ∣−1 、∀S _⊂ん、2≤∣ S ∣≤n−1
したがって、巡回販売員の問題は次のように表すことができます。
min ∑ i = 1 n ∑ j = 1 ncijxij , s 。と。∑ j ≠ ixij = 1 、 i = 1 、... 。。, n , ∑ i ≠ jmxij = 1 , j = 1 , . 。。, n , ∑ i ∈ S ∑ j ∈ S xij ≤ ∣ S ∣ − 1 、 ∀ S ⊂ N 、 2 ≤ ∣ S ∣ ≤ n − 1 、 x ∈ { 0 , 1 } n 。\begin{aligned}&\min \sum_{i=1}^n\sum_{j=1}^n c_{ij}x_{ij},\\ &s.t.\ \sum_{j\not=i } x_{ij}=1,\ i = 1,...,n,\\ &\quad\quad\sum_{i \not= j}^m x_{ij} =1,j=1,.. .,n, \\ &\quad\quad\sum_{i\in S}\sum_{j\in S} x_{ij}\le |S|-1,\quad \forall S\sub N,\quad 2\le|S|\le n-1,\\ &\quad\quad x\in \{0,1\}^n。\end{整列}分i = 1∑んj = 1∑んcイジバツイジ、s 。と。 j=私∑バツイジ=1 、 私=1 、... 、n 、私= j∑メートルバツイジ=1 、j=1 、... 、n 、i ∈ S∑j ∈ S∑バツイジ≤∣ S ∣−1 、∀S _⊂ん、2≤∣ S ∣≤n−1 、バツ∈{ 0 ,1 }n .
1.1.2 非線形整数計画法
一般的な非線形混合整数計画法 (混合整数非線形計画法) 問題は次のように表すことができます。
(MINLP) 分 f (x , y ) , s 。と。gi (x , y ) ≤ bi 、 i = 1 , . 。。, m , x ∈ X , y ∈ Y \begin{aligned} (\text{MINLP})\quad\quad& \min f(x,y),\\\ & st\quad g_i(x,y)\le b_i,\quad i =1,...,m,\\ &\quad\quad\ \ \ x \in X,\quad y\in Y \end{aligned}( MINLP ) 分f ( x ,y ) 、s 。と。g私は( x ,y )≤b私は、私=1 、... 、メートル、 バツ∈× 、y∈や
此处的 f , g i , i = 1 , . . . , m f,g_i,i=1,...,m f 、g私は、私=1 、... 、mはR n + q \R^{n+q}ですRn + q , XXの実数値関数X 是 Z n \Z^n ZnのサブセットYYYはR q \R^qですRqのサブセット
(MINLP)に連続変数yyが無い場合y , (MINLP) が (純粋な) 非線形整数計画である場合、次のようになります。
(NLIP) 分 f (x , y ) , s 。と。gi (x , y ) ≤ bi 、 i = 1 , . 。。, m , x ∈ X , y ∈ Y \begin{aligned} (\text{NLIP})\quad\quad& \min f(x,y),\\\ & st\quad g_i(x,y)\le b_i,\quad i =1,...,m,\\ &\quad\quad\ \ \ x \in X,\quad y\in Y \end{aligned}( NLIP ) 分f ( x ,y ) 、s 。と。g私は( x ,y )≤b私は、私=1 、... 、メートル、 バツ∈× 、y∈や
最大カットの問題ΣG = ( V , E ) G=(V,E)G=( V 、E )はい、 nnがありますn 個の頂点を持つ無向グラフ(i, j) (i,j)(私、j) 上的权为 w i j ( w i j = w j i ≥ 0 ) w_{ij}(w_{ij}=w_{ji}\ge 0) wイジ( wイジ=wじ≥0 )。図GGG ( S , S ' ) (S,S')のカット( S 、S' )nnを指しますn頂点の分割S ∩ S ' = ∅ , S ∪ S ' = VS\cap S'=\empty,S\cup S'=VS∩S』=∅ 、S∪S』=V. _ 最大カット問題は、パーティション(S, S') (S,S')( S 、S' )SSを接続するSとS'S'S'間のすべてのエッジの重みが
$x_i = 1\ \text{if} \ \ i\in S,\ x_i = -1 \ \text{if} \ \ i\in S' $,则分割( S , S ' ) (S, S ')( S 、S' )は次のとおりです。
1 2 ( 1 2 ∑ i , j = 1 nwij − 1 2 ∑ i , j = 1 nwijxixj ) = 1 4 ∑ i , j = 1 nwij ( 1 − xixj ) 。\frac{1}{2}(\frac{1}{2}\sum_{i,j=1}^n w_{ij}-\frac{1}{2}\sum_{i,j=1} ^n w_{ij} x_ix_j)=\frac{1}{4}\sum_{i,j=1}^n w_{ij}(1-x_ix_j)。21(21i 、j = 1∑んwイジ−21i 、j = 1∑んwイジバツ私はバツj)=41i 、j = 1∑んwイジ( 1−バツ私はバツjしたがって、
最大カット問題は次のように表すことができます:max 1 4 ∑ i , j = 1 nwij ( 1 − xixj ) , s . t . x ∈ { − 1 , 1 } n . \begin{aligned} & \
max\ \frac{1}{4}\sum_{i,j=1}^n w_{ij}(1-x_ix_j),\\ & st\ x\in \{-1,1\}^n。 \end {整列}最大 41i 、j = 1∑んwイジ( 1−バツ私はバツj)、s 。と。バツ ∈{ − 1 、1 }n .
最大カット問題は、組み合わせ最適化におけるよく知られた NP 困難問題です。1995 年に、Goemans と Williamson は、
最大カット問題の SDP 緩和に関して美しい結果を与えました:
fopt ≤ f SDP ≤ α fopt , α = 1.138 ⋅ ⋅ ⋅ , f_ {opt}≤f_{SDP}≤\alpha f_{opt},\alpha=1.138···,fああ点≤fSDP _ _≤ふ_ああ点、ある=1.138 ⋅⋅⋅、
ここではf_{opt} を選択しますfああ点は最大カット問題の最適値、f SDP f_{SDP}fSDP _ _SDP緩和問題の最適値です
信頼性ネットワークnnを検討してくださいn 個のサブシステムri (0 < ri < 1) r_i(0<r_i<1)r私は( 0<r私は<1) 是第 i i iサブシステム、 xi x_iのコンポーネントの信頼性バツ私はii代目を代表するサブシステムiの冗長コンポーネントの数ネットワーク信頼性最適化問題は、最適な冗長ベクトルx = ( x 1 , ⋅ ⋅ ⋅ , xn ) T x=(x_1, · · ·,x_n)^T をバツ=( ×1、⋅⋅⋅、バツん)T は、ネットワーク全体の信頼性を最大化します。
第 i i i 个子系统的可靠性为
R i ( x i ) = 1 − ( 1 − r i ) x i , i = 1 , . . . , n R_i(x_i)=1-(1-r_i)^{x_i},\ i=1,...,n R私は( ×私は)=1−( 1−r私は)バツ私は、 私=1 、... 、
nネットワーク全体の信頼性R s ( x ) R_s(x)Rs(x) 是关于 R 1 ( x 1 ) , . . . , R n ( x n ) R_1(x_1),...,R_n(x_n) R1( ×1)、... 、Rん( ×ん)の場合、下図に示すネットワークの信頼性はR s = R 6 R 7 + R 1 R 2 R 3 ( Q 6 + R 6 Q 7 ) + R 1 R 4 R 7 Q 6 ( Q 2 + R 2 Q 3 ) R_s = R_6R_7+R_1R_2R_3(Q_6+R_6Q_7) )+R_1R_4R_7Q_6(Q_2+R_2Q_3)Rs=R6R7+R1R2R3( Q6+R6Q7)+R1R4R7Q6( Q2+R2Q3)
其中 Q i = 1 − R i , i = 1 , . . . , n Q_i = 1-R_i,i=1,...,n Q私は=1−R私は、私=1 、... 、n、対応する最適な冗長性の問題は次のとおりです。max R s ( x ) = f ( R 1 ( x 1 ) , . . . , R n ( xn ) ) , s 。と。gi ( x ) = ∑ j = 1 ngij ( xj ) ≤ bi 、 i = 1 , . 。。, m , x ∈ X = { x ∈ Z n ∣ 1 ≤ lj ≤ xj ≤ uj , j = 1 , . 。。, n } \begin{aligned} &\max\ R_s(x)=f(R_1(x_1),...,R_n(x_n)),\\ & st\ g_i(x)=\sum_{j=1 }^ng_{ij}(x_j)\le b_i,\quad i=1,...,m,\\ &\quad\quad x\in X=\{x\in \Z^n|1\le l_j\le x_j\le u_j,j=1,...,n\} \end{aligned}最大 Rs( × )=f ( R1( ×1)、... 、Rん( ×ん)) 、s 。と。g 私は( × )=j = 1∑んgイジ( ×j)≤b私は、私=1 、... 、メートル、バツ∈バツ={ ×∈Zn ∣1≤私j≤バツj≤あなたj、j=1 、... 、n }
其中 g i ( x ) , i = 1 , . . . , m g_i(x),i=1,...,m g私は( x ) 、私=1 、... 、m は、コスト、体積、重量などのさまざまなリソース消費関数を表します。
1.2 問題への挑戦
0-1 ナップザック問題や最大カット問題など、多くの整数計画問題は非常に単純で数学モデルも複雑ではないように見えますが、実際にはそのような問題を解くのは非常に困難です。ほとんどの整数計画問題は限られたものだけであり、実行可能な点 (意思決定の解決策) をすべて列挙するという単純で素朴なアイデアがありますが、これでは問題を解く難易度が飛躍的に高まります。ほとんどの整数計画問題の難しさは、問題の最適解を解くために本質的に列挙または暗黙的な列挙のアイデアしか使用できないことです。したがって、問題の規模がますます大きくなるにつれて、計算時間が長くなるということです。アルゴリズムの大幅な増加。これとは対照的に、連続最適化問題があります。最も単純な連続最適化問題には無限の数の実現可能点があることがわかっていますが、微積分のツールを使用すると、実現可能領域内の最適点を見つけるために列挙を使用する必要はありません。 KKT 条件など、最適点が満たす必要がある一連の簡単に検証可能な最適性条件を特徴付けます。したがって、アルゴリズムがこれらの実行可能点を列挙するか部分的に列挙する必要がある場合にのみ、実行可能領域内の実行可能点の数が問題の難易度に関係します。
もう 1 つの単純なアイデアは「丸め」です。対応する連続最適化問題を解いて (整数制約を破棄して)、得られた解を丸めて整数の解を取得します。この方法には 2 つの問題があります: (1) 一般に丸めを渡すのが困難制約を満たす実行可能な解を取得する; (2) 実行可能な解が得られたとしても、その品質は多くの場合非常に悪い、つまり、最適な解から遠く離れているか、ランダムに生成された実行可能な解に似ている場合さえあります。 。貪欲なアルゴリズムは、問題に対するおおよその解決策を見つけるのに役立つことがよくあります。たとえば、0-1 ナップザック問題では、最初に次のようにソートできます:
cj 1 aj 1 ≥ cj 2 aj 2 ≥ . . . ≥ cjnajn \frac{c_{j1}}{a_{j1}}\ge\frac{ c_ {j2}}{a_{j2}}\ge ... \ge\frac{c_{jn}}{a_{jn}}あるj1 _cj1 _≥あるj2 _cj2 _≥...≥あるじーんcじーん
次に、大きいものから小さいものへ順にj 1 , ..., jn j_1,...,j_nj1、... 、jんバックパックBBの容量を知るには項目を選択してくださいb他の物を保持することはできません。
実際のアプリケーションで提案される整数計画問題の多くは一般に大規模であり、既存のアルゴリズムやソフトウェアを直接使用して解決することが不可能な場合が多いため、問題の解決策を見つけるために効果的で高速な近似アルゴリズムやヒューリスティック アルゴリズムを研究することが求められています。近年開発された半正定計画法に基づくランダム化アルゴリズムや、特定の整数計画法や組み合わせ最適化問題に対する各種の近似アルゴリズムなど、近似的に最適な解、あるいはより実現可能な解。
参考文献
- 整数計画法 Sun Xiaoling、Li Rui 北京、Science Press 2010
- Wolsey L A. 整数計画法[M]。ジョン・ワイリー&サンズ、2020年。