組合せ最適化の近似解法 ・ 厳密解法 ・ 近似解法 ・ 発見的解法.

Slides:



Advertisements
Similar presentations
授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
Advertisements

G 問題 コードアート オンライン 原案:西出 ライタ:伊藤 テスタ:西出. 問題概要 0 大きさのさまざまな n 個の円に多角形 m 個を入れら れるか判定する問題 0 ただし、同じ円に複数の多角形を入れることはでき ない 0 もし、入れられる場合は、辞書順最小の入れ方を出 力 ① ② ③ ① ②.
情報基盤アルゴリズムとして のメタヒューリスティクスの 研究 茨木俊秀、巳波弘佳、藤原洋志、 千葉英史、関口良行(関西学院大 学)、 藤重悟(京都大学)、 柳浦睦憲(名古屋大学)、 野々部宏司(法政大学)、 梅谷俊治(電気通信大学)
ACM/ICPC と アルゴリズム 「実践的プログラミング」 稲葉 一浩. 自己紹介 ﻪ 理Ⅰ → 理学部情報科学科 → 情報理工学系研究科コンピュータ科学専攻 ﻩ 博士課程1年 ﻩXML を扱う専用言語の研究など ﻪ 個人的には ﻩ ﻯD.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
0章 数学基礎.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
遺伝的アルゴリズムにおける ランドスケープによる問題のクラス分類
到着時刻と燃料消費量を同時に最適化する船速・航路計画
極小集合被覆を列挙する 実用的高速アルゴリズム
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
動的計画法 表の作成 制約の追加 練習問題.
動的計画法 表の作成 制約の追加 練習問題.
ラベル付き区間グラフを列挙するBDDとその応用
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第11回 整列 ~ シェルソート,クイックソート ~
遺伝的アルゴリズム  新川 大貴.
組合せ最適化問題と厳密解法 最小木、ナップサック問題、ビンパッキング、巡回セールスマン問題 LPによる上界・下界 分枝限定法
On the Enumeration of Colored Trees
An Algorithm for Enumerating Maximal Matchings of a Graph
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
上坂吉則 尾関和彦 文一総合出版 宮崎大輔2003年6月28日(土)
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
 Combinations(2)        古川 勇輔.
アルゴリズムとデータ構造 補足資料7-3 「単純選択ソートselsort.c」
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
算法数理工学 第12回 定兼 邦彦.
早わかりアントコロニー最適化 (ACO: Ant Colony Optimization)
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
MPIを用いた並列処理 ~GAによるTSPの解法~
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク上での社会的効用と個人的効用の対立問題に対するアルゴリズム的研究
決定木とランダムフォレスト 和田 俊和.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
人工知能特論 9.パーセプトロン 北陸先端科学技術大学院大学 鶴岡 慶雅.
1DS05175M 安東遼一 1DS05213M 渡邉光寿 指導教員: 高木先生
第14章 モデルの結合 修士2年 山川佳洋.
第3回 アルゴリズムと計算量 2019/2/24.
Introduction to Soft Computing (第11回目)
早わかりアントコロニー最適化 (Ant Colony Optimization)
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
25. Randomized Algorithms
決定木 Decision Tree DT 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
A Simple Algorithm for Generating Unordered Rooted Trees
アルゴリズムとプログラミング (Algorithms and Programming)
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
プログラミング 4 整列アルゴリズム.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
適応的近傍を持つ シミュレーテッドアニーリングの性能
知識科学研究科 知識システム構築論講座 林研究室 佛明 智
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
第4章 識別部の設計 4-5 識別部の最適化 発表日:2003年5月16日 発表者:時田 陽一
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
第3章 線形回帰モデル 修士1年 山田 孝太郎.
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
遺伝アルゴリズムによる NQueen解法 ~問題特性に着目した突然変異方法の改善~
第16章 動的計画法 アルゴリズムイントロダクション.
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
表紙 分散遺伝的アルゴリズムのための 新しい交叉法.
分枝カット法に基づいた線形符号の復号法に関する一考察
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年8月1日 3.2 競合学習
参考:大きい要素の処理.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

組合せ最適化の近似解法 ・ 厳密解法 ・ 近似解法 ・ 発見的解法

近似解法 ・ 時間をかけて最適解を求めるのではなく、短時間でそれなりに良い解を見つける、という解法 ・ 精度保障があるもの: 近似解法 ・ 精度保障があるもの: 近似解法   (得られる解が、必ず、最適解の2倍以内、など) ・ 精度保証がないもの: 発見的解法(メタ・ヒューリスティック)   (精度保証はないが、実験的に良い解が得られることがわかっているもの、あるいはそう思われるもの) ・ 問題固有の性質を使うので、解法が細分化されている    (スケジューリング用、配送計画用、など)

