Chuong34

48
Ch¬ng 34 TÝnh ®Çy ®ñ cña bµi to¸n NP HÇu hÕt c¸c thuËt to¸n mµ chóng ta nghiªn cøu ®Òu ®¹t ®Õn thêi gian ®a thøc (polynomial- time algorithms): víi ®Çu vµo cã kÝch thíc n, thêi gian trong trêng hîp xÊu nhÊt lµ O(n k ) víi k lµ h»ng sè. DÜ nhiªn nã muèn biÕt toµn bé c¸c bµi to¸n cã thÓ ®îc gi¶i víi thêi gian ®a thøc kh«ng ? C©u tr¶ lêi lµ kh«ng. VÝ dô, cã c¸c bµi to¸n nh bµi to¸n Turing næi tiÕng “Halting Problem” cã thÓ kh«ng gi¶i ®îc bëi bÊt cø m¸y tÝnh nµo, nªn thêi gian ch¹y kµ bao nhiªu ®Òu kh«ng thµnh vÊn ®Ò. Nh vËy c¸c bµi to¸n cã thÓ gi¶i ®îc nhng kh«ng ph¶i víi thêi gian O(n k ) víi h»ng sè k. Nh×n chung chóng ta ®Òu nghÜ c¸c bµi to¸n gi¶i ®îc víi thêi gian ®a thøc th× cã thÓ kiÓm so¸t hoÆc dÔ vµ c¸c bµi to¸n ®ã ®ßi hái thuËt to¸n siªu ®a thøc hoÆc kh«ng thÓ kiÓm so¸t hoÆc khã. §èi tîng cña ch¬ng nµy lµ quan t©m ®Õn mét líp c¸c bµi to¸n gäi lµ NP- ®ñ (Np- complet), c¸c tr¹ng th¸i cña bµi to¸n ®Òu kh«ng biÕt. ThuËt to¸n víi thêi gian phi ®a thøc ®îc kh¸m ph¸ cho mçi bµi to¸n NP- ®ñ, kh«ng chØ cã thÓ chøng minh r»ng thuËt to¸n phi ®a thøc mµ cßn cã thÓ cho mét bµi to¸n bÊt kú cña NP- ®ñ. Do vËy cã thÓ gäi c©u hái P NP lµ mét trong nh÷ng c©u hái s©u nhÊt, tÊt c¶ sù phøc t¹p më ra cho bµi to¸n trong khoa häc lý thuyÕt m¸y tÝnh tõ khi nã xuÊt hiÖn lÇn ®Çu vµo n¨m 1971. §Æt biÖt chí trªu lµ vÒ ph¬ng diÖn bµi to¸n NP- ®ñ lµ mét sè bµi to¸n giêng nh lµ bÒ ngoµi cña chóng gièng nh bµi to¸n ch¹y víi thêi gian ®a thøc . Theo mçi cÆp bµi to¸n mét lµ gi¶i ®îc víi thêi gian ®a thøc vµ cßn l¹i lµ NP- ®ñ, nhng sù kh¸c biÖt xuÊt hiÖn gi÷a c¸c bµi to¸n nµy lµ kh«ng ®¸ng kÓ. C¸c ®êng dÉn ®¬n ng¾n nhÊt ®èi víi c¸c ®êng dÉn ®¬n dµi nhÊt: Trong ch¬ng 24, ta thÊy r»ng thËm chÝ víi khèi lîng c¹nh ©m, ta cã thÓ t×m ®êng dÉn ng¾n nhÊt tõ mét nguån ®¬n trong mét ®å thÞ cã híng G= (V, E) b»ng thêi gian O(V E). T×m ®êng dÉn ®¬n dµi nhÊt gi÷a hai ®Ønh lµ NP- ®ñ. Nãi ®óng h¬n, nã lµ NP- ®ñ nÕu thËm chÝ tÊt c¶ c¸c khèi lîng c¹nh lµ 1. Vßng Euler víi chu tr×nh Haminton:Mét vßng Euler cña mét ®å thÞ cã híng liªn th«ng G= (V, E) lµ mét chu tr×nh ®i qua mçi c¹nh cña G ®óng mét lÇn, mÆc dï nã cã thÓ gÆp ®Ønh lín h¬n mét lÇn. Theo bµi to¸n 22-3, ta cã thÓ x¸c ®Þnh khi nµo mét ®å thÞ cã mét chu tr×nh Euler trong thêi gian O(E). Thùc vËy, ta cã thÓ t×m c¸c c¹nh cña vßng Euler trong thêi gian O(E). Mét chu tr×nh Haminton cña mét ®å thÞ cã híng G= (V, E) lµ mét chu tr×nh ®¬n chøa c¸c ®Ønh cña V. ViÖc x¸c ®Þnh khi nµo mét ®å thÞ cã híng cã chu tr×nh Haminton hay kh«ng lµ NP- ®ñ. (ë cuèi ch¬ng nµy chóng ta sÏ chøng minh r»ng mét ®å thÞ v« híng cã mét chu tr×nh Haminton hay kh«ng lµ NP- ®ñ). Sù tho¶ ®îc cña 2- CNF víi sù tho¶ ®îc cña 3- CNF: Mét c«ng thøc logic (Boolean) chøa c¸c biÕn mµ gi¸ trÞ cña nã lµ 0 vµ 1; c¸c phÐp to¸n logic nh: (AND), (OR) (NOT); vµ dÊu ngoÆc. Mét c«ng thøc logic lµ tho¶ ®îc nÕu cã mét sè gi¸ trÞ cña biÕn cã thÓ lµm cho gi¸ trÞ cña c«ng thøc. Chóng ta sÏ ®Þnh nghÜa c¸c tõ mét c¸ch chÝnh quy ë cuèi ch¬ng nµy. Tuy nhiªn nãi mét c¸ch kh«ng chÝnh thøc mét c«ng thøc logic lµ mét k- chuÈn liªn hîp hay k- CNF, nÕu nã lµ héi (AND) c¸c mÖnh ®Ò tuyÓn (OR) cña ®óng k biÕn hoÆc phñ ®Þnh cña nã. VÝ dô, c«ng thøc logic

Transcript of Chuong34

Page 1: Chuong34

Ch­¬ng 34 TÝnh ®Çy ®ñ cña bµi to¸n NP

HÇu hÕt c¸c thuËt to¸n mµ chóng ta nghiªn cøu ®Òu ®¹t ®Õn thêi gian ®a thøc

(polynomial- time algorithms): víi ®Çu vµo cã kÝch th­íc n, thêi gian trong tr­êng hîp xÊu nhÊt lµ O(nk) víi k lµ h»ng sè. DÜ nhiªn nã muèn biÕt toµn bé c¸c bµi to¸n cã thÓ ®­îc gi¶i víi thêi gian ®a thøc kh«ng ? C©u tr¶ lêi lµ kh«ng. VÝ dô, cã c¸c bµi to¸n nh­ bµi to¸n Turing næi tiÕng “Halting Problem” cã thÓ kh«ng gi¶i ®­îc bëi bÊt cø m¸y tÝnh nµo, nªn thêi gian ch¹y kµ bao nhiªu ®Òu kh«ng thµnh vÊn ®Ò. Nh­ vËy c¸c bµi to¸n cã thÓ gi¶i ®­îc nh­ng kh«ng ph¶i víi thêi gian O(nk) víi h»ng sè k. Nh×n chung chóng ta ®Òu nghÜ c¸c bµi to¸n gi¶i ®­îc víi thêi gian ®a thøc th× cã thÓ kiÓm so¸t hoÆc dÔ vµ c¸c bµi to¸n ®ã ®ßi hái thuËt to¸n siªu ®a thøc hoÆc kh«ng thÓ kiÓm so¸t hoÆc khã.

§èi t­îng cña ch­¬ng nµy lµ quan t©m ®Õn mét líp c¸c bµi to¸n gäi lµ NP- ®ñ (Np- complet), c¸c tr¹ng th¸i cña bµi to¸n ®Òu kh«ng biÕt. ThuËt to¸n víi thêi gian phi ®a thøc ®­îc kh¸m ph¸ cho mçi bµi to¸n NP- ®ñ, kh«ng chØ cã thÓ chøng minh r»ng thuËt to¸n phi ®a thøc mµ cßn cã thÓ cho mét bµi to¸n bÊt kú cña NP- ®ñ. Do vËy cã thÓ gäi c©u hái P NP lµ mét trong nh÷ng c©u hái s©u nhÊt, tÊt c¶ sù phøc t¹p më ra cho bµi to¸n trong khoa häc lý thuyÕt m¸y tÝnh tõ khi nã xuÊt hiÖn lÇn ®Çu vµo n¨m 1971.

§Æt biÖt chí trªu lµ vÒ ph­¬ng diÖn bµi to¸n NP- ®ñ lµ mét sè bµi to¸n gi­êng nh­ lµ bÒ ngoµi cña chóng gièng nh­ bµi to¸n ch¹y víi thêi gian ®a thøc . Theo mçi cÆp bµi to¸n mét lµ gi¶i ®­îc víi thêi gian ®a thøc vµ cßn l¹i lµ NP- ®ñ, nh­ng sù kh¸c biÖt xuÊt hiÖn gi÷a c¸c bµi to¸n nµy lµ kh«ng ®¸ng kÓ.

C¸c ®­êng dÉn ®¬n ng¾n nhÊt ®èi víi c¸c ®­êng dÉn ®¬n dµi nhÊt: Trong ch­¬ng 24, ta thÊy r»ng thËm chÝ víi khèi l­îng c¹nh ©m, ta cã thÓ t×m ®­êng dÉn ng¾n nhÊt tõ mét nguån ®¬n trong mét ®å thÞ cã h­íng G= (V, E) b»ng thêi gian O(V E). T×m ®­êng dÉn ®¬n dµi nhÊt gi÷a hai ®Ønh lµ NP- ®ñ. Nãi ®óng h¬n, nã lµ NP- ®ñ nÕu thËm chÝ tÊt c¶ c¸c khèi l­îng c¹nh lµ 1.

Vßng Euler víi chu tr×nh Haminton:Mét vßng Euler cña mét ®å thÞ cã h­íng liªn

th«ng G= (V, E) lµ mét chu tr×nh ®i qua mçi c¹nh cña G ®óng mét lÇn, mÆc dï nã cã

thÓ gÆp ®Ønh lín h¬n mét lÇn. Theo bµi to¸n 22-3, ta cã thÓ x¸c ®Þnh khi nµo mét ®å

thÞ cã mét chu tr×nh Euler trong thêi gian O(E). Thùc vËy, ta cã thÓ t×m c¸c c¹nh cña

vßng Euler trong thêi gian O(E). Mét chu tr×nh Haminton cña mét ®å thÞ cã h­íng

G= (V, E) lµ mét chu tr×nh ®¬n chøa c¸c ®Ønh cña V. ViÖc x¸c ®Þnh khi nµo mét ®å

thÞ cã h­íng cã chu tr×nh Haminton hay kh«ng lµ NP- ®ñ. (ë cuèi ch­¬ng nµy chóng

ta sÏ chøng minh r»ng mét ®å thÞ v« h­íng cã mét chu tr×nh Haminton hay kh«ng lµ

NP- ®ñ).

Sù tho¶ ®­îc cña 2- CNF víi sù tho¶ ®­îc cña 3- CNF: Mét c«ng thøc logic (Boolean)

chøa c¸c biÕn mµ gi¸ trÞ cña nã lµ 0 vµ 1; c¸c phÐp to¸n logic nh­: (AND), (OR)

vµ (NOT); vµ dÊu ngoÆc. Mét c«ng thøc logic lµ tho¶ ®­îc nÕu cã mét sè gi¸ trÞ

cña biÕn cã thÓ lµm cho gi¸ trÞ cña c«ng thøc. Chóng ta sÏ ®Þnh nghÜa c¸c tõ mét

c¸ch chÝnh quy ë cuèi ch­¬ng nµy. Tuy nhiªn nãi mét c¸ch kh«ng chÝnh thøc mét

c«ng thøc logic lµ mét k- chuÈn liªn hîp hay k- CNF, nÕu nã lµ héi (AND) c¸c

mÖnh ®Ò tuyÓn (OR) cña ®óng k biÕn hoÆc phñ ®Þnh cña nã. VÝ dô, c«ng thøc logic

Page 2: Chuong34

(x1 x2) (x1 x3 ) (x2 x3) lµ 2- CNF. (Nã tho¶ ®­îc víi x1= 1, x2= 0, x3=

1.) Kh«ng cã thuËt to¸n ®a thøc x¸c ®Þnh mét c«ng thøc 2- CNF lµ tho¶ ®­îc nh­ng

chóng ta sÏ xem sau ë cuèi ch­¬ng nµy, viÖc x¸c ®Þnh c«ng thøc 3- CNF tho¶ ®­îc

lµ bµi to¸n NP- ®ñ.

NP- ®ñ vµ c¸c líp bµi to¸n P vµ NP

Th«ng qua ch­¬ng nµy, chóng ta sÏ ®Ò cËp ®Õn ba líp bµi to¸n: P, NP vµ NPC, cuèi cïng lµ c¸c bµi to¸n NP- ®ñ. ë ®©y chóng ta sÏ kh«ng m« t¶ chóng theo h×nh thøc mµ sÏ ®Þnh nghÜa chóng mét c¸ch chuÈn x¸c h¬n ë phÇn sau.

Líp P bao gåm c¸c bµi to¸n cã thÓ gi¶i ®­îc trong thêi gian ®a thøc. §iÒu ®ã cã nghÜa lµ ë ®©y b»ng c¸ch ®­a ra mét x¸c nhËn cña lêi gi¶i, sau ®ã ta cã thÓ kiÓm tra r»ng chøng minh ®óng víi thêi gian ®a thøc trong kÝch th­íc ®Çu vµo cña bµi to¸n. VÝ dô, trong bµi to¸n chu tr×nh Euler, cho mét ®å thÞ cã h­íng G= (V, E), mét chøng minh sÏ lµ d·y tuÇn

tù <v1, v2, .., v|V|> cña |V| ®Ønh. DÔ dµng kiÓm tra (vi, vi+1) E víi i= 1, 2, 3, , |V|-1 vµ

(v|V|, v) E trong thêi gian ®a thøc. Do vËy mét vÝ dô kh¸c vÒ tÝnh tho¶ ®­îc cña 3- CNF. Chøng minh lµ dÊu hiÖu tho¶ ®­îc cña gi¸ trÞ c¸c biÕn. Chóng ta dÔ dµng kiÓm tra dÊu hiÖu tho¶ ®­îc cña biÓu thøc logic trong thêi gian ®a thøc.

Mét bµi to¸n bÊt kú trong P kÓ c¶ NP, nÕu mét bµi to¸n trong P cã thÓ gi¶i ®­îc trong thêi gian ®a thøc mµ kh«ng ph¶i ®­a ra lêi chøng minh. Ta sÏ chuÈn ho¸ kh¸i niÖm nµy ë phÇn sau cña ch­¬ng nh­ng ta cã thÓ tin r»ng P NP. C©u hái më lµ P cã ph¶i lµ tËp con cña NP hay kh«ng ?

Mét c¸ch kh«ng chÝnh thøc, mét bµi to¸n trong líp NPC vµ chóng ta ®Ò cËp ®Õn chóng nh­ bµi to¸n NP- ®ñ nÕu nã ë trong NP vµ “khã” nh­ bµi to¸n bÊt kú trong NP. Chóng ta sÏ chuÈn ho¸ ®Þnh nghÜa nã chóng khã nh­ c¸c bµi to¸n trong NP sÏ nh¾c ®Õn trong ch­¬ng nµy. Trong khi ®ã, chóng ta sÏ ph¸t biÓu mµ kh«ng chøng minh r»ng nÕu mét bµi to¸n NP- ®ñ cã thÓ gi¶i ®­îc trong thêi gian ®a thøc vµ mäi bµi to¸n Np -®ñ cã gi¶i thuËt ®a thøc. Toµn bé lý thuyÕt khoa häc m¸y tÝnh ®Òu tin r»ng c¸c bµi to¸n Np- ®ñ ®Òu khã gi¶i, tõ ®ã trong ph¹m vi réng cña c¸c bµi to¸n NP -®ñ ®­îc nghiªn cøu h«m nay mµ kh«ng sù kh¸m ph¸ nµo cã lêi gian trong thêi gian ®a thøc. SÏ thùc sù ng¹c nhiªn nÕu tÊt c¶ c¸c bµi to¸n nµy cã thÓ ®­îc gi¶i trong thêi gian ®a thøc. Víi nh÷ng cè g¾ng rÊt lín ®Ó chøng minh r»ng bµi to¸n NP- ®ñ lµ kh«ng gi¶i ®­îc vµ chóng ta ®· kh«ng cã kÕt qu¶ cuèi cïng. Chóng ta kh«ng thÓ ®­a ra ®­îc c¸c ®iÒu kiÖn ®Ó kh¼ng ®Þnh r»ng c¸c bµi to¸n NP- ®ñ thùc sù gi¶i ®­îc trong thêi gian ®a thøc.

§Ó trë thµnh mét nhµ thiÕt kÕ thuËt to¸n tèt b¹n ph¶i hiÓu c¸c nguyªn lý c¬ b¶n cña lý thuyÕt vÒ NP- ®ñ. NÕu b¹n cã thÓ thiÕt lËp mét bµi to¸n d¹ng NP- ®ñ b¹n ®· ®­a ra c¸c b»ng chøng x¸c ®¸ng cho tÝnh kh«ng gi¶i ®­îc cña nã. Nh­ mét kü s­ b¹n sÏ sö dông thêi gian mét c¸ch tèt h¬n cho viÖc ph¸t triÓn thuËt to¸n xÊp xØ (xem ch­¬ng 35) hay gi¶i trong tr­êng hîp cã thÓ kiÓm so¸t, cßn h¬n lµ viÖc t×m kiÕm thuËt to¸n nhanh ®Ó gi¶i mét c¸ch chÝnh x¸c. H¬n n÷a rÊt nhiÒu bµi to¸n tù nhiªn thó vÞ mµ bÌ ngoµi cã vÎ nh­ kh«ng hÒ khã h¬n viÖc s¾p xÕp, biÓu ®å t×m kiÕm hay luång m¹ng thùc sù lµ NP- ®ñ. Do ®ã nã rÊt quan träng cho viÖc lµm cho ®¬n gi¶n mét phÇn ®¸ng kÓ cho líp c¸c bµi.

Kh¸i qu¸t cña viÖc chØ ra c¸c bµi to¸n lµ NP- ®ñ

Kü thuËt mµ chóng ta sö dông ®Ó chØ ra r»ng mét ®Æc ®iÓm riªng cña bµi to¸n lµ NP- ®ñ khã kü thuËt mµ chóng ta sö dông th«ng qua toµn bé cuèn s¸ch nµy ®Ó thiÕt kÕ vµ ph©n tÝch c¸c thuËt to¸n. NÒn t¶ng cña lý do lµm cho nã kh¸c biÖt lµ: trong viÖc chØ ra mét bµi

Page 3: Chuong34

to¸n lµ NP- ®ñ, chóng ta ®¸nh dÊu tr¹ng th¸i xung quanh viÖc xem nã khã ®Õn møc ®é nµo (hay cïng l¾m lµ xem chóng ta nghÜ nã khã ®Õn møc ®é nµo), dÜ nhiªn lµ kh«ng hái nã dÔ nh­ thÕ nµo ?. Chóng ta kh«ng cè g¾ng chøng minh sù tån t¹i mét thuËt to¸n hiÖu qu¶ h¬n lµ sù tån t¹i mét thuËt to¸n kh«ng hiÖu qu¶. Theo c¸ch nµy, viÖc chøng minh bµi to¸n NP- ®ñ phÇn nµo ®ã gièng chøng minh ë trong môc 8.1 víi ®é phøc t¹p trong tr­êng hîp xÊu nhÊt lµ (n lg n) cho sù so s¸nh thuËt to¸n s¾p xÕp bÊt kú; kü thuËt ®Æc biÖt ®­îc sö dông ®Ó chØ ra sù kh¸c nhau gi÷a c¸c bµi to¸n NP- ®ñ víi ph­¬ng ph¸p chia c©y sö dông trong phÇn 8.1

Chóng ta tin vµo ba kh¸i niÖm ch×a kho¸ cho viÖc chØ ra bµi to¸n lµ NP- ®ñ.

C¸c bµi to¸n quyÕt ®Þnh vµ c¸c bµi to¸n tèi ­u

Cã rÊt nhiÒu bµi to¸n hay lµ c¸c bµi to¸n tèi ­u, trong ®ã mçi lêi decigi¶i kh¶ khi (i.e. “legal”) ®Òu g¾n víi gi¸ trÞ, vµ chóng ta mong muèn t×m ra lêi gi¶i kh¶ thi víi gi¸ trÞ tèt nhÊt. VÝ dô, trong mét bµi to¸n mµ chóng ta gäi lµ ®­êng ®i ng¾n nhÊt SHORTEST- PATH, chóng ta lÊy mét ®å thÞ v« h­íng G vµ c¸c ®Ønh u, v, vµ chóng ta mong muèn t×m ®­êng ®­êng ®i tõ u sang v víi c¸c c¹nh ng¾n nhÊt. (Trong tr­êng hîp kh¸c SHORTEST- PATH lµ cÆp ®¬n bµi to¸n ®­êng ®i ng¾n nhÊt trong tr­êng hîp phi träng sè cña ®å thÞ v« h­íng.) NP- ®ñ kh«ng øng dông trùc tiÕp trong c¸c bµi to¸n tèi ­u. Tuy nhiªn c¸c bµi to¸n ph¸n quyÕt mµ c©u tr¶ lêi ®¬n gi¶n lµ “yes” hoÆc “no” (hoÆc chuÈn t¾c h¬n lµ “1” hoÆc “0”).

MÆc dï viÖc chØ ra mét bµi to¸n lµ NP- ®ñ cã nhiÒu h¹n chÕ trong c¸c bµi to¸n quyÕt ®Þnh nh­ng cã mét mèi quan hÖ thÝch hîp gi÷a c¸c bµi to¸n tèi ­u vµ c¸c bµi to¸n quyÕt ®Þnh. Th«ng th­êng chóng ta cã thÓ coi mét bµi to¸n tèi ­u nh­ mét bµi to¸n quyÕt ®Þnh quan hÖ bëi mét giíi h¹n c¸c gi¸ trÞ ®ñ m¹nh ®Ó cã thÓ ®¹t tíi tèi ­u. Víi SHORTEST- PATH vÝ dô, mét bµi to¸n quyÕt ®Þnh quan hÖ mµ chóng ta gäi lµ PATH cã nghÜa lµ víi mét ®å thÞ v« h­íng G, c¸c ®Ønh u, v vµ mét sè nguyªn k, tån t¹i mét ®­êng ®i tõ u sang v cã tÊt c¶ k c¹nh.

Mèi quan hÖ gi÷a mét bµi to¸n tèi ­u vµ bµi to¸n quyÕt ®Þnh quan hÖ víi nã cã chiÒu h­íng tèt khi chóng ta cè g¾ng chØ ra r»ng bµi to¸n tèi ­u lµ “khã” bëi v× bµi to¸n quyÕt ®Þnh cã c¶m gi¸c lµ dÔ h¬n hoÆc kh«ng khã h¬n nh­ mét tr­êng hîp ®Æc biÖt, chóng ta cã thÓ gi¶i quyÕt ®­êng ®i b»ng c¸ch chØ ra ®­êng ®i ng¾n nhÊt sau ®ã so s¸nh sè c¸c c¹nh trong ®­êng ®i ng¾n nhÊt t×m ®­îc víi gi¸ trÞ cña bµi to¸n quyÕt ®Þnh tham sè k. Nãi c¸ch kh¸c nÕu mét bµi to¸n tèi ­u lµ dÔ, bµi to¸n quyÕt ®Þnh quan hÖ víi nã còng dÔ nh­ vËy. Ph¸t biÓu d­íi d¹ng cã nhiÒu mèi liªn hÖ víi tÝnh NP- ®ñ, nÕu ta cã thÓ cung cÊp nh÷ng b»ng chøng r»ng mét bµi to¸n quyÕt ®Þnh lµ khã, chóng ta còng cung cÊp nh÷ng b»ng chøng mµ bµi to¸n tèi ­u liªn hÖ víi nã lµ khã. Do ®ã, mÆc dï h¹n chÕ sù chó ý tíi bµi to¸n quyÕt ®Þnh, lý thuyÕt vÒ tÝnh NP- ®ñ th­êng cã nh÷ng øng dông cho bµi to¸n tèi ­u.

Rót gän

Chó ý ë trªn vÒ viÖc chØ ra r»ng bµi to¸n lµ kh«ng khã h¬n hoÆc kh«ng dÔ h¬n mét øng dông kh¸c thËm chÝ khi c¶ hai bµi to¸n lµ nh÷ng bµi to¸n quyÕt ®Þnh. Ta sÏ dïng tiÖn lîi nµy trong hÇu hÕt c¸c chøng minh tÝnh NP - ®ñ sau ®©y. Tr­íc hÕt nãi vÒ bµi to¸n quyÕt ®Þnh, gäi lµ A, ta cã thÓ gi¶i quyÕt trong thêi gian ®a thøc. Chóng ta gäi ®Çu vµo cña mét bµi to¸n kú dÞ lµ mét minh ho¹ cña bµi to¸n ®ã; vÝ dô, trong ®­êng ®i, mét minh ho¹ cã thÓ lµ mét ®å thÞ G kú dÞ, c¸c ®Ønh kú dÞ u vµ v cña G, vµ mét sè nguyªn kú dÞ k. B©y giê gi¶i sö r»ng cã mét bµi to¸n quyÕt ®Þnh kh¸c, gäi lµ B mµ chóng ta ®· biÕt c¸ch gi¶i trong

Page 4: Chuong34

thêi gian ®a thøc. Cuèi cïng gi¶ sö r»ng chóng ta cã mét qu¸ tr×nh chuyÓn bÊt kú mét minh ho¹ cña A vµo mét minh ho¹ nµo ®ã cña B víi nh÷ng ®Æc tÝnh sau:

1. PhÐp chuyÓn diÔn ra trong thêi gian ®a thøc.

2. C¸c c©u tr¶ lêi lµ nh­ nhau. NghÜa lµ, c©u tr¶ lêi cho lµ ®óng khi vµ chØ khi c©u tr¶

lêi cho còng ®óng.

H×nh 34.1

Chóng ta gäi mét qu¸ tr×nh thêi gian ®a thøc nh­ thÕ lµ thuËt to¸n rót gän vµ, xem h×nh vÏ 34.1, nã ®­a ra cho chóng ta mét c¸ch ®Ó gi¶i quyÕt bµi to¸n A trong thêi gian ®a thøc:

1. Cho tr­íc mét minh ho¹ cña bµi to¸n A, dïng thuËt to¸n rót gän thêi gian ®a thøc

®Ó chuyÓn nã vµo mét minh ho¹ cña bµi to¸n B.

2. Ch¹y thuËt to¸n quyÕt ®Þnh trong thêi gian ®a thøc cho bµi to¸n B trªn minh ho¹ .

3. Sö dông c©u tr¶ lêi cña cho c©u tr¶ lêi cña .

MiÔn lµ mçi b­íc trong c¸c b­íc nµy diÔn ra trong thêi gian ®a thøc, th× tÊt c¶ ba b­íc ®ã còng diÔn ra trong thêi gian ®a thøc, do ®ã chóng ta cã mét c¸ch ®Ó quyÕt ®Þnh trªn trong thêi gian ®a thøc. Nãi c¸ch kh¸c, b»ng c¸ch rót gän viÖc gi¶i bµi to¸n A b»ng gi¶i bµi to¸n B, chóng ta sö dông “”TÝnh ®¬n gi¶n”” cña B ®Ó chøng minh “”tÝnh ®¬n gi¶n”” cña A.

Nh¾c l¹i r»ng tÝnh NP- ®ñ lµ ®Æc tr­ng cho sù khã vµ dÔ cña mét bµi to¸n. Chóng ta sö dông c¸c rót gän ®a thøc theo c¸ch ®èi lËp ®Ó chØ ra r»ng mét bµi to¸n lµ NP- ®ñ. TiÕp tôc sö dông ý t­ëng vÒ c¸c b­íc, vµ chØ ra r»ng chóng ta cã thÓ sö dông c¸c rót gän ®a thøc nh­ thÕ nµo ®Ó chøng minh r»ng mét thuËt to¸n thêi gian ®a thøc cã thÓ tån t¹i cho mét bµi to¸n B kú dÞ. Gi¶ sö chóng ta cã mét bµi to¸n quyÕt ®Þnh A mµ chóng ta ®· biÕt kh«ng cã mét thuËt to¸n ®a thøc nµo ®Ó gi¶i quyÕt. (hiÖn t¹i chóng ta kh«ng quan t©m ®Õn viÖc t×m ra bµi to¸n A nh­ thÕ). H¬n n÷a gi¶ sö r»ng chóng ta cã mét rót gän ®a thøc chuyÓn c¸c minh ho¹ cña A vµo c¸c minh ho¹ cña B. B©y giê ta cã thÓ sö dông mét chøng minh ®¬n gi¶n b»ng ph¶n chøng ®Ó chØ ra r»ng kh«ng cã mét thuËt to¸n thêi gian ®a thøc nµo ®Ó gi¶i quyÕt B. Gi¶ sö ng­îc l¹i, B cã mét thuËt to¸n thêi gian ®a thøc. Khi ®ã, dïng ph­¬ng ph¸p chØ ra trong h×nh vÏ 34.1 chóng ta cã mét ph­¬ng ph¸p ®Ó gi¶i bµi to¸n A trong thêi gian ®a thøc. Tr¸i víi gi¶ thiÕt r»ng kh«ng cã thuËt to¸n ®a thøc nµo cho A.

