ng 6 Ch Nh ng bài tóanNP-
y
1.Gi
ithu tth i gian ath c t t nh và không
t t nh
2. V n
NP-
y
3.
nh lý Cook
y
4. M t s bàito ánNP-
1
T n t ihaykh ông t n t igi
ithu t h uhi u
•
i v inhi u bài toánch úngta c ó nh nggi
i thu t
h uhi u
gi i.
• Tuy nhiên, có r t nhi u bài toán kháckh ông có gi i
thu t h u hi u
gi i.
• Và
i v i m t l p khá l n c anh ng bài toán nh
i thu t h u
v y,ch úng takh ông th nói có t n t igi hi u
gi i nó haykh ông.
2
Nh ng bàito ánkh ó và nh ng bàito án d
• Nhi unghi ên c u ã
cth chi n và có nh ng c ch
• Tuy nhiên, ôikhi ranh gi
ã bi t. phânlo inh ng bàito án m i là “khó b ng” m t s bàito án c
i gi anh ng bàito án “khó” và
nh ng bàito án “d ” là khá t nh ..
i t x n y mà trong s nh h nM?
Thí d : D : Có t n t i m t l i KHó: Có t n t i m t l i i t x n y mà tr ng s M?
Bàito án1-BFS – th igiantuy n tính
3
Bàito án 2 – th i gian hàm m
ithu tth igian ath c t t nh và không
1.Gi t t nh
c b ng P: T p h p t t c nh ng bàito án có th gi i
nh ng gi ithu t t t nhtrongth igian ath c.
“T t nh” (Deterministic) : khi gi ithu t ang làm gì,
cth c hi n k
c ng ch có m tvi cduy nh t có th ti p.(whateverthealgorithmisdoing,there isonlyone thingitcould do next).
ng pháp chènthu c l pP v ì có Thí d : X pth t b ng ph
4
ph c t p ath cO( N2 )
Tínhkh ông t t nh
ithu t g p m t s l ach n
bi t
M t cách m r ng quy n n ng c a máy tính là cho nó có n ng l c làm vi ckh ông t t nh (non-determinism). Không t t nh: khi m tgi gi a nhi u kh n ng, nó có quy n n ng “tiên óan” ch n m tkh n ngth ích áng.
5
Gi ithu t không t t nh (nondeterministicalgorithm) Thí d :Cho A l à m t m ng s nguyên. M t gi ithu t không t t nhNSORT(A,n) s pth t các s theoth t t ng và xu t chúng ra theoth t này.
Thí d v m tgi
ithu tkh ông t t nh
.
//AnarrayBisusedastemporaryarray procedure NSORT(A,n) //sortnpositiveintegers // begin
for i:= 1 to n do B[i]:=0; for i:= 1 to n do begin
Hàm choice(1:n) có kh n ng xác nh m t v trí úngtrong t mtr t 1 n
n.
j:= choice(1:n); if B[j]<> 0 then failure else B[j]:=A[i]
end for i:= 1 to n-1 do
if B[i]> B[i-1] thenfailure ;
print(B); success
end;
6
Thí d v m tgi
ithu tkh ông t t nh(tt.)
i m tgi ithu tkh ông t t nh có th c
songsong h óakh ông h n ch
ithu t t o ra
S phângi th chi n b ng m t s (unboundedparallelism ). M i l n có b c l ach n ph ith c hi n,gi nhi u b nsao c ach ính nó (copiesof itself ). M i b nsao cth chi n chokh n ng l a ch n. Nh v y nhi u
cth chi n cùng m t lúc. uti ên k tth úcth ành côngth ì làm k tth úc
7
kh n ng - B nsao t t c cácqu á trình tính tóankh ác. - N u m t b nsao k tth úcth t b ith ì ch b nsao y k tth úc mà thôi.
Gi ithu tkh ông t t nh(tt.)
Th t ra, m t máy tínhkh ông t t nhkh ông t oranh ng b nsao c a gi ithu t m tkhi ph ith chi n m t l a ch n.
Mà, nó có quy n n ng ch n m t y u t “ úng” t m t t p nh ngkh n ng l ach n m i ph ith chi n m t l a ch n.
M t y u t “ úng” c nhngh a nh là m tchu ing n
n s k tth úcth ành công.
nh t c anh ng l ach n (shortestsequence of choices) mà d n Trongtr
ng h pkh ông t n t i m t chu i nh ng l a ch n n s k tth úcth ành côngtagi i
8
mà d n nh r nggi thu t d ng và inrath ông báo “tính toán không thành công”.
Gi ithu tkh ông t t nh(tt.)
Cácth ông báo success và failure là t
Ghi chú:
ng ng v i
phát bi u stop trong m tgi
ithu t t t nh. ph c t p tínhto án c aNSORT l à O(n).
cgi
i
ithu t không t t nh trongth igian a
NP: t p h p t t c nh ng bài toán mà có th b nggi th c.
i dài nh t t
nh x
n
Thí d : Bài toán có t n t i l i nh y là thu c l pNP.
9
Bàito ánth a mãn m chlogic(circuit satisfiabilityproblem)
Cho m t côngth c logic có d ng
(x1 +x3 + x5)*(x1+~x2 +x4)*(~x3 +x4+x5)* (x2 + ~x3 + x5) v i cácbi n xi là các bi n logic (true or false), “+” di n t OR, “*” di n t AND, và ~ di n t NOT.
nhxem c ó t n t i m t phép gán các
Bàito ánCSP l à xác tr logic vào các bi n logicsao choto àn côngth ctr thành true.
CSP c ng là m t bàito ánNP.
10
Ghich ú: L pP l à m t t pcon c a l pNP .
2. V n
NP-
y
ng
Có m tdanh s áchnh ng bàito án mà ã bi t là thu c v l p NP nh ngkh ông rõ có th thu c v l pP hay kh ông. i chúng d dàngtr ên m t máykh ông t t nh (T c là,tagi nh ng ch a ai có th tìmth y m t gi ithu t h u hi u ch y gi i b t k m t bàito án nào trên máy tính thông th c a chúng).
Nh ng bàito án NP này l i có thêm m t tính ch t n a là: “N u b t k m ttrong nh ng bàito án này có th gi i ctrongth igian ath cth ì t t c nh ng bàito án itrongth igian ath c cgi
11
thu c l pNP c ng s trên m t máy t t nh.”
Nh ng bàito án nh v y c g i là nh ng bàito án
NP- y (NP-complete)
Hình6.1
NP-complete
NP
P
12
Tínhkh thugi m ath c(Polynomial reducibility)
• L p NP-
là l pcon c a nh ng bàito ánkh ó nh t
y trong l pNP. • Công c chính
y ch ngminh m t bàito ánthu clo iNP- ng v tínhkh thu gi m ath c (polynomial
là ý t reducibility).
• B t c gi ithu t nàogi
i c bàito án m ithu clo iNP
có th c dùng gi i m t bàito án NP- y nào ó
ã bi t b ng cách sau: bi n th m tth hi n b t k c a bàito án NP-
ã bi t y i bàito án này b ng
tìmra m t l igi i, r i bi n th l i gi i
13
thành m tth hi n c a bàito án m i,gi gi i thu t ã có này tr v thành m t l igi i c a bàito ánNP- y ã bi t.
Tínhkh thugi m ath c(tt.)
ch ngminh m t bàito ánthu c lo iNP l à NP- y
ch c n ch ng t r ng m t bàito án NP- y ,ta ã bi t nào
ó thì kh thu gi m ath c v bàito án m i y.
cL2th ì c ng có th c dùng gi i i
14
nh ngh a: (Thugi m v ).Ta b o bàito ánL1 thugi m v (reducesto ) bàito ánL2, k ý hi u là L1 L2 n u b t k gi i thu t nàogi L1.
Tínhkh thugi m ath c(tt.)
y ,
ch ngminh m t bàito án m iL l à NP- chúngta c n ch ngminh:
1. Bàito ánLthu c l p NP 2. M t bàito án NP- y ã bi tthugi m v L.
Thí d : Cho hai bàito án Bàito ánng ith ng gia du hành(TSP) :cho m t t p các
trình i qua t t c m ith ành ph sao cho t ng
thành ph và kho ng cách gi a m i c pth ành ph , tìm m t l kho ng cách c a l trình nh h n M.
th , tìm
Bàito án chutr ìnhHamilton(HCP) :Cho m t n mà i qua t t c m i nh.
15
m tchutr ình
Tínhkh thugi m ath c(tt.)
và mu n xác nhxem y ta bi t HCP là NP-
y
haykh ông. B t k gi ithu t nào c gi i bàito ánTSP c ng có th c dùng
thu gi msau:
th ), hãy t ora
Gi s TSP c ng là NP- có th gi i bàito ánHCP,th ông qua s dùng Cho m tth hi n c a bàito ánHCP(m t m tth hi n c a bàito ánTSP t ng ngnh sau:
t ora c ác thànhph c a bàito ánTSP b ng cách dùng
th ; t p nh trong
v kho ng cáchgi a hai c pth ành ph ta gángi á tr 1
nh t ng ngtrong
tìm m t l trình N(N
16
n u có t n t i m t c nh gi ahai th và giá tr 2 n ukh ông có c nh. R ith ì dùng gi ithu t gi iTSP là s nhtrong th ).
Tínhkh thugi m ath c(tt.)
Ngh a là HCP thugi m v TSP, nh v y tính ch t NP- y
c a HCP hàm ý tính ch t tính ch t NP- y c aTSP.
n gi n vì hai bàito án có
S thugi mHCP v TSP là ng t nhau. nh ng nét t
S thugi mth igian ath c có th s r t ph c t p khi chúngta li ên k t nh ng bàito án mà t ikh ác nhau. ng
17
Thí d : Có th thugi m bàito ántho mãn m chlogic (CSP) v bàito án HCP.
3.
nh lý Cook
y uti ên?
xu t c m t ch ngminhtr cti p Nh ng: Bàito án nào là bàito án NP- ã S.A. Cook(1971)
uti ên r ng bàito ánth a mãn m chlogic(CSP) l à bài
y
i thu t th igian ath c
. toán NP- gi i bài toán “N u t n t i m tgi th a mãn m chlogicth ì t t c m i bàito ántrong l p NP có th itrongth igian ath c.” cgi
18
Ch ngminh c a Cook r t ph c t p nh ng ch y u d a vào máyTuring(Turingmachine) t ng quát.
4. M t s bàito ánNP-
y
Hàngngh ìn bàito ánkh ác nhau cbi t là NP- y .
u b ng bàito ántho mãn m chlogic,
ith ng gia du hành(TSP) v à bàito án chu
Danh sách này b t bàito án ng trìnhHamilton.
M t vài bàito ánkh ác nh sau:
- Bàito án phân ho ch s : Cho m t t p nh ng s nguyên, có th phân ho ch chúngth ànhhai t p con mà có t ng tr s b ngnhau?
19
- Bàito án qui ho chnguy ên:Cho m t bàito án quiho ch tuy n tính, li u có t n t i m t l i gi ito àn s nguyên?
c
là có th s p x p
t c nh ng công tác ó sao choth a mãn k
nh(VERTEXCOVER) :Cho m t
th c m t t p nh h n
th ?
- X p l ch công vi c trên a b x lý (multiprocessor scheduling):Cho m t k h n(deadline) v à m t t p các công tác có chi u dàith igiankh ác nhau ph i th cthitr ên hai b x lý. V n th cthi t h nkh ông? - Bàito án ph và m t s nguyên N, có th ki m N nh mà ch m h t m i c nhtrong - Bàito án x p thùng (BINPACKING ): cho n món mà t vàotrong c ácth ùng có s c ch a b ng nhau L. ph i n v s c ch a c ath ùng. M c ích i òi h i li Món là xác nh s thùng ít nh t c n ch a t t c n món
20
ó.
P NP ?
Nh ng bàito án nêutr ên và nhi u bàito án liên quan có nh ng ng d ngth c t quantr ng.
c tìmth y cho
S ki nkh ông có nh ng gi ithu t t t b t k bàito án nàotrong s nh ng bàito án nêu trên là m t b ngch ng m nh m r ng P NP.
là
21
Dù choP c ó khácNP haykh ông, m t s ki nth c t chúng ta không có nh ng gi ithu t m b o có th gi i b t k m t bài toán NP- nào m t cách h u hi u. y
iph ó v inh ng bài
M t s k thu t toánNP-
y
1. Dùng “gi ithu t x p x “(approximationalgorithm) tìm l igi i x p x t i u(near-optimal).
ng h ptrung b ình phát
ithu t mà tìm ra l i gi itrong m t s tr ctrong m itr ng ng
2. D a vào hi u n ng c atr tri n m tgi h p nào ó, m c dù không làmvi c h p.
ithu t có ph c t p hàm m nh ng
3. S d ng nh nggi h u hi u, ví d nh gi ithu t quay lui.
a heuristic vàogi ithu t t ngth êm hi u qu c a
4. gi ithu t.
22
5. S d ng metaheuristic.
Heuristic và metaheuristic
Heuristic là trith c v bàito án c th
c s d ng i c a gi ithu t. Nh s
d n d t quá trình tìm ra l igi thêm vào các heuristic mà gi ithu ttr nên h u hi u h n.
Metaheuristic là lo iheuristic t ng quát có th áp d ng
cho nhi u l p bài tóan.
G n âymeta heuristic l à m t lãnh v c nghiên c u phát
tri n m nh m , v i s ra i c anhi umeta heuristicnh :
ithu t di truy n(geneticalgorithm) ithu t mô ph ngluy nkim(simulatedannealing)
-gi -gi - tìmki mtabu(Tabusearch)
23
v.v….
óng góp c a v n
NP-
y
Có nhi u bàito ánNP- y trong các lãnh v c
(stringprocessing),
gi i tích s (numericalanalysis), s pth t và tìmki m, x lý dòng ký t Mô hình hóa hình h c(geometrymodeling) th (graphprocessing). x lý
óng góp quan tr ng nh t c a lý thuy t v NP- y
xác nh m t bàito án m i
24
S là: nó cung c p m t c ch trong các lãnh v ctr ên là “d ” hay “khó”.
B n l p bàito ánph ântheo
khó
Nh ng bàito án b t kh quy t(Undecidableproblems):
ây
gi i. ngtr ình có d ng
Nh ng bàito án khó gi i(intractable) : ây là nh ng bài
là nh ng bàito án ch a h có gi ithu t Thí d : Bàito ánquy t nhxem m tch trên m t máyTuring.
ath c gi i
ithu tth igian ithu tth igian h àm m gi i
toán mà không t n t igi chúng. Ch t n t igi chúng.
y y là m t l pcon c bi t c a l p
Nh ng bàito án NP- Nh ng bàito án NP- bàito ánNP.
Nh ng bàito án P.
25

