SlideShare a Scribd company logo
𝑁𝑃完全問題の紹介
@takayuta1999
はじめに
 𝑁𝑃完全問題どれぐらい知ってますか?
はじめに
 𝑁𝑃完全問題どれぐらい知ってますか?
 𝑆𝐴𝑇、頂点被覆問題、ハミルトンパス問題、
部分和問題、巡回セールスマン問題、
ナップザック問題 𝑒𝑡𝑐.
はじめに
 𝑁𝑃完全問題どれぐらい知ってますか?
 𝑆𝐴𝑇、頂点被覆問題、ハミルトンパス問題、
部分和問題、巡回セールスマン問題、
ナップザック問題 𝑒𝑡𝑐.
 頂点被覆、部分和問題について紹介します
モチベーション
 𝑁𝑃完全はなぜ定義する?
モチベーション
 𝑁𝑃完全はなぜ定義する?
 𝑁𝑃 = 𝑃を示すときに役立つ
頂点被覆問題
 グラフが与えられ、頂点集合𝑋が以下の条件
を満たすとき、 𝑋が頂点被覆であるとする
 すべての辺に対して、端点のいずれかが𝑋に含ま
れている
 |𝑋| = 𝑘 となる頂点被覆𝑋が存在するか判定
せよ
復習
 言語𝑋が𝑁𝑃完全であることを示すためには以
下が必要十分
 𝑋が𝑁𝑃に属する
 𝑁𝑃に属する任意の言語𝑌が、𝑋に多項式時間で帰
着可能
𝑁𝑃に含まれること
 証拠(頂点集合𝑋)が頂点被覆となっているか
多項式時間で判定できればよい
 各辺見て端点のいずれかが含まれているかを判
定すれば可能
𝑁𝑃困難
 また一から𝑁𝑃困難性を示すのは大変
𝑁𝑃困難
 また一から𝑁𝑃困難性を示すのは大変
 3𝑆𝐴𝑇を頂点被覆問題に帰着できればよい
いいグラフを作る
 3𝑆𝐴𝑇に対して、いいグラフを作る
 3𝑆𝐴𝑇の真偽と、そのグラフに対してあるサイ
ズ𝑘の頂点被覆があるかの真偽が一致するよ
うにグラフをつくる
作り方(具体例)
 𝑎⋁𝑏⋁𝑐 ⋀ 𝑎⋁𝑏⋁𝑐 という3𝑆𝐴𝑇を考える
 これは変数が𝑚(= 3)個あり、節が𝑙(= 2)個あ
るので、次ページのような 2𝑚 + 3𝑙 頂点のグ
ラフにサイズ 𝑚 + 2𝑙 の頂点カバーがあるか
どうかに帰着される
グラフ
確認
 3𝑆𝐴𝑇 ∶ 𝑎 = 𝑡𝑟𝑢𝑒, 𝑏 = 𝑡𝑟𝑢𝑒, 𝑐 = 𝑓𝑎𝑙𝑠𝑒で成立
 サイズ7(= 𝑚 + 2𝑙)の頂点被覆は次頁のよう
に確かに存在する
 よって、成立
グラフ
構成方法-頂点
 各変数𝑥に対して、
 2頂点作る
 𝑥と𝑥に対応させる
 各節s⋁𝑡⋁𝑢に対して、
 3頂点作る
 s, 𝑡, 𝑢に対応させる
構成方法-辺
 各変数𝑥に対して、
 𝑥と𝑥に対応する辺の間に辺を引く
 各節s⋁𝑡⋁𝑢に対して、
 3頂点をそれぞれ対応する文字の頂点に辺を張
る
 3頂点の任意の2点間に辺を張る
グラフ
𝑎 𝑏𝑏𝑎 𝑐 𝑐
𝑎 𝑎
𝑏 𝑏
𝑐 𝑐
グラフ
𝑎 𝑏𝑏𝑎 𝑐 𝑐
𝑎 𝑎
𝑏 𝑏
𝑐 𝑐
グラフ
𝑎 𝑏𝑏𝑎 𝑐 𝑐
𝑎 𝑎
𝑏 𝑏
𝑐 𝑐
正当性
 グラフがサイズ𝑚 + 2𝑙の頂点被覆を持つ
