Chuong34
Transcript of 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 nhng 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- ®ñ, 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)
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
(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 nhng
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 nhng 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
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 nhng 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
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 trng 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- ®ñ.
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 nhng 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.
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.
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, nhng 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µ
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, nhng 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 lu ý 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.
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
trong L, nhng ®Ó 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, nhng 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
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, nhng 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Ô.
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.
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, nhng 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, nhng 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.
§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 nhng 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.
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.
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.
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, nhng 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
§Ó 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. Nhng 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- ®ñ, nhng ë 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.
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
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
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 lu 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Ø lu 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 lu tr÷ lµm viÖc, vµ bÊt cø bit tr¹ng th¸i nµo mµ m¸y tÝnh lu 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Ó,
bao gåm c¶ x©u vµo vµ mét kÕt qu¶, nhng 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 lu 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 lu 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 lu tr÷ ho¹t ®éng.
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.
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 lu ý 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, nhng 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
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
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
®î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.
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è.
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
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)).
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 ’’’. Lu ý 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.
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.
§Þ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.
=(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.
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, nhng 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}.
®ã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
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].
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 nhng 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.
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.
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.
§Þ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.
(Lu ý 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.
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
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 ®Ò. Nhng 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. Lu ý 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.
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, nhng 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.
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, lu ý 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 ®ñ.
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ö.
a. Cã n ®ång xu, nhng 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, nhng 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), nhng 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.
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, nhng 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