Víi tÝnh NP- ®ñ, chóng ta kh«ng thÓ gi¶ sö r»ng hoµn to¸n kh«ng cã mét thuËt to¸n ®a thøc cho bµi to¸n A. C¸ch chøng minh lµ t­¬ng tù, tuy nhiªn, chóng ta chøng minh r»ng bµi to¸n B lµ NP- ®ñ víi gi¶i thiÕt r»ng bµi to¸n A còng lµ NP- ®ñ.

Page 5: Chuong34

Bµi to¸n NP- ®ñ thø nhÊt

Bëi v× kü kü thuËt rót gän dùa vµo viÖc cã s½n mét bµi to¸n ®· biÕt lµ NP- ®ñ ®Ó chøng minh mét bµi to¸n NP- ®ñ kh¸c, chóng ta cÇn mét bµi to¸n NP- ®ñ “®Çu tiªn”. Bµi to¸n mµ chóng ta sÏ dïng lµ bµi to¸n phï hîp m¹ng, ë ®ã ta ®­îc ®­a ra mät m¹ng tæ hîp logic t¹o thµnh tõ c¸c cæng AND, OR vµ NOT, vµ chóng ta muèn biÕt khi nµo cã mét tËp c¸c ®Çu vµo logic cho c¸c m¹ng nµy ®Ó t¹o ra ®Çu ra cña nã lµ 1. Chóng ta cã thÓ chøng minh r»ng bµi to¸n ®Çu tiªn nµy lµ NP- ®ñ trong môc 34.3.

Ch­¬ng ph¸c th¶o

Ch­¬ng nµy nghiªn cøu c¸c khÝa c¹nh cña tÝnh NP- ®ñ ¶nh h­ëng trùc tiÕp ®Õn sù ph©n tÝch c¸c thuËt to¸n. Trong môc 34.1 chóng ta chuÈn ho¸ c¸c kh¸i niÖm cña bµi to¸n vµ ®Þnh nghÜa líp phøc P cña c¸c bµi to¸n quyÕt ®Þnh gi¶i ®­îc ®a thøc. Chóng ta còng chØ ra nh÷ng ký hiÖu nµy phï hîp víi c¬ cÊu ng«n ng÷ chuÈn nh­ thÕ nµo. Môc 34.2 ®Þnh nghÜa líp NP cña c¸c bµi to¸n quyÕt ®Þnh mµ lêi gi¶i cña nã cã thÓ kiÓm chøng trong thêi gian ®a thøc. Nã còng ®­a ra c©u hái P kh¸c NP.

Môc 34.3 sÏ ®­a ra c¸c mèi quan hÖ gi÷a c¸c bµi to¸n cã thÓ ®­îc nghiªn cøu th«ng qua rót gän ®a thøc nh­ thÕ nµo. Nã ®Þnh nghÜa tÝnh NP- ®ñ vµ ph¸c ho¹ mét chøng minh cho bµi to¸n phï hîp m¹ng lµ NP- ®ñ. Khi ®· t×m ®­îc mét bµi to¸n NP -®ñ, chóng ta sÏ ®­a ra trong môc 34.4 r»ng c¸c bµi to¸n kh¸c cã thÓ ®­îc chøng minh lµ NP- ®ñ sÏ dÔ dµng h¬n rÊt nhiÒu b»ng ph­¬ng ph¸p rót gän. Ph­¬ng ph¸p ë ®©y ®­îc minh ho¹ b»ng viÖc chØ ra r»ng hai bµi to¸n phï hîp c«ng thøc lµ NP- ®ñ. Mét khèi l­îng lín c¸c bµi to¸n kh¸c ®­îc chøng minh lµ NP- ®ñ trong môc 32.5.

34.1 Thêi gian ®a thøc

Chóng ta b¾t ®Çu nghiªn cø tÝnh NP- ®ñ b»ng c¸ch chuÈn ho¸ c¸c kh¸i niÖm c¸c bµi to¸n gi¶i ®­îc ®a thøc. Nh÷ng bµi to¸n nµy nh×n chung ®­îc ®¸nh gi¸ lµ cã kh¶ n¨ng kiÓm so¸t nh­ng víi triÕt häc, phi to¸n häc chóng ta ®­a ra ba ®iÒu tranh luËn.

Thø nhÊt, mÆc dï lµ hîp lý cho viÖc ®¸nh gi¸ mét bµi to¸n ®ßi hái thêi gian lµ (n100) lµ khã kiÓm so¸t ®­îc, thùc tÕ cã rÊt Ýt bµi to¸n ®ßi hái thêi gian lµ ®a thøc bËc cao. Thêi gian ®a thøc ®Ó tÝnh to¸n kiÓu c¸c bµi to¸n b¾t gÆp th­êng ®ßi hái thêi gian Ýt h¬n. Kinh nghiÖm cho thÊy cã thÓ chØ ra ngay r»ng thuËt to¸n ®a thøc ®Ó gi¶i mét bµi to¸n hiÖu qu¶ th­êng cã thêi gian thÊp h¬n. ThËm chÝ nÕu thuËt to¸n tèt nhÊt hiÖn nay cho mét bµi to¸n ch¹y trong thêi gian lµ (n100) th× nã còng gièng nh­ thuËt to¸n víi thêi gian ch¹y tèt h¬n sÏ ®­îc t×m ra.

Thø hai, víi nhiÒu m« h×nh tÝnh to¸n hîp lý, mét bµi to¸n gi¶i ®­îc trong thêi gian ®a thøc trong mét m« h×nh cã thÓ gi¶i ®­îc trong thêi gian ®a thøc kh¸c. VÝ dô, líp c¸c bµi to¸n gi¶i ®­îc trong thêi gian ®a thøc b»ng chuçi truy nhËp ngÉu nhiªn vµo ®­îc sö dông trong c¶ cuèn s¸ch nµy gièng nh­ líp c¸c bµi to¸n gi¶i ®­îc trong thêi gian ®a thøc tãm t¾t trªn m¸y Turing 1 Nã còng gièng nh­ líp c¸c bµi to¸n gi¶i ®­îc trong m¸y tÝnh song song khi sè c¸c xö lý ®¹t tíi ®a thøc trong kÝch th­íc ®Çu vµo.

1 Xem Hopcroft vµ Ultman [156] hoÆc Lewis vµ Papadimitriou [204] cho mét xö lý trän vÑn cña m«

h×nh m¸y Turing.

Page 6: Chuong34

Thø ba, líp c¸c bµi to¸n gi¶i ®­îc cã c¸c thuéc tÝnh ®ãng tèt, tõ ®ã c¸c ®a thøc ®­îc ®ãng víi c¸c phÐp céng, phÐp nh©n vµ phÐp hîp. VÝ dô, nÕu ®Çu ra cña mét thuËt to¸n ®a thøc ®­îc chuyÓn ®Õn ®Çu vµo cña mét thuËt to¸n kh¸c, thuËt to¸n hîp cã tÝnh ®a thøc. NÕu mét thuËt to¸n ®a thøc kh¸c ®­a ra mét sè kh«ng ®æi c¸c thñ tôc con cã thêi gian ®a thøc ch¹y víi thêi gian cña thuËt to¸n hîp tö lµ ®a thøc.

C¸c bµi to¸n trõu t­îng

§Ó hiÓu ®­îc líp c¸c bµi to¸n gi¶i ®­îc trong thêi gian ®a thøc, tr­íc tiªn chóng ta ph¶i cã mét kh¸i niÖm chuÈn cña bµi to¸n lµ g×. Chóng ta ®Þnh nghÜa mét tãm t¾t bµi to¸n Q lµ mét quan hÖ nhÞ ph©n cña mét tËp I cña bµi to¸n minh ho¹ vµ mét tËp S lêi gi¶i c¸c bµi to¸n. VÝ dô mét minh ho¹ cña bµi to¸n SHORTEST-PATH lµ kiÓm so¸t ®­îc bao gåm mét ®å thÞ vµ hai ®Ønh. Mét lêi gi¶i lµ mét d·y tuÇn tù c¸c ®Ønh trong ®å thÞ, hoÆc cã thÓ lµ mét d·y rçng nÕu kh«ng tån t¹i ®­êng ®i. Bµi to¸n SHORTEST-PATH b¶n th©n nã lµ quan hÖ mµ mçi mèi liªn hÖ minh ho¹ mét ®å thÞ vµ hai ®Ønh víi ®­êng ®i ng¾n nhÊt trong ®é thÞ nèi víi hai ®Ønh ®ã. Tõ ®ã ®­êng ®i ng¾n nhÊt kh«ng nhÊt thiÕt lµ duy nhÊt. Mét bµi to¸n minh ho¹ ®­a ra cã thÓ cã nhiÒu h¬n mét lêi gi¶i.

Sù tr×nh bÇy t­êng minh c¸c bµi to¸n trõu t­îng lµ tæng qu¸t h¬n so víi viÖc ®ßi hái ®­a ra nh÷ng kÕt qu¶. Nh­ ta thÊy ë trªn lý thuyÕt cña tÝnh NP- ®ñ h¹n chÕ tham gia vµo c¸c bµi to¸n quyÕt ®Þnh: ®ã lµ mét lêi gi¶i yes/no. Trong tr­êng hîp nµy chóng ta xem mét tËp 0, 1. VÝ dô, mét bµi to¸n quyÕt ®Þnh quan hÖ víi SHORTEST-PATH lµ bµi to¸n ®­êng ®i mµ chóng ta thÊy dÔ dµng h¬n. NÕu i= G, u, v, k lµ mét minh ho¹ cña mét bµi to¸n quyÕt ®Þnh ®­êng ®i, khi ®ã PATH(i)= 1(yes) nÕu ®­êng ®i ng¾n nhÊt tõ u sang v ®i quan tÊt c¶ k c¹nh vµ PATH(i)= 0(no) trong tr­êng hîp ng­îc l¹i. Cã rÊt nhiÒu c¸c bµi to¸n trõu t­îng kh«ng ph¶i lµ c¸c bµi to¸n quyÕt ®Þnh huèng hå lµ c¸c bµi to¸n tèi ­u. Trong tr­êng hîp nµy mét sè gi¸ trÞ ph¶i ®¹t lín nhÊt hoÆc nhá nhÊt. Nh­ ta thÊy ë trªn, tuy nhiªn, th«ng th­êng mét vÊn ®Ò ®¬n gi¶n xÐt cho cïng mét bµi to¸n tèi ­u còng nh­ mét bµi to¸n quyÕt ®Þnh lµ kh«ng khã h¬n.

M· ho¸

NÕu mét ch­¬ng tr×nh m¸y tÝnh dïng ®Ó gi¶i mét bµi to¸n trõu t­îng, bµi to¸n trõu t­îng ph¶i biÓu sao cho cã thÓ hiÓu ®­îc ch­¬ng tr×nh. M· ho¸ mét tËp S c¸c ®èi t­îng trõu t­îng lµ mét s¬ ®å e tõ S ®Õn tËp c¸c chuçi nhÞ ph©n2. VÝ dô, chóng ta thÊy viÖc m· ho¸ tËp c¸c sè tù nhiªn N= 0, 1, 2, 3, 4, ... lµ c¸c chuçi 0, 1, 10, 11, 100, .... Sö dông viÖc m· ho¸ nµy E(17)= 100001. BÊt cø ký tù nµo trªn bµn phÝm ®Òu cã thÓ biÓu diÔn theo c¸c b¶ng m· ASCII hoÆc EBCDIC. Trong b¶ng m· ASCII th× m· cña A lµ 1000001. ThËm chÝ mét ®èi t­îng phøc hîp cã thÓ ®­îc m· ho¸ th·nh chuçi nhÞ ph©n b»ng c¸ch kÕt hîp c¸c biÓu diÔn tõng phÇn cña nã. C¸c ®a thøc, c¸c ®å thÞ, c¸c hµm, c¸c cÆp thø tù, c¸c ch­¬ng tr×nh- tÊt c¶ ®Òu cã thÓ m· ho¸ thµnh c¸c chuçi nhÞ ph©n.

Do ®ã mét thuËt to¸n m¸y tÝnh gi¶i quyÕt mét bµi to¸n quyÕt ®Þnh trõu t­îng nµo ®ã thùc sù cÇn mét m· ho¸ cña minh ho¹ bµi to¸n nh­ ®Çu vµo. Chóng ta gäi mét bµi to¸n mµ tËp minh ho¹ lµ tËp c¸c chuçi nhÞ ph©n lµ bµi to¸n cô thÓ. Chóng ta nãi r»ng mét thuËt to¸n gi¶i quyÕt mét bµi to¸n cô thÓ trong thêi gian O(Tn) nÕu, khi nã ®­îc chia bëi mét

2 Ph¹m vi biÓu cña e kh«ng nhÊt thiÕt lµ c¸c chuçi nhÞ ph©n. mét tËp bÊt kú c¸c chuçi n»m ngoµi giíi

h¹n b¶ng ch÷ c¸i cã Ýt nhÊt 2 ký tù sÏ lµ nh­ vËy.

Page 7: Chuong34

minh ho¹ bµi to¸n i ®é dµi n= |i|, thuËt to¸n cã thÓ t¹o ra mét lêi gi¶i trong thêi gian O(T(n))3. Mét bµi to¸n cô thÓ lµ gi¶i ®­îc trong thêi gian ®a thøc, do ®ã tån t¹i mét thuËt to¸n ®Ó gi¶i quyÕt nã trong thêi gian O(nk) víi mét h»ng sè k nµo ®ã.

B©y giê chóng ta cã thÓ ®Þnh nghÜa mét c¸c chÝnh x¸c líp phøc P lµ mét tËp c¸c bµi to¸n quyÕt ®Þnh cô thÓ mµ gi¶i ®­îc trong thêi gian ®a thøc.

Chóng ta cã thÓ sö dông c¸c m· ®Ó ®­a c¸c bµi to¸n trõu t­îng vÒ c¸c bµi to¸n cô thÓ. Cho tr­íc mét bµi to¸n quyÕt ®Þnh trõu t­îng Q. §­a mét tËp minh ho¹ I vµo tËp 2 ®iÓm 0 vµ 1, mét m· e: I0, 1* cã thÓ sö dông ®Ó rót gän thµnh mét bµi to¸n quyÕt ®Þnh cô thÓ liªn quan, mµ ta ký hiÖu lµ e(Q)4. NÕu lêi gi¶i cho mét minh häa bµi to¸n trõu t­îng i I lµ Q(i) 0, 1, th× lêi gi¶i cho minh ho¹ bµi to¸n cô thÓ e(i) 0, 1 còng lµ Q(i). Nh­ mét kü thuËt, cã thÓ cã mét vµi chuçi nhÞ ph©n kh«ng biÓu diÔn mét minh ho¹ cña bµi to¸n trõu t­îng cã nghÜa nµo. §Ó tiÖn lîi chóng ta nªn gi¶ sö r»ng bÊt kú mét chuçi nµo nh­ thÕ ®­îc ¸nh x¹ tuú ý vµo 0. Do ®ã, bµi to¸n cô thÓ sÏ ®­a ra cïng mét lêi gi¶i nh­ lµ bµi to¸n trõu t­îng trªn c¸c minh ho¹ chuçi nhÞ ph©n mµ biÓu diÔn c¸c m· cña c¸c minh ho¹ bµi to¸n trõu t­îng.

Chóng ta sÏ më réng ®Þnh nghÜa cña tÝnh gi¶i ®­îc thêi gian ®a thøc tõ c¸c bµi to¸n cô thÓ tíi c¸c bµi to¸n trõu t­îng b»ng c¸ch sö dông c¸c m· nh­ lµ mét cÇu nèi, nh­ng chóng ta sÏ ®Þnh nghÜa mét c¸ch ®éc lËp trong c¸c tr­êng hîp m· ho¸ riªng. §iÒu nµy rÊt hiÖu qu¶ cho viÖc gi¶i mét bµi to¸n kh«ng phô thuéc vµo viÖc bµi to¸n ®­îc m· ho¸ nh­ thÕ nµo. §¸ng tiÕc lµ nã l¹i phô thuéc kh¸ chÆt chÏ vµo viÖc m· ho¸. VÝ dô, gi¶ sö mét sè nguyªn k ®­îc cung cÊp nh­ mét ®Çu vµo duy nhÊt cho mét thuËt to¸n vµ gi¶ sö r»ng thêi gian cña thuËt to¸n lµ (k). NÕu sè nguyªn k ®­îc cho d­íi d¹ng mét chuçi k sè 1 th× thêi gian ch¹y cña thuËt to¸n lµ (n) trong ®©u vµo cã ®é dµi n ®ã lµ thêi gian ®a thøc. NÕu chóng ta sö dông c¸c biÓu diÔn nhÞ ph©n cña sè k th× ®é dµi cña ®Çu vµo lµ n=[lgk]+1. Trong tr­êng hîp nµy thêi gian ch¹y cña thuËt to¸n lµ (k)= (2n). §©y lµ thêi gian mò so víi cì cña ®Çu vµo. Do vËy, nã phô thuéc vµo viÖc m· ho¸ vµ thuËt to¸n ch¹y hoÆc thêi gian ®a thøc hoÆc thêi gian siªu ®a thøc.

ViÖc m· ho¸ bµi to¸n trõu t­îng lµ kh¸ quan träng ®Ó chóng ta cã thÓ hiÓu ®­îc trong thêi gian ®a thøc. Thùc sù chóng ta kh«ng thÓ nãi vÒ viÖc gi¶i c¸c bµi to¸n trõu t­îng mµ kh«ng chØ râ tr­íc tiªn lµ viÖc m· ho¸. Tuy nhiªn trong thùc tÕ nÕu chóng ta “xµi” c¸ch m· ho¸ duy nhÊt sao cho unary ones, thùc sù m· ho¸ cña bµi to¸n chØ kh¸c mét chót so víi bµi to¸n cã thÓ gi¶i ®­îc trong thêi gian ®a thøc. VÝ dô, viÖc biÓu diÔn c¸c sè nguyªn trong hÖ 3 thay v× hÖ 2 kh«ng hiÖu qu¶ ®èi víi c¸c bµi to¸n gi¶i ®­îc trong thêi gian ®a thøc, tõ ®ã viÖc biÓu diÔn mét sè nguyªn tring hÖ 3 ®­îc chuyÓn ®æi thµnh viÖc biÓu diÔn c¸c sè nguyªn trong hÖ 3 víi thêi gian ®a thøc.

Chóng ta nãi r»ng mét hµm f: 0,1* 0,1* lµ tÝnh to¸n trong thêi gian ®a thøc nÕu tån t¹i mét thuËt to¸n ®a thøc A ®ã lµ cho mét ®Çu vµo x 0,1* cho kÕt qu¶ ®Çu ra lµ f(x). Víi mçi tËp minh ho¹ c¸c bµi to¸n, chóng ta nãi r»ng hai m· ho¸ e1 vµ e2 cã liªn hÖ ®a thøc nÕu tån t¹i hµm tÝnh to¸n thêi gian ®a thøc f12 vµ f21 sao cho víi mçi i I, ta cã f12(e1(i))= e2(i) vµ f21(e2(i))= e1(i)

5. §ã lµ, m· e2(i) cã thÓ ®­îc tÝnh to¸n tõ m· e1(i) b»ng

3 Chóng ta gi¶ sö r»ng ®Çu ra cña thuËt to¸n lµ ®éc lËp víi ®Çu vµo. V× t¹i mçi b­íc ®­a ra kÕt qu¶ cã

b­íc thêi gian lµ O(T(n)) nªn kÝch th­íc cña ®Çu ra sÏ lµ O(T(n)). 4 Nh­ chóng ta thÊy 0, 1 kh¸i niÖm tËp tÊt c¶ chuçi s¾p xÕp c¸c biÓu t­îng tõ tËp 0, 1. 5 Kü thuËt cña nã lµ, mÆc dï chóng ta ®ßi hái c¸c hµm f12 vµ f21 lµm “s¬ ®å tõ phi minh ho¹ ®Õn phi minh

ho¹” . ViÖc minh ho¹ c¸ch m· ho¸ e lµ mét chuçi x 0,1* sao cho kh«ng cã minh ho¹ i nµo ®ã mµ

Page 8: Chuong34

thuËt to¸n thêi gian ®a thøc. NÕu hai m· e1 vµ e2 cña mét bµi to¸n trõu t­îng cã quan hÖ ®a thøc, bµi to¸n cã gi¶i ®­îc trong thêi gian ®a thøc hay kh«ng tuú thuéc vµo m· mµ chóng ta sö dông, nh­ bæ ®Ò sau ®©y sÏ chØ ra.

Bæ ®Ò 34.1

Gi¶ sö Q lµ mét bµi to¸n quyÕt ®Þnh trõu t­îng trªn mét tËp minh ho¹ I, vµ gi¶ sö e1 e2 lµ c¸c m· cã liªn hÖ ®a thøc trªn I. Khi ®ã, e1(Q) P khi vµ chØ khi e2(Q) P.

Chøng minh:

Chóng ta chØ cÇn chøng minh chiÒu ®i, bëi v× chiÒu ng­îc l¹i lµ t­¬ng tù. Gi¶ sö r»ng e1(Q) cã thÓ gi¶i ®­îc trong thêi gian O(nk) víi k lµ h»ng sè nµo ®ã. H¬n n÷a gi¶ sö r»ng víi bÊt kú minh ho¹ bµi to¸n i, m· e1(i) cã thÓ ®­îc tÝnh tõ m· e2(i) trong thêi gian O(nc) víi c lµ h»ng sè, trong ®ã n= |e2(i)|. §Ó gi¶i bµi to¸n e2(Q), trªn ®Çu vµo e2(i), tr­íc tiªn chóng ta tÝnh to¸n e1(i) sau ®ã ch¹y thuËt to¸n cho e1(Q) trªn e1(i). MÊt bao nhiªu thêi gian ? Sù chuyÓn ®æi c¸c m· sÏ cÇn thêi gian O(nc), v× ®Çu ra cña m¸y tÝnh tuÇn tù kh«ng thÓ l©u h¬n thêi gian ch¹y nã. ViÖc gi¶i bµi to¸n trªn e1(i) cÇn thêi gian O(|e1(i)|

k)= O(nck), lµ ®a thøc v× c vµ k ®Òu lµ h»ng sè.

Do ®ã, khi nµo mét bµi to¸n trõu t­îng cã c¸c minh ho¹ cña nã ®­îc m· ho¸ b»ng nhÞ ph©n hoÆc c¬ sè 3 sÏ kh«ng ¶nh h­ëng ®Õn tÝnh phøc hîp cña nã, nghÜa lµ khi nµo th× nã lµ gi¶i ®­îc ®a thøc, nh­ng nÕu c¸c minh ho¹ ®­îc m· ho¸ in unary, tÝnh phøc hîp cña nã cã thÓ thay ®æi. §Ó cã thÓ chuyÓn vµo mét m· ®éc lËp, chóng ta th­êng gi¶ sö r»ng c¸c minh ho¹ bµi to¸n ®­îc m· ho¸ b»ng bÊt kú mét kiÓu ng¾n gän vµ hîp lý, trõ khi chóng ta ®Æc biÖt l­u ý nã theo mét kiÓu kh¸c. §Ó chÝnh x¸c ho¸, chóng ta gi¶ sö r»ng m· cña mét sè nguyªn lµ cã liªn hÖ ®a thøc tíi biÓu diÔn nhÞ ph©n cña nã, vµ m· cña mét tËp h÷u h¹n cã liªn hÖ ®a thøc tíi m· cña nã nh­ lµ mét d·y c¸c phÇn tö cña nã, bao gåm c¶ c¸c dÊu ngoÆc vµ ®­îc ph©n chia bëi c¸c dÊu ph¶y. (ASCII lµ mét trong nh÷ng kiÓu m· nh­ thÕ). Víi mét m· tiªu chuÈn nh­ thÕ, chóng ta cã thÓ nhËn ®­îc c¸c m· hîp lý tõ c¸c ®èi t­îng to¸n häc kh¸c, nh­ lµ c¸c bé, c¸c ®å thÞ, vµ c¸c c«ng thøc. §Ó ®Þnh nghÜa c¸c m· tiªu chuÈn cña mét ®èi t­îng, chóng ta th­êng ®­a chóng vµo trong c¸c dÊu ngoÆc gãc. Do ®ã G sÏ ký hiÖu cho m· tiªu chuÈn cña mét ®å thÞ G. MiÔn lµ chóng ta sö dông mét c¸ch Èn ý mét m· mµ cã liªn hÖ ®a thøc tíi m· tiªu chuÈn cña nã, chóng ta cã thÓ nãi trùc tiÕp vÒ c¸c bµi to¸n trõu t­îng mµ kh«ng cÇn suy diÔn tíi mét m· ®Æc biÖt nµo kh¸c, viÖc biÕt sù lùa chän cña mét m· kh«ng ¶nh h­ëng tíi viÖc khi nµo mét bµi to¸n trõu t­îng lµ gi¶i ®­îc ®a thøc. Tõ giê trë ®i, chóng ta lu«n gi¶ sö r»ng tÊt c¶ c¸c minh ho¹ bµi to¸n lµ c¸c chuçi nhÞ ph©n ®­îc m· ho¸ b»ng m· tiªu chuÈn, trõ khi chóng ta chØ râ mét sù ®èi lËp. Chóng ta còng bá qua sù kh¸c biÖt sù kh¸c biÖt gi÷a c¸c bµi to¸n cô thÓ vµ c¸c bµi to¸n trõu t­îng. Ng­êi ®äc nªn xem c¸c bµi to¸n trong phÇn luyÖn tËp, tuy nhiªn trong ®ã mét m· tiªu chuÈn lµ kh«ng râ rµng vµ m· kh«ng t¹o ra sù kh¸c biÖt.

C¬ cÊu ng«n ng÷ chuÈn

Mét trong nh÷ng mÆt tiÖn Ých c¬ b¶n cña bµi to¸n quyÕt ®Þnh lµ chóng lµm cho viÖc sö dông lý thuyÕt ng«n ng÷ m¸y ®­îc dÔ dµng h¬n. Nã ®¸ng gi¸ ë ®iÓm nã xem xÐt l¹i mét vµi ®Þnh nhghÜa tõ lý thuyÕt cña nã. Mét b¶ng ch÷ c¸i lµ mét tËp h÷u h¹n c¸c ký tù, nÕu

e(i)= x. Chóng ta ®ßi hái r»ng f12(x)= y cho mäi phi minh ho¹t x cña m· ho¸ e1 mµ y lµ mét sè phi minh cña

e2 vµ f21(x’)= y’ víi mçi phi minh häa x’ cña e2 mµ y’ lµ mét sè phi minh ho¹ cña e1.

Page 9: Chuong34

lµ mét tËp chuçi nµo ®ã ®­îc t¹o ra bëi c¸c ký tù cña . VÝ dô, nÕu = 0, 1, tËp L= 10, 11, 101, 111, 1011, 10001, lµ ng«n ng÷ biÓu diÔn nhÞ ph©n cña c¸c sè c¨n b¶n (prime). Chóng ta ®Þnh chuçi rçng lµ , vµ ng«n ng÷ rçng lµ . Ng«n ng÷ cña tÊt c¶ c¸c chuçi qua ®­îc ký hiÖu bëi *. VÝ dô, nÕu = 0, 1, th× *= , 0, 1, 00, 01, 10, 11, 000, lµ tÊt c¶ c¸c chuçi nhÞ ph©n. TÊt c¶ c¸c ng«n ng÷ L qua lµ tËp con cña *.

Cã rÊt nhiÒu phÐp to¸n ng«n ng÷. TËp lý thuyÕt c¸c phÐp to¸n, nh­ phÐp hîp (union) vµ phÐp giao (intersection), d­íi ®©y tõ tËp lý thuyÕt c¸c ®Þnh nghÜa. Chóng ta ®Þnh nghÜa

phÇn bï (complement) cña L bëi LL * . PhÐp nèi (concatnation) hai ng«n ng÷ L1 vµ L2 lµ mét ng«n ng÷.