組合せ最適化の近似解法 ・ 様々な手法がある 最もよく使われる方法: 1. 整数条件を線形緩和する 1.  整数条件を線形緩和する   xi ∈ { 0,1 }     0 ≦ xi ≦ 1  (解集合が広くなるので、最適解は悪くはならない) 2. 得られた問題の最適解を見つける  (一般に小数解。整数解なら元問題の最適解) 3.  得られた最適解を、何かしらのルールで整数に丸める  (実行不能にならないように丸める)

巡回セールスマン問題の精度保証近似 ・ 巡回セールスマン問題は、前述の通り近似するのも難しい ・ ただし、頂点間の距離に三角不等式が成り立つと、精度保証のある近似アルゴリズムが作れる ・ しかし、問題の構造を非常に強く利用するため、他の問題に応用することは難しい

2近似アルゴリズム ・ 最小全張木を求めましょう  最適解よりも重みが小さい (サイクルから枝を1本取ると、全張木 ≧ 最小全張木)     最適解よりも重みが小さい   (サイクルから枝を1本取ると、全張木 ≧ 最小全張木) ・ 全張木をなぞって、経路を作りましょう     ( 2×最適解)よりも重みが小さい

2近似アルゴリズム (2) ・ 1度来た頂点に来たときは、短絡しましょう  (3角不等式が成り立てば)できた経路はより短くなる    (3角不等式が成り立てば)できた経路はより短くなる    (2×最小木)より同じか短くなる    (2×最適解)よりは短くなる

発見的解法 ・ 様々な手法がある。代表的なものだけ 貪欲算法   ・ 変数の値をひとつずつ、(決めた変数の部分について)実行可能で目的関数が最も良くなるように決定していく 近傍探索   ・ 現在の解をちょっと変更して得られる解に移動し、     解空間を探索する 遺伝アルゴリズム   ・ 解の集合に、それら解の特徴を引き継ぐような解をいくつか追加し、全体の中から目的関数の悪いものを取り除く、という作業を繰り返す

貪欲解法:最大重みクリーク 最大重みクリーク問題:与えられたグラフと頂点重みに対して、頂点重みの和が最大となるようなクリークを見つける 貪欲算法:   ・ 空集合から出発し、追加してクリークになるよう頂点の中で重みが最大のものを追加する   ・ 追加できなくなったら終了 3 4 5 1 4 2 1 3 2 1 3 3

近傍探索 ・ 解をちょっと変更して得られる解に移動する ・ 解 x ( n 次元01ベクトルで表現)に対して、 x にある操作をして得られる解、及びその集合を近傍と呼び、N(x) と表記する 例1: xi を選び、 xi が 0 なら1、1なら0と、反転させる 例2: xi と xj を選び、それらの値を入れ替える 例3: xi := xi+1, xi+1 := xi+2, …, xi+j:= xi と、巡回させる それぞれ、 |N(x)| = O(n), O(n2), O(n2) ・ どれくらい解構造と良く関係しているか、および |N(x)|の大きさが、性能を左右する

局所探索(図解) ・ 近傍の中のより良い解に移動していく方法 1. 初期解 x を見つける 2. N(x) の中に、x よりも目的関数値が良い解があれば、     x をその解に変更する 3. N(x) が x よりも良い解を含まなくなるまで繰り返す 最急降下法: 1. 探索方向を決める 2. どれくらい進むか決める 局所的な情報のみを利用する 点は同じだが、どこでも行け るので、近傍の概念がない

局所探索:最大クリーク クリークの近傍: クリークに頂点を1つ加え、その頂点に隣接しないクリークの頂点をのぞいたもの 局所探索: ・ 近傍の中に、自分より良い解があったら、その解に移動する ・ 近傍の中に、自分より良い解が ないような解を見つけたら、 それを出力して終了

局所最適解 最終的に得られる ・ N(x) が x よりも良い解を含まない ような x を局所最適解という 大域的最適解  局所最適解 大域的最適解  局所最適解 局所最適解   × 大域的最適解 局所最適解は、大域的最適解(本当の最適解)より、   一般的に悪いが、平均的にはそれほど悪くない (実験的には、誤差20-30%くらい?)

巡回セールスマン問題の局所探索 2-opt近傍: 現在の経路から、2つの枝の行き先と出発点を入れ替えて得られる経路を近傍とする  現在の経路から、2つの枝の行き先と出発点を入れ替えて得られる経路を近傍とする ・ 全部で O(都市数2) 個

