html5-img
1 / 67

最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法. 藤江哲也 兵庫県立 大学大学院経営研究科 2013 年 5 月 22 日(水)  九州 大学伊都キャンパス. 内容. 整数計画問題とは 整数 計画問題 の 例(ナップサック問題、分割問題) 整数 計画法の Short History , 分枝限定法 整数計画による定式化について おわりに. 線形計画問題. A 社では ,テーブルとチェアを製造 販売 している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が 次のよう に与えられて いる.

jeb
Download Presentation

最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 最適化ワークショップ 整数計画法の発展と応用整数計画法チュートリアル:モデリングと解法最適化ワークショップ 整数計画法の発展と応用整数計画法チュートリアル:モデリングと解法 藤江哲也 兵庫県立大学大学院経営研究科 2013年5月22日(水) 九州大学伊都キャンパス

  2. 内容 • 整数計画問題とは • 整数計画問題の例(ナップサック問題、分割問題) • 整数計画法のShort History,分枝限定法 • 整数計画による定式化について • おわりに

  3. 線形計画問題 A社では,テーブルとチェアを製造販売している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が次のように与えられている. テーブルとチェアはすべて売れるものとした場合,利益を最大にするにはテーブルとチェアをそれぞれ1日当たり何個製造すればよいか.

  4. 線形計画問題 x1 x2 x2 最大化 (x1, x2) = (7/4, 7/4) 最適解 2 z = 63/4 = 15.75 1 x1 O 1 2 3

  5. 整数計画問題(整数線形計画問題) x1 x2 x2 最大化 (x1, x2) = (1, 2) 最適解 2 z = 14 1 x1 O 1 2 3

  6. 混合整数計画問題 MIP(Mixed Integer Programming) 整数条件:一部またはすべての変数 x2 最大化 (x1, x2) = (2, 3/2) 最適解 2 z = 31/2=15.5 1 x1 O 1 2 3

  7. 混合整数計画問題(MIP Problems) 線形計画問題+「変数の整数条件」 または

  8. 線形計画と整数計画 • 線形計画はクラスP(多項式時間) • 代表的解法   単体法(シンプレックス法)    内点法 • 個人用PCでも、数万変数、数万制約以上の問題を解くことができる • 整数計画はNP困難

  9. 混合整数計画問題(MIP Problems) • 0-1変数(バイナリ変数) 『 • より、0-1変数も 「整数変数+線形不等式」 で記述できる • しかし、0-1変数は整数変数と区別されるのが一般的 • 高い表現能力 • 0-1の特性に基づくアルゴリズム開発

  10. 例)ナップサック問題 重さの合計が容量以下という制約の下で,価値の合計が最大になる組み合わせを求めよ 重さの合計 = 4 + 7 + 2 = 13 <= 14 価値の合計 = 3 + 16 + 2 = 21 ナップサックの容量 c = 14

  11. 例)ナップサック問題 とすると x1=1 のとき 3 • x1=0 のとき 0

  12. 例)ナップサック問題 一般に と書くことも多い

  13. 例)分割問題 (1,2,5,7,8,9)を,合計が等しくなるように2つの集合に分割できるか? 一般に を,合計が等しくなるように2つの集合に分割できるか? とするとき, Find s.t.

  14. 例)分割問題 とする 方法1 方法2

  15. 例)分割問題 (1,2,5,7,8,9)を,合計が等しくなるように3つの集合に分割することができるか? ⇔ スケジューリング問題 (P||Cmax) 機械3 9 機械2 5 8 機械1 1 2 7 13

  16. 例)分割問題 機械3 8 機械2 5 7 機械1 1 2 9 s=12

  17. 例)分割問題 1 9 機械3 機械2 2 8 機械1 5 7 12 t=10

  18. 例)分割問題 1 9 機械3 機械2 2 8 機械1 5 7 t=10 s=12

  19. 例)分割問題 • 実行可能解を求める問題(実行可能性判定問題) ⇒ 最適化問題として考えることができる(cf. SATとMaxSat) ※最適化問題 → 実行可能性判定 の解が既知 → を満たす解が存在するか? • 実問題では,制約をすべてを満たすことが困難/無理な場合が多く見られる ⇒ ハード制約とソフト制約に分類  ⇒ ソフト制約をなるべく満たす ⇒ 最適化問題 • 分割問題その他の目的関数(評価基準)? • 機械ごとに重みをつける? • 分散最小化?

  20. 2次関数の線形化 • 0-1変数の場合、2次関数を線形化することができる ・ ・ • 同様に多項式も線形化できる • 0-1変数を使うと,一般の非線形関数の近似ができる(次ページ) yij 1 xj 1 1 xi

  21. 非線形関数 の区分線形近似 y x

  22. 非凸集合の表現 • 離接(disjunctive)制約 x2 2 big-M • (十分大きい数) 1 O 1 2 x1

  23. その他0-1変数を用いた表現 • 0-1変数 : 「採用/不採用」 「Yes/No」 「true/false」... 例1) 例2) a, b のうち高々1つを採用 例3) のうち高々個を採用 例4) aを採用→ bを採用

  24. その他0-1変数を用いた表現 • 固定費付き • 施設配置 big-M open or not big-M

  25. 整数計画問題による定式化 • “文章題”による例題では適用範囲が狭い印象を与える • しかし、実際には幅広い適用可能性がある • 0-1変数 • 非線形、非凸の問題をカバー • 実行可能解を求める問題(実行可能性判定)を最適化問題として捉える • 定式化はいろいろ • 問題の捉え方による表現の違い • 同じ問題でも...(→ 後述)

  26. 整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い  巡回セールスマン問題、スケジューリング問題、...  ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題  :実行可能性判定も一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている 問題によっては現在も必要

  27. 整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い  巡回セールスマン問題、スケジューリング問題、...  ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題  :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている 済

  28. 整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い  巡回セールスマン問題、スケジューリング問題、...  ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題  :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている

  29. 最小化 ② 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解

  30. ② 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 など • 分枝限定法の提案

  31. 分枝限定法 緩和法の原理 元問題 LP緩和問題

  32. 分枝限定法 (MIP)の実行可能領域 (LP)の実行可能領域 [定理(緩和法の原理)] (R1)(MIP)の最適値   (LP)の最適値 (R2)(LP)の最適解 x*が整数条件を満たす ⇒ x*は(MIP)の最適解 (R3)(LP)が実行不能 ⇒ (MIP)も実行不能 目的関数値 (最小化) 暫定値(上界値) (MIP) の実行可能解 下げたい (MIP) の最適値 上げたい 下界値 (LP) の最適値

  33. MIP MIP1 MIP2 分枝限定法 • (LP)を解く.(LP)の最適解 x*が整数条件を満たせば終了(R2より). • さもなければ変数 xtを選び,    に固定した問題 (MIP1) と • に固定した問題 (MIP2) を生成する(分枝操作) 例) x3 に関する分枝操作

  34. 分枝限定法 限定操作 子問題 (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

  35. x2 最小化 x1 O x1 O 分枝限定法 例題 x2 下界値

  36. 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

  37. 分枝限定法 暫定値(上界値) 目的関数値 下界値 時間

  38. MIP MIP1 MIP2 分枝限定法 分枝前の 分枝後の 一般に・・・

  39. 分枝限定法 • 近年は分枝カット法(分枝限定法+カット)が主流 • 分枝限定法/分枝カット法の実装にあたって • 子問題の選択 (Node selection) • 下界値優先 (Best Bound):下界値の良い(小さい)子問題を優先 • 評価値優先 (Best Estimate):評価値の良い子問題を優先 • 深さ優先 (Depth First):分枝されたばかりの子問題を優先する • 分枝変数の選択 (Variable selection) • 前処理 (Preprocessing)による定式化の強化 • カット (Cutting plane) • ヒューリスティック (Heuristic) ・・・

  40. ②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

  41. 整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い  巡回セールスマン問題、スケジューリング問題、...  ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題  :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている

  42. ③ 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

  43. ③ ソルバーの進展(分枝限定法の効率化) • 子問題の選択 • 分枝変数の選択 • 前処理による定式化の強化 • カット • ヒューリスティクス • Constraint Programming との融合 • 対称性 • 優越テスト • 並列化(マルチスレッド) ※ロバストな線形計画ソルバーが必要

  44. 整数計画について • 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い  巡回セールスマン問題、スケジューリング問題、...  ⇒ 整数計画問題が解けることはインパクトが大きい • ただ、整数計画問題は解くのが困難であった • 組合せ最適化問題のように、問題固有の構造を持たない • 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い整数計画問題  :実行可能解を求めることも一般にNP完全 ⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった • しかし、1990年代以降、整数計画ソルバーが目覚ましく進展 • それに伴い、整数計画が利用しやすくなっている

  45. ④ 整数計画ソルバーを使用する • 商用 • 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による •   ベンチマーク比較

  46. 定式化について • 定式化とは?   ⇒ 実行可能解集合を正しく表現する「不等式系+整数条件」

  47. 定式化について • 定式化は複数ありうる • 変数の定義の仕方によっても(大きく)異なる • (復習)現在の整数計画ソルバー : 線形計画ベースの分枝カット法  ⇒ 緩和の強い定式化が望ましい • 現在では、緩和を強化する機能を備えた整数計画ソルバーも多い • 前処理(Presolve, Preprocessing) • 緩和の強化に加え、不要な変数・制約式の除去なども行う

  48. 定式化について • とは言え、緩和の強い定式化が望ましい ※その意味で、big-Mを含む定式化は慎重に • また、変数・制約式が少ない定式化が望ましい • どちらを優先的に考えるかはケースバイケース 次のスライド

  49. Big-Mを含む問題例 x2 2 MIPの最適解 1 の場合 O 1 2 x1 LPの最適解

  50. 定式化の例1:数独 •  あいているマスに 1-9 までのどれかの数字を入れる。 •  縦・横の各列及び、太線で囲まれた3×3のブロックに同じ数字が入ってはいけない。 Wikipediaの「数独」より

More Related