3𝑆𝐴𝑇が𝑡𝑟𝑢𝑒になる
 まず、 を示す
正当性
 グラフがサイズ𝑚 + 2𝑙の頂点被覆を持つとき
 𝑥と𝑥に対応する頂点から少なくとも1つ選ぶ
 節s⋁𝑡⋁𝑢に対して、少なくとも2つ選ぶ
 必要がある(easy)
正当性
 頂点被覆のサイズの下限が𝑚 + 2𝑙で、等号
が成立
 𝑥と𝑥に対応する頂点からちょうど1つ選ぶ
 節s⋁𝑡⋁𝑢に対して、ちょうど2つ選ぶ
正当性
 よって、各変数に対して𝑥と𝑥で選ばれた方が
𝑡𝑟𝑢𝑒となるように真偽を定める
 こうすれば、3𝑆𝐴𝑇が満たされる
 みなさん考えてみてください
正当性
 グラフがサイズ𝑚 + 2𝑙の頂点被覆を持つ
3𝑆𝐴𝑇が𝑡𝑟𝑢𝑒になる
 次に、 を示す
正当性
 グラフがサイズ𝑚 + 2𝑙の頂点被覆を持つ
3𝑆𝐴𝑇が𝑡𝑟𝑢𝑒になる
 次に、 を示す
 これは同じように3𝑆𝐴𝑇の解に対応する頂点を
選び、節に対応する頂点を適当に選べばよい
部分和問題
 数列𝑎1, 𝑎2, … 𝑎 𝑛から何個か選んで合計を𝑇に
できるかどうか判定
 3𝑆𝐴𝑇が𝑡𝑟𝑢𝑒になる条件をこれに帰着する
部分和問題
 うまく帰着できる形に変形する
 変数𝑥に対して𝑥と𝑥に対応する文字を導入す
る
 文字の値を、対応する変数が𝑡𝑟𝑢𝑒の時+1、
𝑓𝑎𝑙𝑠𝑒の時+0として条件を調べる
部分和問題
 変数𝑥に対して𝑥と𝑥のいずれかを選ぶからこ
れらに対応する文字の和は1
 節s⋁𝑡⋁𝑢に対して、 s, 𝑡, 𝑢に対応する文字の
和は1以上3以下
部分和問題
 変数𝑥に対して𝑥と𝑥のいずれかを選ぶからこ
れらに対応する文字の和は1
 節s⋁𝑡⋁𝑢に対して、 s, 𝑡, 𝑢に対応する文字の
和は1以上3以下
 等号の式にするために補助的な変数を導入する
部分和問題
 節s⋁𝑡⋁𝑢に対して、 s, 𝑡, 𝑢に対応する文字の
和は1以上3以下
 よって、各節に対して新しい文字を二つ作る
 これによって、0~2まで足すことができる
 このとき、合計を3にできるのが条件
部分和問題
 条件を一列に並べよう
 例として (𝑥 ∨ 𝑦)に対応する部分和問題を構
成する(節の名前を𝑙1とする)
部分和問題
𝑥
𝑥
𝑦
𝑦
𝑙1
𝑙1
sum
1
1
1
1
1
1
1
1
1 1 3
部分和問題
 条件を一列に並べると、ベクトル和に見える
 10進法にすれば、繰り上がりないので帰着で
きました
部分和問題
𝑥
𝑥
𝑦
𝑦
𝑙1
𝑙1
sum
1
1
1
1
1
1
1
1
1 1 3
0
0 0
0
0
0
0
0
0
0
100
101
10
10
1
1
113
部分和問題
𝑥
𝑥
𝑦
𝑦
𝑙1
𝑙1
sum
1
1
1
1
1
1
1
1
1 1 3
0
0 0
0
0
0
0
0
0
0
100
101
10
10
1
1
113
これに対して部分和
問題を解けば同値
おわりに
 少したくさん話しました
 雰囲気でも分かってもらえたらうれしいです
おわりに
 少したくさん話しました
 雰囲気でも分かってもらえたらうれしいです
 ご清聴ありがとうございました

More Related Content

What's hot

指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端Yoichi Iwata
 
