情報工学総合演習 D-I : 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史 1 この課題で学ぶこと 問題のモデル化 重み付き集合被覆問題 (最適解を求めるのは、NP困難な問題) 集合被覆問題の近似解法 グリーディ法による近似 LP 緩和による近似 近似解法の評価 2 問題のモデル化 3 軌道探査の問題例 探査対象は、 13個の 惑星/小惑星 探査軌道は 軌道 1 ~ 軌道 47 各軌道には、 探査費用が かかる 探査対象 すべてを、 費用最小で 探査したい 惑星の写真: Courtesy NASA/JPL-Caltech http://photojournal.jpl.nasa.gov/jpegMod/PIA06890_modest.jpg より 4 重み付き集合被覆問題 軌道 1 : S1 = { e3, e4, e5, e6 } 探査コスト : c(S1) = 90 S1 90 e1 e2 e9 e8 e3 e4 e5 e7 e6 入力 : 探査対象の集合 U = { e1, e2, …, e9 } 探査軌道の集合 S = { S1, S2, …, S8 } コスト関数 c: S → Q+ (正の有理数) 5 重み付き集合被覆問題 S7 100 S1 90 23 S3 e1 軌道 1 : S1 = { e3, e4, e5, e6 } 探査コスト : c(S1) = 90 e2 S4 30 e3 e4 e5 e7 S2 34 e9 S8 e8 2 S5 20 e6 S6 98 入力 : 探査対象の集合 U = { e1, e2, …, e9 } 探査軌道の集合 S = { S1, S2, …, S8 } コスト関数 c: S → Q+ (正の有理数) 6 重み付き集合被覆問題 S7 100 S3 e1 S1 90 23 e2 S4 30 e3 e4 e5 e7 S2 34 e9 S8 e8 2 S5 20 e6 S6 98 出力 : カバー C で、総コスト ΣS ∊ C c(Si) が最小となるもの i ∪S ∊ C Si = U となるもの i 7 課題 課題 1 遊園地の問題例を、重み付き集合被覆問題として モデル化する。重み付き集合被覆問題の U や S, S1, S2, … および c がそれぞれ 何に対応するか説明しなさい。 課題 2 食玩集めの問題例を、辺被覆問題としてモデル化する。 辺被覆問題の頂点 v (∊ V) および e (∊ E) がそれぞれ 何に対応するか説明しなさい。 例 1 にならって、辺被覆問題の問題例を 1 つ作りなさい。 8 グリーディー法による近似 9 グリーディー法による近似 S7 100 S3 e1 S1 90 23 e2 S4 30 e3 e4 e5 e7 S2 34 e9 S8 e8 2 S5 20 e6 S6 98 アイデア: 探査対象 1 つあたりのコストが 最小の軌道から、 C に加えていく 10 作業 作業 1 グリーディー法による近似アルゴリズムを実装しなさい。 問題例のフォーマットは自分で考え、その仕様を レポートに記載すること。 プログラムは、出力として、 解 (カバー C として選択したすべての Si の添字 i ) と その時のコストを表示すること。 作業 2 資料 p. 117, 118 の問題例を、作業 1 で実装した プログラムの入力フォーマットに従って ファイルに記述しなさい。 また、作業 1 で実装したプログラムでのそれぞれの 実行結果を示しなさい。 11 実装のヒント 実装に用いるプログラミング言語は、問わない C 言語で文字列を数値に変換するには… # include <stdlib.h> 関数 atoi ( ) や strtol ( ) が使える 12 L P 緩和による近似 13 0-1 整数計画問題 1 … 採用する 目的関数 0 … 採用しない m minimize Σ i = 1 c(Si) ・ xi 採用した軌道の コストの総和 制約条件 Σe を要素に持つS xi ≧ 1 (j = 1, 2, …, n) j i xi ∊ { 0, 1 } ( i = 1, 2, …, m) ej を通る軌道を 少なくとも 1 つ採用 14 LP : Linear Programming 線形計画問題への緩和 1 … 採用する 目的関数 0 … 採用しない m minimize Σ i = 1 c(Si) ・ xi 採用した軌道の コストの総和 制約条件 Σe を要素に持つS xi ≧ 1 ( j = 1, 2, …, n) j i xi ∊ { 0, 1 } 0 ≦ xi ≦ 1 ( i = 1, 2, …, m) ej を通る軌道を 少なくとも 1 つ採用 LP ソルバーで、この問題を解く * は 実数解 → 最適解 x*1, x*2, …, xm 15 LP 緩和による近似 LP 緩和した線形計画問題を解き、 * , …, x * を得る 実数最適解 x*1, x2 m fj … ej を要素に持つ集合 Si の個数 f … その最大値 x *i ≧ 1/f なら 1 に丸め、 そうでないなら 0 に丸める ( i = 1, 2, …, m) 16 作業・課題 作業 3 作業 4 LP 緩和による近似アルゴリズムを実装しなさい。 また、作業 2 の問題例について、それぞれの 実行結果を示しなさい。 作業 2 の問題例それぞれに対して、グリーディー法 および LP 緩和による近似アルゴリズムの 近似率と計算時間を比較し、考察を述べなさい。 発展課題 1 重み付き集合被覆問題の問題例を、 ランダムに生成したり、自分で設計するなどして作成し、 n や m の増加にしたがって近似率や計算時間が どのように変化するか考察しなさい。 17 実装のヒント 1. LP 緩和による近似アルゴリズムの動作を把握する。 2. 資料 p. 121 ~ 123 をもとに、GLPK パッケージの サンプル プログラムをコンパイルして動作させる。 3. 問題例 1 つを対象に、LP 緩和した問題を手で書く。 4. 2 をもとに、3 の問題を解くプログラムを作る。 (実数最適解を得たら、f を計算し、1, 0 に丸める。) 5. 問題例をファイルから読んで、 LP 緩和した問題を作るようにプログラムを改良する。 18 19 この教材のご利用について この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を 求めることなく、無償で自由にご利用いただけます。講義、自主学習は もちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許 諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著 作者に帰属します。この教材、または翻訳や改変等を加えたもの を公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施 してください。なお、この教材に改変等を加えたものの著作権は、 次ページ以降に示す著作者および改変等を加えた方に帰属しま す。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する 場合には、頒布・再頒布の形態を問わず、このページの利用条件20 この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ このファイルの著作者 堀山 貴史 2009-2011 [email protected] 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 4 惑星の写真 NASA Jet Propulsion Laboratory California Institute of Technology その他 堀山 貴史 21
© Copyright 2024 ExpyDoc