L= x1x2: x1 L1 vµ x2 L2. Sù kÕt hay Kleene star cña mét ng«n ng÷ L lµ ng«n ng÷ L*= L L2 L3 Trong ®ã Lk lµ ng«n ng÷ chøa phÐp nèi L víi chÝnh nã k lÇn. Tõ lý thuyÕt ng«n ng÷ trªn, tËp c¸c minh ho¹ cho mçi bµi to¸n quyÕt ®Þnh Q lµ tËp *,

trong ®ã = 0, 1. V× Q hoµn toµn lµ ®Æc ®iÓm cña c¸c bµi to¸n minh ho¹ nµy nªn viÖc ®­a ra mét tr¶ lêi 1 (yes) cã thÓ xem Q nh­ mét ng«n ng÷ L qua = 0, 1, trong ®ã

L*= x *: Q(x)= 1. VÝ dô, bµi to¸n quyÕt ®Þnh PATH cã ng«n ng÷ t­¬ng ®ång PATH= G, u, v, k: G= (V, E) lµ mét ®å thÞ v« h­íng,

u, v V,

k 0 lµ mét sè nguyªn, vµ

tån t¹i mét ®­êng ®i tõ u sang v trong G

®i qua k c¹nh.

(Tõ tiÖc Ých nµy, ®«i khi chóng ta sö dông tªn t­¬ng tù PATH trong tr­êng hîp nh¾c

®Õn c¶ bµi to¸n quyÕt ®Þnh vµ ng«n ng÷ t­¬ng ®ång víi nã).

CÊu tróc ng«n ng÷ chuÈn cho phÐp chóng ta biÓu diÔn quan hÖ gi÷a bµi to¸n quyÕt ®Þnh vµ thuËt gi¶i chóng hÕt søc ng¾n ngän. Chóng ta nãi r»ng mét thuËt to¸n chÊp nhËn (accepts) A lµ mét chuçi x0, 1* nÕu, cho ®Çu vµo x, ®Çu ra cña thuËt A(x) lµ 1. Ng«n ng÷ chÊp nhËn bëi thuËt to¸n A lµ mét tËp c¸c chuçi L= x 0, 1*: A(x)= 1, ®ã lµ tËp c¸c chuçi mµ thuËt gi¶i chÊp nhËn ®­îc. Mét thuËt to¸n lµ tõ chèi (rejects) chuçi x nÕu A(x)= 0.

ThËm chÝ nÕu ng«n ng÷ L lµ chÊp nhËn ®­îc bëi mét thuËt to¸n A, thuËt to¸n kh«ng nhÊt thiÕt tõ chèi chuçi x L ®­îc cung cÊp nh­ mét ®Çu vµo. VÝ dô, thuËt to¸n cã thÓ lÆp v« h¹n. Mét ng«n ng÷ L lµ quyÕt ®Þnh ®­îc bëi mét thuËt to¸n A nÕu mäi chuçi nhÞ ph©n trong L lµ chÊp nhËn ®­îc bëi A vµ mäi chuçi nhÞ ph©n kh«ng thuéc L sÏ bÞ tõ chèi bëi A. Mét ng«n ng÷ L lµ chÊp nhËn ®­îc trong thêi gian ®a thøc bëi mét thuËt to¸n A nÕu nã ®­îc chÊp nhËn bëi A vµ nÕu trong phÐp céng cã mét h»ng sè k sao cho víi mçi ®é dµi n cña chuçi x L, thuËt to¸n A chÊp nhËn x trong thêi gian O(nk). Mét ng«n ng÷ L lµ quyÕt ®Þnh ®­îc trong thêi gian ®a thøc bëi mét thuËt to¸n A nÕu cã mét h»ng sè k sao cho víi mçi ®é dµi cña x©u x0, 1*, thuËt to¸n quyÕt ®Þnh chÝnh x¸c t¹i x L trong thêi gian O(nk). Do vËy, ®Ó chÊp nhËn mét ng«n ng÷, mét thuËt to¸n chØ cÇn nghÜ ®Õn c¸c chuçi

Page 10: Chuong34

trong L, nh­ng ®Ó quyÕt ®Þnh mét ng«n ng÷, nã ph¸i chÊp nhËn chÝnh x¸c hoÆc tõ chèi mäi chuçi trong 0, 1*.

Nh­ mét vÝ dô, ng«n ng÷ PATH cã thÓ chÊp nhËn ®­îc trong thêi gian ®a thøc. Mét thêi gian ®a thøc chÊp nhËn hoµn toµn thuËt to¸n mµ G m· ho¸ mét ®å thÞ v« h­íng, trong ®ã u vµ v lµ c¸c ®Ønh cña G, sau ®ã so s¸nh sè l­îng c¹nh trªn ®­êng ®i ng¾n nhÊt qua k c¹nh. NÕu G m· ho¸ mét ®å thÞ v« h­íng vµ ®­êng ®i tõ u sang v ®i qua tÊt c¶ k c¹nh, ®Çu ra cña thuËt to¸n lµ 1 vµ dõng. Ng­îc l¹i thuËt to¸n ch¹y v« h¹n. ThuËt to¸n nµy kh«ng quyÕt ®Þnh PATH, tuy nhiªn, do nã kh«ng cho ®Çu ra chÝnh x¸c lµ 0 cho c¸c minh ho¹, trong tr­êng hîp ®ã ®­êng ®i ng¾n nhÊt ®i qua nhiÒu h¬n k c¹nh. Mét thuËt to¸n quyÕt ®Þnh cho PATH ph¶i tõ chèi chÝnh x¸c chuçi nhÞ ph©n kh«ng thuéc vµo PATH. Víi mét bµi to¸n quyÕt ®Þnh nh­ PATH, mét thuËt to¸n quyÕt ®Þnh lµ dÔ nhËn ra: thay v× ch¹y v« h¹n khi kh«ng cã ®­êng ®i tõ u sang v qua k c¹nh, thi ®Çu ra cña nã lµ 0 vµ dõng. Víi c¸c bµi to¸n kh¸c nh­ bµi to¸n Turing’s Halting, tån t¹i mét thuËt to¸n chÊp nhËn, nh­ng kh«ng tån t¹i thuËt to¸n quyÕt ®Þnh.

Chóng ta cã thÓ ®Þnh nghÜa kh«ng chÝnh thøc mét líp phøc hîp nh­ mét tËp ng«n ng÷, thµnh phÇn cña nã lµ x¸c ®Þnh ®­îc bëi mét ®¬n vÞ phøc hîp, nh­ thêi gian ch¹y cña mét thuËt to¸n x¸c ®Þnh víi mét chuçi x thuéc vµo ng«n ng÷ L. §Þnh nghÜa chÝnh x¸c cña líp phøc hîp lµ kü thuËt h¬n phÇn nµo ®ã- ng­êi ®äc quan t©m xem bµi b¸o cña Hartmanis vµ Stearn [140].

Sö dông cÊu tróc ng«n ng÷ nµy, chóng ta cã thÓ cung cÊp mét sù chän lùa ®Þnh nghÜa líp phøc P:

L= L 0, 1*: tån t¹i mét thuËt to¸n A quyÕt ®Þnh L trong thêi gian ®a thøc.

Trong thùc tÕ, P lµ líp c¸c ng«n ng÷ cã thÓ chÊp nhËn ®­îc trong thêi gian ®a thøc.

§Þnh lý 34.2

P= L: L lµ chÊp nhËn ®­îc bëi mét thuËt to¸n thêi gian ®a thøc.

Chøng minh. Tõ líp c¸c ng«n ng÷ quyÕt ®Þnh bëi thuËt to¸n thêi gian ®a thøc, chóng ta chØ cÇn chØ ra r»ng nÕu L lµ chÊp nhËn ®­îc bëi thuËt to¸n thêi gian ®a thøc, nã ®­îc quyÕt ®Þnh bëi mét thuËt to¸n thêi gian ®a thøc A. Chóng ta sÏ sö dông mét líp gi¶ ®èi sè “simulation” ®Ó x©y dùng thuËt to¸n thêi gian ®a thøc kh¸c A’ quyÕt ®Þnh L. Bëi v× A chÊp nhËn L trong thêi gian O(nk) víi h»ng sè k, do vËy tån t¹i mét h»ng sè c sao cho A chÊp nhËn L trong T= cnk b­íc. Víi mçi chuçi vµo x, thuËt to¸n A’ gi¶ thùc hiÖn A víi thêi gian T. T¹i cuèi thêi ®iÓm T, thuËt to¸n A’ kiÓm tra c¸ch xö lý cña A. NÕu A chÊp nhËn x, th× A’ còng chÊp nhËn x b»ng ®Çu ra lµ 1. NÕu A kh«ng chÊp nhËn x th× A’ tõ chèi x bë ®Çu ra lµ 0. Trªn A’ gi¶ A kh«ng lµm t¨ng thêi gian ch¹y bëi h¬n mét thõa sè cña ®a thøc, vµ do vËy A’ lµ thuËt to¸n thêi gian ®a thøc quyÕt ®Þnh L.

Chó ý r»ng chøng minh §Þnh lý 34.2 kh«ng cã tÝnh suy diÔn. Víi mçi ng«n ng÷ L P, chóng ta cã thÓ kh«ng biÕt chÝnh x¸c giíi h¹n cña thêi gian ch¹y cho mçi thuËt to¸n A chÊp nhËn L. Tuy nhiªn, chóng ta biÕt giíi h¹n lµ lu«n tån t¹i, vµ do vËy mµ tån t¹i mét thuËt to¸n A’ cã thÓ kiÓm tra ®­îc giíi h¹n ®ã, thËm chÝ qua ®ã chóng ta kh«ng thÓ t×m ra thuËt to¸n A’ mét c¸ch dÔ dµng.

Bµi tËp

Page 11: Chuong34

34.1-1

§Þnh nghÜa bµi to¸n tèi ­u LONGEST-PATH-LENGTH nh­ quan hÖ mµ sù liªn hÖ mçi minh ho¹ cña mét ®å thÞ v« h­íng vµ hai ®Ønh víi sè c¹nh trong ®­êng ®i dµi nhÊt gi÷a hai c¹nh ®ã. §Þnh nghÜa bµi to¸n quyÕt ®Þnh LONGEST-PATH= G, u, v, k: G=

(V, E) lµ mét ®å thÞ v« h­íng, u, v V, k 0 lµ mét sè nguyªn, vµ tån t¹i mét ®­êng ®i

®¬n gi¶n tõ u sang v ®i qua k c¹nh. ChØ ra r»ng bµi to¸n tèi ­u LONGEST-PATH-LENGTH cã thÓ gi¶i ®­îc trong thêi gian ®a thøc nÕu vµ chØ nÕu LONGEST-PATH P.

34.1-2

Víi mét ®Þnh nghÜa chuÈn cho bµi to¸n t×m chu tr×nh ®¬n gi¶n dµi nhÊt trong mét ®å thÞ v« h­íng. H·y ®­a ra mét bµi to¸n quyÕt ®Þnh quan hÖ. §­a ra mét ng«n ng÷ t­¬ng ®ång cho bµi to¸n quyÕt ®Þnh.

34.1-3

§­a ra mét m· ho¸ chuÈn t¾c cña ®å thÞ cã h­íng nh­ c¸c x©u nhÞ ph©n cã sö dông biÓu diÔn d­íi d¹ng ma trËn kÒ. Lµm t­¬ng tù cã trong tr­êng hîp sö dông biÓu diÔn danh s¸ch kÒ. Gîi ý lµ hai biÓu diÔn cã quan hÖ ®a thøc.

34.1-4

Cã ph¶i thuËt to¸n ch­¬ng tr×nh ®éng cho bµi to¸n ba l« (knapsack) 0-1 mµ c©u hái trong Bµi tËp 16.2-2 lµ mét thuËt to¸n cã thêi gian ®a thøc ? H·y tr×nh c©u tr¶ tr¶ lêi.

34.1-5

ChØ ra r»ng mét thuËt to¸n kh¸c cã thêi gian ®a thøc ®­îc x©y dùng b»ng c¸ch gäi mét sè lÇn kh«ng ®æi c¸c thñ tôc con cã thêi gian ®a thøc ch¹y trong thêi gian ®a thøc, nh­ng mét ®a thøc cã sè lÇn gäi thñ tôc con cã thêi gian ®a thøc cã thÓ ®­a ra kÕt qu¶ thuËt gi¶i trong thêi gian kh«ng an toµn.

34.1-6

ChØ ra r»ng líp P, xem nh­ mét tËp ng«n ng÷, ®ãng víi phÐp hîp, phÐp giao, phÐp nèi, phÐp lÊy phÇn bï, vµ Kleene star. §ã lµ, nÕu L1, L2 P, th× L1L2 P,

34.2 KiÓm tra thêi gian ®a thøc

B©y giê chóng ta xem thuËt to¸n “kiÓm tra” (verify) c¸c thµnh phÇn trong ng«n ng÷. VÝ dô, gi¶ sö r»ng víi viÖc lÊy mét minh ho¹ G, u, v, k cña bµi to¸n quyÕt ®Þnh PATH, chóng ta ®­a ra mét ®­êng ®i tõ u sang v. Ta cã thÓ dÔ dµng kiÓm tra ®é dµi cña p tÊt c¶ k lÇn, vµ do vËy, chóng ta cã thÓ xem p nh­ mét “dÉn chøng” (certificate) mµ minh ho¹ thùc sù thuéc vÒ PATH. Víi bµi to¸n quyÕt ®Þnh PATH, nh÷ng dÉn chøng nµy kh«ng coi lµ thuyÕt phôc chóng ta h¬n. Vµ khi ®ã, PATH thuéc P- thùc sù, PATH cã thÓ gi¶i ®­îc trong thêi gian tuyÕn tÝnh- vµ do vËy c¸c dÉn chøng thµnh phÇn tõ viÖc ®­a ra dÉn chøng x¸c thùc ®Ó gi¶i bµi to¸n tõ mí hçn ®én. B©y giê chóng ta xÐt mét bµi to¸n mµ chóng ta biÕt thuËt gi¶i trong thêi gian phi ®a thøc, ®­a ra mét dÉn chøng, dÉn chøng nµy rÊt dÔ.

Page 12: Chuong34

Chu tr×nh Hamilton

Bµi to¸n t×m mét chu tr×nh Hamilton trong ®å thÞ v« h­íng ®· ®­îc nghiªn cøu hµng tr¨m n¨m nay. ChÝnh x¸c lµ chu tr×nh Hamilton cña mét ®å thÞ v« h­íng G= (V, E) lµ chu tr×nh ®¬n gi¶n gåm tÊt c¶ c¸c ®Ønh trong V. Mét ®å thÞ cã chu tr×nh Hamilton ®­îc gäi lµ ®å thÞ hamilton (hamiltonian), ng­îc l¹i gäi lµ phi hamilton (nonhamiltonian)..

Chóng ta cã thÓ ®Þnh nghÜa bµi to¸n chu tr×nh hamilton, “Mét ®å thÞ G cã mét chu tr×nh hamilton kh«ng ?” nh­ mét ng«n ng÷ chuÈn:

HAM-CYCLE= G: G lµ mét ®å thÞ hamilton Mét thuËt to¸n cã thÓ quyÕt ®Þnh ng«n ng÷ HAM-CYCLE ra sao? Víi mét minh ho¹

bµi to¸n G, mét kh¶ n¨ng quyÕt ®Þnh danh s¸ch tÊt c¶ c¸c ho¸n vÞ c¸c ®Ønh cña G vµ sau ®ã kiÓm tra mét ho¸n vÞ ®Ó xem nÕu nã lµ mét ®­êng hamilton. Thêi gian cña thuËt to¸n ë ®©y lµ g× ? NÕu chóng ta sö dông m· ho¸ “phï hîp” (reasonable) cña mét ®å thÞ nh­ mét

