750 likes | 1.76k Views
最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法. 藤江哲也 兵庫県立 大学大学院経営研究科 2013 年 5 月 22 日(水) 九州 大学伊都キャンパス. 内容. 整数計画問題とは 整数 計画問題 の 例(ナップサック問題、分割問題) 整数 計画法の Short History , 分枝限定法 整数計画による定式化について おわりに. 線形計画問題. A 社では ,テーブルとチェアを製造 販売 している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が 次のよう に与えられて いる.
E N D
最適化ワークショップ 整数計画法の発展と応用整数計画法チュートリアル:モデリングと解法最適化ワークショップ 整数計画法の発展と応用整数計画法チュートリアル:モデリングと解法 藤江哲也 兵庫県立大学大学院経営研究科 2013年5月22日(水) 九州大学伊都キャンパス
内容 • 整数計画問題とは • 整数計画問題の例(ナップサック問題、分割問題) • 整数計画法のShort History,分枝限定法 • 整数計画による定式化について • おわりに
線形計画問題 A社では,テーブルとチェアを製造販売している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が次のように与えられている. テーブルとチェアはすべて売れるものとした場合,利益を最大にするにはテーブルとチェアをそれぞれ1日当たり何個製造すればよいか.
線形計画問題 x1 x2 x2 最大化 (x1, x2) = (7/4, 7/4) 最適解 2 z = 63/4 = 15.75 1 x1 O 1 2 3
整数計画問題(整数線形計画問題) x1 x2 x2 最大化 (x1, x2) = (1, 2) 最適解 2 z = 14 1 x1 O 1 2 3
混合整数計画問題 MIP(Mixed Integer Programming) 整数条件:一部またはすべての変数 x2 最大化 (x1, x2) = (2, 3/2) 最適解 2 z = 31/2=15.5 1 x1 O 1 2 3
混合整数計画問題(MIP Problems) 線形計画問題+「変数の整数条件」 または
線形計画と整数計画 • 線形計画はクラスP(多項式時間) • 代表的解法 単体法(シンプレックス法) 内点法 • 個人用PCでも、数万変数、数万制約以上の問題を解くことができる • 整数計画はNP困難
混合整数計画問題(MIP Problems) • 0-1変数(バイナリ変数) 『 • より、0-1変数も 「整数変数+線形不等式」 で記述できる • しかし、0-1変数は整数変数と区別されるのが一般的 • 高い表現能力 • 0-1の特性に基づくアルゴリズム開発
例)ナップサック問題 重さの合計が容量以下という制約の下で,価値の合計が最大になる組み合わせを求めよ 重さの合計 = 4 + 7 + 2 = 13 <= 14 価値の合計 = 3 + 16 + 2 = 21 ナップサックの容量 c = 14
例)ナップサック問題 とすると x1=1 のとき 3 • x1=0 のとき 0
例)ナップサック問題 一般に と書くことも多い
例)分割問題 (1,2,5,7,8,9)を,合計が等しくなるように2つの集合に分割できるか? 一般に を,合計が等しくなるように2つの集合に分割できるか? とするとき, Find s.t.
例)分割問題 とする 方法1 方法2
例)分割問題 (1,2,5,7,8,9)を,合計が等しくなるように3つの集合に分割することができるか? ⇔ スケジューリング問題 (P||Cmax) 機械3 9 機械2 5 8 機械1 1 2 7 13
例)分割問題 機械3 8 機械2 5 7 機械1 1 2 9 s=12
例)分割問題 1 9 機械3 機械2 2 8 機械1 5 7 12 t=10
例)分割問題 1 9 機械3 機械2 2 8 機械1 5 7 t=10 s=12
例)分割問題 • 実行可能解を求める問題(実行可能性判定問題) ⇒ 最適化問題として考えることができる(cf. SATとMaxSat) ※最適化問題 → 実行可能性判定 の解が既知 → を満たす解が存在するか? • 実問題では,制約をすべてを満たすことが困難/無理な場合が多く見られる ⇒ ハード制約とソフト制約に分類 ⇒ ソフト制約をなるべく満たす ⇒ 最適化問題 • 分割問題その他の目的関数(評価基準)? • 機械ごとに重みをつける? • 分散最小化?
2次関数の線形化 • 0-1変数の場合、2次関数を線形化することができる ・ ・ • 同様に多項式も線形化できる • 0-1変数を使うと,一般の非線形関数の近似ができる(次ページ) yij 1 xj 1 1 xi
非線形関数 の区分線形近似 y x
非凸集合の表現 • 離接(disjunctive)制約 x2 2 big-M • (十分大きい数) 1 O 1 2 x1
その他0-1変数を用いた表現 • 0-1変数 : 「採用/不採用」 「Yes/No」 「true/false」... 例1) 例2) a, b のうち高々1つを採用 例3) のうち高々個を採用 例4) aを採用→ bを採用
その他0-1変数を用いた表現 • 固定費付き • 施設配置 big-M open or not big-M
整数計画問題による定式化 • “文章題”による例題では適用範囲が狭い印象を与える • しかし、実際には幅広い適用可能性がある • 0-1変数 • 非線形、非凸の問題をカバー • 実行可能解を求める問題(実行可能性判定)を最適化問題として捉える • 定式化はいろいろ • 問題の捉え方による表現の違い • 同じ問題でも...(→ 後述)
整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い 巡回セールスマン問題、スケジューリング問題、... ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題 :実行可能性判定も一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている 問題によっては現在も必要
整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い 巡回セールスマン問題、スケジューリング問題、... ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題 :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている 済
整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い 巡回セールスマン問題、スケジューリング問題、... ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題 :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている
最小化 ② Short History • 1958年 R. E. Gomory "Outline of an Algorithm for Integer Solutions to Linear Programs", Bulletin of the American Mathematical Society • 全整数計画問題 • 小数カットに基づく切除平面法(cutting plane algorithm) • 有限回の繰り返しで最適解が得られる LP解 =最適解! LP解 LP解
② Short History • 1960年 R. E. Gomory “An algorithm for the mixed integer problem”, Technical Report RM-2597, The Rand Corporation • 混合整数計画問題 (MIP) • カットの提案 (Gomory Mixed Integer cut : GMI cut) • 1960年 A. Land and A. Doig "An Automatic Method for Solving Discrete Programming Problems", Econometorica など • 分枝限定法の提案
分枝限定法 緩和法の原理 元問題 LP緩和問題
分枝限定法 (MIP)の実行可能領域 (LP)の実行可能領域 [定理(緩和法の原理)] (R1)(MIP)の最適値 (LP)の最適値 (R2)(LP)の最適解 x*が整数条件を満たす ⇒ x*は(MIP)の最適解 (R3)(LP)が実行不能 ⇒ (MIP)も実行不能 目的関数値 (最小化) 暫定値(上界値) (MIP) の実行可能解 下げたい (MIP) の最適値 上げたい 下界値 (LP) の最適値
MIP MIP1 MIP2 分枝限定法 • (LP)を解く.(LP)の最適解 x*が整数条件を満たせば終了(R2より). • さもなければ変数 xtを選び, に固定した問題 (MIP1) と • に固定した問題 (MIP2) を生成する(分枝操作) 例) x3 に関する分枝操作
分枝限定法 限定操作 子問題 (MIPk)に対する限定操作 (MIPk)の緩和問題(LPk)を解く (LPk)が実行不能 ⇒ (MIPk)は実行不能 (R3より) 1 (LPk)の最適解 xk,最適値zkとする 2 xkが整数 ⇒ xkは (MIPk)の最適解 (R2より) 2-1 よって,zk< z*(暫定値) ならば,z* =zkと更新する zk≥z*(暫定値) ならば, (MIPk)の中に最適解はない(R1より) 2-2 1 でも 2 でもなければ分枝操作を行う 3
x2 最小化 x1 O x1 O 分枝限定法 例題 x2 下界値
z4 = -62/3 z6 = -20 z3 = -19 z2 = -18 z1 = -21 z = -190/9 z5 = -41/2 P P5 P1 P3 P6 P7 P8 P4 P2 分枝限定法 分枝限定木(列挙木) z*=+∞ (20/9,50/9) x1≤ 2 x1≥ 3 (2,17/3) x2≤ 5 x2≥ 6 (3,4) 最適解 (1,6) 最適値 -20 (4/3,6) x1≤ 1 x1≥ 2 (2,5) 実行不能 z*=-19 (1,37/6) x2≤ 6 x2≥ 7 (1,6) 実行不能 z*=-20
分枝限定法 暫定値(上界値) 目的関数値 下界値 時間
MIP MIP1 MIP2 分枝限定法 分枝前の 分枝後の 一般に・・・
分枝限定法 • 近年は分枝カット法(分枝限定法+カット)が主流 • 分枝限定法/分枝カット法の実装にあたって • 子問題の選択 (Node selection) • 下界値優先 (Best Bound):下界値の良い(小さい)子問題を優先 • 評価値優先 (Best Estimate):評価値の良い子問題を優先 • 深さ優先 (Depth First):分枝されたばかりの子問題を優先する • 分枝変数の選択 (Variable selection) • 前処理 (Preprocessing)による定式化の強化 • カット (Cutting plane) • ヒューリスティック (Heuristic) ・・・
②Short History • ともに線形計画をベースとする解法 • 実用的には分枝限定法 切除平面法 : 最適解への収束が遅い、数値誤差がたまる、解法途中で実行可能解が得られない • 組合せ最適化問題ごとに解法を開発 ※巡回セールスマン問題 ・1954年 G. Dantzig, R. Fulkerson and S. M. Johnson, “Solution of a Large-scale Traveling-salesman", Operations Research ・1990年 M. Padberg and G. Rinaldi, “A Branch-and-cut algorithm for the Resolution of Large-scale Symmetric Traveling Salesman Problems", SIAM Review ・1997年 D. L. Applegate, R. E. Bixby, V. Chvátaland W. J. Cook, “The Traveling Salesman Problem: A Computational Study”, Princeton University Press
整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い 巡回セールスマン問題、スケジューリング問題、... ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題 :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている
③ 1990年代に整数計画ソルバーが急速に進展 • 計算機パワーの増大 • 高速でロバストな線形計画ソルバーの開発 • 分枝カット法=分枝限定法+切除平面法 1990年 M. Padberg and G. Rinaldi (巡回セールスマン問題) • Gomoryカット(GMI cut)の適用 1996年 E. Balas, S. Ceria, G. Cornuejols and N. Natraj, “Gomory Cuts Revisited", Operations Research Letters
③ ソルバーの進展(分枝限定法の効率化) • 子問題の選択 • 分枝変数の選択 • 前処理による定式化の強化 • カット • ヒューリスティクス • Constraint Programming との融合 • 対称性 • 優越テスト • 並列化(マルチスレッド) ※ロバストな線形計画ソルバーが必要
整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い 巡回セールスマン問題、スケジューリング問題、... ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題 :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている
④ 整数計画ソルバーを使用する • 商用 • FICO Xpress (Fair Isaac Corporation) • GurobiOptimizer (GurobiOptimization) • IBM ILOG CPLEX (IBM) • LINDO (LINDO Systems) • NUOPT (数理システム) • SOPT (Saitech, Inc.) • Excel Solver (Frontline Systems) • ・・・・・ • フリー • COIN/CBC • GNU GLPK • lp_solve • SCIP • ・・・・・ • : H.Mittelmannによる • ベンチマーク比較
定式化について • 定式化とは? ⇒ 実行可能解集合を正しく表現する「不等式系+整数条件」
定式化について • 定式化は複数ありうる • 変数の定義の仕方によっても(大きく)異なる • (復習)現在の整数計画ソルバー : 線形計画ベースの分枝カット法 ⇒ 緩和の強い定式化が望ましい • 現在では、緩和を強化する機能を備えた整数計画ソルバーも多い • 前処理(Presolve, Preprocessing) • 緩和の強化に加え、不要な変数・制約式の除去なども行う
定式化について • とは言え、緩和の強い定式化が望ましい ※その意味で、big-Mを含む定式化は慎重に • また、変数・制約式が少ない定式化が望ましい • どちらを優先的に考えるかはケースバイケース 次のスライド
Big-Mを含む問題例 x2 2 MIPの最適解 1 の場合 O 1 2 x1 LPの最適解
定式化の例1:数独 • あいているマスに 1-9 までのどれかの数字を入れる。 • 縦・横の各列及び、太線で囲まれた3×3のブロックに同じ数字が入ってはいけない。 Wikipediaの「数独」より