Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

組合せ最適化問題と解法アルゴリズム

5.444 Aufrufe

Veröffentlicht am

2018/08/18 オカヤマ コンピュータサイエンス ラボ Vol.1 セッション1

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

組合せ最適化問題と解法アルゴリズム

  1. 1. 組合せ最適化問題 と 解法アルゴリズム 2018.08.18 オカヤマ コンピュータサイエンス ラボ Vol.1 貞松 政史
  2. 2. 自己紹介 • 貞松 政史 (サダマツ マサシ) • @sady_nitro • Microsoft系テクノロジー • コンピュータサイエンス • 組合せ最適化、 強化学習など
  3. 3. おしながき • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  4. 4. 組合せ最適化問題とは • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  5. 5. 組合せ最適化問題とは • 応用数学や情報工学での組合せ論の最適化問題である。オペレー ションズリサーチ、アルゴリズム理論、計算複雑性理論と関連し ていて、人工知能、数学、およびソフトウェア工学などの交差す る位置にある。組合せ最適化では、厳密解が簡単に求まる場合も あれば、そうでない場合もある。厳密解を求めるのが難しいと思 われる問題を解くために、その問題の解空間を探索する場合もあ り、そのためのアルゴリズムでは、効率的に探索するために解空 間を狭めたりすることもある。 出典:Wikipedia –組合せ最適化 https://ja.wikipedia.org/wiki/%E7%B5%84%E5%90%88%E3%81%9B%E6%9C%80%E9%81 %A9%E5%8C%96
  6. 6. 組合せ最適化問題とは • 組合せ論的な課題に対する最適解を求める問題 • 組合せ • 繋がり、ネットワーク • 配置 • 現実に直面する問題をモデル化(簡略化)した問題が多 い
  7. 7. 組合せ最適化問題の例 • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  8. 8. 組合せ最適化問題の一例 • ナップザック問題 • 巡回セールスマン問題 • ジョブショップスケジューリング問題 • 最短経路問題 • 最大クリーク問題 …
  9. 9. ナップザック問題(Knapsack Problem) 容量に制限のあるナップザックの中に価値が最大に なるように荷物を詰めこむ問題 10 21 5 15 7重さ 価値 20 52 10 25 15 0 00 1 1 0選択 重さ:20, 価値:35
  10. 10. 巡回セールスマン問題(Traveling Salesman Problem) 3 5 6 1 2 4 都市の集合と各2都市間のコスト(距離)が与えられたとき、全ての都市を 一度ずつ経由して出発地点に戻る巡回路の総移動コストを最小化する
  11. 11. ジョブショップスケジューリング問題(Job Shop Scheduling Problem) • ジョブショップ・スケジューリング問題 (JSP; Job-shop Scheduling Problem) とは、順序関係のあるいくつかの作業を複 数の機械で処理する場合に、全体の時間が最小になるような機械 の稼働スケジュールを決める問題である。
  12. 12. 組合せ最適化問題に対する解法アルゴリズム • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  13. 13. 組合せ最適化問題に対する解法アルゴリズム • 厳密解法 • 必ず大域最適解を算出する • 如何に計算量を削減して、規模の大きい問題に適用できるか • 近似解法(ヒューリスティック) • 大域最適解の算出を保証しない • 良質な解を高速に算出する(実用可能なレベル)
  14. 14. 組合せ最適化問題に対する解法アルゴリズム • 近似解法(ヒューリスティック)の種類 • 貪欲法 • 近傍探索 • 局所探索法 • 進化計算 • 遺伝的アルゴリズム • 進化的プログラミング • 群知能(Ant Colony, Particle Swarm)
  15. 15. 組合せ最適化問題における実行可能解空間 • 単純な実行可能解空間 評 価 値
  16. 16. 組合せ最適化問題における実行可能解空間 • 複雑な実行可能解空間 評 価 値
  17. 17. 近似解法の基本思想 • 局所性と多様性 • 良い解の近くにはより良い解が存在する • 良い解を少し変化させて、改善した解をさらに変化・改善す る ことを繰り返す • 時々、局所最適解からの脱出を図って大きく解を変化させる
  18. 18. 3 5 6 1 2 4 最近傍法(Nearest Neighbor) 巡回セールスマン問題に対する近似解法 現在までの経路から最も距離の近い点を経路に加える 1 2 3 4 6 5
  19. 19. 最近傍法(Nearest Neighbor) 3 5 6 1 2 4 最近傍法がうまくいかないケース 1 2 3 4 6 5
  20. 20. 局所探索法(Local Search) • 初期解を生成 ↓ • 現在の解に変更を加える ↓ • 改善が見られた解を現在解として採用する ↓ • 終了ルールに基づいて探索を終了する (一定以上の評価値、既定の反復回数) 繰り返し(探索)
  21. 21. 局所探索法(Local Search) 3 5 6 1 2 4 1 2 3 4 6 5 現在の解に変更を加える
  22. 22. 局所探索法(Local Search) 3 5 6 1 2 4 1 2 3 4 6 5 現在の解に変更を加える
  23. 23. 局所探索法(Local Search) 3 5 6 1 2 4 1 2 3 4 6 5 現在の解に変更を加える
  24. 24. 局所探索法(Local Search) •性能改善のアイデア • 初期解生成 • マルチスタート • イテレーション • 探索プロセス • 評価値を上げるプロセス(解生成プロセス) • 評価値を下げるプロセス(局所最適解からの脱出)
  25. 25. 遺伝的アルゴリズム(Genetic Algorithm) 【遺伝的アルゴリズムのプロセス】 交叉 遺伝子(というか染色体というか)の仕組みを模倣して さまざまな問題の解(近似解)を得るためのアルゴリズム 1 10 0 1 0 0 10 1 1 1 1 10 1 1 1 0 10 0 1 0 親 子
  26. 26. 遺伝的アルゴリズム(Genetic Algorithm) 【遺伝的アルゴリズムのプロセス】 交叉 選択 遺伝子(というか染色体というか)の仕組みを模倣して さまざまな問題の解(近似解)を得るためのアルゴリズム 1 10 0 1 0 0 10 1 1 1 1 10 1 1 1 0 10 0 1 0 親
  27. 27. 遺伝的アルゴリズム(Genetic Algorithm) 【遺伝的アルゴリズムのプロセス】 交叉 突然変異 選択 遺伝子(というか染色体というか)の仕組みを模倣して さまざまな問題の解(近似解)を得るためのアルゴリズム 1 10 0 1 0 0 10 1 1 1 1 10 1 1 1 0 10 0 1 0 親 1
  28. 28. 遺伝的アルゴリズム(Genetic Algorithm) • 性能改善のアイデア • 交叉 • n点交叉(現実的には2点交叉、3点交叉ぐらい) • 選択 • ランダム選択 • エリート選択 • 突然変異 • 変異確率の調整 • 変異するビット数の調整
  29. 29. メタ戦略 • 異なる手法を組み合わせる • 例)遺伝的アルゴリズムと局所探索法→遺伝的局所探索 法 • 局所探索の処理中に突然変異を差し込む (局所最適解からの脱出) • 局所探索で得られた解集団に遺伝的アルゴリズムの処理を 適用する(初期世代の解集団を最適化する)
  30. 30. メタ戦略 • 費用対効果とトレードオフ • 実装が複雑化 • 処理時間が掛かる VS • 複雑な問題に対応できる • 問題の特性によっては今までより高速化できる
  31. 31. 地形解析 • 問題の特性によって解法アルゴリズムの設計も変わる • 問題の構造を調査・解析することを地形解析と呼ぶ • 解析結果を基に解法アルゴリズムの改善を試みる • 地形解析だけで1つの論文になることも
  32. 32. 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  33. 33. 現実世界に対する組合せ最適化問題の応用(フィードバック) カーナビ ロボット掃除機 巡回セールスマン問題や最短経路問題に対する解法の設計
  34. 34. 現実世界に対する組合せ最適化問題の応用(フィードバック) 光学レンズ設計 塩基配列解析 複合的な問題に対する局所探索法や遺伝的アルゴリズムによるアプローチ
  35. 35. 組合せ最適化問題に対するアルゴリズム設計がもたらす作用 • 組合せ最適化問題とは • 組合せ最適化問題の例 • 組合せ最適化問題に対する解法アルゴリズム • 現実世界に対する組合せ最適化問題の応用(フィードバック) • 組合せ最適化問題に対するアルゴリズム設計がもたらす作用
  36. 36. 組合せ最適化問題に対するアルゴリズム設計がもたらす作用 • 単純に現実的な課題を解決できるケースがある • 一般化された課題解決のプロセスが身につく • 制約を満たしつつ、性能を上げる方策を考えられるようになる • 単純化(モデル化)された問題を現実問題寄りの問題に置き換えて いくことで、より実践的な課題解決力が身につく
  37. 37. まとめ • 現実の様々な問題に応用される組合せ最適化問題 • 解法アルゴリズム(特に近似解法)の基本思想 • 各アルゴリズムに対する個別のアイデア • 問題を解くこと自体もさることながら、課題解決の手がかりや トレーニングとしても有効

×