ma trËn kÒ cña nã, sè m c¸c ®Ønh trong ®å thÞ lµ )( n , víi n= |G| lµ ®é dµi m· ho¸ cña G. Cã m! kh¶ n¨ng ho¸n vÞ cña c¸c ®Ønh, vµ do vËy thêi gian ch¹y lµ

)2()!()!( nmm , nã kh¸c (nk) víi k lµ h»ng sè. Do ®ã thuËt to¸n kh«ng ch¹y trong thêi gian ®a thøc. Trong thùc tÕ bµi to¸n chu tr×nh hamilton lµ NP- ®ñ, nh­ chóng ta sÏ chøng minh trong môc 34.5.

ThuËt to¸n x¸c minh

XÐt mét bµi to¸n dÔ dµng vµ cô thÓ h¬n. Gi¶ sö r»ng mét ng­êi b¹n nãi víi b¹n r»ng cho mét ®å thÞ G lµ hamilton, vµ sau ®ã chøng minh b»ng c¸ch s¾p xÕp c¸c c¸c ®Ønh cña ®å thÞ däc theo chu tr×nh hamilton. §­¬ng nhiªn lµ dÔ ®Ó thÈm ®Þnh chøng minh: thÈm ®Þnh ®¬n gi¶n r»ng chu tr×nh ®­îc ®­a ra lµ hamilton b»ng c¸ch kiÓm tra nã lµ ho¸n vÞ cña c¸c ®Ønh trong V vµ mçi ®Ønh kÒ thùc sù thuéc vÒ chu tr×nh tån t¹i trong ®å thÞ. ThuËt to¸n x¸c minh cã thÓ thùc hiÖn trong thêi gian O(n2), trong ®ã n lµ ®é dµi m· ho¸ G. Do vËy, mét chøng minh sù tån t¹i chu tr×nh trong ®å thÞ cã thÓ ®­îc x¸c minh trong thêi gian ®a thøc.

H×nh 34.2 (a) Mét ®å thÞ biÓu diÔn c¸c ®Ønh, c¸c c¹nh vµ bÒ mÆt cña khèi m­êi hai mÆtt víi mét chu tr×nh haminton ®­îc biÓu diÔn b»ng c¸c c¹nh t« ®Ëm. (b) Mét ®å thÞ song song víi sè ®Ønh lÎ. §ã lµ mét ®å thÞ phi haminton.

Page 13: Chuong34

Chóng ta ®Þnh nghÜa mét thuËt to¸n x¸c minh nh­ mét cÆp ®Ò xuÊt (double-argument) thuËt to¸n A, mét ®Ò xuÊt lµ mét chuçi ®Çu vµo th«ng th­êng x vµ ®Ò xuÊt kia lµ mét chuçi nhÞ ph©n y gäi lµ mét x¸c minh. Mét cÆp ®Ò xuÊt thuËt to¸n A x¸c minh mét ®Çu vµo x nÕu tån t¹i mét x¸c minh y sao cho A(x, y)= 1. Ng«n ng÷ x¸c minh ®­îc ph¸t biÓu nh­ sau:

L= x 0,1 *: tån t¹i y 0,1 * sao cho A(x, y)= 1. B»ng trùc gi¸c, mét thuËt to¸n A x¸c minh mét ng«n ng÷ L nÕu víi chuçi bÊt kú xL,

cã mét x¸c minh y mµ A cã thÓ sö dông ®Ó chøng minh r»ng xL. H¬n n÷a, víi mçi chuçi x L, ph¶i kh«ng cã x¸c minh nµo chØ ra r»ng xL. vÝ dô, bµi to¸n chu tr×nh halmiton, lêi x¸c minh lµ danh s¸ch c¸c ®Ønh trong chu tr×nh hamilton, b¶n th©n chu tr×nh hamilton còng ®ñ c¸c th«ng tin ®Ó x¸c thùc. Ng­îc l¹i, nÕu mét ®å thÞ kh«ng ph¶i lµ hamilton, kh«ng cã danh s¸ch ®Ønh nµo l¹i l·ng phÝ ®Ó ®i x¸c minh thuËt to¸n ®Ó tin r»ng ®å thÞ lµ hamilton, tõ viÖc kiÓm tra x¸c minh thuËt to¸n mét c¸ch cÈn thËn th× viÖc ®­a ra chu tr×nh lµ cùc kú ch¾c ch¾n.

Líp phøc NP

Líp phøc NP lµ líp ng«n ng÷ cã thÓ kiÓm tra b»ng thuËt to¸n thêi gian ®a thøc 6. ChÝnh x¸c h¬n, ng«n ng÷ L thuéc líp NP nÕu vµ chØ nÕu tån t¹i thuËt to¸n thêi gian ®a thøc hai ®Çu vµo A vµ h»ng sè c sao cho

L= x 0,1 *: tån t¹i mét x¸c minh u víi |y|= Q(|x|c|) sao cho A(x, y)= 1. Ta nãi r»ng thuËt to¸n A kiÓm tra ng«n ng÷ L víi thêi gian ®a thøc. Theo nh÷ng th¶o luËn tr­íc ®©y vÒ bµi to¸n chu tr×nh Hamilton, ta thÊy HAM-CYCLE

NP. ( SÏ lµ cã Ých ®Ó biÕt r»ng tËp hîp NP quan träng nµy kh«ng rçng.) H¬n n÷a, nÕu L P, th× L NP, tõ ®ã nÕu cã mét thuËt to¸n quyÕt ®Þnh L, th× thuËt to¸n ®ã dÔ dµng ®­îc chuyÓn thµnh thuËt to¸n x¸c minh 2- ®Ò xuÊt bá qua chøng minh ®¬n gi¶n vµ hoµn to¸n chÊp nhËn nh÷ng chuçi vµo ®Ó x¸c ®Þnh trong L. Do ®ã, P NP.

Kh«ng biÕt N= NP, nh­ng tÊt c¶ c¸c nghiªn cøu ®Òu tin r»ng P vµ NP kh«ng ph¶i lµ c¸c líp gièng nhau. B»ng trùc gi¸c, líp P bao gåm c¸c bµi to¸n gi¶i ®­îc mét c¸ch nhanh chãng. Líp NP bao gåm c¸c bµi to¸n mµ mçi lêi gi¶i cã thÓ x¸c minh ®­îc mét c¸ch nhanh chãng. B¹n cã thÓ häc ®­îc nhiÒu kinh nghiÖm lµ th­êng lµ khã kh¨n h¬n ®Ó gi¶i mét bµi to¸n tõ mí hçn ®én h¬n lµ x¸c minh x¸c minh mét lêi gi¶i ®­îc tr×nh bµy mét c¸ch s¸ng sña, ®Æc biÖt khi lµm viÖc d­íi thêi gian cho phÐp. Lý thuyÕt khoa häc m¸y tÝnh nãi chung tin r»ng nh÷ng më réng t­¬ng tù nµy cho líp phøc P vµ NP, vµ do ®ã NP bao gåm c¸c ng«n ng÷ kh«ng n»m trong P.

6 Tªn NP chuÈn cho “tÝnh kh«ng quyÕt ®Þnh thêi gian ®a thøc”. Líp NP ®­îc nghiªn cøu nguyªn b¶n

trong ng÷ c¶nh kh«ng quyÕt ®Þnh, nh­ng cuèn s¸ch nµy ®«i khi ®¬n gi¶n ho¸ b»ng c¸ch ®Þnh nghÜa sù x¸c

minh. Hopcroft vµ Ultman [156] ®­a ra mét biÓu diÔn tãt cña tÝnh NP- ®ñ trong viÖc giíi h¹n m« h×nh

kh«ng quyÕt ®Þnh cña viÖc tÝnh to¸n.

Page 14: Chuong34

§iÒu nµy lµ b»ng chøng thuyÕt phôc h¬n ®Ó chØ ra r»ng P NP- sù tån t¹i cña ng«n ng÷ lµ NP- ®ñ. Chóng ta sÏ nghiªn cøu líp nµy trong môc 34.3.

RÊt nhiÒu c©u hái nÒn t¶ng ngoµi c©u hái P NP vÉn kh«ng gi¶i ®­îc. MÆc dï ®· nghiªn cøu rÊt nhiÒu nh­ng thËm chÝ kh«ng ai biÕt nÕu c¸c líp NP ®ãng víi phÐp lÊy phÇn

bï. §ã lµ víi L NP th× liÖu NPL ? Chóng ta cã thÓ ®Þnh nghÜa líp phøc co- NP nh­

mét tËp ng«n ng÷ L sao cho NPL . C©u hái ë ®©y lµ NP ®ãng víi phÐp lÊy phÇn bï cã thÓ ®­îc viÕt: NP= NP co-NP. Tõ P ®ãng víi phÐp lÊy phÇn bï (Bµi tËp 34.1-6), th× khi ®ã P = NP co-NP. Ng­îc l¹i, kh«ng biÕt P= NP co-NP hay cã ng«n ng÷ nµo trong NP co-NP-P. H×nh 34.3 cho thÊy 4 kh¶ n¨ng x¶y ra.

Bµi tËp

34.2-1

XÐt ng«n ng÷ GRAPH-ISOMORPHISM= G1, G2: G1 vµ G2 lµ c¸c ®å thÞ ®ång d¹ng. Chøng minh r»ng GRAPH-ISOMORPHISM NP b»ng c¸ch m« t¶ thuËt to¸n trong thêi gian ®a thøc ®Ó x¸c minh ng«n ng÷.

34.2-2

Chøng minh r»ng nÕu G lµ mét ®å thÞ v« h­íng chi ®«i víi sè ®Ønh lÎ th× G lµ kh«ng ph¶i lµ ®å thÞ hamilton (nonehamiltonian).

34.2-3

Chi ra r»ng nÕu HAM-CYCLE P th× bµi to¸n danh s¸ch c¸c ®Ønh cña chu tr×nh hamilton, theo thø tù gi¶i ®­îc trong thêi gian ®a thøc.

H×nh 34.3 Bèn kh¶ n¨ng cña quan hÖ gi÷a c¸c líp phøc.

Page 15: Chuong34

34.2-4

Chøng minh r»ng líp NP cña ng«n ng÷ ®ãng víi phÐp hîp, phÐp giao, phÐp hîp vµ Kleene star. Nghiªn cøu víi tÝnh ®ãng cña NP víi phÐp hîp.

34.2-5

ChØ ra r»ng mét ng«n ng÷ bÊt kú trong NP cã thÓ ®­îc quyÕt ®Þnh bëi mét thuËt to¸n ch¹y trong thêi gian 2O(k) víi h»ng sè k nµo ®ã.

34.2-6

Mét ®­êng ®i hamilton trong mét ®å thÞ lµ ®­êng ®i ®¬n theo nghÜa lµ gÆp mçi ®Ønh ®óng mét lÇn. Chøng minh r»ng ng«n ng÷ HAM-PATH= G, u, v, k: cã mét ®­êng ®i hamilton tõ u ®Õn v trong ®å thÞ G thuéc vµo NP.

34.2-7

ChØ ra r»ng bµi to¸n ®­êng ®i Hamilton cã thÓ ®­îc gi¶i quyÕt trong thêi gian ®a thøc trªn c¸c ®å thÞ xo¾n cã h­íng. H·y ®­a ra mét thuËt to¸n hiÖu qu¶ cho bµi to¸n nµy.

34.2-8

Cho lµ mét biÓu thøc logic ®­îc x©y dùng tõ c¸c biÕn logc ®Çu vµo x1, x2, xk, c¸c phÐp phñ ®Þnh, c¸c phÐp AND vµ c¸c phÐp OR vµ c¸c d©u hoÆc. C«ng thøc lÆp (tautology) nÕu gi¸ trÞ cña nã lµ 1 víi mäi biÕn vµo lµ 0 hoÆc 1. §Þnh nghÜa tautology nh­ mét ng«n ng÷ cña c¸c c«ng thøc logic.

34.2-9

ChØ ra r»ng tautology co-NP. Chøng minh r»ng P co-NP.

34.2-10

Chøng minh r»ng nÕu NP co- NP, th× P NP.

34.2-11

Cho G lµ mét ®å thÞ liªn th«ng v« h­íng víi Ýt nhÊt 3 ®Ønh, vµ gi¶ sö r»ng G3 lµ mét ®å thÞ nhËn ®­îc b»ng c¸ch nèi tÊt c¶ c¸c cÆp ®Ønh mµ ®­îc nèi víi nhau b»ng mét ®­êng ®i trong G cã ®é dµi tèi ®a lµ 3. Chøng minh r»ng G3 lµ Hamilton. (Gîi ý: x©y dùng mét c©y më réng cña G, vµ sö dông quy n¹p).

34.3 TÝnh NP- ®ñ vµ hoµn nguyªn (reducibility)

Cã lÏ mäi lý lÏ ®Ó thuyÕt phôc v× sao lý thuyÕt khoa häc m¸y tÝnh l¹i tin r»ng P NP lµ bëiv× tån t¹i líp bµi to¸n “NP- ®ñ”. Líp nµy ®· lµm ta ng¹c nhiªn ë chç nÕu mét bµi to¸n NP- ®ñ bÊt kú cã thÓ gi¶i ®­îc trong thêi gian ®a thøc, th× mäi bµi to¸n trong NP cã mét lêi gi¶i trong thêi gian ®a thøc, ®ã lµ P= NP. Qua nhiÒu n¨m nghiªn cøu cho thÊy, kh«ng cã thuËt to¸n thêi gian ®a thøc nµo ®­îc t×m ra cho bµi to¸n NP- ®ñ.

Ng«n ng÷ HAM-CYCLE lµ mét bµi to¸n NP- ®ñ. NÕu ta cã thÓ quyÕt ®Þnh HAM-CYCLE trong thêi gian ®a thøc th× chóng ta cã thÓ gi¶i mäi bµi to¸n trong NP víi thêi gian ®a thøc. Trong thùc tÕ, nÕu NP- P kh«ng rçng, ta cã thÓ ph¸t biÓu hiÓn nhiªn r»ng HAM-CYCLE NP- P.

Page 16: Chuong34

Ng«n ng÷ NP- ®ñ trong tr­êng hîp nµy lµ “khã nhÊt” (hardest) trong NP. Trong môc nµy, chóng ta sÏ chØ ra lµm thÕ nµo ®Ó so s¸nh quan hÖ “khã” cña ng«n ng÷ sö dông ®Þnh nghÜa chÝnh x¸c gäi lµ “quy ®­îc vÒ thêi gian ®a thøc”. Khi ®ã chóng ta ®Þnh nghÜa chuÈn cho ng«n ng÷ NP- ®ñ, vµ kÕt thóc b»ng c¸ch ph¸c ho¹ mét chøng minh mang tÝnh ng«n ng÷ gäi lµ CIRCUIT- SAT, lµ NP- ®ñ. Trong môc 34,4 vµ 34.5 chóng ta sÏ sö dông ®Þnh nghÜa quy ®­îc ®Ó chØ ra r»ng nhiÒu bµi to¸n kh¸c lµ NP- ®ñ.

TÝnh hoµn nguyªn

B»ng trùc gi¸c, mét bµi to¸n Q cã thÓ ®­îc quy vÒ mét bµi to¸n Q’ kh¸c nÕu minh ho¹ bÊt kú cña Q cã thÓ “ph¸t biÓu l¹i dÔ dµng” (easily rephrase) nh­ mét minh ho¹ cña Q’, lêi gi¶i cña nã dïng ®Ó lµm lêi gi¶i cho minh ho¹ bµi to¸n Q. VÝ dô, bµi to¸n ph­¬ng tr×nh tuyÕn tÝnh gi¶i ®­îc trong mét sù phi x¸c ®Þnh x quy vÒ bµi to¸n ph­¬ng tr×nh bËc hai gi¶i ®­îc. Víi mét minh ho¹ ax+ b= 0, chóng ta biÕn ®æi thµnh 0x2+ ax+ b= 0, lêi gi¶i cña nã ®­îc sö dông ®Ó gi¶i ax+ b= 0. Do vËy, nÕu mét bµi to¸n Q quy vÒ bµi to¸n kh¸c Q’, th× Q trong tr­êng hîp nµy lµ “kh«ng khã h¬n viÖc gi¶i” Q’.

Trë l¹i cÊu tróc ng«n ng÷ chuÈn cho bµi to¸n quyÕt ®Þnh, chóng ta nãi r»ng mét ng«n ng÷ L1 lµ quy ®­îc vÒ thêi gian ®a thøc cho ng«n ng÷ L2, ®­îc viÕt lµ L1p L2, nÕu tån t¹i mét hµm tÝnh to¸n thêi gian ®a thøc f: 0, 1* 0, 1* víi mäi x 0, 1*,x L1 nÕu vµ chØ nÕu f(x) L2.

Chóng ta gäi hµm f lµ hµm quy ®­îc, vµ mét thuËt to¸n thêi gian ®a thøc F dïng ®Ó tÝnh f ®­îc gäi lµ thuËt to¸n quy ®­îc.

H×nh 34.4 minh ho¹ ý cña sù quy vÒ thêi gian ®a thøc tõ mét ng«n ng÷ L1 cho ng«n ng÷ L2. Mçi ng«n ng÷ lµ mét tËp cña 0, 1*. Hµm quy vÒ f ®­a ra mét sù s¾p xÕp thêi gian ®a thøc sao cho nÕu x L1 th× f(x) L2. H¬n n÷a, nÕu x L1, th× f(x) L2. Do vËy, hµm quy vÒ ®­a ra minh ho¹ x bÊt kú cña bµi to¸n quyÕt ®Þnh ®­îc tr×nh bÇy bëi ng«n ng÷ L1 cho mét minh ho¹ f(x) cña bµi to¸n ®­îc biÓu diÔn bëi L2. ViÖc ®­a ra mét c©u tr¶ lêi chÝnh x¸c f(x) L2 sÏ xung cÊp c©u tr¶ lêi x L1.

PhÐp quy vÒ thêi gian ®a thøc cho chóng ta nh÷ng c«ng cô m¹nh ®Ó t×m ra nhiÒu ng«n ng÷ kh¸c thuéc P.

H×nh 34.4 Mét minh ho¹ cña mét ®a thøc quy gän.

Page 17: Chuong34

Bæ ®Ò 34.3

NÕu L1, L2 0, 1* lµ c¸c ng«n ng÷ sao cho L1p L2, th× L2 P bao hµm L1P.

Chøng minh: Cho A2 lµ mét thuËt to¸n thêi gian ®a thøc quyÕt ®Þnh L2, vµ ®Æt F lµ mét

thuËt to¸n quy vÒ thêi gian ®a thøc tÝnh hµm quy vÒ f. Chóng ta sÏ x©y dùng mét thuËt

to¸n thêi gian ®a thøc A1 quyÕt ®Þnh L1.

H×nh 34.5 minh ho¹ viÖc x©y dùng A1. Víi mçi ®Çu vµo x 0, 1*, thuËt to¸n A1 sö dông F ®Ó chuyÓn x thµnh f(x), vµ khi ®ã nã sö dông A2 ®Ó kiÓm tra f(x) L2. §Çu ra cña A2 lµ gi¸ trÞ ®­îc cung cÊp nh­ ®Çu ra tõ A1.

Sù chÝnh x¸c cña A1 ®­îc quy ra tõ ®iÒu kiÖn (34.1). ThuËt to¸n ch¹y trong thêi gian ®a thøc, bëi v× F vµ A2 ch¹y trong thêi gian ®a thøc (xem bµi tËp 34.1-5).

TÝnh NP- ®ñ

Sù quy vÒ thêi gian ®a thøc cho ta mét c«ng cô chuÈn ®Ó chØ ra r»ng mét bµi to¸n Ýt ra còng khã nh­ c¸c bµi to¸n kh¸c, cïng víi yÕu tè thêi gian ®a thøc. NghÜa lµ nÕu cho L1p L2, th× L1 kh«ng khã h¬n mét yÕu tè thêi gian ®a thøc mµ v× sao ký hiÖu nhá h¬n hoÆc b»ng cho viÖc quy vÒ nhí ®­îc. Chóng ta cã thÓ ®Þnh nghÜa mét tËp c¸c ng«n ng÷ NP- ®ñ mµ lµ c¸c bµi to¸n khã nhÊt trong NP. Mét ng«n ng÷ L 0, 1* lµ NP- ®ñ nÕu

L NP, vµ L’p L víi mäi L’ NP. NÕu mét ng«n ng÷ L tho¶ m·n tÝnh chÊt 2, nh­ng kh«ng cÇn thiÕt tho¶ m·n tÝnh chÊt 1,

ta nãi r»ng L lµ NP- khã. Chóng ta còng ®Þnh nghÜa NPC lµ líp c¸c ng«n ng÷ NP- ®ñ. Nh­ ®Þnh lý trªn chØ ra, tÝnh NP- ®ñ lµ mét vÊn ®Ò nan gi¶i trong viÖc x¸c ®Þnh P cã

thùc sù b»ng NP hay kh«ng.

§Þnh lý 34.4

NÕu bÊt kú mét bµi to¸n NP- ®ñ nµo lµ gi¶i ®­îc ®a thøc, th× P= NP. Mét c¸ch t­¬ng ®­¬ng nÕu bÊt kú mét bµi to¸n trong NP lµ kh«ng gi¶i ®­îc ®a thøc th× kh«ng cã bµi to¸n NP- ®ñ nµo lµ gi¶i ®­îc ®a thøc.

Chøng minh Gi¶ sö r»ng L P vµ L NPC. Víi bÊt kú L’ NP, ta cã L’p L theo tÝnh

chÊt 2 cña ®Þnh nghÜa tÝnh NP- ®ñ. Do ®ã, b»ng bæ ®Ò 34.3 chóng ta còng cã L’ P, ®iÒu

nµy ®· chøng minh ph¸t biÓu thø nhÊt cña ®Þnh lý.

H×nh 34.5 Chøng minh cña Bæ ®Ò 34.3

Page 18: Chuong34

§Ó chøng minh ý sau, chó ý r»ng ®ã lµ ph¸t biÓu d­íi d¹ng ng­îc l¹i cña ph¸t biÓu thø nhÊt.

V× lý do nµy c¸c nghiªn cøu trong c©u hái P NP tËp trung xung quanh bµi to¸n NP- ®ñ. HÇu hÕt c¸c nhµ lµm vÒ lý thuyÕt m¸y tÝnh nghÜ r»ng P NP, dÉn tíi nh÷ng mèi liªn hÖ gi÷a P, NP, vµ NPC ®­îc chØ ra trong h×nh 34.6. Nh­ng chóng ta còng biÕt, cã thÓ cã mét thuËt to¸n thêi gian ®a thøc cho bµi to¸n NP- ®ñ, do ®ã chøng minh r»ng P= NP. MÆt kh¸c,bëi v× ®Õn nay kh«ng cã mét thuËt to¸n thêi gia ®a thøc nµo cho bµi to¸n NP- ®ñ, mét chøng minh r»ng mét bµi to¸n NP- ®ñ sÏ cho ta mét b»ng chøng x¸c thùc cho nh÷ng khã kh¨n nµy.

M¹ch tho¶ ®­îc (Circuit satisfiability)

Chóng ta ®Þnh nghÜa c¸c kh¸i niÖm cña mét bµi to¸n NP- ®ñ, nh­ng ë trªn, chóng ta kh«ng chøng minh ®­îc chÝnh x¸c mét bµi to¸n bÊt kú lµ NP- ®ñ.Ngay c¶ khi chóng ta chøng minh ®­îc mét bµi to¸n lµ NP- ®ñ, th× ta cã thÓ sö dông phÐp quy vÒ thêi gian ®a thøc nh­ mét c«ng cô ®Ó chøng minh tÝnh NP- ®ñ cña mét bµi to¸n kh¸c. Do vËy, b©y giê chóng ta tËp trung vµo chøng minh sù tån t¹i cña bµi to¸n NP- ®ñ: bµi to¸n tho¶ ®­îc (Circuit- satisfiability)

RÊt ®¸ng tiÕc, c¸ch thøc chøng minh bµi to¸n m¹ch tho¶ ®­îc lµ NP- ®ñ ®ßi hßi kü thuËt chi tiÕt ngoµi ph¹m vi cuèn s¸ch nµy. Thay v× ®ã, chóng ta sÏ m« t¶ mét c¸ch ®¬n gi¶n mét chøng minh tin cËy trªn c¬ së nh÷ng hiÓu biÕt c¬ b¶n vÒ m¹ch tæ hîp logic.

M¹ch tæ hîp hîp logic ®­îc x©y dùng tõ c¸c yÕu tè logic ®­îc nèi víi nhau bëi hÖ thèng d©y. Mét yÕu tè logic (boolean combinational element) lµ mét m¹ng bÊt kú chøa mét sè kh«ng ®æi c¸c ®Çu vµo vµ ®Çu ra logic ®Ó xö lý mét hµm ®Þnh nghÜa tèt. Gi¸ trÞ logic ®­îc lÊy tõ tËp 0, 1, trong ®ã 0 biÓu thÞ gi¸ trÞ FALSE vµ 1 biÓu thÞ gi¸ trÞ TRUE.

C¸c yÕu tã tæ hîp logic mµ chóng ta sö dông trong m¹ch tho¶ ®­îc ®Ó tÝnh mét hµm logic ®¬n gi¶n, vµ chóng ®­îc xem nh­ c¸c cæng logic. H×nh 34.7 chØ ra ba cæng logic c¬ b¶n sö dông trong bµi to¸n m¹ch tho¶ ®­îc: cæng NOT (hay inverter), cæng AND, vµ cæng OR. Cæng NOT cho mét ®Çu vµo nhÞ ph©n ®¬n gi¶n x. gi¸ trÞ cña nã lµ 0 hoÆc 1, vµ

H×nh 34.6 HÇu hÕt lý thuyÕt vÒ khoa häc m¸y tÝnh ®Òu ®­a ra c¸c mèi quan hÖ gi÷a P, NP vµ NPC.

Page 19: Chuong34

cho ta ®Çu ra nhÞ ph©n z cã gi¸ trÞ lµ ®èi lËp víi ®Çu vµo. Mçi cÆp cæng kh¸c víi hai ®Çu vµo nhÞ ph©n x vµ y vµ ®Çu ra nhÞ ph©n z.

ViÖc xö lý mçi cæng, vµ yÕu tè tæ hîp logic cã thÓ m« t¶ bëi b¶ng ®óng (truth table), xem c¸c cæng phia d­íi trong h×nh 34.7. Mét b¶ng ®óng cho ta ®Çu ra cña yÕu tè tæ hîp víi mçi kh¶ n¨ng cµi ®Æt ®Çu vµo. VÝ dô, b¶ng ®óng cho cæng OR cho chóng ta biÕt khi nµo ®Çu vµo lµ x=0 vµ y=1, ®Çu ra cã gi¸ trÞ x=1. Chóng ta sö dông ®Ó ký hiÖu hµm NOT, ký hiÖu hµm AND, vµ ký hiÖu hµm OR. Do ®ã, vÝ dô 01=1.

Chóng ta cã thÓ kÕt hîp cængAND vµ OR ®Ó ®­a ra nhiÒu h¬n hai ®Çu vµo. Mét ®Çu ra cña cæng AND lµ 1 nÕu tÊt c¶ c¸c ®Çu vµo lµ 1, vµ ®Çu ra lµ 0 trong tr­êng hîp ng­îc l¹i.

Mét ®Çu ra cña cæng OR lµ 1 nÕu mét trong c¸c ®Çu vµo lµ 1, vµ lµ 0 trong tr­êng hîp ng­îc l¹i.

Mét m¹ch tæ hîp logic bao gåm mét hoÆc nhiÒu yÕu tè tæ hîp logic ®­¬c nèi víi nhau bëi c¸c d©y. Mét d©y cã thÓ nèi ®Çu vµo cña yÕu tè nµy víi ®Çu ra cña yÕu tè kh¸c b»ng c¸ch cung cÊp gi¸ trÞ ra cña yÕu tè ®Çu tiªn nh­ ®Çu vµo cña yÕu tè thø hai. H×nh 34.8 chØ ra hai m¹ch tæ hîp logic t­¬ng tù; chóng kh¸c nhau chØ bëi mét cæng. PhÇn (a) cña h×nh vÏ cßn chØ ra gi¸ trÞ trªn tõng d©y, cho ®Çu vµo x1= 1, x2= 1, x3= 0. MÆc dï mét d©y ®¬n cã thÓ kh«ng cã nhiÒu h¬n mét yÕu tè tæ hîp ®Çu ra nèi víi nã, nã cã thÓ xö lý vµi yÕu sè ®Çu vµo. Sè yÕu tè ®Çu vµo ®­îc xö lý bëi mét d©y ®­îc gäi lµ qu¹t ra (fan- out) cña d©y. NÕu kh«ng cã yÕu tè ra nµo ®­îc nèi víi mét d©y, th× d©y lµ mét m¹ch ®Çu vµo, viÖc chÊp nhËn gi¸ trÞ ®Çu vµo lµ tõ nguån më réng. NÕu kh«ng cã yÕu tè ra nµo ®­îc nèi víi mét d©y, th× d©y gäi lµ m¹ch ra, viÖc cung cÊp kÕt qu¶ cña tÝnh to¸n m¹ch ®Ó bªn ngoµi thÕ giíi. (Mét d©y trong cã thÓ thæi ra mét m¹ch ®Çu ra.) Víi gi¶ thiÕt ®Þnh nghÜa bµi to¸n m¹ch tho¶ ®­îc chóng ta giíi h¹n sè l­îng ®Çu ra cña m¹ch lµ 1, qua viÖc thiÕt kÕ bªn trong phÇn cøng, mét m¹ch tæ hîp logic cã thÓ cã nhiÒu ®Çu ra.

M¹ch tæ hîp logic kh«ng chøa vßng. Tong tr­êng hîp kh¸c, gi¶ sö chóng ta t¹o ra mét ®å thÞ cã h­íng G= (V, E) víi mét ®Ønh lµ mét yÕu tè tæ hîp logic vµ k c¹nh cã h­íng víi mçi d©y mµ ®Çu ra lµ k; tån t¹i mét c¹nh (u, v) nÕu mét d©y nèi ®Çu ra cña u víi ®Çu vµo cña v. Khi ®ã G ph¶i xÕp xo¾n.

H×nh 34.7 Ba cæng logÝc

Page 20: Chuong34

Mét thùc hiÖn ®óng cho mét m¹ng tæ hîp logic lµ mét tËp ®Çu vµo c¸c gi¸ trÞ logic. Ta nãi r»ng ®Çu ra cña mét m¹ng tæ hîp logic lµ tho¶ ®­îc nÕu nã thùc cã mét thùc hiÖn tho¶ ®­îc: mét thùc hiÖn ®óng t¹o ra ®Çu ra cña m¹ng b»ng 1. VÝ dô, m¹ng trong h×nh vÏ 34.8 a cã thùc hiÖn tho¶ ®­îc x1=1, x2 =1, x3 =0, vµ do ®ã nã tho¶ ®­îc. Khi bµi tËp 34.3-1 yªu cÇu chØ ra r»ng kh«ng cã thùc hiÖn nµo cña c¸c gi¸ trÞ x1, x2 vµ x3 t¹o ra m¹ng trong h×nh 34.8 b cho ®Çu ra 1. Nã lu«n lu«n cho ®Çu ra lµ 0, vµ do ®ã nã kh«ng tho¶ ®­îc.

Mét bµi to¸n vÒ tÝnh tho¶ ®­îc m¹ng lµ, “cho tr­íc mét m¹ng tæ hîp logic t¹o thµnh tõ c¸c cæng AND, OR vµ NOT, khi nµo nã tho¶ ®­îc”. §Ó ®Æt c©u hái nµy mét c¸ch ®óng

®¾n, tuy nhiªn, chóng ta ph¶i chÊp nhËn mét m· tiªu chuÈn cho c¸c m¹ng. KÝch th­íc cña mét m¹ng tæ hîp logic lµ sè c¸c phÇn tö tæ hîp logic céng sè c¸c d©y trong m¹ng. Ng­êi ta cã thÓ ®Æt ra mét m· gièng nh­ ®å thÞ mµ ®­a bÊt kú mét m¹ng cho tr­íc C nµo ®ã vµo mét chuçi nhÞ ph©n C cã ®é dµi lµ kÝch th­íc ®a thøc. Nh­ ng«n ng÷ chÝnh thøc, chóng ta cã thÓ ®Þnh nghÜa

CIRCUIT-SAT= C: C lµ mét m¹ng tæ hîp logic tho¶ ®­îc

Bµi to¸n vÒ tÝnh tho¶ ®­îc m¹ng ph¸t sinh trong lÜnh vùc m¸y tÝnh- trî gióp tèi ­u ho¸ phÇn cøng. NÕu mét m¹ng con lu«n lu«n cho ra gi¸ trÞ 0, m¹ng con ®ã cã thÓ ®­îc thay thÕ b»ng mét m¹ng con ®¬n gi¶n h¬n mµ bá qua tÊt c¶ c¸c cæng logic lu«n cho ra gi¸ trÞ 0 nh­ ®Çu ra cña nã.SÏ rÊt tiÖn Ých nÕu ta cã mét thuËt to¸n ®a thøc cho bµi to¸n nµy.

Cho tr­íc mét m¹ng C, chóng ta cã thÓ cè g¾ng x¸c ®Þnh xem khi nµo chóng tho¶ ®­îc b»ng c¸ch kiÓm tra mét c¸ch ®¬n gi¶n tÊt c¶ c¸c thùc hiÖn cã thÓ cña ®Çu vµo. §¸ng tiÕc r»ng, nÕu cã k ®Çu vµo, sÏ cã 2k thùc hiÖn cã thÓ. Khi kÝch th­íc cña C lµ mét ®a thøc theo k, kiÓm tra mçi tr­êng hîp cÇn thêi gian (2k), mµ nã lµ siªu ®a thøc theo kÝch th­íc cña m¹ng. Thùc ra lµ, nh­ ta ®· ph¸t biÓu, cã mét b»ng chøng hiÓn nhiªn r»ng kh«ng tån t¹i thuËt to¸n thêi gian ®a thøc ®Ó gi¶i quyÕt bµi to¸n vÒ tÝnh tho¶ ®­îc m¹ng bëi v× tÝnh tho¶ ®­îc m¹ng lµ NP- ®ñ. Chóng ta chia chøng minh nµy thµnh 2 phÇn, dùa trªn hai phÇn cña ®Þnh nghÜa vÒ tÝnh NP- ®ñ.

Bæ ®Ò 34.5

Bµi to¸n vÒ m¹ng tho¶ ®­îc thuéc líp NP.

Chøng minh: Chóng ta sÏ cung cÊp mét ®Çu vµo ®«i, thuËt to¸n A víi thêi gian ®a thøc

cã thÓ x¸c ®Þnh CIRCUIT-SAT. Mét trong sè nh÷ng ®Çu vµo cho A lµ mét m¹ng tæ hîp

logic C, mét trong sè c¸c chuÈn m· ho¸. §Çu vµo cßn l¹i lµ mét lêi gi¶i t­¬ng øng víi mét

H×nh 34.8 Hai minh ho¹ cña bµi to¸n m¹ch tho¶ ®­îc

Page 21: Chuong34

c¸ch g¸n c¸c gi¸ trÞ logic cho c¸c d©y trong C. (Xem bµi to¸n 34.3-4 ®Ó t×m mét lêi gi¶i

nhá nhÊt).

ThuËt to¸n A ®­îc x©y dùng nh­ sau. Cho mçi cæng logic trong m¹ng, ta kiÓm tra gi¸ trÞ ®­îc sinh ra bëi lêi gi¶i trªn d©y ®Çu ra ®­îc tÝnh to¸n ®óng nh­ mét hµm cña c¸c gi¸ trÞ trªn c¸c d©y ë ®Çu ra. Sau ®ã, nÕu kÕt qu¶ cña toµn bé m¹ng lµ 1, thuËt to¸n cho ra gi¸ trÞ 1, v× c¸c gi¸ trÞ ®­îc g¸n cho c¸c ®Çu vµo cña C cung cÊp mét c¸ch g¸n tho¶ m·n. B»ng kh«ng, A cho gi¸ trÞ 0.

BÊt cø lóc nµo mét m¹ng C tho¶ ®­îc lµ ®Çu vµo cho thuËt to¸n A, cã mét lêi gi¶n mµ ®é dµi cña nã lµ ®¹i sè so víi kÝch th­íc cña C vµ v× vËy A cho gi¸ trÞ 1. BÊt cø lóc nµo mét m¹ng kh«ng tho¶ ®­îc lµ nguån vµo, kh«ng mét lêi gi¶i nµo cã thÓ “lõa” thuËt to¸n A vµo t×nh tr¹ng tho¶ ®­îc. Nh­ vËy, CIRCUIT-SAT cã thÓ gi¶i ®­îc víi thêi gian ®a thøc, vµ CIRCUIT-SAT NP.

PhÇn thø hai cña chøng minh CIRCUIT-SAT lµ NP-®Çy ®ñ lµ chØ ra r»ng ng«n ng÷ lµ NP-khã. §ã lµ, chóng ta ph¶i chØ ra r»ng mäi ng«n ng÷ trong NP lµ cã thÓ gi¶m tíi thêi gian ®a thøc tíi CIRCUIT-SAT. Chøng minh thùc sù cña thùc tÕ nµy th× kü thuËt ®Çy phøc t¹p, vµ chóng ta sÏ ®­a ra mét c¸ch s¬ l­îc cña chøng minh dùa trªn mét sè hiÓu biÕt vÒ sù ho¹t ®éng cña phÇn cøng cña m¸y tÝnh.

Mét ch­¬ng tr×nh m¸y tÝnh ®­îc l­u gi÷ trong bé nhí m¸y tÝnh nh­ mét d·y c¸c c©u lÖnh. Mét c©u lÖnh ®iÓn h×nh m· ho¸ mét phÐp tÝnh cÇn thùc hiÖn, ®Þa chØ c¸c to¸n h¹ng trong bé nhí, vµ mét ®Þa chØ l­u gi÷ kÕt qu¶. Mét vÞ trÝ ®Þa chØ ®Æc biÖt trong bé nhí, ®­îc gäi lµ bé ®Õm ch­¬ng tr×nh, theo dâi n¬i mµ c©u lÖnh kÕ tiÕp sÏ ®­îc thùc hiÖn. Bé ®Õm ch­¬ng tr×nh tù ®éng t¨ng ngay khi mét chØ thÞ ®­îc t×m thÊy, v× vËy mµ m¸y tÝnh thùc hiÖn c¸c c©u lÖnh mét c¸ch tuÇn tù. Tuy nhiªn, sù thùc hiÖn mét c©u lÖnh cã thÓ ghi mét gi¸ trÞ vµo bé ®Õm ch­¬ng tr×nh, vµ khi ®ã tr×nh tù thùc hiÖn b×nh th­êng cã thÓ bÞ thay ®æi, cho phÐp m¸y tÝnh thùc hiÖn vßng lÆp vµ thùc hiÖn c¸c nh¸nh ®iÒu kiÖn

T¹i bÊt cø vÞ trÝ nµo trong qu¸ tr×nh thùc thi cña mét ch­¬ng tr×nh, toµn bé tr¹ng th¸i cña viÖc tÝnh to¸n ®­îc thÓ hiÖn trong bé nhí cña m¸y tÝnh. (Chóng ta lÊy bé nhí cho b¶n th©n ch­¬ng tr×nh, bé ®Õm ch­¬ng tr×nh, n¬i l­u tr÷ lµm viÖc, vµ bÊt cø bit tr¹ng th¸i nµo mµ m¸y tÝnh l­u gi÷ ®Ó tÝnh to¸n). Chóng ta gäi bÊt cø tr¹ng th¸i ®Æc biÖt nµo cña bé nhí m¸y tÝnh lµ cÊu h×nh. Sù thùc hiÖn mét c©u lÖnh cã thÓ ®­îc h×nh dung nh­ lµ mét phÐp ¸nh x¹ mét cÊu h×nh tíi mét cÊu h×nh kh¸c. Mét ®iÒu quan träng lµ phÇn cøng m¸y tÝnh, thø thùc hiÖn sù ¸nh x¹ nµy cã thÓ ®­îc diÔn t¶ nh­ mét m¹ng tæ hîp logic mµ ta sÏ ký hiÖu lµ M trong chøng minh cña bæ ®Ò sau ®©y.

Bæ ®Ò 34.6

Bµi to¸n m¹ng tho¶ ®­îc lµ NP-khã.

Chøng minh: LÊy L lµ mét ng«n ng÷ bÊt kú trong NP. Chóng ta sÏ m« t¶ mét thuËt to¸n

F thêi gian ®a thøc tÝnh to¸n mét hµm f tèi gi¶n, hµm f ¸nh x¹ mäi x©u x thµnh mét m¹ng

C = f(x) sao cho x L khi vµ chØ khi C CIRCUIT-SAT.

V× L NP nªn ph¶i cã mét thuËt to¸n A chøng minh L cã thíi gian ®a thøc. ThuËt to¸n F mµ chóng ta sÏ x©y dùng sÏ sö dông hai ®Çu vµo cña thuËt to¸n A ®Ó tÝnh to¸n hµm tèi gi¶n f.

Ký hiÖu T(n) lµ thêi gian ch¹y trong tr­êng hîp xÊu nhÊt cña thuËt to¸n A víi x©u vµo cã ®é dµi n, vµ ký hiÖu k 1 lµ mét h»ng sè sao cho T(n) = O ( nk ) vµ ®é dµi cña kÕt qu¶ lµ O( nk). (Thêi gian ch¹y cña A thùc sù lµ ®a thøc ®èi víi kÝch th­íc ®Çu vµo tæng thÓ,

Page 22: Chuong34

bao gåm c¶ x©u vµo vµ mét kÕt qu¶, nh­ng v× ®é dµi kÕt qu¶ lµ ®a thøc ®èi víi ®é dµi cña n cña x©u ®Çu vµo, thêi gian ch¹y lµ ®a thøc ®èi víi n).

ý t­ëng c¬ b¶n cña chøng minh lµ thÓ hiÖn viÖc tÝnh to¸n cña A nh­ mét d·y c¸c cÇu h×nh. Nh­ thÓ hiÖn trong h×nh 34.9, mçi cÊu h×nh cã thÓ ®­îc chia ra lµm c¸c phÇn gåm cã ch­¬ng tr×nh cña thuËt to¸n A, bé ®Õm ch­¬ng tr×nh vµ tr¹ng th¸i m¸y phô, ®Çu vµo x, kÕt qu¶ y, vµ bé nhí lµm viÖc. B¾t ®Çu víi mét cÇu h×nh khëi t¹o c0, mçi cÇu h×nh ci ®­îc ¸nh x¹ tíi mét cÊu h×nh tiÕp theo ci+1 b»ng m¹ng tæ hîp M m« t¶ phÇn cøng m¸y tÝnh. §Çu ra cña thuËt to¸n A, 0 hay 1 ®­îc ghi vµo mét vÞ trÝ ®­îc chØ râ trong bé nhí lµm viÖc khi A kÕt thóc qu¸ tr×nh thùc hiÖn, vµ nÕu chóng ta gi¶ sö r»ng ngay sau ®ã A dõng, gi¸ trÞ kh«ng bao giê thay ®æi. Nh­ vËy, nÕu thuËt to¸n ch¹y qua tèi ®a T(n) b­íc, kÕt qu¶ nh­ lµ mét trong c¸c bit trong cT(n).

ThuËt to¸n tèi gi¶n F t¹o thµnh mét m¹ng tæ hîp ®¬n cã thÓ tÝnh to¸n tÊt c¶ c¸c cÇu h×nh ®­îc sinh bëi mét cÊu h×nh khëi t¹o ban ®Çu. ý t­ëng lµ d¸n T(n) b¶n sao cña m¹ng M. KÕt qu¶ cña m¹ng thø i sinh ra cÊu h×nh ci ®­îc lµm ®Çu vµo cho m¹ng thø (i+1). Nh­ vËy, c¸c cÇu h×nh h¬n c¶ kÕt thóc trong mét thanh ghi tr¹ng th¸i, chØ ®¬n gi¶n l­u tr÷ nh­ c¸c gi¸ trÞ trªn c¸c d©y nèi c¸c b¶n sao cña M.

H×nh 34.9 D·y c¸c cÊu h×nh ®­îc sinh bëi thuËt to¸n A ch¹y trªn mét ®Çu vµo x vµ kÕt qu¶ y. Mçi

cÊu h×nh thÓ hiÖn tr¹ng th¸i cña m¸y tÝnh cho mét b­íc tÝnh to¸n, bªn c¹nh A, x vµ y, bao gåm c¶ bé ®Õm ch­¬ng tr×nh (PC-program counter), tr¹ng th¸i m¸y phô, vµ n¬i l­u tr÷ ho¹t ®éng. Ngo¹i trõ kÕt qu¶ y, cÊu h×nh khëi t¹o c0 lµ mét h»ng. Mçi cÊu h×nh ¸nh x¹ tíi cÊu h×nh kÕ tiÕp bëi mét m¹ng tæ hîp logic M. KÕt qu¶ lµ mét bit ph©n biÖt trong n¬i l­u tr÷ ho¹t ®éng.

Page 23: Chuong34

H·y nhí l¹i c¸i mµ thuËt to¸n tèi gi¶n thêi gian ®a thøc F ph¶i ®¹t ®­îc. Cho mét ®Çu vµo x, nã ph¶i tÝnh to¸n ®­îc m¹ng C = f(x) tho¶ ®­îc nÕu vµ chØ nÕu tån t¹i mét kÕt qu¶ y sao cho A(x,y) = 1. Khi F lÊy ®­îc ®Çu vµo x, tr­íc tiªn nã tÝnh n = |x| vµ x©y dùng mét cÊu h×nh khëi t¹o t­¬ng øng víi tÝnh to¸n trªn A(x,y), vµ kÕt qu¶ lµ mét cÊu h×nh cT(n).

M¹ng c = f(x) mµ F tÝnh to¸n thu ®­îc bëi thay ®æi C’ mét c¸ch kh«ng ®¸ng kÓ. Tr­íc tiªn, ®Çu vµo cho C’ t­¬ng øng víi ch­¬ng tr×nh cho A, bé ®Õm ch­¬ng tr×nh khëi t¹o, ®Çu vµo x, vµ tr¹ng th¸i khëi t¹o cña bé nhí ®­îc m¾c mét c¸ch trùc tiÕp tíi nh÷ng gi¸ trÞ ®· biÕt nµy. Do ®ã, nh÷ng ®Çu vµo cßn l¹i cho m¹ng t­¬ng øng víi kÕt qu¶ y. KÕ ®Õn, tÊt c¶ c¸c kÕt qu¶ cho m¹ng ®Õu ®­îc bá qua, ngo¹i trõ mét bit cña cT(n) t­¬ng øng víi ®Çu ra cña A. M¹ng C nµy tÝnh to¸n C(y) = A(x,y) cho c¸c ®Çu vµo y víi ®é dµi O(nk). ThuËt to¸n tèi gi¶n F, khi cung cÊp x©u ®Çu vµo x, tÝnh to¸n mét m¹ng C nh­ vËy vµ sinh ra nã.

Hai thuéc tÝnh cßn l¹i cÇn ph¶i ®­îc chøng minh. Tr­íc tiªn, chóng ta ph¶i chØ ra r»ng F tÝnh to¸n trùc tiÕp mét hµm tèi gi¶n f. §ã lµ, chóng ta ph¶i chØ ra r»ng C tho¶ ®­îc khi vµ chØ khi tån t¹i mét kÕt qu¶ y sao cho A(x,y) = 1. KÕ ®Õn, chóng ta ph¶i chØ ra r»ng F ch¹y víi thêi gian ®a thøc.

§Ó chØ ra r»ng F tÝnh to¸n trùc tiÕp mét hµm tèi gi¶n, ta h·y cho r»ng tån t¹i mét kÕt qu¶ y ®é dµi O(nk) sao cho A(x,y) = 1. Sau ®ã, nÕu chóng ta lÊy c¸c bit cña y lµm ®Çu vµo cña C, kÕt qu¶ cña C lµ C(y) = A(x,y) = 1. Nh­ vËy, nÕu mét kÕt qu¶ tån t¹i th× C lµ tho¶ ®­îc. Víi h­íng kh¸c, gi¶ sö r»ng C lµ tho¶ ®­îc. Do ®ã, tån t¹i mét ®Çu vµo y cho C sao cho C(y) = 1, tõ ®ã chóng ta kÕt luËn r»ng A(x,y) = 1. Nh­ vËy, F tÝnh to¸n trùc tiÕp mét hµm tèi gi¶n.

§Ó kÕt thóc s¬ bé chøng minh, chóng ta cÇn chØ ra r»ng F ch¹y víi thêi gian ®a thøc víi n = |x|. Tr­íc tiªn ta thÊy r»ng sè bit cÇn thiÕt ®Ó thÓ hiÖn mét cÊu h×nh lµ ®a thøc ®èi víi n. B¶n th©n ch­¬ng tr×nh cho A cã kÝch th­íc kh«ng ®æi, ®éc lËp víi ®é dµi ®Çu vµo x cña nã. §é dµi cña ®Çu vµo x lµ n, vµ ®é dµi cña kÕt qu¶ y lµ O(nk). V× thuËt to¸n ch¹y víi Ýt nhÊt O(nk) b­íc, khèi l­îng bé nhí lµm viÖc cÇn thiÕt cho A còng lµ ®a thøc. (Chóng ta gi¶ sö r»ng bé nhí lµ liªn tôc; bµi tËp 34.3-5 yªu cÇu b¹n më réng ®èi sè víi tr­êng hîp mµ c¸c vÞ trÝ ®­îc truy suÊt bëi A ®­îc r¶i r¸c qua mét vïng lín h¬n cña bé nhí vµ sù ph©n bè lµ kh¸c nhau ®èi víi mçi ®Çu vµo x).

M¹ng tæ hîp M thÓ hiÖn mét phÇn cøng m¸y tÝnh cã kÝch th­íc ®a thøc ®èi víi ®é dµi cña mét cÊu h×nh, ®ã lµ ®a thøc ®èi víi O(nk) vµ do ®ã lµ ®a thøc ®èi víi n. (PhÇn lín trong m¹ng nµy thÓ hiÖn logic cña hÖ bé nhí). M¹ng C bao gåm tèi ®a t = O(nk) phiªn b¶n cña M, vµ do vËy nã cã kÝch th­íc ®a thøc ®èi víi n. ViÖc x©y dùng C tõ x cã thÓ ®­îc hoµn thµnh víi thêi gian ®a thøc bëi thuËt to¸n tèi gi¶n F, v× mçi b­íc x©y dùng chiÕm thêi gian ®a thøc.

V× vËy ng«n ng÷ CIRCUIT-SAT Ýt nhÊt lµ khã ngang víi bÊt kú ng«n ng÷ nµo trong NP vµ do ®ã nã thuéc NP, nã lµ NP- ®Çy ®ñ.

§Þnh lý 34.7

Bµi to¸n m¹ng tho¶ ®­îc lµ NP - ®Çy ®ñ.

Chøng minh: Trùc tiÕp tõ bæ ®Ò 34.5 vµ 34.6 vµ tõ ®Þnh nghÜa NP - ®Çy ®ñ.

Bµi tËp

34.3-1

Chøng minh r»ng m¹ng trong h×nh 34.8 (b) lµ kh«ng tho¶ ®­îc.

Page 24: Chuong34

34.3-2

ChØ ra r»ng quan hÖ P lµ mét quan hÖ cã tÝnh chÊt b¾c cÇu trªn c¸c ng«n ng÷. NghÜa lµ, h·y chØ ra r»ng nÕu L1 P L2 vµ L2 P L3 th× L1 P L3.

34.3-3

Chøng minh r»ng: L P L khi vµ chØ khi L P L.

34.3-4

Chøng minh r»ng mét c¸ch g¸n tho¶ m·n cã thÓ ®­îc sö dông nh­ mét kÕt qu¶ trong mét chøng minh kh¸c cña bæ ®Ò 34.5. VËy kÕt qu¶ nµo ®Ó t¹o mét chøng minh dÔ dµng h¬n.

34.3-5

Chøng minh bæ ®Ò 34.6 gi¶ sö r»ng bé nhí lµm viÖc cña thuËt to¸n A chiÕm mét vïng nhí liªn tôc víi kÝch th­íc ®a thøc. VÞ trÝ nµo trong chøng minh thÓ hiÖn ®iÒu nµy. H·y chøng tá r»ng ®iÒu gi¶ sö nµy kh«ng lµm mÊt tÝnh tæng qu¸t.

34.3-6

Mét ng«n ng÷ L lµ ®¹i diÖn cho líp ng«n ng÷ C víi l­u ý r»ng tèi gi¶n thêi gian ®a thøc nÕu vµ chØ nÕu L’ P L víi mäi L’ C. Chøng minh r»ng vµ {0,1}* lµ c¸c ng«n ng÷ duy nhÊt trong P vµ kh«ng ®Çy ®ñ ®èi víi P víi ®Ó ý tíi tèi gi¶n thêi gian ®a thøc.

34.3-7

Chøng minh r»ng L lµ ®Çy ®ñ ®èi víi NP nÕu vµ chØ nÕu L lµ ®Çy ®ñ ®èi víi líp con NP.

34.3-8

ThuËt to¸n tèi gi¶n F trong chøng minh cña bæ ®Ò 34.6 x©y dùng m¹ng C=f(x) dùa trªn viÖc biÕt x, A vµ k. Gi¸o s­ Sartre nhËn thÊy r»ng x©u x lµ ®Çu vµo cho f, nh­ng chi sù tån t¹i cña A, k vµ nh©n tè h»ng sè hµm Èn trong thêi gian ch¹y O(nk) lµ ®­îc biÕt cho F (v× ng«n ng÷ L thuéc NP), chø kh«ng ph¶i gi¸ trÞ thËt sù cña chóng. Nh­ vËy, gi¸o s­ kÕt luËn r»ng F kh«ng thÓ t¹o ®­îc m¹ng C vµ ng«n ng÷ CIRCUIT-SAT kh«ng cÇn thiÕt lµ NP-khã. H·y gi¶i thÝch lç hæng trong lý gi¶i cña gi¸o s­.

34.4 C¸c chøng minh NP-®Çy ®ñ

NP-®Çy ®ñ cña bµi to¸n m¹ng tho¶ ®­îc dùa trªn chøng minh trùc tiÕp r»ng L P CIRCUIT-SAT víi bÊt kú ng«n ng÷ L NP. Trong phÇn nµy, chóng ta sÏ chØ ra c¸ch chøng minh r»ng c¸c ng«n ng÷ lµ NP-®Çy ®ñ mµ kh«ng cÇn ph¶i trùc tiÕp gi¶m ®i mäi ng«n ng÷ trong NP tíi mét ng«n ng÷ ®· cho. Chóng ta sÏ minh ho¹ ph­¬ng thøc nµy b»ng c¸ch chøng minh r»ng c¸c bµi to¸n c«ng thøc tho¶ ®­îc kh¸c nhau lµ NP-®Çy ®ñ. PhÇn 34.5 cung cÊp thªm nhiÒu vÝ dô n÷a cña ph­¬ng ph¸p nµy.

Bæ ®Ò 34.8

Page 25: Chuong34

NÕu L lµ mét ng«n ng÷ mµ L’ P L ®èi víi mét vµi L’ NPC, th× L lµ NP-khã. H¬n n÷a, nÕu L NP th× L NPC.

Chøng minh: V× L’ lµ NP-®Çy ®ñ nªn víi mäi L’’ NP, ta cã L’’ P L. Víi gi¶ sö r»ng,

L’ P L, vµ do tÝnh chÊt b¾c cÇu (xem bµi tËp 34.3-2) ta cã L’’ P L, ®iÒu nµy cho thÊy L

lµ NP-khã. NÕu L NP, ta còng cã L NPC.

Nãi c¸ch kh¸c, b»ng c¸ch gi¶m ®i mét ng«n ng÷ NP-®Çy ®ñ L’ ®· biÕt tíi L, chóng ta tèi gi¶n hoµn toµn mäi ng«n ng÷ trong NP tíi L. Do ®ã, bæ ®Ò 34.8 cho chóng ta mét c¸ch ®Ó chøng minh r»ng mét ng«n ng÷ L lµ NP-®Çy ®ñ.

1. Chøng minh: L NP

2. Chän mét ng«n ng÷ NP-®Çy ®ñ L’.

3. M« t¶ mét thuËt to¸n tÝnh mét hµm f ¸nh x¹ mäi phÇn tö x {0,1}* cña L’ tíi mét

phÇn tö f(x) cña L.

4. Chøng minh r»ng f tho¶ m·n x L’ khi vµ chØ khi f(x) L víi mäi x {0,1}*.

5. Chøng minh r»ng thuËt to¸n tÝnh f ch¹y víi thêi gian ®a thøc.

(C¸c b­íc 2-5 cho thÊy r»ng L lµ NP-khã). Ph­¬ng ph¸p tèi gi¶m tõ mét ng«n ng÷ NP-®Çy ®ñ ®¬n ®· biÕt lµ ®¬n gi¶n h¬n nhiÒu so víi qu¸ tr×nh phøc t¹p chØ trùc tiÕp c¸ch tèi gi¶n mäi ng«n ng÷ trong NP. CIRCUIT-SAT NPC ®· chøng minh cho chóng ta mét c¸ch tiÕp cËn. Nªn biÕt r»ng bµi to¸n m¹ng tho¶ ®­îc lµ NP-®Çy ®ñ cho chóng ta c¸ch chøng minh ®¬n gi¶n h¬n nhiÒu c¸c bµi to¸n kh¸c lµ NP-®¬n gi¶n. H¬n n÷a, v× chóng ta ph¸t triÓn mét danh s¸ch c¸c bµi to¸n NP-®Çy ®ñ ®· biÕt, chóng ta sÏ cã nhiÒu sù lùa chän h¬n cho c¸c ng«n ng÷ ®Ó tèi gi¶n.

C«ng thøc tho¶ ®­îc

Chóng ta minh ho¹ ph­¬ng ph¸p tèi gi¶n ho¸ b»ng c¸ch cho mét c¸ch chøng minh NP-®Çy ®ñ cho c¸c bµi to¸n x¸c ®Þnh xem mét c«ng thøc thuéc d¹ng boolean, kh«ng ph¶i lµ mét m¹ng, lµ tho¶ ®­îc. Bµi to¸n nµy cã ý nghÜa lÞch sö nh­ lµ bµi to¸n ®Çu tiªn ®­îc biÕt chØ ra NP-®Çy ®ñ.

Chóng ta sÏ tr×nh bµy mét c¸ch chÝnh x¸c bµi to¸n tho¶ ®­îc theo kh¸i niÖm ng«n ng÷ SAT nh­ sau. Mét phÇn tö cña SAT lµ mét biÓu thøc kiÓu boolean bao gåm:

1. n biÕn boolean: x1, x2, ..., xn;

2. m kÕt nèi boolean: bÊt kú hµm boolean nµo víi mét hay hai ®Çu vµo vµ mét ®Çu ra,

nh­ (vµ), (hoÆc), (phñ ®Þnh), (kÐo theo), (khi vµ chØ khi); vµ

3. dÊu ngoÆc ®¬n. (Kh«ng mÊt tÝnh tæng qu¸t, chóng ta gi¶ sö r»ng kh«ng cã sù d­

thõa cña dÊu më ngoÆc, vÝ dô, cã Ýt nhÊt mét cÆp dÊu chÊm phÈy ®èi víi mçi liªn

kÕt boolean).

DÔ dµng m· ho¸ mét c«ng thøc kiÓu boolean víi kÝch th­íc ®a thøc ®èi víi n+m. Nh­ trong c¸c m¹ng tæ hîp kiÓu boolean, mét c¸ch g¸n ®óng víi mét c«ng thøc kiÓu boolean lµ mét tËp c¸c gi¸ trÞ cho c¸c biÕn cña , vµ mét c¸ch g¸n tho¶ m·n lµ mét c¸ch

Page 26: Chuong34

g¸n ®óng khiÕn cho nã cã gi¸ trÞ b»ng 1. Mét c«ng thøc víi mét c¸ch g¸n tho¶ m·n lµ mét c«ng thøc tho¶ ®­îc. Bµi to¸n tho¶ ®­îc hái xem mét c«ng thøc kiÓu boolean ®· cho lµ tho¶ ®­îc hay kh«ng theo kh¸i niÖm ng«n ng÷ h×nh thøc.

SAT = {<>: lµ mét c«ng thøc tho¶ ®­îc kiÓu boolean}

Nh­ mét vÝ dô, c«ng thøc

=((x1 x2) (( x1 x3) x4) x2

cã c¸ch g¸n tho¶ m·n <x1 = 0, x2 = 0, x3 = 1, x4 = 1>, do ®ã

=((00) (( 0 1) 1) 0

= (1 (1 1)) 1

= (1 0) 1

= 1

(34.2)

Vµ nh­ vËy c«ng thøc thuéc SAT. ThuËt to¸n ®¬n gi¶n ®Ó x¸c ®Þnh xem mét c«ng thøc kiÓu boolean tuú ý lµ tho¶ ®­îc sÏ

kh«ng ch¹y víi thêi gian ®a thøc. Cã 2n c¸ch g¸n cã thÓ trong c«ng thøc víi n biÕn. NÕu ®é dµi cña lµ ®a thøc ®èi víi n, th× viÖc kiÓm tra mäi c¸ch g¸n cÇn thêi gian (2n) , nã lµ siªu ®a thøc ®èi víi ®é dµi cña ( ). Nh­ ®Þnh lý sau cho thÊy, mét thuËt to¸n thêi gian siªu ®a thøc lµ hÇu nh­ kh«ng tån t¹i.

§Þnh lý 34.9

TÝnh tho¶ ®­îc cña c¸c c«ng thøc kiÓu boolean lµ NP-®Çy ®ñ. Chøng minh: Chóng ta b¾t ®Çu b»ng c¸ch chøng tá r»ng SAT NP. Sau ®ã chóng ta CIRCUIT-SAT lµ NP-khã b»ng c¸ch chØ ra r»ng CIRCUIT-SAT P SAT; b»ng bæ ®Ò 34.8, ®iÒu nµy sÏ chøng minh ®Þnh lý.

§Ó chØ ra SAT thuéc NP, ta sÏ chØ ra r»ng mét kÕt qu¶ bao gåm mét c¸ch g¸n tho¶ m·n cho mét c«ng thøc ®Çu vµo cã thÓ ®­îc chøng tá trong thêi gian ®a thøc. ThuËt to¸n chøng minh thay thÕ mét c¸ch ®¬n gi¶n mçi biÕn trong c«ng thøc víi mét gi¸ trÞ t­¬ng øng vµ råi tÝnh gi¸ trÞ cña biÓu thøc, nh­ chóng ta thùc hiÖn trong ph­¬ng tr×nh (34.2) ë trªn. §iÒu nµy ®­îc thùc hiÖn ®¬n gi¶n víi thêi gian ®a thøc. NÕu biÓu thøc cã gi¸ trÞ 1, c«ng thøc lµ tho¶ ®­îc. Nh­ vËy, ®iÒu kiÖn thø nhÊt cña bæ ®Ò 34.8 cho NP-®Çy ®ñ ®­îc thùc hiÖn.

§Ó chøng minh r»ng SAT lµ NP-khã, ta chØ ra r»ng CIRCUIT-SAT P SAT. Nãi c¸ch kh¸c, mçi phÇn tö cña m¹ng tho¶ ®­îc cã thÓ tèi gi¶n víi thêi gian ®a thøc tíi mét phÇn tö cña c«ng thøc tho¶ ®­îc. Ph­¬ng ph¸p quy n¹p cã thÓ ®­îc ¸p dông ®Ó biÓu diÔn bÊt kú m¹ng tæ hîp kiÓu boolean nµo nh­ mét c«ng thøc kiÓu boolean. Chóng ta ®¬n gi¶n ®Ó ý ®Õn cæng sinh ra m¹ng ®Çu ra vµ mét c¸ch quy n¹p thÓ hiÖn mçi ®Çu vµo cña cæng nh­ lµ c¸c c«ng thøc. C«ng thøc cho m¹ng tiÕp ®ã thu ®­îc bëi viÕt mét biÓu thøc ¸p dông hµm cña cæng cho c¸c c«ng thøc cña c¸c ®Çu vµo cña nã.

Kh«ng may lµ, ph­¬ng ph¸p trùc tiÕp nµy kh«ng t¹o ®­îc tèi gi¶n thêi gian ®a thøc. Nh­ bµi tËp 34.4-1 cho thÊy, c¸c c«ng thøc con – nh÷ng c«ng thøc n¶y sinh tõ c¸c cæng mµ c¸c d©y ®Çu ra cã hÖ sè ph©n ®Çu ra lµ 2 – cã thÓ lµm cho kÝch th­íc cña c«ng thøc

Page 27: Chuong34

®­îc t¹o ra ph¸t triÓn theo hµm mò. Do ®ã, thuËt to¸n tèi gi¶n ph¶i lµ mét c¸i g× ®ã tèt h¬n.

H×nh 34.10 minh ho¹ ý t­ëng c¬ b¶n cña sù tèi gi¶n tõ CIRCUIT-SAT tíi SAT trªn m¹ng tõ h×nh 34.8(a). Víi mçi d©y xi ë trong m¹ng C, c«ng thøc cã mét biÕn xi. PhÐp tÝnh tèt h¬n cña mét cæng cã thÓ ®­îc biÓu diÔn nh­ mét c«ng thøc liªn quan ®Õn c¸c biÕn cña c¸c d©y liªn quan. VÝ dô, phÐp to¸n trªn cæng ®Çu ra AND lµ x10 (x7 x8 x9).

C«ng thøc sinh bëi thuËt to¸n tèi gi¶n lµ AND cña biÕn m¹ng ®Çu ra cïng víi c¸c

mÖnh ®Ò m« t¶ phÐp to¸n cña mçi cæng. §èi víi m¹ng trong h×nh vÏ, c«ng thøc lµ

= x10 (x4 x3)

(x5 (x1 x2))

(x7 (x1 x2 x4))

(x8 (x5 x6))

(x9 (x6 x7)

(x10 (x7 x8 x9))

Cho m¹ng C, cã thÓ t¹o ngay ®­îc mét c«ng thøc víi thêi gian tho¶ ®­îc. T¹i sao m¹ng C tho¶ ®­îc mét c¸ch chÝnh x¸c khi c«ng thøc lµ tho¶ ®­îc? NÕu C cã

mét c¸ch g¸n tho¶ m·n, mçi d©y cña m¹ng cã mét gi¸ trÞ ®­îc ®Þnh nghÜa tèt, vµ ®Çu ra cña m¹ng lµ 1. V× vËy, c¸ch g¸n cña c¸c gi¸ trÞ trªn d©y cho c¸c biÕn trong lµm cho mçi mÖnh ®Ò cña cã gi¸ trÞ 1, vµ do vËy sù kÕt nèi c¸c gi¸ trÞ cã gi¸ trÞ 1. Ng­îc l¹i, nÕu cã mét c¸ch g¸n lµm cho cã gi¸ trÞ 1, m¹ng C lµ tho¶ ®­îc bëi mét ®èi sè t­¬ng tù. Do ®ã, chóng ta ®· chØ ra r»ng CIRCUIT-SAT P SAT, ®iÒu nµy kÕt thóc chøng minh.

3-CNF æn ®Þnh

NhiÒu bµi to¸n cã thÓ ®­îc chøng minh NP-®Çy ®ñ b»ng c¸ch tèi gi¶n tõ mét c«ng thøc æn ®Þnh. MÆc dÇu thuËt to¸n tèi gi¶n ph¶i sö dông bÊt cø c«ng thøc ®Çu vµo nµo, vµ ®iÒu nµy ®ßi hái cã thÓ dÉn tíi mét sè lín c¸c tr­êng hîp cÇn ph¶i xem xÐt. V× vËy, ®iÒu ®¸ng cÇn lµ tèi gi¶n tõ mét ng«n ng÷ h¹n chÕ cña c¸c c«ng thøc kiÓu boolean, ®Ó råi Ýt

H×nh 34.10 Tèi gi¶n m¹ng tho¶ ®­îc ®Õn c«ng thøc tho¶ ®­îc. C«ng thøc sinh bëi thuËt to¸n tèi gi¶n cã

mét biÕn cho mçi d©y trong m¹ng.

Page 28: Chuong34

tr­êng hîp h¬n cÇn ®­îc xem xÐt. HiÓn nhiªn, chóng ta ph¶i h¹n chÕ ng«n ng÷ cµng nhiÒu ®Ó mµ nã trë thµnh cã thÓ gi¶i quyÕt ®­îc trong thêi gian ®a thøc. Mét ng«n ng÷ thuËn lîi lµ 3-CNF tho¶ ®­îc hay 3-CNF-SAT.

Chóng ta sÏ ®Þnh nghÜa 3-CNF tho¶ ®­îc b»ng c¸ch sö dông c¸c kh¸i niÖm sau. Mét ký hiÖu trong mét c«ng thøc kiÓu boolean lµ mét biÕn thÓ cña mét biÕn hay phñ ®Þnh cña nã. Mét c«ng thøc kiÓu boolean lµ mét d¹ng chuÈn t¾c nèi tiÕp, hay CNF, nÕu nã ®­îc biÓu diÔn mét phÐp to¸n AND cña c¸c mÖnh ®Ò, mçi mÖnh ®Ò trong ®ã lµ mÖnh ®Ò OR hay nhiÒu ký hiÖu h¬n. Mét c«ng thøc kiÓu boolean lµ cã d¹ng d¹ng chuÈn t¾c 3 kÕt nèi, hay 3-CNF, nÕu mçi mÖnh ®Ò cã chÝnh x¸c ba ký hiÖu ph©n biÖt.

VÝ dô, c«ng thøc kiÓu boolean: (x1 x1 x2) (x3 x2 x4) ( x1 x3 x4)

lµ thuéc 3-CNF. MÖnh ®Ò ®Çu tiªn trong 3 mÖnh ®Ò cña nã lµ (x1 x1 x2), nã chøa 3 ký hiÖu x1, x1, vµ x2.

Trong 3-CNF-SAT, chóng ta cÇn biÕt xem mét c«ng thøc kiÓu boolean ®· cho thuéc 3-CNF lµ tho¶ ®­îc hay kh«ng. §Þnh lý sau ®©y chØ ra r»ng mét thuËt to¸n thêi gian ®a thøc cã thÓ x¸c ®Þnh tÝnh æn ®Þnh cña c¸c c«ng thøc kiÓu boolean lµ hÇu nh­ kh«ng tån t¹i, thËm chÝ khi chóng ®­îc biÓu diÔn ë d¹ng chuÈn t¾c ®¬n gi¶n nµy.

§Þnh lý 34.10

TÝnh æn ®inh cña c¸c c«ng thøc kiÓu boolean trong d¹ng chuÈn t¾c 3 kÕt nèi lµ NP-®Çy ®ñ.

Chøng minh:

§èi sè chóng ta ®· sö dông trong bæ ®Ò 34.9 ®Ó chØ ra r»ng SAT NP ¸p dông t­¬ng tù ë ®©y ®Ó chØ ra r»ng 3-CNF-SAT NP. Do ®ã, bëi bæ ®Ò 34.8, chóng ta chØ cÇn chØ ra r»ng SAT P 3-CNF-SAT.

ThuËt to¸n tèi gi¶n cã thÓ ®­îc ph©n ra thµnh 3 b­íc. Mçi b­íc truyÓn dÇn ®Çu vµo c«ng thøc tiÕn gÇn h¬n tíi d¹ng chuÈn t¾c 3-kÕt nèi mong muèn.

B­íc ®Çu tiªn t­¬ng tù víi b­íc ®­îc sö dông ®Ó chøng minh r»ng CIRCUIT-SAT P SAT trong ®Þnh lý 34.9. Tr­íc tiªn, chóng ta x©y dùng mét c©y ph©n tÝch nhÞ ph©n cho ®Çu vµo c«ng thøc , víi c¸c ký hiÖu nh­ lµ l¸ vµ c¸c kÕt nèi nh­ lµ c¸c node trong. H×nh 34.11 cho thÊy mét c©y ph©n tÝch cho c«ng thøc

=((x1 x2 ) (( x1 x3) x4)) x2. (34.3)

VËy c«ng thøc ®Çu vµo cã chøa mÖnh ®Ò nh­ lµ mÖnh ®Ò OR cña mét vµi ký hiÖu, mét c¸ch kÕt hîp, cã thÓ ®­îc sö dông ®Ó ®Æt hoµn toµn trong dÊu ngoÆc ®¬n ®Ó mµ mäi node trong trong c©y kÕt qu¶ cã mét hoÆc 2 con. C©y ph©n tÝch nhÞ ph©n lóc nµy ®­îc thÓ hiÖn nh­ mét m¹ng ®Ó tÝnh to¸n hµm sè.

Page 29: Chuong34

B»ng c¸ch b¾t ch­íc c¸ch tèi gi¶n ho¸ trong chøng minh ®Þnh lý 34.9, chóng ta ®­a ra biÕn yi cho ®Çu ra cña mçi node trong. Råi ta ghi l¹i c«ng thøc c¬ b¶n nh­ c«ng thøc cña phÐp to¸n AND cña biÕn node gèc vµ mét kÕt nèi cña c¸c mÖnh ®Ò m« t¶ phÐp to¸n cña mçi node. §èi víi c«ng thøc (34.3), biÓu thøc kÕt qu¶ lµ

= y1 (y1 (y2 x2))

(y2 (y3 y4))

(y4 y5)

(y5 (y6 x4))

(y6 (x1 x3))

Nh­ vËy ®Ó ý r»ng c«ng thøc ’ thu ®­îc lµ mét kÕt nèi cña c¸c mÖnh ®Ò ’i, mçi mÖnh ®Ò cã nhiÒu nhÊt 3 ký hiÖu. §iÒu cÇn thªm vµo duy nhÊt lµ mçi mÖnh ®Ò lµ mét mÖnh ®Ò cña c¸c ký hiÖu víi phÐp to¸n OR.

B­íc thø hai cña phÐp tèi gi¶n chuyÓn mçi mÖnh ®Ò ’i thµnh d¹ng chuÈn t¾c nèi kÕt. Chóng ta x©y dùng mét b¶ng ch©n trÞ cho ’i b»ng c¸ch xem xÐt c¸c c¸ch g¸n cã thÓ cho c¸c biÕn. Mçi hµng cña b¶ng bao gåm mét c¸ch g¸n cã thÓ cña c¸c biÕn cña mÖnh ®Ò, cïng víi gi¸ trÞ cña mÖnh ®Ò d­íi c¸ch g¸n ®ã. Sö dông danh s¸ch cña b¶ng ch©n trÞ cã gi¸ trÞ 0, chóng ta x©y dùng mét c«ng thøc trong d¹ng chuÈn t¾c ph©n biÖt (hay DNF) – mét d¹ng cña c«ng thøc víi phÐp to¸n AND hoÆc OR – nã t­¬ng ®­¬ng víi ’i. TiÕp ®ã chóng ta chuyÓn mçi c«ng thøc nµy thµnh mét c«ng thøc ’’i d¹ng CNF b»ng c¸ch sö

H×nh 34.11 C©y t­¬ng ®­¬ng c«ng thøc = ((x1 x2) ((x1 x3) x4)) x2

Page 30: Chuong34

dông luËt DeMorgan (ph­¬ng tr×nh (B.2)) ®Ó bæ sung tÊt c¶ c¸c ký hiÖu vµ chuyÓn mÖnh ®Ò d¹ng OR thµnh d¹ng AND vµ d¹ng AND thµnh OR.

Trong vÝ dô cña chóng ta, chóng ta chuyÓn mÖnh ®Ò ’1 = (y1 (y2 x2)) thµnh d¹ng CNF nh­ sau. B¶ng ch©n trÞ cña ’1 ®­îc cho trong h×nh 34.12. C«ng thøc DNF t­¬ng ®­¬ng víi ’1 lµ

(y1 y1 x2) (y1 y1 x2) (y1 y1 x2) ( y1 y1 x2)

¸p dông luËt DeMorgan, chóng ta cã c«ng thøc CNF.

’’1 = ( y1 y1 x2) ( y1 y1 x2) ( y1 y1 x2) (y1 y1

x2)

t­¬ng ®­¬ng víi mÖnh ®Ò gèc ’1.

B©y giê mçi mÖnh ®Ò ’i cña c«ng thøc ’ ®· ®­îc chuyÓn thµnh mét c«ng thøc ’’i d¹ng CNF, vµ do ®ã ’ t­¬ng ®­¬ng víi c«ng thøc ’’ d¹ng CNF bao gåm kÕt nèi cña

i’’. H¬n n÷a, mçi mÖnh ®Ò cña ’’ cã nhiÒu nhÊt 3 ký hiÖu. B­íc thø 3 vµ b­íc cuèi cïng cña sù tèi gi¶n khai triÓn h¬n n÷a c«ng thøc sao cho mçi

mÖnh ®Ò cã chÝnh x¸c 3 ký hiÖu ph©n biÖt. C«ng thøc ’’’ d¹ng CNF ®­îc x©y dùng tõ c¸c mÖnh ®Ò cña c«ng thøc ’’ d¹ng CNF. Nã còng dïng c¸c biÕn phô mµ chóng ta sÏ gäi lµ p vµ q. §èi víi mçi mÖnh ®Ò Ci cña ’’, chóng ta thªm vµo c¸c mÖnh ®Ò sau trong ’’’:

NÕu Ci cã 3 ký hiÖu ph©n biÖt, th× thªm Ci nh­ mét mÖnh ®Ò cña ’’’.

NÕu Ci cã 2 ký hiÖu ph©n biÖt, ®ã lµ nÕu, nÕu Ci = (l1 l2), ë ®ã l1 vµ l2 lµ c¸c ký hiÖu,

th× thªm (l1 l2 p) (l1 l2 p) nh­ mÖnh ®Ò cña ’’’. C¸c ký hiÖu p vµ p chØ

®¸p øng c¸c yªu cÇu có ph¸p cã chÝnh x¸c 3 ký hiÖu ph©n biÖt ®èi víi mçi mÖnh ®Ò:

(l1 l2 p) (l1 l2 p) t­¬ng ®­¬ng víi (l1 l2) dï p = 0 hay p = 1.

H×nh 34.12 B¶ng ch©n trÞ cho mÖnh ®Ò (y1 (y2 x2)).

Page 31: Chuong34

NÕu Ci cã chØ mét 1 ký hiÖu ph©n biÖt l, th× thªm (l p q) (l p q) (lp

q) ( l p q) vµo nh­ mét mÖnh ®Ò cña ’’’. L­u ý r»ng mäi sù ¸p ®Æt cña p

vµ q cã thÓ lµm cho kÕt nèi cña bèn mÖnh ®Ò nµy cã gi¸ trÞ 1.

Chóng ta cã thÓ thÊy r»ng c«ng thøc ’’’ d¹ng 3-CNF lµ tho¶ ®­îc nÕu vµ chØ nÕu lµ tho¶ ®­îc b»ng c¸ch kiÓm tra kü mçi b­íc trong ba b­íc. Nh­ c¸ch tèi gi¶n tõ CIRCUIT-SAT tíi SAT, c¸ch x©y dùng ’ tõ trong b­íc ®Çu tiªn b¶o toµn tÝnh æn ®Þnh. B­íc thø hai sinh ra c«ng thøc ’’ d¹ng CNF t­¬ng ®­¬ng mét c¸ch ®¹i sè víi ’. B­íc thø ba sinh ra c«ng thøc ’’’ d¹ng 3-CNF t­¬ng ®­¬ng mét c¸ch cã hiÖu qu¶ víi ’’, v× mäi c¸ch g¸n gi¸ trÞ cho biÕn p vµ q sinh ra mét c«ng thøc t­¬ng ®­¬ng mét c¸ch ®¹i sè víi ’’.

Chóng ta ph¶i chØ ra r»ng sù tèi gi¶n cã thÓ ®­îc tÝnh to¸n víi thêi gian ®a thøc. X©y dùng ’ tõ sinh ra nhiÒu nhÊt mét biÕn vµ mét mÖnh ®Ò ®èi víi mçi kÕt nèi trong . X©y dùng ’’ tõ ’ cã thÓ ®­a nhiÒu nhÊt 8 mÖnh ®Ò vµo ’’ ®èi víi mçi mÖnh ®Ò tõ ’, v× mçi mÖnh ®Ò cña ’ cã nhiÒu nhÊt 3 biÕn, vµ b¶ng ch©n trÞ cho mçi mÖnh ®Ò cã nhiÒu nhÊt 23

= 8 hµng. ViÖc x©y dùng ’’’ tõ ’’ ®­a nhiÒu nhÊt 4 mÖnh ®Ò vµo ’’’ cho mçi mÖnh ®Ò cña ’’. Do ®ã, kÝch th­íc c«ng thøc kÕt qu¶ ’’’ lµ ®a thøc ®èi víi chiÒu dµi cña c«ng thøc c¬ b¶n. Mçi lÇn x©y dùng cã thÓ hoµn thµnh mét c¸ch ®¬n gi¶n víi thêi gian ®a thøc.

Bµi tËp

34.4 -1

XÐt sù c¸ch tèi gi¶n trùc tiÕp (thêi gian kh«ng ®a thøc) trong chøng minh cña ®Þnh lý 34.9. H·y m« t¶ m¹ng kÝch th­íc n khi ®­îc biÕn ®æi tõ mét c«ng thøc bëi ph­¬ng thøc nµy sinh ra mét c«ng thøc mµ kÝch th­íc cña nã lµ hµm mò ®èi víi n.

34.4 -2

H·y chØ ra c«ng thøc 3-CNF sinh ra khi chóng ta sö dông ph­¬ng ph¸p cña ®Þnh lý 34.10 ®èi víi c«ng thøc (34.3).

34.4 -3

Gi¸o s­ Jagger ®Ò nghÞ chØ ra r»ng SAT P 3-CNF-SAT b»ng c¸ch chØ sö dông kü thuËt b¶ng ch©n trÞ trong chøng minh cña ®Þnh lý 34.10, vµ kh«ng sö dông b­íc nµo kh¸c. §ã lµ, gi¸o s­ ®Ò nghÞ lÊy c«ng thøc d¹ng boolean , t¹o lËp b¶ng ch©n trÞ cho c¸c biÕn cña nã, xuÊt ph¸t tõ b¶ng ch©n trÞ mét c«ng thøc d¹ng 3-CNF t­¬ng ®­¬ng víi , vµ råi phñ ®Þnh vµ ¸p dông luËt DeMorgan ®Ó sinh ra mét c«ng thøc d¹ng 3-CNF t­¬ng ®­¬ng víi . H·y chøng minh r»ng chiÕn l­îc nµy kh«ng sinh ra mét sù tèi gi¶n thêi gian ®a thøc.

34.4-4

Chøng minh r»ng bµi to¸n x¸c ®Þnh xem mét c«ng thøc d¹ng boolean cã ph¶i lµ mét sù lÆp l¹i kh«ng cÇn thiÕt, lµ ®Çy ®ñ ®èi víi co-NP(Gîi ý: Xem bµi tËp 34.3-7)

34.4-5

Chøng minh r»ng bµi to¸n x¸c ®Þnh tÝnh æn ®Þnh cña c¸c c«ng thøc d¹ng boolean trong d¹ng chuÈn t¾c kÕt nèi lµ gi¶i ®­îc víi thêi gian ®a thøc.

Page 32: Chuong34

34.4-6

Gi¶ sö r»ng mét ng­êi nµo ®ã cho b¹n mét thuËt to¸n thêi gian ®a thøc ®Ó x¸c ®Þnh tÝnh æn ®Þnh cña c«ng thøc. H·y m« t¶ lµm thÕ nµo ®Ó sö dông thuËt to¸n nµy ®Ó t×m c¸c c¸ch g¸n tho¶ m·n trong thêi gian ®a thøc.

34.4-7

Cho 2-CNF-SAT lµ tËp cña c¸c c«ng thøc tho¶ ®­îc trong CNF víi chÝnh x¸c 2 ký hiÖu cho mçi mÖnh ®Ò. H·y chøng minh r»ng 2-CNF-SAT P. H·y t¹o mét thuËt to¸n cña b¹n hiÖu qu¶ nhÊt cã thÓ. (Gîi ý: §Ó ý r»ng x y lµ t­¬ng ®­¬ng víi x y. Tèi gi¶n 2-CNF-SAT tíi mét bµi to¸n trªn mét ®å thÞ cã h­íng cã thÓ gi¶i ®­îc mét c¸ch hiÖu qu¶.)

34.5 Bµi to¸n NP-®Çy ®ñ

Bµi to¸n NP-®Çy ®ñ ph¸t sinh trong nhiÒu lÜnh vùc kh¸c nhau: logic, ®å thÞ, sè häc, thiÕt kÕ m¹ng, tËp vµ c¸ch ph©n chia, bé nhê vµ sù phôc håi, s¾p xÕp vµ lËp lÞch, lËp tr×nh to¸n, ®¹i sè vµ lý thuyÕt sè, c©u ®è vµ trß ch¬i, automat vµ lý thuyÕt ng«n ng÷, tèi ­u ho¸ ch­¬ng tr×nh, sinh vËt häc, ho¸ häc, vËt lý vµ nhiÒu lÜnh vùc n÷a. Trong phÇn nµy, chóng ta sÏ sö dông ph­¬ng ph¸p tèi gi¶n ®Ó cung cÊp c¸c chøng minh NP-®Çy ®ñ cho c¸c bµi to¸n kh¸c nhau tõ lý thuyÕt ®å thÞ vµ ph©n chia tËp.

H×nh 34.13 ph¸c ho¹ cÊu tróc cña chøng minh NP-®Çy ®ñ trong phÇn nµy vµ phÇn 34.4. Mçi ng«n ng÷ trong h×nh lµ ®­îc chøng minh NP-®Çy ®ñ b»ng c¸ch tèi gi¶n tõ ng«n ng÷ h­íng tíi nã. T¹i gèc lµ CIRCUIT-SAT, ta ®· chøng minh NP-®Çy ®ñ trong ®Þnh lý 34.7.

34.5.1 Bµi to¸n clique

Mét clique trong mét ®å thÞ v« h­íng G = (V,E) lµ mét tËp V’V c¸c ®Ønh, mçi cÆp ®Ønh trong ®ã ®­îc nèi víi nhau bëi mét c¹nh trong E. Nãi c¸ch kh¸c, mét clique lµ mét ®å thÞ con ®Çy ®ñ cña G. KÝch th­íc cña mét clique lµ sè c¸c ®Ønh mµ nã chøa. Bµi to¸n clique lµ bµi to¸n tèi ­u t×m mét clique víi kÝch th­íc lín nhÊt trong mét ®å thÞ. Nh­ bµi to¸n quyÕt ®Þnh, chóng ta cÇm biÕt mét c¸ch ®¬n gi¶n lµ mét clique víi kÝch th­íc k lµ cã tån t¹i trong ®å thÞ hay kh«ng. §Þnh nghÜa h×nh thøc lµ

CLIQUE = {<G,k> : G lµ mét ®å thÞ víi mét clique kÝch th­íc k}

Mét thuËt to¸n ®¬n gi¶n x¸c ®Þnh xem mét ®å thÞ G=(V,E) víi |V| ®Ønh cã mét clique kÝch th­íc k hay kh«ng lµ liÖt kª tÊt c¶ c¸c tËp con kÝch th­íc k cña V, vµ kiÓm tra mçi

tËp ®Ó xem nã cã t¹o thµnh mét clique. Thêi gian ch¹y cña thuËt to¸n nµy lµ (k2

k

V || ),

nã lµ mét ®a thøc nÕu k lµ mét h»ng sè. Tuy nhiªn, nãi chung k cã thÓ gÇn |V|/2, trong tr­êng hîp ®ã thuËt to¸n ch¹y víi thêi gian siªu ®a thøc. Nh­ mét ng­êi cã thÓ nghi ngê, mét thuËt to¸n hiÖu qu¶ cho bµi to¸n clique lµ hÇu nh­ kh«ng tån t¹i.

Page 33: Chuong34

§Þnh lý 34.11

Bµi to¸n clique lµ NP-®Çy ®ñ. Chøng minh: §Ó chØ ra r»ng CLIQUE Np, ®èi víi mét ®å thÞ G=(V,E), chóng ta sö

dông tËp V’ V cña c¸c ®Ønh trong clique nh­ mét kÕt qu¶ cña G. KiÓm tra xem V’ cã lµ clique hay kh«ng cã thÓ ®­îc hoµn thµnh trong thêi gian ®a thøc b»ng c¸ch kiÓm tra xem víi mçi cÆp u, v V’, c¹nh (u,v) cã thuéc E.

TiÕp ®ã chóng ta chøng minh r»ng 3-CNF-SAT P CLIQUE, ®iÒu nµy cho thÊy r»ng bµi to¸n clique lµ NP-khã. C¸i mµ chóng ta cã thÓ chøng minh kÕt qu¶ nµy lµ mét c¸i g× ®ã bÊt ngê v× vÒ bÒ ngoµi ®èi víi c¸c c«ng thøc logic d­êng nh­ cã rÊt Ýt liªn hÖ víi ®å thÞ.

ThuËt to¸n tèi gi¶n b¾t ®Çu b»ng mét phÇn tö cña 3-CNF-SAT. Cho C1 C2... Ck lµ mét c«ng thøc logic trong 3-CNF víi k mÖnh ®Ò. Víi r=1,2,...,k, mÖnh ®Ò Cr cã chÝnh x¸c

3 ký hiÖu ph©n biÖt rl1 , rl2 vµ rl3 . Chóng ta sÏ x©y dùng mét ®å thÞ G sao cho lµ tho¶

®­îc nÕu vµ chØ nÕu G cã mét clique kÝch th­íc k.

§å thÞ G=(V,E) ®­îc x©y dùng nh­ sau. Víi mçi mÖnh ®Ò Cr=( rl1 rl2 rl3 ) trong ,

chóng ta ®Æt mét bé ba c¸c ®Ønh rv1rv2

rv3 vµo trong V. Chóng ta ®Æt mét c¹nh gi÷a hai

®Ønh riv vµ s

jv nÕu hai ®iÒu kiÖn sau ®­îc tho¶ m·n:

riv vµ s

jv ë hai bé ba kh¸c nhau, ®ã lµ rs, vµ

c¸c ký hiÖu t­¬ng øng lµ ®ång nhÊt, ®ã lµ, ril kh«ng ph¶i lµ phñ ®Þnh cña s

jl

§å thÞ nµy cã thÓ dÔ dµng x©y dùng ®­îc tõ víi thêi gian ®a thøc. XÐt vÝ dô ®èi víi c«ng thøc

H×nh 34.13 CÊu tróc cña chøng minh tÝnh NP- ®ñ trong môc 34.4 vµ 34.5.

Page 34: Chuong34

=(x1x2x3) (x1x2x3) (x1x2x3)

Ta cã ®å thÞ G ®­îc x©y dùng nh­ trong h×nh 34.14.

Chóng ta ph¶i chØ ra r»ng c¸ch biÕn ®æi cña thµnh G lµ mét c¸ch tèi gi¶n. Tr­íc tiªn,

gi¶ sö r»ng cã mét c¸ch g¸n tho¶ m·n. Mçi mÖnh ®Ò Cr chøa Ýt nhÊt mét ký hiÖu ril ®­îc

g¸n gi¸ trÞ 1, vµ mçi ký hiÖu nh­ vËy t­¬ng øng víi mét ®Ønh riv . LÊy mét ký hiÖu ®óng

nh­ vËy tõ mçi mÖnh ®Ò sinh ra mét tËp V’ c¸c ®Ønh. Chóng ta x¸c nhËn r»ng V’ lµ mét

clique. §èi víi hai ®Ønh riv , s

jv V’, ë ®ã rs, c¶ hai ký hiÖu t­¬ng øng ril vµ s

jl ®­îc ¸nh

x¹ tíi 1 bëi c¸ch g¸n tho¶ m·n ®· cho, vµ do ®ã c¸c ký hiÖu kh«ng thÓ lµ phÇn bï. Do ®ã,

do c¸ch x©y dùng G, c¹nh ( riv , s

jv ) thuéc E.

Ng­îc l¹i, gi¶ sö r»ng G cã mét clique V’ kÝch th­íc k. Kh«ng c¹nh nµo trong G kÕt nèi c¸c ®Ønh trong cïng mét bé ba, vµ v× vËy V’ chøa chÝnh x¸c mét ®Ønh ®èi víi mçi bé

ba. Chóng ta cã thÓ g¸n gi¸ trÞ 1 cho mçi ký hiÖu ril ®Ó mµ r

iv V’ mµ kh«ng sî g¸n 1

cho c¶ mét ký hiÖu vµ phÇn bï cña nã, v× mçi G ®Òu kh«ng chøa c¸c ký hiÖu kh«ng ®ång

nhÊt. Mçi mÖnh ®Ò lµ tho¶ m·n, vµ v× vËy lµ tho¶ m·n. (Mäi biÕn kh«ng t­¬ng øng víi mét ®Ønh trong clique cã thÓ ®­îc ®Æt tuú ý).

Trong vÝ dô h×nh 34.14, mét c¸ch g¸n tho¶ m·n cña cã x2=0 vµ x3=1. Mét clique t­¬ng øng cã kÝch th­íc k=3 bao gåm c¸c ®Ønh t­¬ng øng víi x2 tõ mÖnh ®Ò thø nhÊt, x3 tõ mÖnh ®Ò thø hai, vµ x3 tõ mÖnh ®Ò thø ba. Bëi v× clique kh«ng chøa c¸c ®Ønh t­¬ng øng víi x1 hoÆc x1, chóng ta cã thÓ g¸n x1 gi¸ trÞ 0 hoÆc 1 trong c¸ch g¸n tho¶ m·n nµy.

§Ó ý r»ng trong chøng minh cña ®Þnh lý 34.11, chóng ta tèi gi¶n mét phÇn tö tuú ý cña 3-CNF-SAT ®Õn mét cña CLIQUE víi mét cÊu tróc ®Æc biÖt. D­êng nh­ chóng ta chØ chØ ra r»ng CLIQUE lµ NP-khã trong c¸c ®å thÞ mµ c¸c ®Ønh cña nã ®­îc h¹n chÕ xuÊt hiÖn

H×nh 34.14 §å thÞ G nhËn ®­îc tõ c«ng thøc 3-CNF =C1C2C3, ë ®ã C1=(x1x2x3),

C2=(x1x2x3), C3=(x1x2x3), khi tèi gi¶n 3-CNF-SAT thµnh CLIQUE. Mét c¸ch g¸n tho¶ m·n cña c«ng

thøc cã x2=0, x3=1, vµ x1 cã thÓ nhËn gi¸ trÞ lµ 0 hoÆc 1. C¸ch g¸n nµy tho¶ m·n C1 víi x2, vµ nã tho¶ m·n

C2 vµ C3 víi x3, t­¬ng øng víi c¸c ®Ønh ®­îc t« x¸m mét chót.

Page 35: Chuong34

trong c¸c bé ba vµ kh«ng cã c¹nh nµo gi÷a c¸c ®Ønh ë trong cïng mét bé ba. Thùc sù, chóng ta ®· chØ ra ra r»ng CLIQUE lµ NP-khã trong tr­êng hîp kh¸ ®Æc biÖt nµy, nh­ng chøng minh nµy ®ñ ®Ó chØ ra r¨ng CLIQUE lµ NP-khã trong c¸c ®å thÞ tæng qu¸t. T¹i sao vËy? NÕu chóng ta cã mét thuËt to¸n trong thêi gian ®a thøc gi¶i quyÕt CLIQUE ®èi víi c¸c ®å thÞ tæng qu¸t, nã còng t×m ra CLIQUE trong c¸c ®å thÞ h¹n chÕ.

Tuy nhiªn nã kh«ng ®ñ ®Ó tèi gi¶n c¸c phÇn tö cña 3-CNF-SAT víi mét cÊu tróc ®Æc biÖt tíi c¸c phÇn tö tæng qu¸t cña CLIQUE. V× sao vËy? Cã lÏ v× víi c¸c phÇn tö cña 3-CNF-SAT mµ chóng ta chän ®Ó tèi gi¶n lµ dÔ, vµ v× vËy chóng ta kh«ng thÓ tèi gi¶n mét bµi to¸n NP-khã tíi CLIQUE.

Còng cÇn ®Ó ý r»ng c¸ch tèi gi¶n sö dông phÇn tö cña 3-CNF-SAT chø kh«ng ph¶i lµ c¸ch gi¶i quyÕt. §· cã lçi trong thuËt to¸n thêi gian ®a thøc khi dùa trªn viÖc biÕt c«ng thøc cã tho¶ ®­îc hay kh«ng, v× chóng ta kh«ng biÕt c¸ch x¸c ®Þnh th«ng tin nµy trong thêi gian ®a thøc.

34.5.2 Bµi to¸n bao ®ãng ®Ønh

Mét bao ®ãng ®Ønh cña mét ®å thÞ v« h­íng G=(V,E) lµ mét tËp con V’ V sao cho

nÕu (u,v) E th× hoÆc u V’ hoÆc v V’ (hoÆc c¶ hai). §ã lµ, mçi ®Ønh bao gåm c¸c c¹nh g¾n víi nã, vµ mét bao ®ãng ®Ønh cña G lµ mét tËp c¸c ®Ønh bao phñ tÊt c¶ c¸c c¹nh cña E. KÝch th­íc cña mét bao ®ãng ®Ønh lµ sè ®Ønh cña nã. VÝ dô. ®å thÞ trong h×nh 34.15(b) cã mét bao ®ãng ®Ønh {w,z} kÝch th­íc 2.

Bµi to¸n bao ®ãng ®Ønh lµ t×m mét bao ®ãng ®Ønh víi kÝch th­íc nhá nhÊt trong mét ®å thÞ ®· cho. Ph¸t biÓu l¹i bµi to¸n tèi ­u nµy nh­ mét bµi to¸n quyÕt ®Þnh, chóng ta muèn x¸c ®Þnh mét ®å thÞ cã mét bao ®ãng ®Ønh kÝch th­íc k. Theo ng«n ng÷, chóng ta ®Þnh nghÜa

VERTEX-COVER={<G,k>: ®å thÞ G cã mét bao ®ãng ®Ønh kÝch th­íc k}

§Þnh lý sau sÏ chØ ra r»ng bµi to¸n nµy lµ NP-®Çy ®ñ.

§Þnh lý 34.12

Bµi to¸n bao ®ãng ®Ønh lµ NP-khã.

Chøng minh: Tr­íc tiªn chóng ta sÏ chøng tá r»ng VERTEX-COVER NP. Gi¶ sö r»ng

chóng ta cã ®å thÞ G=(V,E) vµ mét sè nguyªn k. Lêi gi¶i mµ chóng ta chän lµ mét bao

H×nh 34.15 Tåi gi¶n CLIQUE thµnh VERTEX-COVER. (a) Mét ®å thÞ v« h­íng G= (V,E) víi clique V’ =

{u,v,x,y}. (b) §å thÞ G ®­îc t¹o bëi thuËt to¸n tèi gi¶n cã bao ®ãng ®Ønh V-V’ = {w,z}.

Page 36: Chuong34

®ãng ®Ønh V’ V. ThuËt to¸n x¸c ®Þnh lêi gi¶i kh¼ng ®Þnh r»ng |V’| = k, vµ sau ®ã nã

kiÓm tra víi mçi ®Ønh (u,v) E xem u V’ hoÆc v V’. Lêi gi¶i cã thÓ ®­îc ®­îc hiÖn

tøc kh¾c víi thêi gian ®a thøc.

Chóng ta chøng minh r»ng bµi to¸n bao ®ãng ®Ønh lµ NP-khã b»ng c¸ch chØ ra r»ng CLIQUE P VERTEX-COVER. Sù tèi gi¶n nµy ®­îc dùa trªn kh¸i niÖm phÇn bï cña mét ®å thÞ. Víi mét ®å thÞ v« h­íng cho tr­íc G = (V,E), chóng ta ®Þnh nghÜa phÇn bï cña G

lµ G = (V,E ), ë ®ã E = {(u,v) : u,v V, u v, vµ (u,v) E}. Nãi c¸ch kh¸c, G lµ ®å thÞ chøa c¸c c¹nh kh«ng thuéc G. H×nh 34.15 cho thÊy mét ®å thÞ mµ phÇn bï cña nã vµ minh ho¹ sù tèi gi¶n tõ CLIQUE thµnh VERTEX-COVER.

ThuËt to¸n tèi gi¶n lÊy phÇn tö <G,k> cña bµi to¸n clique nh­ ®Çu vµo. Nã sinh ra phÇn

bï G , cã thÓ dÔ dµng thùc hiÖn trong thêi gian ®a thøc. §Çu ra cña thuËt to¸n tèi gi¶n lµ

phÇn tö <G ,|V|-k> cña bµi to¸n bao ®ãng ®Ønh. §Ó hoµn tÊt chøng minh, chóng ta sÏ chØ ra r»ng phÐp biÕn ®æi nµy thùc sù lµ tèi gi¶n. §å thÞ G cã mét clique kÝch th­íc k khi vµ

chØ khi ®å thÞ G cã mét bao ®ãng kÝch th­íc |V|-k.

Gi¶ sö r»ng G cã mét clique V’ V víi |V’|=k. Chóng ta sÏ chøng tá r»ng V-V’ lµ mét

bao ®ãng ®Ønh trong G . XÐt (u,v) lµ mét c¹nh tuú ý trong E . Khi ®ã: (u,v) E, ®iÒu ®ã cã nghÜa lµ u hoÆc v hoÆc c¶ hai kh«ng thuéc V’, v× mäi cÆp ®Ønh trong V’ ®­îc nèi bëi c¹nh trong E. §iÒu ®ã t­¬ng ®­¬ng víi hoÆc u hoÆc v hoÆc c¶ hai thuéc V-V’, cã nghÜa lµ

c¹nh (u,v) ®­îc bao bëi V-V’. V× (u,v) ®­îc chän tuú ý tõ E , nªn mäi c¹nh trong E ®­îc bao bëi mét ®Ønh trong V-V’. Do ®ã, tËp V-V’, víi kÝch th­íc |V|-k, t¹o thµnh mét

bao ®ãng ®Ønh cña G .

Ng­îc l¹i, gi¶ sö r»ng G cã mét bao ®ãng ®Ønh V’ V, ë ®ã |V’|=|V|-k. Khi ®ã, víi

mäi u,v V’, nÕu (u,v) E th× hoÆc u V’ hoÆc v V’ hoÆc c¶ hai. §iÒu t­¬ng ph¶n víi ®iÒu nµy lµ víi mäi u,v V, nÕu u V’ hoÆc v V’ th× (u,v) E. Nãi c¸ch kh¸c V-V’ lµ mét clique cã kÝch th­íc |V|-|V’|=k. ■

V× bao ®ãng ®Ønh lµ NP-®Çy ®ñ, chóng ta sÏ kh«ng mong ®îi t×m thÊy mét thuËt to¸n thêi gian ®a thøc ®Ó t×m mét bao ®ãng ®Ønh kÝch th­íc nhá nhÊt. Tuy nhiªn môc 35.1 sÏ ®­a ra mét thuËt to¸n xÊp xØ thêi gian ®a thøc, nã sinh ra c¸c lêi gi¶i xÊp xØ cho bµi to¸n bao ®ãng ®Ønh. KÝch th­íc cña mét bao ®ãng ®Ønh ®­îc sinh ra bëi thuËt to¸n nhiÒu nhÊt lµ 2 lÇn kÝch th­íc tèi thiÓu cña mét bao ®ãng ®Ønh.

Nh­ vËy, chóng ta kh«ng nªn tõ bá hy väng chØ v× mét bµi to¸n lµ NP-®Çy ®ñ. Cã thÓ cã mét thuËt to¸n xÊp xØ thêi gian ®a thøc t×m ra c¸c lêi gi¶i gÇn tèi ­u, mÆc dÇu t×m mét lêi gi¶i tèi ­u lµ NP-khã. Ch­¬ng 35 sÏ ®­a ra mét sè thuËt to¸n xÊp xØ cho c¸c bµi to¸n NP-®Çy ®ñ.

34.5.3 Bµi to¸n chu tr×nh Hamilton (Hamiltonian Cycle)

Ta quay l¹i bµi to¸n chu trinh Hamilton ®­îc ®Þnh nghÜa trong môc 34.2.

§Þnh lý 34.13

Bµi to¸n chu tr×nh Hamilton lµ NP-®Çy ®ñ. Chøng minh: Tr­íc tiªn chóng ta sÏ chØ ra r»ng chu tr×nh Hamilton thuéc líp NP. Cho ®å thÞ G=(V,E). KÕt qu¶ cña chóng ta lµ d·y |V| ®Ønh t¹o thµnh chu tr×nh Hamilton. ThuËt to¸n x©y dùng kiÓm tra d·y nµy chøa mçi ®Ønh trong V chÝnh x¸c mét lÇn vµ cuèi cïng

Page 37: Chuong34

víi ®Ønh ®Çu tiªn ®­îc lÆp l¹i, nã t¹o thµnh mét chu tr×nh trong G. §ã lµ kiÓm tra xem cã c¹nh gi÷a mçi cÆp ®Ønh nèi tiÕp nhau vµ gi÷a ®Ønh ®Çu vµ ®Ønh cuèi. C¸ch x¸c ®Þnh nµy cã thÓ ®­îc thùc hiÖn trong thêi gian ®a thøc.

B©y giê chóng ta chøng minh VERTEX-COVER p HAM-CYCLE, cã nghÜa chØ ra r»ng HAM-CYCLE lµ NP-®Çy ®ñ. Cho mét ®å thÞ v« h­íng G=(V,E) vµ mét sè nguyªn k, chóng ta x©y dùng mét ®å thÞ v« h­íng G’=(V’,E’) cã chu tr×nh Hamilton khi vµ chØ khi G cã mét bao ®ãng ®Ønh kÝch th­íc k.

C¸ch x©y dùng cña chóng ta ®­îc dùa trªn mét widget, ®ã lµ mét phÇn tö cña ®å thÞ tho¶ m·n c¸c thuéc tÝnh b¾t buéc nµo ®ã. H×nh 34.16(a) cho thÊy mét widget mµ ta sö dông. Víi mçi c¹nh (u,v) E, ®å thÞ G’ mµ chóng ta x©y dùng sÏ chøa mét phiªn b¶n cña widget nµy, chóng ta ký hiÖu nã bëi Wuv. Chóng ta ®Þnh nghÜa mçi ®Ønh trong Wuv bëi [u,v,i] hay [v,u,i], ë ®ã 1 i 6, sao cho mçi Wuv widget chøa 12 ®Ønh. Widget Wuv còng

chøa 14 c¹nh ®­îc thÓ hiÖn trong h×nh 34.16(a). Cïng víi cÊu tróc bªn trong cña widget, chóng ta lÊy c¸c thuéc tÝnh mµ ta muèn b»ng

c¸ch giíi h¹n c¸c kÕt nèi gi÷a widget vµ phÇn cßn l¹i cña ®å thÞ G’ mµ ta x©y dùng. §Æc biÖt lµ chØ c¸c ®Ønh [u,v,1],[u,v,6],[v,u,1] vµ [v,u,6] sÏ cã c¹nh vèn cã tõ bªn ngoµi

Wuv. Mäi chu tr×nh Hamilton cña G’ sÏ ph¶i ®i qua c¸c c¹nh cña Wuv theo mét trong ba c¸ch trong h×nh 34.16(b)-(d). NÕu chu tr×nh ®i qua [u,v,1], nã ph¶i ®i ra qua ®Ønh [u,v,6], vµ nã còng th¨m tÊt c¶ 12 trong sè c¸c ®Ønh cña widget (H×nh 34.16(b)) hay 6 ®Ønh, tõ [u,v,1] ®Õn [u,v,6]. T­¬ng tù, nÕu chu tr×nh vµo qua ®Ønh [v,u,1], nã ph¶i kÕt thóc qua ®Ønh [v,u,6] vµ nã còng th¨m tÊt c¶ 12 trong sè c¸c ®Ønh cña widget (H×nh 34.16(d)) hay 6 ®Ønh tõ [v,u,1] ®Õn [v,u,6] (H×nh 34.16(c)). Cã thÓ kh«ng cã ®­êng ®i nµo qua widget mµ nã th¨m tÊt c¶ 12 ®Ønh.

§Æc biÖt, kh«ng thÓ x©y dùng 2 ®­êng ®i kh«ng liªn kÕt ®Ønh, mét ®­êng ®i nèi [u,v,1] víi [v,u,6] vµ ®­êng ®i cßn l¹i nèi [v,u,1] víi [v,u,6], ®Ó mµ tæ hîp cña hai ®­êng chøa tÊt c¶ c¸c ®Ønh cña widget.

C¸c ®Ønh cßn l¹i trong V’ kh¸c víi c¸c ®Ønh cña widget lµ c¸c ®Ønh chän s1, s2, ..., sk. Chóng ta sö dông c¸c c¹nh vèn cã trªn c¸c ®Ønh chän trong G’ ®Ó chän k ®Ønh cña bao ®ãng trong G.

Thªm vµo c¸c c¹nh trong c¸c widget cã hai lo¹i kh¸c cña widget trong E’, mµ h×nh 34.17 cho thÊy. Tr­íc tiªn, víi mçi ®Ønh v V, chóng ta thªm vµo c¸c c¹nh ®Ó thªm vµo

H×nh 34.16 Widget ®­îc sö dông trong phÐp tèi gi¶n bµi to¸n bao ®ãng ®Ønh ®èi víi bµi to¸n chu trinh Hamilton. Mét c¹nh (u,v) cña ®å thÞ G t­¬ng øng víi widget Wuv trong ®å thÞ G’ ®­îc sinh ra trong phÐp tèi gi¶n. (a) Widget, víi c¸c ®Ønh riªng lÎ ®­îc g¸n nh·n. (b)-(d) C¸c ®­êng ®i ®­îc ®¸nh bãng lµ c¸c ®­êng duy nhÊt qua widget bao gåm tÊt c¶ c¸c ®Ønh, gi¶ sö r»ng c¸c ®­êng kÕt nèi duy nhÊt tõ widget víi phÇn cßn l¹i cña G’ qua c¸c ®Ønh [u,v,1],[u,v,6],[v,u,1] vµ [v,u,6].

Page 38: Chuong34

c¸c cÆp cña widget ®Ó t¹o thµnh mét ®­êng ®i chøa tÊt c¶ c¸c widget t­¬ng øng víi c¸c c¹nh vèn cã trªn u trong G. Chóng ta s¾p xÕp tuú ý c¸c ®Ønh kÒ nhau t­¬ng øng víi ®Ønh u V nh­ u(1), u(2), ..., u(bËc(u)), trong ®ã bËc(u) lµ sè c¸c ®Ønh liÒn kÒ víi u. Chóng ta t¹o mét ®­êng trong G’ qua tÊt c¶ c¸c c¹nh t­¬ng øng víi c¸c c¹nh vèn cã trªn b»ng c¸ch thªm vµo E’ c¸c c¹nh {([u,u(i),6],[u,u(i+1),1]): 1ibËc(u)-1}. VÝ dô, trong h×nh 34.17 chóng ta s¾p xÕp c¸c ®Ønh liÒn kÒ víi w nh­ x, y, z, vµ v× vËy ®å thÞ G’ trong phÇn (b) cña h×nh vÏ

bao gåm c¸c c¹nh ([w,x,6],[w,y,1]) vµ ([w,y,6],[w,z,1]). Víi mçi ®Ønh u V, c¸c c¹nh trong G’ ®iÒn vµo mét ®­êng ®i chøa tÊt c¶ c¸c widget t­¬ng øng víi c¸c c¹nh vèn cã trªn u trong G.

Trùc gi¸c phÝa sau c¸c c¹nh nµy lµ nÕu ta chän mét ®Ønh u V trong bao ®ãng ®Ønh cña G, ta cã thÓ x©y dùng mét ®­êng ®Ý tõ [u,u(1),1] tíi [u,(bËc(u)),6] trong G’ bao phñ tÊt c¶ c¸c widget t­¬ng øng víi c¸c c¹nh vèn cã trªn u. §ã lµ, víi mçi mét trong sè c¸c widget nµy, ta cã )(, iuu

W , ®­êng ®i bao gåm tÊt c¶ 12 ®Ønh (nÕu u trong bao ®ãng ®Ønh nh­ng u(i)

th× kh«ng) hoÆc chØ s¸u ®Ønh [u,u(i),1],[u,u(i),2],..., [u,u(i),6] (nÕu c¶ u vµ u(i) ®Òu ë trong bao ®ãng ®Ønh).

Lo¹i c¹nh cuèi cïng trong E’ kÕt nèi ®Ønh ®Çu [u,u(1),1] vµ ®Ønh cuèi [u,ubËc(u),6] cña

mçi ®­êng ®i nµy víi mçi ®Ønh thuéc c¸c ®Ønh chän. §ã lµ chóng ta tÝnh ®Õn c¶ c¸c c¹nh

{(sj, [u,u(1),1]): u V vµ 1 j k}

{(sj,[u,ubËc(u),6]): u V vµ 1 j k}

H×nh 34.17 PhÐp tèi gi¶n cña mét phÇn tö trong bµi to¸n bao ®ãng ®Ønh tíi mét phµn tö cña bµi to¸n chu tr×nh Hamilton. (a) Mét ®å thÞ v« h­íng G víi mét bao ®ãng ®Ønh kÝch th­íc 2, bao gåm c¸c ®Ønh ®­îc t« x¸m w vµ y. (b) §å thÞ v« h­íng G’ ®­îc sinh bëi phÐp tèi gi¶n, víi ®­êng ®i Hamilton t­¬ng øng víi bao ®ãng ®Ønh ®­îc t« x¸m. Bao ®ãng ®Ønh [w,y] t­¬ng øng víi c¸c c¹nh (s1,[w,x,1]) vµ (s2,[y,x,1]) xuÊt hiÖn trong chu tr×nh Hamilton.

Page 39: Chuong34

TiÕp ®ã, chóng ta sÏ chøng minh r»ng kÝch th­íc cña G’ lµ ®a thøc ®èi víi kÝch th­íc cña G, vµ do ®ã chóng ta cã thÓ x©y dùng G’ víi thêi gian ®a thøc ®èi víi kÝch th­íc cña G. C¸c ®Ønh cña G’ trong c¸c widget, céng thªm víi c¸c ®Ønh ®­îc chän. Mçi widget chøa 12 ®Ønh vµ cã k |V| ®Ønh chän, ®èi víi tæng cña

|V’| = 12 |E| + k 12 |E| + |V|

®Ønh. C¸c ®Ønh cña G’ lµ c¸c c¹nh trong widget mµ nã ®i gi÷a c¸c widget, vµ c¸c c¹nh kÕt

nèi c¸c ®Ønh chän víi c¸c widget. Cã 14 c¹nh trong mçi widget, hay 14|E| trong tÊt c¶ c¸c

widget. §èi víi mçi ®Ønh u V, cã bËc(u)-1 c¹nh gi÷a c¸c widget, v× vËy víi tÊt c¶ c¸c

®Ønh trong V, cã

Vu

(bËc(u)-1) = 2|E| - |V|

c¹nh gi÷a c¸c widget. Cuèi cïng, cã hai c¹nh ®èi víi mçi cÆp bao gåm mét ®Ønh chän vµ

mét ®Ønh cña V, hay 2k|V| c¹nh nh­ vËy. Tæng sè c¸c c¹nh cña G’ lµ

|E’| = (14 |E| ) + (2 |E| - |V|) + (2k|V|)

= 16 |E| + (2k - 1) |V|

16 |E| + (2 |V| -1) |V|

B©y giê chóng ta sÏ chøng minh r»ng c¸ch biÕn ®æi tõ ®å thÞ G thµnh G’ lµ mét phÐp tèi gi¶n. §ã lµ, chóng ta ph¶i chøng minh r»ng G cã mét bao ®ãng ®Ønh kÝch th­íc k nÕu vµ chØ nÕu G cã mét chu tr×nh Hamilton.

Gi¶ sö r»ng G = (V,E) cã mét bao ®ãng ®Ønh V* V kÝch th­íc k. Cho V* = {u1,u2,...,uk}. Nh­ h×nh 34.17 cho thÊy, chóng ta t¹o mét chu tr×nh Hamilton trong G b»ng

c¸ch tÝnh ®Õn c¶ c¸c c¹nh nh­ sau(8) víi mçi ®Ønh uj V*. TÝnh ®Õn c¶ c¸c c¹nh

{([uj,)(iju ,6),[uj,

)1( iju ]: 1 i bËc(uj)} kÕt nèi tÊt c¶ c¸c widget t­¬ng øng víi c¸c c¹nh

vèn cã trªn uj. Chóng ta còng tÝnh ®Õn c¸c c¹nh cïng víi c¸c widget nh­ h×nh 34.16(b)-(d) cho thÊy, phô thuéc vµo c¹nh cã ®­îc b¶o bëi mét hay hai ®Ønh trong V*. Chu tr×nh Hamilton còng cã c¸c c¹nh

{(sj, [uj, )(iju ,1]: 1 j k}

{(sj+1,[uj, ))(( iubac

ju ,6]: 1 j k - 1}

{(s1,[uk, )( kubac

ku ,6] }.

B»ng c¸ch kiÓm tra h×nh 34.17, b¹n ®äc cã thÓ chøng minh r»ng c¸c c¹nh nµy t¹o thµnh mét chu tr×nh. Chu tr×nh b¾t ®Çu t¹i s1, th¨m tÊt c¶ c¸c widget t­¬ng øng víi c¸c c¹nh vèn cã trªn u1, sau ®ã th¨m s2, th¨m tÊt c¶ c¸c widget t­¬ng øng v¬i c¸c c¹nh vèn cã trªn u2, vµ cø thÕ tiÕp tôc cho ®Õn khi trë l¹i s1. Mçi widget ®­îc th¨m mét hoÆc hai lÇn, phô thuéc vµo mét hay hai ®Ønh cña V* bao c¸c c¹nh t­¬ng øng víi nã. V× V* lµ mét bao ®ãng ®Ønh ®èi víi G, mçi c¹nh trong E ®­îc g¾n liÒn víi mét vµi ®Ønh trong V*, vµ v× vËy chu tr×nh th¨m mçi ®Ønh trªn widget cña G’. V× chu tr×nh còng th¨m mäi ®Ønh chän, nã cã chu tr×nh Hamilton.

Page 40: Chuong34

Ng­îc l¹i, gi¶ sö r»ng G’ = (V’,E’) cã mét chu tr×nh Hamilton C E. Chóng ta cÇn biÕt r»ng tËp

V* = {u V: ([uj, )1(

1u ,1] ) C ®èi víi 1 j k} (34.4)

cã mét ®Ønh ®èi víi G hay kh«ng. §Ó biÕt xem t¹i sao, chia C thµnh c¸c ®­êng tèi ®a b¾t

®Çu b»ng mét ®Ønh chän sj nµo ®ã, ®i qua c¹nh (si, [uj, )1(

1u ,1]) ®èi víi ®Ønh u V nµo ®ã,

vµ cuèi cïng t¹i mét ®Ønh chän sj mµ kh«ng ®i qua bÊt cø ®Ønh nµo kh¸c. Chóng ta gäi c¸c

®­êng nh­ vËy lµ mét “®­êng bao”. Tõ c¸ch G’ ®­îc x©y dùng, mçi ®­êng bao ph¶i b¾t

®Çu t¹i mét si nµo ®ã, lÊy c¹nh (si,[uj, )1(

1u ,1]) ®èi víi mét ®Ønh nµo ®ã, ®i qua tÊt c¶ c¸c

widget t­¬ng øng víi c¸c c¹nh trong E vèn cã trong u, råi kÕt thóc t¹i mét ®Ønh chän sj

nµo ®ã. Chóng ta xem ®­êng bao nµy nh­ pu, vµ bëi ph­¬ng tr×nh (34.4), ta ®­a u vµo V*.

Mçi widget ®­îc th¨m bëi pu ph¶i lµ Wuv hoÆc Wvu ®èi víi ®Ønh v V nµo ®ã. Víi mçi

widget ®­îc th¨m bëi pu, c¸c ®Ønh cña nã ®­îc th¨m bëi mét hoÆc hai ®­êng bao. NÕu

chóng ®­îc th¨m bëi mét ®­êng bao, th× c¹nh (u,v) E ®­îc bao trong G bëi ®Ønh u. NÕu

hai ®­êng bao th¨m widget th× ®­êng bao kia ph¶i lµ pv, cã nghÜa lµ v V*, vµ c¹nh (u,v)

E ®­îc bao bëi c¶ u vµ v. V× mçi ®Ønh trong widget ®­îc th¨m bëi mét ®­êng bao nµo

®ã, chóng ta thÊy r»ng mçi c¹nh trong E ®­îc bao bëi mét ®Ønh nµo ®ã trong V*.

34.5.4 Bµi to¸n ng­êi b¸n hµng du hµnh

Trong bµi to¸n ng­êi b¸n hµng, nã gÇn víi bµi to¸n chu tr×nh Hamilton, mét ng­êi b¸n hµng ph¶i th¨m n thµnh phè. M« h×nh ho¸ bµi to¸n nh­ mét ®å thÞ ®å thÞ ®Çy ®ñ víi n ®Ønh, chóng ta cã thÓ nãi r»ng ng­êi ®ã mong ­íc thùc hiÖn mét chuyÕn du hay mét chu tr×nh Hamilton, th¨m mçi thµnh phè chÝnh x¸c mét lÇn vµ kÕt thóc t¹i thµnh phè mµ anh ta ®· khëi hµnh. Cã mét tæn thÊt nguyªn c(i,j) khi ®i tõ thµnh phè i tíi thµnh phè j, vµ ng­êi b¸n hµng muèn thùc hiÖn chuyÕn ®i mµ tæng tæn thÊt lµ Ýt nhÊt, ë ®ã tæng tæn thÊt lµ tæng cña c¸c tæn thÊt riªng cña mçi c¹nh trªn chuyÕn ®i. VÝ dô h×nh 34.18, mét chuyÕn ®i tæn thÊt tèi thiÓu lµ (u,w,v,x,u) víi tæn thÊt lµ 7. Ng«n ng÷ h×nh thøc cho bµi to¸n quyÕt ®Þnh t­¬ng øng lµ

TSP = {<G,c,k> : G = (V,E) lµ mét ®å thÞ ®Çy ®ñ,

c lµ mét hµm VV Z,

k Z, vµ

G cã mét chuyÕn ®i cña ng­êi b¸n hµn víi gi¸ nhiÒu nhÊt lµ k}.

§Þnh lý sau ®©y chØ ra r»ng mét thuËt to¸n nhanh cho bµi to¸n ng­êi b¸n hµng lµ hÇu nh­ kh«ng tån t¹i.

Page 41: Chuong34

§Þnh lý 34.14

Bµi to¸n ng­êi b¸n hµng lµ NP-®Çy ®ñ. Chøng minh: Tr­íc tiªn chóng ta cÇn chøng minh r»ng TSP thuéc NP. Cho mét tr­êng hîp cña bµi to¸n, chóng ta sö dông mét d·y n ®Ønh nh­ mét kÕt qu¶ trong chuyÕn ®i. ThuËt to¸n kiÓm tra kiÓm tra d·y nµy chøa mçi ®Ønh chÝnh x¸c mét lÇn, tÝnh tæng tæn thÊt c¸c c¹nh, vµ kiÓm tra tæng nhiÒu nhÊt lµ k hay kh«ng. Qu¸ tr×nh cã thÓ ®­îc thùc hiÖn víi thêi gian ®a thøc.

§Ó chøng minh r»ng TSP lµ NP-khã, chóng ta thÊy r»ng HAM-CYCLE p TSP. Cho G = (V,E) lµ mét thÓ hiÖn cña HAM-CYCLE. Chóng ta x©y dùng mét minh ho¹ cña TSP nh­ sau. Chóng ta t¹o mét ®å thÞ ®Çy ®ñ G’ = (V,E), ë ®ã E’ = {(i,j) : i,j V vµ i j}, vµ chóng ta ®Þnh nghÜa hµm tæn thÊt c bëi

c(i,j) =

1

0

nÕu (i,j) E

nÕu (i,j) E.

(L­u ý r»ng G ®­îc x©y dùng, nã kh«ng cã c¸c vßng lËp, vµ v× vËy c(v,v) = 1 ®èi víi

tÊt c¶ c¸c ®Ønh v V.) Mét minh ho¹ cña TSP lµ (G’,c,0), nã dÔ dµng ®­îc t¹o ra trong thêi gian ®a thøc.

B©y giê chóng ta sÏ chØ ra r»ng ®å thÞ G cã mét chu tr×nh Hamilton nÕu vµ chØ nÕu ®å thÞ G’ cã mét chuyÕn ®i víi gi¸ tèi ®a 0. Gi¶ sö r»ng ®å thÞ G cã mét chu tr×nh h. Mçi c¹nh trong h thuéc vÒ E vµ v× vËy cã gi¸ 0 trong G’. Do ®ã, h cã mét ®­êng ®i trong G’ víi chi phÝ 0. Ng­îc l¹i, gi¶ sö r»ng G’ cã mét ®­êng ®i h’ víi gi¸ tèi ®a 0. V× c¸c gi¸ cña c¹nh trong E’ lµ 0 hoÆc 1, tæn thÊt cña h’ lµ 0 vµ mçi c¹nh trªn chuyÕn ®i ph¶i cã tæn thÊt 0. V× vËy, h’ chøa c¸c c¹nh trong E. Chóng ta kÕt luËn r»ng h’ lµ mét chu tr×nh Hamilton trong ®å thÞ G.

34.5.5 Bµi to¸n tæng tËp con

Bµi to¸n NP-®Çy ®ñ chóng ta xem xÐt lµ mét thuËt to¸n. Bµi to¸n tæng tËp con, chóng ta cho mét tËp giíi h¹n S N vµ mét phÇn tö t N. Chóng ta cÇn biÕt r»ng mét tËp con S’ S mµ c¸c phÇn tö cña nã cã tæng lµ t. VÝ dô, nÕu S = {1, 2, 7, 14, 49, 98, 343, 686, 2409,

H×nh 34.18 Mét thÓ hiÖn cña bµi to¸n ng­êi b¸n hµng. C¸c c¹nh ®­îc t« x¸m thÓ hiÖn mét chuyÕn ®i tæn thÊt tèi thiÓu, víi tæn thÊt 7.

Page 42: Chuong34

2793, 16808, 17206, 117705, 117993} vµ t = 138457, khi ®ã S’ = {1,2,7,98,343,686,2409,17202,117705} lµ mét lêi gi¶i.

Nh­ th«ng th­êng, chóng ta ®Þnh nghÜa bµi to¸n nh­ mét ng«n ng÷:

SUBSET – SUM = {<G,t>: cã mét tËp con S’ S sao cho t = Sss }

Nh­ ®èi víi bÊt cø bµi to¸n sè häc nµo, cÇn nhí r»ng phÐp m· ho¸ chuÈn t¾c cña chóng ta gi¶ sö r»ng c¸c sè nguyªn ®Çu vµo ®­îc m· ho¸ nhÞ ph©n. Víi ®iÒu gi¶ sö nµy, chóng ta cã thÓ chøng minh bµi to¸n tæng tËp con lµ hÇu nh­ kh«ng cã mét thuËt to¸n nhanh.

§Þnh lý 34.15

Bµi to¸n tæng tËp con lµ NP-®Çy ®ñ. Chøng minh: §Ó chøng minh r»ng SUBSET-SUM lµ thuéc NP, ®èi víi mét minh ho¹

<S,t> cña bµi to¸n, chóng ta cho tËp con S’ lµ mét kÕt qu¶. KiÓm tra xem t = Sss cã

thÓ ®­îc hoµn tÊt bëi mét thuËt to¸n thêi gian ®a thøc víi thêi gian ®a thøc. B©y giê chóng ta sÏ chøng minh r»ng 3-CNF-SAT p

SUBSET-SUM. Cho mét c«ng thøc d¹ng 3-CNF víi c¸c biÕn x1,x2, ..., xn víi c¸c mÖnh ®Ò C1, C2, ..., Ck, mçi mÖnh ®Ò chøa chÝnh x¸c ba ký hiÖu ph©n biÖt, thuËt to¸n tèi gi¶n x©y dùng mét minh ho¹ <S,t> cña bµi to¸n tæng tËp con sao cho tho¶ ®­îc khi vµ chØ khi cã mét tËp con cña S mµ tæng cña nã lµ t. Kh«ng mÊt tÝnh tæng qu¸t, chóng ta t¹o hai sù thõa nhËn ®¬n gi¶n ®èi víi c«ng thøc . §Çu tiªn lµ thõa nhËn kh«ng mÖnh ®Ò nµo chøa c¶ mét biÕn vµ phñ ®Þnh cña nã, ®èi víi nh÷ng mÖnh ®Ò nh­ vËy sÏ tù ®éng tho¶ m·n b»ng c¸ch g¸n gi¸ trÞ cho c¸c biÕn. TiÕp theo lµ thõa nhËn mçi biÕn xuÊt hiÖn trong Ýt nhÊt mét mÖnh ®Ò, b»ng kh«ng th× gi¸ trÞ ®­îc g¸n cho c¸c biÕn sÏ kh«ng thµnh vÊn ®Ò.

ThuËt to¸n tèi gi¶n t¹o hai sè trong tËp S ®èi víi mçi biÕn xi vµ hai sè trong S ®èi víi mçi mÖnh ®Ò Cj. Chóng ta sÏ t¹o c¸c sè trªn hÖ c¬ sè 10, ë ®ã mçi sè chøa n+k ch÷ sè vµ mçi ch÷ sè t­¬ng øng víi mét biÕn hoÆc mét mÖnh ®Ò. HÖ c¬ sè 10 (vµ c¸c hÖ kh¸c, nh­ chóng ta sÏ xem xÐt) cã tÝnh chÊt chóng ta cÇn ®Ó ng¨n kh«ng cho mang c¸c ch÷ sè gi¸ trÞ thÊp thµnh c¸c ch÷ sè gi¸ trÞ cao h¬n.

Nh­ h×nh 34.19 cho thÊy, chóng ta x©y dùng tËp S vµ mét phÇn tö t nh­ sau. Chóng ta g¾n mçi vÞ trÝ mçi ch÷ sè bëi mét biÕn hoÆc mét mÖnh ®Ò. k ch÷ sè Ýt ý nghÜa nhÊt trong mÖnh ®Ò, vµ n ch÷ sè ý nghÜa nhÊt ®­îc g¸n nh·n bëi c¸c biÕn.

Môc tiªu t cã mét sè 1 trong mçi ch÷ sè ®­îc g¸n nh·n bëi mét biÕn vµ mét sè 4

trong mçi ch÷ sè ®­îc g¸n nh·n bëi mét mÖnh ®Ò.

Víi mçi biÕn xi, cã hai sè nguyªn, vi vµ v’i, trong S. Mçi sè cã mét sè 1 trong ch÷ sè

®­îc g¸n nh·n bëi xi vµ 0 ë c¸c ch÷ sè biÕn kh¸c. NÕu ký hiÖu xi xuÊt hiÖn xuÊt hiÖn

trong mÖnh ®Ò Cj, vµ råi c¸c ch÷ sè ®­îc ®¸nh dÊu bëi Cj trong vi chøa mét sè 1. NÕu

ký hiÖu xi xuÊt hiÖn trong mÖnh ®Ò Cj, th× ch÷ sè ®­îc ®¸nh dÊu bëi Cj trong ,iv

chøa mét sè 1. TÊt c¶ c¸c ch÷ sè ®­îc ®¸nh dÊu bëi c¸c mÖnh ®Ò trong vi vµ ,iv lµ 0.

TÊt c¶ c¸c gi¸ trÞ vj vµ ,iv trong tËp S lµ duy nhÊt. T¹i sao vËy? Víi l i, kh«ng gi¸ trÞ

vl vµ ,lv nµo cã thÓ b»ng vi vµ

,iv trong n ch÷ sè nhiÒu ý nghÜa nhÊt. H¬n n÷a, bëi c¸ch

Page 43: Chuong34

chóng ta ®· gi¶ sö ë trªn, kh«ng vi vµ ,iv cã thÓ b»ng víi tÊt c¶ k ch÷ sè Ýt ý nghÜa

nhÊt. NÕu vi vµ ,iv b»ng nhau, th× xi vµ xi sÏ ph¶i xuÊt hiÖn trong cïng mét tËp c¸c

mÖnh ®Ò. Nh­ng chóng ta gi¶ sö r»ng kh«ng mÖnh ®Ò nµo chøa c¶ xi vµ xi vµ c¶ xi

vµ xi xuÊt hiÖn trong mÖnh ®Ò nµo ®ã, vµ v× vËy ph¶i cã mét mÖnh ®Ò Cj nµo ®ã mµ

vi vµ ,iv lµ kh¸c nhau.

§èi víi mçi mÖnh ®Ò Cj, cã hai sè nguyªn, sj vµ ,js trong S. Mçi sè cã c¸c sè nguyªn

trong tÊt c¶ c¸c sè kh¸c víi c¸c sè ®­îc g¾n nh·n trong Cj. §èi víi sj, cã mét sè 1

trong ch÷ sè Cj, vµ ,js cã mét sè 2 trong ch÷ sè nµy. C¸c sè nguyªn nµy lµ c¸c “biÕn

níi láng” mµ chóng ta sö dông ®Ó lÊy mçi vÞ trÝ ch÷ sè mÖnh ®Ò ®­îc g¸n nh·n ®Ó ®­a

vµo gi¸ trÞ mong muèn lµ 4.

KiÓm tra ®¬n gi¶n h×nh 34.19 cho thÊy r»ng tÊt c¶ c¸c gi¸ trÞ sj vµ ,js trong S lµ duy

nhÊt trong tËp S. L­u ý r»ng tæng lín nhÊt cña c¸c ch÷ sè trong bÊt kú vÞ trÝ mét ch÷ sè nµo lµ 6, nã x¶y

ra víi c¸c sè ®­îc g¾n nh·n bëi c¸c mÖnh ®Ò (ba sè 1 tõ c¸c gi¸ trÞ vj vµ ,jv , céng víi 1

vµ 2 tõ c¸c gi¸ trÞ sj vµ ,js ). V× vËy, víi viÖc phiªn dÞch c¸c sè nµy theo hÖ c¬ sè 10,

kh«ng cã sù thay ®æi nµo cã thÓ x¶y ra tõ c¸c ch÷ sè thÊp tíi c¸c ch÷ sè cao h¬n.

Sù tèi gi¶n cã thÓ ®­îc thùc hiÖn víi thêi gian ®a thøc. TËp S chøa 2n+2k gi¸ trÞ, mçi gi¸ trÞ cã n+k ch÷ sè, vµ thêi gian ®Ó sinh mçi ch÷ sè lµ ®a thøc ®èi víi n+k. Môc tiªu t cã n+k ch÷ sè, vµ phÐp tèi gi¶n sinh mçi ch÷ sè trong thêi gian kh«ng ®æi.9

9 Thùc ra mäi c¬ sè b, ë ®ã b 7, sÏ thùc hiÖn tèt. PhÇn tö t¹i phÇn ®Çu cña môc con

nµy lµ tËp S vµ môc tiªu t trong h×nh 34.19 ®­îc diÔn t¶ trong hÖ c¬ sè, víi S ®­îc liÖt kª theo thø tù s¾p xÕp.

Page 44: Chuong34

B©y giê chóng ta sÏ chøng minh r»ng c«ng thøc d¹ng 3-CNF lµ tho¶ ®­îc khi vµ chØ khi cã mét tËp con S’ S mµ tæng cña nã lµ t. Tr­íc tiªn gi¶ sö r»ng cã mét c¸ch g¸n tho¶ m·n. Víi i = 1, 2, ..., n, nÕu xi = 1 trong c¸ch g¸n nµy th× thªm vi vµo trong S’. NÕu kh«ng th× thªm v’i vµo. Nãi c¸ch kh¸c, chóng ta thªm vµo trong S’ c¸c gi¸ trÞ vi vµ v’i t­¬ng øng víi c¸c ký hiÖu víi gi¸ trÞ trong c¸ch g¸n tho¶ m·n. V× ®· thªm vi hoÆc v’i vµo, nh­ng kh«ng ph¶i c¶ hai, ®èi víi mäi i, vµ ®· ®Æt 0 trong c¸c ch÷ sè ®­îc g¸n nh·n bëi c¸c biÕn trong c¶ si vµ s’i, chóng ta thÊy r»ng víi mçi ch÷ sè ®­îc g¸n nh·n víi biÕn, tæng c¸c gi¸ trÞ cña S’ ph¶i lµ 1, nã phï hîp víi c¸c ch÷ sè cña môc tiªu t. V× mçi mÖnh ®Ò ®Òu ®­îc tho¶ m·n, cã mét vµi ký hiÖu trong mÖnh ®Ò víi gi¸ trÞ 1. V× vËy, mçi ch÷ sè ®­îc g¸n nh·n bëi mét mÖnh ®Ò cã Ýt nhÊt mét sè 1 ®­îc ph©n phèi cho tæng cña nã bëi mét gi¸ trÞ vi hoÆc v’i trong S’. Thùc sù, c¸c ký hiÖu 1,2 hoÆc 3 cã thÓ lµ 1 trong mçi mÖnh ®Ò, vµ v× vËy mçi ch÷ sè ®­îc mÖnh ®Ò g¸n nh·n cã mét tæng lµ 1,2 hoÆc 3 tõ c¸c gi¸ trÞ vi vµ v’i trong S’. (VÝ dô trong h×nh 34.19, c¸c ký hiÖu x1, x2 vµ x3 cã gi¸ trÞ 1 trong mét c¸ch g¸n tho¶ m·n. Mçi mét mÖnh ®Ò C1 vµ C4 chøa chÝnh x¸c mét trong c¸c ký hiÖu nµy, vµ v× vËy cïng víi v’1, v’2 vµ v’3 ph©n phèi 1 tíi tæng c¸c ch÷ sè ®èi víi C1 vµ C4. MÖnh ®Ò C2 chøa 2 trong sè c¸c ký hiÖu nµy, vµ v’1,v’2 vµ v’3 ph©n phèi 2 tíi tæng c¸c ch÷ sè ®èi víi C2. MÖnh ®Ò C3 chøa tÊt c¶ ba trong sè c¸c ký hiÖu nµy, vµ v’1,v’2 vµ v’3 ph©n phèi 3 cho c¸c tæng c¸c ch÷ sè ®èi víi C3). Chóng ta cã ®­îc môc tiªu gi¸ trÞ 4 trong mçi ch÷ sè ®­îc g¸n nh·n bëi mÖnh ®Ò Cj bëi thªm trong S’ tËp con kh«ng rçng thÝch hîp cña c¸c biÕn yÕu {sj, s’j}. (Trong h×nh 34.19, S’ thªm vµo s1, s’1, s2, s’2 , s3, s’3, s4 vµ s’4.) V× chóng ta ®· ®èi chiÕu môc tiªu trong tÊt c¶ c¸c ch÷ sè cña tæng, vµ kh«ng sù nhí nµo x¶y ra, gi¸ trÞ cña tæng S’ lµ t.

H×nh 34.19 PhÐp tèi gi¶n cña 3-CNF-SAT thµnh SUBSET-SUM. C«ng thøc trong 3-CNF lµ = C1 C2

C3 C4, trong ®ã C1 = (x1 x2 x3), C2 = (x1 x2 x3), C3 = (x1 x2 x3) vµ C4 = (x1 x2 x3). Mét phÐp g¸n tho¶ m·n cña lµ (x1 = 0, x2 = 0, x3 =1). TËp S ®­îc sinh bëi phÐp tèi gi¶n bao gåm c¸c ch÷ sè trong hÖ c¬ sè 10 ®­îc thÓ hiÖn; ®äc tõ ®Çu tíi cuèi, S={1001001, 1000110, 100001, 101110, 11100, 1000, 2000, 100, 200, 10, 20, 1, 2 }. Môc tiªu t lµ 1114444. TËp con S’ S ®­îc t« x¸m, vµ nã chøa v’1, v’2 vµ v’3, t­¬ng øng víi c¸ch g¸n tho¶ m·n. Nã còng chøa c¸c biÕn s1, s’1, s’2, s3 vµ s’4 ®Ó lÊy ®­îc gi¸ trÞ mong muèn lµ 4 trong c¸c ch÷ sè ®­îc g¸n nh·n tõ C1 ®Õn C4.

Page 45: Chuong34

B©y giê, gi¶ sö r»ng cã mét tËp con S’ S cã tæng lµ t. TËp con S’ ph¶i thªm vµo chÝnh x¸c mét trong trong c¸c phÇn tö vi vµ v’i ®èi víi mçi i = 1, 2, ..., n, nÕu kh«ng th× c¸c ch÷ sè ®­îc g¸n nh·n bëi c¸c biÕn sÏ kh«ng cã tæng lµ 1. NÕu vi S’, ta ®Æt xi = 1. NÕu kh«ng th× v’i S’ vµ ta ®Æt xi = 0. Chóng ta ph¸t biÓu r»ng mäi mÖnh ®Ò Cj, víi j = 1, 2, ..., k, ®­îc tho¶ m·n bëi c¸ch g¸n nµy. §Ó chøng minh ®iÒu nµy, l­u ý r»ng ®Ó ®¹t ®­îc mét tæng cã c¸c ch÷ sè ®­îc g¸n nh·n bëi Cj, tËp con S’ ph¶i thªm vµo Ýt nhÊt mét trong c¸c gi¸ trÞ vi hoÆc v’i cã mét ch÷ sè 1 trong ch÷ sè ®­îc g¸n nh·n bëi Cj, v× c¸c ph©n phèi cña c¸c biÕn yÕu sj vµ s’j cïng nhau cã tæng tè ®a lµ 3. NÕu S’ thªm vµo mét vi cã ch÷ sè mét ë vÞ trÝ ®ã, th× ký hiÖu xi xuÊt hiÖn trong mÖnh ®Ò Cj. V× chóng ta ®· ®Æt xi = 1 khi vi S’, mÖnh ®Ò Cj ®­îc tho¶ m·n. NÕu S’ thªm vµo mét v’i cã mét ch÷ sè 1 t¹i vÞ trÝ ®ã, th× ký hiÖu xi xuÊt hiÖn trong Cj. V× chóng ta ®· ®Æt xi = 0 khi v’i S’, mÖnh ®Ò Cj l¹i ®­îc tho¶ m·n. Do ®ã, tÊt c¶ c¸c mÖnh ®Ò cña ®­îc tho¶ m·n, ®iÒu nµy hoµn thµnh chøng minh.

Bµi tËp

34.5-1

Bµi to¸n ®å thÞ con ®¼ng cÊu (subgraph-isomorphism) lÊy hai ®å thÞ G1 vµ G2 vµ cÇn biÕt xem G1 lµ ®¼ng cÇu víi mét ®å thÞ con cña G2. Chøng minh r»ng bµi to¸n ®å thÞ con ®¼ng cÊu lµ NP-khã.

34.5-2

Cho mét ma trËn sè nguyªn mn A vµ mét vector nguyªn m-thµnh phÇn b, bµi to¸n lËp tr×nh sè nguyªn 0-1 hái r»ng cã hay kh«ng mét vect¬ nguyªn n-thµnh phÇn x víi c¸c phÇn tö n»m trong tËp {0,1} sao cho Ax b. Chøng minh r»ng bµi to¸n nµy lµ NP-®Çy ®ñ. (ChØ dÉn: tèi gi¶n tõ 3-CNF-SAT.)

34.5-3

Bµi to¸n nguyªn lËp tr×nh tuyÕn tÝnh gièng nh­ bµi to¸n nguyªn lËp tr×nh c¸c sè nguyªn 0-1, ngo¹i trõ viÖc cho r»ng c¸c gi¸ trÞ cña vect¬ x cã thÓ lµ bÊt kú sè nguyªn nµo chø kh«ng chØ víi c¸c sè nguyªn 0 hoÆc 1. Gi¶ sö r»ng bµi to¸n lµ NP-khã, h·y chøng minh r»ng lµ NP-®Çy ®ñ.

34.5-4

Chøng minh r»ng bµi to¸n tæng tËp con lµ cã thÓ gi¶i quyÕt ®­îc trong thêi gian ®a thøc nÕu gi¸ trÞ môc tiªu t ®­îc thÓ hiÖn unary.

34.5-5

Bµi to¸n ph©n chia tËp lÊy mét tËp S c¸c sè nh­ mét ®Çu vµo. C©u hái lµ c¸c sè cã thÓ

®­îc chia lµm 2 tËp A vµ A = S – A sao cho

AxAxxx . H·y chØ ra r»ng bµi to¸n

lµ NP-®Çy ®ñ.

34.5-6

Chøng minh r»ng bµi to¸n ®­êng ®i Hamilton lµ NP-®Çy ®ñ.

Page 46: Chuong34

34.5-7

Bµi to¸n chu tr×nh ®­êng ®i dµi nhÊt lµ bµi to¸n x¸c ®Þnh mét chu tr×nh ®¬n gi¶n (kh«ng lÆp l¹i ®Ønh) víi ®é dµi tèi ®a trong ®å thÞ. Chøng minh r»ng bµi to¸n nµy lµ NP-khã.

34.5-8

Trong bµi to¸n nöa 3-CNF tho¶ ®­îc, chóng ta cho mét c«ng thøc d¹ng 3-CNF víi n biÕn vµ m mÖnh ®Ò, trong ®ã m lµ ch½n. Chóng ta cÇn xem cã tån t¹i mét c¸ch g¸n thùc cho c¸c biÕn cña c«ng thøc sao cho chÝnh x¸c mét nöa c¸c mÖnh ®Ò cã gi¸ trÞ 0 vµ chÝnh x¸c mét nöa c¸c mÖnh ®Ò cã gi¸ trÞ 1. Chøng minh r»ng bµi to¸n nöa 3-CNF tho¶ ®­îc lµ NP-®Çy ®ñ.

C¸c bµi to¸n

34-1 TËp ®éc lËp

Mét tËp ®éc lËp cña mét ®å thÞ G = (V, E) lµ mét tËp con V’ V cña c¸c ®Ønh sao cho mçi c¹nh trong E lµ vèn cã trªn nhiÒu nhÊt mét ®Ønh trong V’. Bµi to¸n tËp ®éc lËp cÇn t×m mét tËp ®éc lËp kÝch th­íc tèi ®a trong G.

LËp c«ng thøc cho bµi to¸n ra quyÕt ®Þnh liªn quan ®èi víi bµi to¸n tËp ®éc lËp, vµ

chøng minh r»ng nã lµ NP-®Çy ®ñ (ChØ dÉn: Tèi gi¶n tõ bµi to¸n clique).

Gi¶ sö r»ng b¹n ®­îc ®­a mét thñ tôc con “hép ®en” ®Ó gi¶i quyÕt bµi to¸n quyÕt ®Þnh

mµ b¹n ®· ®Þnh nghÜa trong phÇn (a). H·y cho mét thuËt to¸n ®Ó t×m mét tËp ®éc lËp

víi kÝch th­íc tèi thiÓu. Thêi gian ch¹y cña thuËt to¸n cña b¹n cÇn lµ thêi gian ®a thøc

®èi víi |V| vµ |E|, ë ®ã c¸c c©u hái ®èi víi c¸i hép ®en ®­îc coi nh­ mét b­íc ®¬n

gi¶n.

MÆc dï bµi to¸n quyÕt ®Þnh tËp ®éc lËp lµ NP-®Çy ®ñ, c¸c tr­êng hîp ®Æc biÖt nµo ®ã lµ cã thÓ gi¶i quyÕt ®­îc trong thêi gian ®a thøc.

a. Cho mét thuËt to¸n hiÖu qu¶ ®Ó gi¶i quyÕt bµi to¸n tËp ®éc lËp khi mçi ®Ønh trong G

cã bËc lµ 2. Ph©n tÝch thêi gian ch¹y vµ chøng minh r»ng thuËt to¸n cña b¹n lµ ®óng

®¾n.

b. Cho mét thuËt to¸n hiÖu qu¶ ®Ó gi¶i quyÕt bµi to¸n tËp ®éc lËp khi G ®­îc chia ®«i.

Ph©n tÝch thêi gian ch¹y vµ chøng minh r»ng thuËt to¸n cña b¹n ®óng ®¾n. (ChØ dÉn:

Sö dông kÕt qu¶ cña môc 26.3)

34-2. Bonnie vµ Clyde

Bonnie vµ Clyde võa míi c­íp mét nhµ b¨ng. Hä cã mét tói tiÒn vµ muèn chia nã ra.

§èi víi mçi t×nh huèng sau, mçi ng­êi ®­a ra mét thuËt to¸n thêi gian ®a thøc, hoÆc

chøng minh r»ng bµi to¸n lµ NP-®Çy ®ñ. §Çu vµo trong mçi tr­êng hîp lµ mét danh

s¸ch n phÇn tö trong tói, cïng víi gi¸ trÞ cho mçi phÇn tö.

Page 47: Chuong34

a. Cã n ®ång xu, nh­ng chØ cã hai lo¹i ®¬n vÞ: mét sè lµ tiÒn trÞ gi¸ x ®« la, mét sè ®ång

trÞ gi¸ y ®« la. Hä muèn chia sè tiÒn thµnh hai phÇn b»ng nhau.

b. Cã n ®ång xu, víi mét sè tuú ý c¸c lo¹i tiÒn, nh­ng mçi lo¹i lµ mét sè nguyªn kh«ng

©m luü thõa 2, c¸c lo¹i tiÒn cã thÓ lµ 1 ®« la, 2 ®« la, 4 ®« la, v.v. Hä muèn chia sè

tiÒn thµnh hai phÇn b»ng nhau.

c. Cã n sÐc, chóng ®­îc lËp cho “Bonnie vµ Clyde”, trong mét tr­êng hîp trïng hîp

ngÉu nhiªn. Hä muèn chia sè sec ®ã sao cho hä lÊy ®­îc cïng mét sè tiÒn.

d. Cã n sÐc nh­ trong phÇn (c), nh­ng giê ®©y hä s½n sµng chÊp nhËn sù ph©n chia mµ sù

sai lÖch lµ kh«ng lín h¬n 100 ®« la.

34-3 T« mµu ®å thÞ

Mét sù t« k mµu cña mét ®å thÞ v« h­íng G = (V,E) lµ mét hµm c: V {1,2, ..., k}

tho¶ m·n c(u) c(v) víi mäi c¹nh (u,v) E. Nãi c¸ch kh¸c, c¸c sè 1,2,...,k thÓ hiÖn k mµu, vµ c¸c ®Ønh kÒ nhau ph¶i cã mµu kh¸c nhau. Bµi to¸n t« mµu ®å thÞ lµ x¸c ®Þnh mét sè tèi thiÓu c¸c mµu cÇn thiÕt ®Ó t« mµu mét ®å thÞ ®· cho.

a. H·y ®­a ra mét thuËt to¸n hiÖu qu¶ x¸c ®Þnh mét ®å thÞ 2 mµu nÕu nã tån t¹i.

b. Coi bµi to¸n t« mµu ®å thÞ nh­ mét bµi to¸n quyÕt ®Þnh. Chøng minh r»ng bµi to¸n

quyÕt ®Þnh lµ gi¶i ®­îc trong thêi gian ®a thøc nÕu vµ chØ nÕu bµi to¸n t« mµu ®å thÞ lµ

cã thÓ gi¶i ®­îc trong thêi gian ®a thøc.

c. Coi ng«n ng÷ 3-mµu nh­ lµ mét tËp c¸c ®å thÞ cã thÓ t« ®­îc b»ng 3 mµu. Chøng

minh r»ng nÕu bµi to¸n 3 mµu lµ NP-®Çy ®ñ, th× bµi to¸n quyÕt ®Þnh tõ phÇn (b) lµ NP-

®Çy ®ñ.

§Ó chøng minh r»ng bµi to¸n 3 mµu lµ NP-®Çy ®ñ, chóng ta sö dông phÐp tèi gi¶n tõ 3-CNF-SAT. Cho mét c«ng thøc víi m mÖnh ®Ò trªn c¸c biÕn x1, x2, ..., xn, chóng ta x©y dùng mét ®å thÞ G = (V, E) nh­ sau. TËp V chøa mét ®Ønh ®èi víi mçi biÕn, mét ®Ønh cho phñ ®Þnh cña c¸c biÕn, 5 ®Ønh cho mçi mÖnh ®Ò, vµ 3 ®Ønh ®Æc biÖt: TRUE, FALSE vµ RED. C¸c c¹nh cña ®å thÞ cã hai lo¹i: c¸c ®Ønh ký hiÖu lµ c¸c sù ®éc lËp cña c¸c mÖnh ®Ò vµ c¸c c¹nh “mÖnh ®Ò” phô thuéc vµo c¸c mÖnh ®Ò. C¸c c¹nh ký hiÖu t¹o thµnh mét tam gi¸c bëi c¸c ®Ønh ®Æc biÖt vµ còng t¹o thµnh mét tam gi¸c bëi xi vµ xi, vµ RED víi i = 1, 2, ..., n.

d. Chøng tá r»ng trong bÊt kú hµm 3-mµu cña mét ®å thÞ chøa c¸c c¹nh ký hiÖu, mét

trong c¸c biÕn vµ phÇn bï cña nã ®­îc t« c(TRUE) vµ c¸i cßn l¹i ®­îc t« c(FALSE).

Chøng minh r»ng víi mäi c¸ch g¸n tho¶ m·n ®èi víi , cã mét ®å thÞ ®­îc t« ba mµu

chøa chØ c¸c c¹nh ký hiÖu.

Widget cho thÊy trong h×nh 34.20 ®­îc sö dông ®Ó lµm cho cã hiÖu lùc mÖnh ®Ò (x y z). Mçi mÖnh ®Ò cÇn mét phiªn b¶n duy nhÊt gåm 5 ®Ønh ®­îc t« ®Ëm trong h×nh; chóng nèi nh­ ®­îc thÊy ®èi víi c¸c ký hiÖu cña c¸c mÖnh ®Ò vµ c¸c ®Ønh ®Æc biÖt TRUE.

Page 48: Chuong34

e. Chøng minh r»ng nÕu mçi mét trong sè x,y vµ z ®­îc t« mµu c(TRUE) hoÆc

c(FALSE), th× widget cã thÓ ®­îc t« b»ng ba mµu khi vµ chØ khi Ýt nhÊt mét trong sè

x,y hoÆc z ®­îc t« mµu c(TRUE).

f. Hoµn thµnh chøng minh bµi to¸n 3 mµu lµ NP-®Çy ®ñ.

34-4 LËp lÞch víi lîi nhuËn vµ giíi h¹n

Gi¶ sö r»ng b¹n cã mét m¸y vµ mét tËp n môc tiªu a1, a2, ..., an. Mçi môc tiªu aj cã mét thêi gian sö lý tj, mét lîi nhuËn pj vµ mét giíi h¹n dj. M¸y cã thÓ xö lý chØ mét môc tiªu t¹i mét thêi ®iÓm, vµ môc tiªu aj ph¶i ch¹y kh«ng ngõng víi ®¬n vÞ thêi gian liªn tôc tj. NÕu b¹n hoµn tÊt môc tiªu aj bëi giíi h¹n dj cña nã, b¹n nhËn ®­îc lîi nhuËn pj, nh­ng nÕu b¹n hoµn thµnh sau giíi h¹n ®ã, b¹n kh«ng nhËn ®­îc lîi nhuËn nµo c¶. Nh­ mét bµi to¸n tèi ­u, b¹n ®­îc giao cho mét thêi gian xö lý, lîi nhuËn, vµ c¸c giíi h¹n cho tËp n môc tiªu, vµ b¹n muèn t×m mét lÞch tr×nh hoµn thµnh tÊt c¶ c¸c môc tiªu vµ tr¶ vÒ mét sè lín nhÊt lîi nhuËn.

a. Ph¸t biÓu bµi to¸n nµy nh­ mét bµi to¸n ra quyÕt ®Þnh.

b. Chøng minh r»ng bµi to¸n quyÕt ®Þnh ra quyÕt ®Þnh lµ NP-khã.

c. Cho mét thuËt to¸n víi thêi gian ®a thøc cho bµi to¸n ra quyÕt ®Þnh, gi¶ sö r»ng tÊt c¶

thêi gian xö lý lµ sè nguyªn tõ 1 ®Õn n. (ChØ dÉn: Sö dông lËp tr×nh linh ®éng.)

d. Cho thuËt to¸n thêi gian ®a thøc ®èi víi bµi to¸n tèi ­u ho¸, gi¶ sö r»ng toµn bé thêi

gian xö lý lµ sè nguyªn tõ 1 ®Õn n.

H×nh 34.20 t­¬ng øng víi mét mÖnh ®Ò (x y z), ®­îc sö dông trong Bµi to¸n 34.3