2-optの性質 ・ 局所最適解は、平均的に誤差 10-20%

近傍の高速な評価 ・ 解の評価値を計算するには、1つ O(n) 時間かかる  すべての近傍の評価をするのに、 O(n3) 時間かかる ・ しかし、実際には、x と x の近傍の対称差は 枝4本のみ    x の評価値を基にすれば、1つ定数時間で評価できる

局所探索 (2) 挿入近傍:  現在の経路から、ある都市を他の都市の次に挿入して得られる経路を近傍とする ・ 全部で O(都市数2) 個

局所探索 (3) ・ 局所最適解は、平均的に誤差 10-20% 、2-opt より多少悪いようである

発見的解法:セービング法 ・ 最初、ルートを空にする ・ 頂点を1つずつ、最も移動距離が増えない位置に挿入 ・ 計算時間は O(都市数2) 平均的に、誤差10-20%くらいに収まる

望みがない近傍の探索を省略 順に d(u,v) と同じになるまで 調べればよい u v 探索範囲が劇的に小さくなる x y ・ 2-optで、枝 (u,v) と (x,y) を入れ替えた場合、距離の変化は d(u,v) + d(x,y) - d(u,x) + d(v,y) だけ変化する   解が改善されるためには、 d(u,v)-d(u,x) か d(x,y)-d(v,y) のどちらか1つは正になる必要がある ・ 各 u について、 d(u,v)-d(u,x) が正になるような x についてのみ、2-opt のチェックを行えばよい ※ d(u,x) が小さいものから 順に d(u,v) と同じになるまで 調べればよい u v 探索範囲が劇的に小さくなる x y

局所探索:計算時間 ・ (シンプレックス法のように)最悪の場合、指数回の反復を繰り返す可能性がある ・ 実験的には、反復の回数はだいたい O(|N(x)|) 回程度 ・ 1反復の計算時間は、通常 |N(x)| に大きく依存する ・ |N(x)| が大きければ、それだけ解の精度は上がる (へんな局所最適解につっかえなくなる)  しかし、計算時間は増大する

局所探索:2つの改善方針 ・ 各反復で、N(x) の解をひとつずつチェックする場合 1. (best 改善)最も目的関数値が良くなるものを見つける 2. (first 改善) 目的関数が良くなる解がみつかったら、その時点で移動する ・ 一般に、first 改善のほうが速い。   性能はあまり変わらない  - Best改善の計算時間:    O(|N(x)|2) より小さいくらい  - first改善の計算時間:    O(|N(x)|) より大きいくらい

Iterated(反復)局所探索  局所最適解に来たら、解を(少々大きく)変更して、脱出する ・ 局所探索は、局所最適解で止まってしまう    局所最適解に来たら、解を(少々大きく)変更して、脱出する     そして、局所探索を行い、繰り返す (良い解のそばには良い解があるだろう、という推測より)

多スタート局所探索 ・ 局所最適解は、大域的最適化(本当の最適解)より、一般的に、悪いが、平均的にはそれほど悪くない(誤差20-30%くらい?) ・ 局所最適解は(実験的には)短時間で見付かる ・ 「下手な鉄砲数打ちゃ当たる」で、局所最適解を沢山見つけよう、という方法 1. (ランダムに)初期解を作り、局所探索をする、という操作を沢山繰り返す。 2. 得られた局所最適解の中から、一番良いものを選ぶ ・ 1000回くらい(たとえば)繰り返せば、それなり良い解(誤差10%程度)が短時間で見付かる

ガイデッド局所探索 ・ 近傍探索系のアルゴリズムは、一般的に、局所的な変更を繰り返すことで良い解を見つける   ときに、無視される部分が出てくる   無視された部分が改良されないため、      良い精度が出ないことがある ・ 「無視される部分」を、重み(重要度)を増すことで「無視されないように」すると、精度が上がることがある 1. (重みを基準にして)近傍へ移動する 2. 悪い状態で放置されている部分の重みを少し増す 3. 繰り返す

ガイデッド局所探索 (2) ・ わかりにくいので、最大充足問題を例にして解説する   x1,…,xn : 論理変数 (真か偽、 0 か1 のみを値としてとる)   C1,…,Cm : クローズ (変数&変数の否定を ∪で繋げたもの) 最大充足問題: C1,…,Cm のうち最も多くのものを真とするような変数への真偽値の割り当てを求めよ ・ 「ある xi の値を反転(真偽)する」という操作を元に、近傍探索ができる ・ 解が大きく動かないと、いつまでも真にならないクローズが出る

