# NP complete problem

Document Sample

```					                                               NPC
The tractable problems can be solved by efficient algorithms which are bounded
by some polynomial in size of the input. Its running time is O(P(n)), where P(n) is a
polynomial in the size of the input n.. The class of all problems that can be solved by
efficient algorithms is denoted by P (for polynomial time).
 A problem X is called an NP-HARD if every problem in NP is reducible to X
 A problem X is called NP-complete problem if (1) X belongs to NP, and (2) X is NP-hard.
 A problem X is an NP-complete problem if (1) X belong to NP , and (2) Y is polynomially
reducible to X, for some problem Y that is NP-complete. (Y 已知為 NPC)
    COOK’s thorem: The SAT problem is NP-complete.
    Cook 證明 SAT(satifiability) to be NP-complete:
Let S be a Boolean expression in conjunctive normal form (CNF).

A Boolean expression is satisfiable if there exists an assignment of 0s and 1s to its variable
such that the value of the expression is 1.
The SAT (satisfiability) problem is to determine whether a given expression is satisfiable
(without necessarily finding a satifying assignment). We call an assignment of 0s and 1s to
the variables of Boolean expression a truth assignment.

3SAT  pNP
，
猜一組 true assignment 並可在 polynomial time()檢測(verify) 3SAT expression (clause)

SAT  p 3SAT：設 E 為任意 SAT 的例子

設 c=x1+ x2+ x3+…+ xk，c 是任意的 clause of E，其中以正向形式（無補數）表示

C =( x1  x2  y1 )( y1  x3  y2 )…( yi 1  xi 1  yi )．( yk  3  xk 1  xk )

(ii)證明 C is satisfiable ,then C is satisfiable:
若 C 為 satisfiable，表示其中一變數必為 1，在此情形我們可設 C 之 y i 值使
得 C 也是 satisfiable。
若 x3 =1，接著設 y1 =1， y 2 =0，其他 y i 皆為 0，則 C 為 satisfiable

，         ，                           其他 y i 皆為 0 則 C 必為 satisfiable
，
(ii)if C is satisfiable ,then C is satisfiable:如果 C 為 satisfiable，則 C 中 xi 至少

expression 必無法 satisfiahle。(此 express 可簡化 y1 y2 y3    yk 3  yk 3 ，且必為 false)

1
若 c  x1  x2 ，則 C = ( x1  x2  z )( x1  x2  z )
若 c  x1 ，則 C = ( x1  y  z )( x1  y  z )( x1  y  z )( x1  y  z )

set of vertices such that every edge in (of) G is incident to at least one of these vertices
(touches one of those nodes).

G 中有一組點，G 中每一邊皆會連接到這組點的任一點
 給一 k 值，檢查 cover size 為 k 是否存在，若 G 有 n 個 node，則檢查須時間花
費，即在 polynomial time 即可 check 完，故 vertex-cover 屬於 NP
 檢查每一 edge 是否皆與 k 個 vertex 連接同一組合

b

a                       d
G has a vertex cover containing
c
{b,c}             2 vertices,{b,c}b,c 連接到所
有邊(=3)

{a,b,c,d} is vertex-cover

d
e                     d
c=(u,F)
c                                    f c

b                                                      b
g
a                                                       a                 h
G=(V,E)                                      G =(V, E )
K(=4)cliques

cligue  p vertex-cover

G=(V,E)，在 G 中含有一組 k clique，c=(u,f)，我們將建構 G =( V, E )是 G 的

complement graph，換言之， G 與 G 有相同的 vertex，若且唯若在 G 中不相連的

點，則在 G 會相連接。

2
 v-u 的點集合 cover 所有 G 的邊，如圖 v-u={a,e,d,h}cover G 的所有邊，因為在 G

v-u 是 G 的 vertex cover。

Reduce 花費多久完成

a   c       d   b                     a   c       d       b
e                                     e

G=(V,E) , |V|=n                            G =(V, E )
Size=3 之 clique c=(U,F)                   |V|=n
U={c,d,e}組成 clique
n-k 之 vertex-cover
V-U 點集合將涵蓋 G 的所有 edge，因為在 G
中 U 並無任何 edge 連接(即 c、d、e 間無何

邊相互連接)，a,b 兩點 cover G 之所有 edge

 G has a vertex cover of size n-k， G has a
vertex cover containing 2 vertices(即 a and b)
如果不成立，即不足 n-k 之 vertex-cover 表示
某一 edge 所連接的點在 U 中，而不在 V-U
中，亦即 C 亦非 clique。

3
欲建 complete graph，須

n          n!
C2 =
2!(n  2)!
n  (n  1)  (n  2)!
=
2!(n  2)!
n2  n
=
2

n!
C rn =
r!(n  r )!

is a set of vertices in G such that every vertex of G is either in D or is adjacent to at least
one vertex from D.

G 中每一節點如果不是在 Dominating set 中，就是連接至 Dominating set 之任一個
點
(一) dominating set  pNP：
We can guess a set of size <=k and check that it is a dominating set easily in polynomial
time.
vw

v                        w

vz                                          uw

vu
z                         u

zw
The dominating-set reduction

(二) Vertex-cover  p dominating set：將 G 轉換為 G ，轉換方法為：增加 |E| 個點

及 2 |E| 個 edge，如增加 vw 點及兩個邊到 v,w 兩點上，亦即將 G 每一邊轉
換為一三角形。此轉換花費時間為 O( |E| )，即在 polynomial-time 建構出 G
1. 設 D 為 G 的 dominating set，如果 D 包含任何新的 vertices vw，然後以 v

4
或 w 取代 vw，則 D 仍然是 dominating set(因 vw 涵蓋所有 vertices，亦為
v 及 w 所涵蓋)。為一般化起見，我們假定 D 僅包含 G 的 vertices。因為
D dominating 所有新的 vertices，因此它至少包含原來每一邊之其中一
點，故 D 亦是 vertex cover。
2. 反之；若 c 是 G 的 vertex cover，每一邊皆被 c 所 cover，因此所有新的
vertices 將被 Dominated，因為所有邊都被 cover，所有舊有 vertices 亦
dominated。

clique 定義：a clique C in G is a subgraph of G such that all vertices in C are connected to
all other vertices in C.

(一) clique problem  NP

(二) SAT  p clique：reduce SAT to clique problem，換言之，我們要使用 clique

問題的 solution 來解決 SAT。給予一 SAT 問題之 boolean expression E=
E1E2 …Em ，須將它(E)建構一對應的 Graph，建構方式：同一 column(同一 clause)
的 vertices 不相連，不同 column 的 vertices 相連，但互補的二變數例外，此種
建構需花費            ，故在 polynomial time 完成。
if E is satisfiable
則每一 clause 至少一變數的值為 1
且因不同 column 的互補的二 vertices 不相連，因此在 clause 中為 1 的
variable 必形成 clique，如 E1 中選 y，E2 中選 x 或 z (不可能選 y 為 1)，E3
選 y 或 z (若 E2 選 Z 則 E3 不選 z )
形成 size 為 3 的 clique
假定 G 包含 size  m 的 clique，此 clique 必須包含每一欄的一個 vertex，我們
將這些 vertex 相對應變數指派其值為 1，其他變數之值任意指派，因為在
clique 的所有 vertices 皆相互連接，且互補邊不相連，因此其 E 值為 1。換
言之，G has a clique of size  m，則 E is satisfiable。

x’
x
y
y           Y’

z’
z’
z
(x+y+z’).(x’+y’+z).(y+z’)

5

Let G=(V,E) be an undirected graph,. A valid coloring of G is an assignment of colors
to vertices such that each vertex is assigned one color and no two adjacent vertices
have the same color.
The problem: Given an undirected graph G=(V,E), determine whether G can be
colored with three colors.

(一)3-coloring  NP：我門能猜 3-coloring 且在 polynomial time 內檢查(verify)此
3-coloring 是否為 valid coloring of G，及檢查是否能以 3 color 為每一 vertex 塗
色且相鄰點沒有相同顏色，若是則為一 valid coloring of G，此檢查時間
polynomial-time(若 G 有 n 個 vertices，則檢查/檢驗的時間為 n 的數倍)

(二)3SAT  p 3-coloring: reduce 3SAT to the 3-coloring

1. 將 3SAT 之任一 instance E 建構成一 graph，使得 E is satisfiable iif G can be
3-colored：
假設 E 是 3SAT 的任一 instance，建構方式如下：
＊ 首先建立一三角形(main triangle)M，因 M 是三角形，故需要三種顏
色，我們顏色 T(for true)、F(for false)、A 標記在 M 上，但這些顏色都
不是圖形一部份，只是作為證明之用，後面我們將這些顏色與 E 變
數之真假值做結合。
＊ 對於 E 中每一變數我們將建立另一三角形，如 X，建立一三角形 Mx，
每一點分別標記 X 、 X 及 A，其中 A 是共同點。其中重要 idea 是，
如果 x 塗顏色 T，則 x 必須塗 F，與 boolean 之變數互補方式一致。
＊ 為達成每一 clause 至少一變數為 1，我們須繼續進行下列建構之程
序：假定 clause 為(x+y+z)，我們須加入 6 個新點且與現有點連接，其
中三點形成三角形(這三點為 internal，以 I 表之)，三角形外接三個稱
為 outer 點且其二分支分別連到 T 及 X 或 y 或 z 上，這個建構保證：
如果未使用超過三個以上的顏色，則 x,y,z 中至少有一點須塗 T(表示
一 clause 至少一變數為 1)，此時 o 塗 F。如果全部為 F，則連接它三
個新點(o)必須全部塗 A，(O 點鄰接 T，故 O 點不可塗 T，只能塗 F
或 A)，將造成 inner triangle 無法用三種顏色(A、T、F)塗完。
上述之建構過程在 polynomial time 內可完成。

6
x         x
y                             z
z
y
A

T                         F
The first part of the construction in the reduction of 3SAT to 3-coloring

2. 下列證明：
(1) if E is satisfiable , then G can be colored with three colors:如 E 是
satisfiable , then there is a satisfiable truth assignment:換言之，每一
clause 至少有一變數之值為 1，在途中我們將變數結合之點進行
塗色，若變數為 1 則塗 T，否則塗 F，因每一 clause 至少一變數
為 1，且其連接之 outer vertex 塗 F，而 clause 中其他變數所連接
outer vertex 則塗 A，如此 inner triangle 則能以三顏色塗完。換言
之，G can be colored with 3 colors.

F    A      T       A
Inner Triangle 塗色範
F                    例，外圍 O 塗 F、A、A
A                則 I 塗 A、T、F；若外圍
O 塗 A、A、A 則 I 無法
以 A、T、F 完成
(2) if G can be colored with three colors, then E is satisfiable：在建立變數

之三角形，如 X 變數，則其二點( x, x )必須分別為 T 及 F 在建構

3SAT 之 G 中，保証每一 clause 中至少一變數塗 T，換言之 E 必
然 satisfiable。(反証法：若 3SAT 無解，則變數對應之 outer vertex
皆須塗 A 則 inner triangle 無法以 3 顏色塗完)

7
x                   T
O
I

I                                           I
y    O                                                   z
O
T                            T
The subgraphs corresponding to the
clauses in the reduction of 3SAT to 3-coloring

y       y

x                           z
z
x
A

F

T

The graph corresponding to (x+y+z)。(x+y+z)

8

```
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
 views: 29 posted: 5/26/2012 language: simple pages: 8