Chuong34
- 1. 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
- 2. (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
- 3. 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
- 4. 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- ®ñ.
- 5. 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.
- 6. 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.
- 7. 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µ
- 8. 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.
- 9. 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
- 10. 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
- 11. 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Ô.
- 12. 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()!()!( n
mm , 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.
- 13. 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.
- 14. §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.
- 15. 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.
- 16. 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.
- 17. 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
- 18. §Ó 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.
- 19. 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
- 20. 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
- 21. 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Ó,
- 22. 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.
- 23. 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.
- 24. 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
- 25. 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
- 26. 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
- 27. ®î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.
- 28. 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è.
- 29. 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
- 30. 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)).
- 31. 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.
- 32. 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.
- 33. §Þ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 r
l1 , r
l2 vµ r
l3 . 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=( r
l1 r
l2 r
l3 ) trong ,
chóng ta ®Æt mét bé ba c¸c ®Ønh r
v1
r
v2
r
v3 vµo trong V. Chóng ta ®Æt mét c¹nh gi÷a hai
®Ønh r
iv vµ s
jv nÕu hai ®iÒu kiÖn sau ®îc tho¶ m·n:
r
iv 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µ, r
il 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.