ガイデッド局所探索 (3) ・ クローズに重み w を与え、最大重み充足問題を考える  通常の最大充足問題は w を 1 とした特殊ケース ・ 無視されているクローズ(いつまでも真にならないクローズ)がでないよう、各反復で偽になっているクローズの重みを増す  (真になっているものは減じる) ・ 「なかなか充足できないクローズを充足しよう」という目的が強くなるため、満遍なく解空間を探索できるようになる

最大充足可能性問題 例題)わかりにくいので、最大充足可能性問題を例にして解説する (¬x1 ∨ ¬x2 )   (x1 ∨ ¬x3 ∨ ¬x4 )   (x1 ∨ ¬x3 ∨ ¬x5 )   (x1 ∨ ¬x4 ∨ ¬x5 )   (x2 ∨ ¬x3 ∨ ¬x4 )   (x2 ∨ ¬x3 ∨ ¬x5 )   (x2 ∨ ¬x4 ∨ ¬x5 )   (x3 ∨ x4 ∨ x5 )   (x3 ∨ x5 ∨ ¬x6 )   ( ¬ x3 ∨ x4 ∨ ¬x6 ) ・ 全ての変数に真を割当てたものは、局所最適解になる     (一番上のクローズだけ満たされない) ・ 近傍探索・局所探索をするうちに、1番上のクローズを真にするもの、   つまり、 x1, x2 を偽にする変更の重みが増す

良質部分の抽出 ・ 乱拓的な要素を入れた局所探索は毎回異なる解を出す ・ が、似たような解が多く出てくる  また、どの解にも使われないもの、が出てくる ・ 「どの解にも使われないものは、最適解でも使われないだろう」  という観察から、そのような部分は捨ててしまう、という戦略が  考えられる ・ 問題をスリム化できるので、 厳密解法、あるいはじっくり解く タイプの発見的解法が使える

アニーリング法 ・ 近傍の解へ移動する際に、現在の解よりも良くないものにも一定の確率で移動する方法 1. 初期解 x を見つける 2. N(x) の中から適当に1つ選ぶ 3. その解が、x よりも目的関数値が良いなら、無条件に移動   悪い場合は、ある確率 T で移動 4. 繰り返して、適当にとめる

確率 Tを、温度がさめるのと同じように、反復数が増大 するにしたがい、指数関数の逆関数的に小さくしていく アニーリング法 (2) ・ 化学反応の状態遷移の仕組みが発想のおおもと (エネルギーの高い状態(不安定な状態)から低い、安定した状態へは無条件で動く。不安定な状態へは(温度に依存する)確率によって動く) ・化学反応は、高い温度から低い温度へゆっくりと冷ますと、自然にあるべき状態に(だいたい)落ち着く   (焼きなましのようなもの)  指数解の反復を繰り返すと、    ほぼ確率1で最適解に収束 確率 Tを、温度がさめるのと同じように、反復数が増大 するにしたがい、指数関数の逆関数的に小さくしていく

アニーリング法:特徴 ・ 近傍を見つけてさいころを振るだけなので、作るのが簡単 ・ 温度の制御も簡単 ・ 細い谷が続いているような構造(近傍の中に、改善解が少ししかない、ということが続く状況)では、谷に沿って下っていくことが困難なため、効率よく改善されない

タブサーチ ・ 近傍の中で(自分以外の)一番良い解に移動 (悪い解にも移動する)    (悪い解にも移動する) ・ 毎回、(もともといた解に戻らないように)近傍に移動禁止領域を作る  (タブーリスト) ・ 移動禁止領域は、一定時間経過後、削除する

移動禁止領域の設定 ・ どのようにして移動禁止領域を設定するか - ある要素 e を解に挿入した  e を解から出さない  - 解の要素 e を解に含まれない要素 f と交換した           e,f の関わる交換はしない  -  解の i 番目に要素を挿入した           i 番目の要素は出さない タブリスト:   e5, e9, e2, e7, e21, e25

タブサーチの例 ・ 最大クリーク問題に対する近傍探索を例にして解説する ・ タブリストは、「クリークから抜いた頂点」で、リストにある頂点は追加する頂点として選ばないことにする ・ タブリストの頂点は、挿入されたあと5回目で消すことにする 局所的に、なめるように進んでいく

タブサーチの特徴 ・ タブーリストの効果で、局所最適解の周辺を集中的に探すことになり、良い解のそばには良い解がある、という構造が極めてよく成り立つのであれば、精度の高い解を見つけられる ・ 近傍中で一番良い解を探すので、それに時間がかかる ・ タブーリストの設計&長さにより性能が激変するため、設計に注意が必要  タブーリストにとどまる時間が短期であるもの、長期であるものを作って、安定させる

