1 / 108

COMPUTERS AND INTRACTABILITY A Guide to the Theory of NP-Completeness

COMPUTERS AND INTRACTABILITY A Guide to the Theory of NP-Completeness. Michael R. Garey / David S. Johnson (c) 1 979 Bell Telephone Laboratories, Incorporated. CONTENTS. Preface Computers, Complexity, and Intractability The Theory of NP-Completeness Proving NP-Completeness Results

sheng
Download Presentation

COMPUTERS AND INTRACTABILITY A Guide to the Theory of NP-Completeness

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. COMPUTERS AND INTRACTABILITYA Guide to the Theory of NP-Completeness Michael R. Garey / David S. Johnson (c) 1979 Bell Telephone Laboratories, Incorporated

  2. CONTENTS Preface • Computers, Complexity, and Intractability • The Theory of NP-Completeness • Proving NP-Completeness Results • Using NP-Completeness to Analyze Problems • NP-Hardness • Coping with NP-Complete Problems • Beyond NP-Completeness Appendix: A List of NP-Completeness Problems

  3. CHAPTER 1Computers, Complexity, and Intractability

  4. CONTENTS (Chapter 1) • Introduction • Problems, Algorithms, and Complexity • Polynomial Time Algorithms and Intractable Problems • Provably Intractable Problems • NP-Complete Problems • An Outline of the Book

  5. 目次 (Chapter 1) • イントロダクション • 問題,アルゴリズム,複雑さ • 多項式時間アルゴリズムと ‘‘intractable’’な問題 • 証明可能な ‘‘intractable’’な問題 • NP完全問題 • この本の概略

  6. イントロダクション • この本の主題は、次のような多少風変わりな例を通した紹介が良いかもしれない

  7. あなたは雇われの身のアルゴリズムデザイナーあなたは雇われの身のアルゴリズムデザイナー • 会社のために良いアルゴリズムを見つけるのが仕事 • ある日、あなたは上司に呼び出されます・・・

  8. 上司の部屋で・・・ 新しい市場に乗り出そうと思うんだがね 上司 は、はあ・・・ あなた

  9. 上司の部屋で・・・ バンダースナッチを作ろうと思うんだ 上司 バンダースナッチ? あなた

  10. バンダースナッチの作り方 構成要素1 ・・・ 構成要素2 ・・・ ・・・ 構成要素3 ・・・

  11. バンダースナッチの作り方 • 要求: • コスト • 重量 • かっこよさ • etc. 構成要素1 ・・・ 構成要素2 ・・・ 構成要素3 ・・・ ・・・ ・・・ 構成要素N ・・・

  12. バンダースナッチ問題 • 要求を満たしているかどうかを調べる方法は? • 要求を満たすような構成要素の組を見つける方法は? アルゴリズムを探せ!

  13. 上司の部屋で・・・ ということなんだがね 上司 は、はあ・・・ あなた

  14. 上司の部屋で・・・ やってくれるかね 上司 わかりました お任せください あなた

  15. こうしてあなたは バンダースナッチ問題を解くべく 必死に仕事に取り組みました 数週間後・・・

  16. 上司の部屋で・・・ どうだね、できたかね 上司 一応できたことはできたんですが・・・ あなた

  17. 上司の部屋で・・・ どれどれ ・・・・・・・・・ 上司 ゴクリ あなた

  18. 上司の部屋で・・・ なんだね これは! これじゃあ一つ設計するのに一年もかかってしまう! 上司 すみません、 もうすこし時間をください あなた

  19. 実はあなたは 考えうるすべての設計を調べるという以外に 実質的に優れたアルゴリズムを 提案できなかったのです

  20. あなたはこれからどうすればよいのでしょうか?あなたはこれからどうすればよいのでしょうか? この数週間で、あなたのやる気は ほとんど失われてしまいました。 このまま続けても おそらく同じでしょう。

  21. しかし、あなたは上司の部屋に行って、 「私は頭が悪いので、能率的なアルゴリズムを見つけられませんでした」 とは報告したくない。 これでは、 たとえクビになったとしても 文句は言えないでしょう。

  22. もし、バンダースナッチ問題の Inherent Intractability (それを高速に解くことのできる アルゴリズムが無いこと) を証明することができれば、 会社でのあなたの地位に対する 深刻な被害を避けることができる

  23. Inherent Intractability • inherent【形】/ inhi@[ォ]r[ォ]nt / • <性質・属性・権利などが>本来備わっている,生れつき存在する; 固有の,持ち前の • intractable【形】/ i$ntrQ@ktォbl / • [けなして] 手に負えない,扱いにくい,強情な, • 処理[加工,治療]しにくい • intractability 【名】 ジーニアス英和辞典より

  24. Inherent Intractability • これが証明できれば、上司の部屋に行き、 「私が能率的なアルゴリズムを発見できないのは、そのようなアルゴリズムが存在しないからだ!」 と宣言できる。

  25. Inherent Intractability • しかしながら、問題の Inherent Intractability (能率的なアルゴリズムが無いこと) を証明するのは能率的なアルゴリズムを見つけるのと同じくらい難しい ⇒ NP完全性の理論

  26. Inherent Intractability とNP完全性 • Inherent Intractability • 問題に対する能率的なアルゴリズムが「絶対に無い」こと • NP完全性 • 問題に対する能率的なアルゴリズムが 「おそらく無い」であろうということ。 • なぜなら、NP完全性を持つ問題は、これまでに様々な 専門家たちによって考えられてきたが、未だに誰一人 能率的なアルゴリズムを発見できていないからである。

  27. NP完全性の理論 • もし、バンダースナッチ問題が、NP完全問題と「ちょうど同じ難しさ」であることがわかったらどうでしょうか? • NP完全問題は、多くの有名な専門家たちが、能率的なアルゴリズムを見つけることができなかった問題です。 • このとき、あなたは上司の部屋へ行き、

  28. NP完全性の理論 「私は能率的なアルゴリズムを発見できなかった。 しかし、これらの有名な専門家たちにも発見できていない!」 と公表できる。

  29. NP完全性の理論 • このことは、少なくとも、あなたをクビにして、他のアルゴリズムの専門家を雇うことは意味が無いことを上司に知らせるでしょう。 • そして、あなたはバンダースナッチ問題に対する能率的なアルゴリズムを探す責務から解放されるでしょう。 • しかし、すべてが解決したわけではありません。 • バンダースナッチ問題は、実際に解かなければならない問題なのです。

  30. NP完全性の理論 • バンダースナッチ問題がNP完全性を持つという結果は、あなたに様々な情報を与えます。 • あなたがこれから何をすれば良いかの指針となります。 • 例えば: • 能率的ではないが、なるべく速く動くアルゴリズムを探す • 最も良い解を出す保証は無いが、なるべく良い解を出す能率的なアルゴリズムを探す • インスタンスが特別な場合にのみ有効な能率的なアルゴリズムを探す

  31. イントロダクション(まとめ) • 「NP完全性」が指し示すことは、 「アルゴリズムを探すことを諦めよ」 ということではありません。 • 「NP完全性の理論」の最も重要な適用は、 「アルゴリズムデザイナーの努力を、有用なアルゴリズムを導くための見込みのあるアプローチへ向けること」 である。

  32. 目次 (Chapter 1) • イントロダクション • 問題,アルゴリズム,複雑さ • 多項式時間アルゴリズムと ‘‘intractable’’な問題 • 証明可能な ‘‘intractable’’な問題 • NP完全問題 • この本の概略

  33. 問題,アルゴリズム,複雑さ • これからの議論を正確にするため、基本的な言葉の意味を取り決めておく必要がある: • 問題 (Problems) • アルゴリズム (Algorithms) • 複雑さ (Complexity)

  34. 問題,アルゴリズム,複雑さ • これからの議論を正確にするため、基本的な言葉の意味を取り決めておく必要がある: • 問題 (Problems) • パラメータ (Parameter) • インスタンス (Instance) • 例:巡回セールスマン問題 • アルゴリズム (Algorithms) • 複雑さ (Complexity)

  35. 問題 (Problems) • 答えることが可能な一般的な質問 • いくつかのパラメータ・変数を持ち、その値は特定されない • 問題は: • すべてのパラメータの一般的な記述 • 解がどんな特性を満たすことを要求しているかの陳述 を与えることで記述される。 • 問題のインスタンスはすべてのパラメータに対して特定の値を決めることによって得られる。

  36. 例:巡回セールスマン問題(Traveling Salesman Problem) • パラメータ: • 「都市」の有限集合 C={c1,c2,…,cm} • 都市の各組 ci,cj∈Cの間の「距離」 d(ci,cj) • 解: • 都市の列 〈cπ(1),cπ(2),…,cπ(m)〉のうち、 (∑1≦i≦m-1 d(cπ(i),cπ(i+1)))+d(cπ(m),cπ(1)) が最小となるもの

  37. 例:巡回セールスマン問題(Traveling Salesman Problem) • 次のグラフは巡回セールスマン問題の一つのインスタンスである: • C={c1,c2,c3,c4} • d(c1,c2)=10, …,d(c3,c4 )=3 • 解:〈c1,c2,c4,c3〉 • 順回路の長さ: 10+9+3+5 = 27 10 c2 c1 6 5 9 9 c3 c4 3

  38. 問題,アルゴリズム,複雑さ • これからの議論を正確にするため、基本的な言葉の意味を取り決めておく必要がある: • 問題 (Problems) • アルゴリズム (Algorithms) • アルゴリズムの能率 (Efficiency) • 所要時間 (Time Requirement) • インスタンスサイズと入力長 • Encoding Scheme • 複雑さ (Complexity)

  39. アルゴリズム (Algorithms) • 問題を解くための手続き • 具体的には、コンピュータプログラム • アルゴリズムが問題を解くとは: • 問題のどんなインスタンスにも適用できる。 • そのインスタンスに対して常に解を生成することが保証されている。 • 例えば、巡回セールスマン問題に対しては、常に最小な長さを与える列を構成することが必要。

  40. アルゴリズムの能率 (Efficiency) • 広い意味では、アルゴリズムを実行するために必要なすべての計算資源に関係する • ハードウェア量,時間 • ここでは、「時間」だけを考える • アルゴリズムの所要時間 (Time Requirement): • 解を求めるまでにどのくらいの時間が必要か。 • インスタンスの「サイズ」によって決まる。 • サイズ: 例えば、巡回セールスマン問題では、一般的には都市の数のこと。 • インスタンスサイズが大きいほど、所要時間も大きくなる。

  41. アルゴリズムの所要時間 (Time Requirement) • 所要時間 ← インスタンスサイズ • インスタンスサイズ • 数学的に正確に論じるには、都市の数だけでは不十分 • 都市間の距離も入力情報の一部である • 問題のインスタンス: • 有限個のアルファベットから選ばれた記号の有限文字列とみなす • この文字列の長さを「入力長 (input length)」という • 「入力長」をインスタンスサイズとして使う

  42. 10 c2 c1 6 9 5 9 c3 c4 3 入力長 = 32 インスタンスサイズと入力長 インスタンスの集合 グラフ Encoding Scheme アルファベット {c,[,],/,0,1,2,3,4,5,6,7,8,9} Encoding Scheme c[1]c[2]c[3]c[4]//10/5/9//6/9//3 有限文字列

  43. Encoding Scheme • encode【動】/ enko@ud/ • <通信文・データなどを>符号化[コード化]する;符号化して発信する (⇔decode) • scheme【名】/ ski@ / • 計画,案;(政府)公共計画,(会社の)事業計画 • 陰謀,たくらみ • 大綱;図式;計画表 • 組織,機構(哲学)体系;配列;配色 ジーニアス英和辞典より

  44. アルゴリズムの能率 (Efficiency) • アルゴリズムの能率の良し悪し: • 所要時間(問題を解くのに必要な時間)の大小 • インスタンスのサイズが大きいほど必然的に多くの時間が必要 • インスタンスのサイズ: • 入力長 • encoding scheme に依存 • 入力長と所要時間の関係は? ⇒ Time Complexity Function

  45. 問題,アルゴリズム,複雑さ • これからの議論を正確にするため、基本的な言葉の意味を取り決めておく必要がある: • 問題 (Problems) • アルゴリズム (Algorithms) • 複雑さ (Complexity) • Time Complexity Function(時間複雑さ関数)

  46. 32 42分 インスタンス 入力長 (整数) インスタンス 54分 インスタンス 16分 26 インスタンス インスタンス F(32) = 54分 512 インスタンス 複雑さ (Complexity) • Time Complexity Function • 与えられた入力長に対して、その入力長をサイズとして持つインスタンスに対する解を求めるのに必要な時間の最大値を返す関数

  47. Time Complexity Function • Time Complexity Function を正確に定義するためには、次のものを固定する必要がある: • Encoding Scheme • インスタンスから入力長を算出する • コンピュータモデル(コンピュータ) • アルゴリズムが解を求めるのに必要な時間を算出する

  48. 問題,アルゴリズム,複雑さ(まとめ) • 問題 (Problems) • 例: 巡回セールスマン問題 • アルゴリズム (Algorithms) • アルゴリズムの能率: 所要時間 • インスタンスのサイズ: 入力長 • 複雑さ (Complexity) • Time Complexity Function: 入力長に対する所要時間を表現

  49. 目次 (Chapter 1) • イントロダクション • 問題,アルゴリズム,複雑さ • 多項式時間アルゴリズムと ‘‘intractable’’な問題 • 証明可能な ‘‘intractable’’な問題 • NP完全問題 • この本の概略

  50. 多項式時間アルゴリズムと“intractable”な問題多項式時間アルゴリズムと“intractable”な問題 • アルゴリズムの能率の境界線 • ‘‘intractable’’な問題

More Related