論文紹介「A Perspective View and Survey of Meta-Learning」
論文紹介「A Perspective View and Survey of Meta-Learning」論文紹介「A Perspective View and Survey of Meta-Learning」
論文紹介「A Perspective View and Survey of Meta-Learning」
Kota Matsui
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~
Takuya Ono
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎
Tomoshige Nakamura
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
Deep Learning JP
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理
Sho Takase
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professional
Ai Makabi
 
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
sleepy_yoshi
 
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心にウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
Ryosuke Tachibana
 
バンディット問題について
バンディット問題についてバンディット問題について
バンディット問題について
jkomiyama
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
tmaehara
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
Kenyu Uehara
 
バンディット問題の理論とアルゴリズムとその実装
バンディット問題の理論とアルゴリズムとその実装バンディット問題の理論とアルゴリズムとその実装
バンディット問題の理論とアルゴリズムとその実装
EinosukeIida
 
双対性
双対性双対性
双対性
Yoichi Iwata
 
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
AtsukiYamaguchi1
 
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
Kenyu Uehara
 

What's hot (20)

指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
 
論文紹介「A Perspective View and Survey of Meta-Learning」
論文紹介「A Perspective View and Survey of Meta-Learning」論文紹介「A Perspective View and Survey of Meta-Learning」
論文紹介「A Perspective View and Survey of Meta-Learning」
 
NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~NLPにおけるAttention~Seq2Seq から BERTまで~
NLPにおけるAttention~Seq2Seq から BERTまで~
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎ベイズ推論とシミュレーション法の基礎
ベイズ推論とシミュレーション法の基礎
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professional
 
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
 
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心にウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
ウェーブレット変換の基礎と応用事例:連続ウェーブレット変換を中心に
 
バンディット問題について
バンディット問題についてバンディット問題について
バンディット問題について
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
バンディット問題の理論とアルゴリズムとその実装
バンディット問題の理論とアルゴリズムとその実装バンディット問題の理論とアルゴリズムとその実装
バンディット問題の理論とアルゴリズムとその実装
 
双対性
双対性双対性
双対性
 
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
フーリエ解析〜「フーリエ級数」から「高速フーリエ変換」まで〜
 

Viewers also liked

Buchburger
BuchburgerBuchburger
Buchburger
yutaka1999
 
IJPC-2 E問題解説
IJPC-2 E問題解説IJPC-2 E問題解説
IJPC-2 E問題解説
yutaka1999
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座Sakiyama Kei
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPythonYosuke Onoue
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
Takami Sato
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画までShunji Umetani
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 

Viewers also liked (7)

Buchburger
BuchburgerBuchburger
Buchburger
 
IJPC-2 E問題解説
IJPC-2 E問題解説IJPC-2 E問題解説
IJPC-2 E問題解説
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPython
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 

More from yutaka1999

IJPC-2 D問題解説
IJPC-2 D問題解説IJPC-2 D問題解説
IJPC-2 D問題解説
yutaka1999
 
IJPC-2 C問題解説
IJPC-2 C問題解説IJPC-2 C問題解説
IJPC-2 C問題解説
yutaka1999
 
IJPC C解説
IJPC C解説IJPC C解説
IJPC C解説
yutaka1999
 
IJPC A解説
IJPC A解説IJPC A解説
IJPC A解説
yutaka1999
 
IJPC - A解説
IJPC - A解説IJPC - A解説
IJPC - A解説
yutaka1999
 
平面グラフ
平面グラフ平面グラフ
平面グラフyutaka1999
 

More from yutaka1999 (7)

IJPC-2 D問題解説
IJPC-2 D問題解説IJPC-2 D問題解説
IJPC-2 D問題解説
 
IJPC-2 C問題解説
IJPC-2 C問題解説IJPC-2 C問題解説
IJPC-2 C問題解説
 
IJPC C解説
IJPC C解説IJPC C解説
IJPC C解説
 
IJPC A解説
IJPC A解説IJPC A解説
IJPC A解説
 
IJPC - A解説
IJPC - A解説IJPC - A解説
IJPC - A解説
 
Kangaroos
KangaroosKangaroos
Kangaroos
 
平面グラフ
平面グラフ平面グラフ
平面グラフ
 

NP完全問題の紹介