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

More Related Content

What's hot

Prml4.4 ラプラス近似~ベイズロジスティック回帰
Prml4.4 ラプラス近似~ベイズロジスティック回帰Prml4.4 ラプラス近似~ベイズロジスティック回帰
Prml4.4 ラプラス近似~ベイズロジスティック回帰
Yuki Matsubara
 
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Yusuke Sekikawa
 

What's hot (20)

Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Prml4.4 ラプラス近似~ベイズロジスティック回帰
Prml4.4 ラプラス近似~ベイズロジスティック回帰Prml4.4 ラプラス近似~ベイズロジスティック回帰
Prml4.4 ラプラス近似~ベイズロジスティック回帰
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況[DL輪読会]画像を使ったSim2Realの現況
[DL輪読会]画像を使ったSim2Realの現況
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説Go-ICP: グローバル最適(Globally optimal) なICPの解説
Go-ICP: グローバル最適(Globally optimal) なICPの解説
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 

More from sady_nitro

More from sady_nitro (12)

What's new with Amazon SageMaker
What's new with Amazon SageMakerWhat's new with Amazon SageMaker
What's new with Amazon SageMaker
 
20181117 azure ml_seminar_3
20181117 azure ml_seminar_320181117 azure ml_seminar_3
20181117 azure ml_seminar_3
 
20181117 azure ml_seminar_2
20181117 azure ml_seminar_220181117 azure ml_seminar_2
20181117 azure ml_seminar_2
 
20181117 azure ml_seminar_1
20181117 azure ml_seminar_120181117 azure ml_seminar_1
20181117 azure ml_seminar_1
 
座駆動LT Surface Go 実機レビュー
座駆動LT Surface Go 実機レビュー座駆動LT Surface Go 実機レビュー
座駆動LT Surface Go 実機レビュー
 
オカヤマ コンピュータサイエンス ラボ についてのおはなし
オカヤマ コンピュータサイエンス ラボ についてのおはなしオカヤマ コンピュータサイエンス ラボ についてのおはなし
オカヤマ コンピュータサイエンス ラボ についてのおはなし
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
Try Azure Machine Learning
Try Azure Machine LearningTry Azure Machine Learning
Try Azure Machine Learning
 
Comcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTSComcamp 2016 Okayama VSTS
Comcamp 2016 Okayama VSTS
 
RubySeminar16_Analyze
RubySeminar16_AnalyzeRubySeminar16_Analyze
RubySeminar16_Analyze
 
OITEC19_TFS
OITEC19_TFSOITEC19_TFS
OITEC19_TFS
 
みんな大好き機械学習
みんな大好き機械学習みんな大好き機械学習
みんな大好き機械学習
 

Recently uploaded

Recently uploaded (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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