遺伝的アルゴリズム ・ 生物の進化の過程をシミュレートしたような解法 生物は、交配・遺伝・突然変異・自然淘汰を繰り返して、ある意味で最適なものに変化していく。そのようなプロセスを経る解法を作る

遺伝的アルゴリズム (2) ・ いくつかの解の集合を保持 ・ 毎回、これらの親の特徴を持つ解(子供)を作り(交叉)、集合に追加する ・ 目的関数が悪いものを取り除き、繰り返す ・ 適当に止める

交叉(交配) ・ 現在の解の特徴を受け継ぐ解(子供)を生成 ・ 解をいくつか(普通は2個)選ぶ ・ それらの共通部分を受け継がせ、共通しないところは適当にアレンジする 101101000100110111 101101011100100000 1011010**1001*0*** 101101001100110010 1957320648 0643195782 1957 と 064 を含む 8064219573

交叉の工夫 ・ (問題によっては)交叉による解が実行可能になるとは限らない ・ 実行可能解を得るため、(共通しない部分)の設定の仕方を工夫する、あるいは、共通部分も変更する  - 実行可能領域の凸性の利用  - 実行不能解から、近傍探索により実行可能解へ  - 解の、実行可能性をたもつ分解を利用 101101000100110111 101101011100100000 1011010**1001*0*** 101101001100110010 1957320648 0643195782 1957 と 064 を含む 8064219573

ナップサック問題 最大積載量のあるナップサックに荷物を詰める問題 ・ 荷物はいくつかある ・ 荷物はそれぞれ重さが違う ・ 荷物はそれぞれ価値が違う 荷物の価値の合計が最大になる詰め込み方を求めよ

ナップサック問題 (2) ・ NP-complete 問題である ・ 動的計画法で、比較的簡単に解ける ・ 普通の問題では数理的に不要である変数を消すと問題がとても小さくなる ・ 近似解法もある

ビンパッキング問題 ・ いくつかのビンに、物を詰め込む ・ 物はそれぞれ大きさがある(形は気にしない) ・ ビンの容積が決まっていて、詰め込む物の大きさの合計は、容積以下でなければいけない ・ どういう詰め込み方をすると、ビンの数が最小になるだろうか

ビンパッキング問題 (2) ・ NP-complete 問題である ・ ビンの数が少ないと、ナップサック問題を使って解ける

遺伝的アルゴリズムの例 a b c d e f g h i j 重さ 5 8 7 4 6 3 価値 ・ ナップサック問題で考える。交叉は2つ解の共通部分を含み、和集合に含まれるような解 a b c d e f g h i j 重さ 5 8 7 4 6 3 価値 重さ制限: 30 解1: abcdh 重29, 価29 解2: abefg 重30, 価28 解3: bdei 重28, 価27 解4: fghij 重29, 価27 解1+2: ab deg 重30, 価29 解2+3: be adf 重24, 価30 解3+4: i defj 重27, 価33 解4+1: h bic 重28, 価25 良い部分は残り、悪い部分はなくなる

遺伝的アルゴリズムの特性 ・ 近傍探索ではうまく解けない問題が解ける事がある (逆もある) ・ 実行不能解から、近傍探索により実行可能解へ     (逆もある) ・ 実行不能解から、近傍探索により実行可能解へ ・ 局所性の高い問題には不向き(クリークなど) ・ 作りようによってはすごくいいものができるが、出来が悪くなることもある ・ いい解法を作ろうとすると、いろいろな工夫を加えなければならない ・ パラメータ、交叉を工夫する必要がある ・ プログラミングが大変(局所探索などに比べると) ・ こっている分、速度が遅い

工夫 突然変異 - 解集合が変なところで停滞することがある(同じような悪い解ばかりになる)。それを防ぐため、ときに突然変異を起こし、親の遺伝情報の一部を受け継がないような子供を作る 交叉の工夫 - 1つの親の組から作る子供の数、子供の作り方を工夫する グループ化 - 生物が群を作り、群の中で交配して、群(地域)により独自に進化するように、解集合をいくつかのグループに分割し、それぞれのグループ内の交配を多くするようにする 局所探索 - 交叉してできた解を局所探索で改良し、それを子供とする

まとめ ・ 線形計画法による近似(独立集合) ・ 発見的解法(メタ・ヒューリスティック) ・ 局所探索法(貪欲解法) ・ 巡回セールスマン問題の近傍探索: 挿入、2-opt ・ 近傍探索の高速化   目的関数の評価法、可能性のない候補の除外 ・ 近傍探索(タブサーチ・アニーリング) ・ 遺伝的アルゴリズム