Tải bản đầy đủ (.pdf) (25 trang)

Chương 6: Những bài toán NP - đầy đủ ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (882.25 KB, 25 trang )

1
Ch ng 6
Nh ngbàitóanNP- y
1.Gi ithu tth i gian ath c t t nhvàkhông
t
t nh
2.V n NP- y
3. nh lý Cook
4.M
t s bàitoánNP- y
2
T n t ihaykhông t n t igi ithu t h uhi u

v inhi u bài toánchúngtacónh nggi i thu t
h
uhi u gi i.
• Tuy nhiên,cór t nhi u bài toán kháckhôngcógi i
thu t h u hi u gi i.
• Và i v i m t l p khá l n c anh ngbài toán nh
v y,chúng takhông th nói có t n t igi i thu t h u
hi
u gi i nó haykhông.
3
Nh ngbàitoánkhó và nh ngbàitoánd
• ê ã à ó ng c ch
phânlo inh ngbàitoánm ilà“khó b ng” m t s bàitoán
c
ã bi t.
• Tuy nhiên, ôikhi ranh gi i gi anh ngbàitoán “khó” và
nh
ngbàitoán “d ” là khá t nh


Thí d :
 D :Cót n t i m t l i i t x n y mà trong s nh h nM?
 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 ntính
Bàitoán2–th i gianhàm m
4
1.Gi ithu tth igian ath c t t nhvàkhông
t
t nh
P: p h p t t c nh ng bàitoán có th gi i c b ng
nh
ng gi ithu t t t nhtrongth igian ath c.

T t nh” (Deterministic : khi gi ithu t anglàm gì,
c
ng ch có m tvi cduy nh tcóth cth c hi n k
ti p.(whateverthealgorithmisdoing,there isonlyone
thingitcould do next).
Thí d
: X pth t b ng ph ng pháp chènthu c l pP vì có
ph c t p ath cO(N
2
)
5
T nhkhông t t nh
cách m r ng quy n n ng c amáytínhlàcho nó có
n
ng l c làm vi ckhông t t nh (non-determinism).
Kh ng t nh khi m tgi ithu t g p m t s l ach n
gi

a nhi u kh n ng, nó có quy n n ng “tiên óan” bi t
ch
n m tkh n ngthích áng.
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.
6
Thí d v m tgi ithu tkhông t t nh
//AnarrayBisusedastemporaryarray
.
procedure NSORT(A
//sortnpositiveintegers //
begin
for i:=1to n do B[i]:=
for i:=1to n do
begin
j:=
choice(1: ;
if B[j]<
then failure
else B[j]:=A[i]
end
for i:=1to n-1 do
if B[i]> B[i-1] thenfailure;
prin
success
end;

à choice(1:n) ó
á nh m t v trí
úngtrong t mtr t 1 n
n.
7
Thí d v m tgi ithu tkhông t t nh(tt
â m tgi ithu tkhông t t nh có th c
th
chi n b ng m t s songsonghóakhông h n ch
(unboundedparallelism).
M
i l n có b c l ach n ph ith c hi n,gi ithu t t o ra
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
kh
n ng cth chi n cùng m t lúc.
- B
nsao utiên k tthúcthành côngthì làm k tthúc
t
t c cácquá trìnhtínhtóankhác.
- N u m t b nsao k tthúcth t b ithì ch b nsao y
k
tthúcmàthôi.
8
Gi ithu tkhông t t nh(tt
ra, m tmáytí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
nh
t c anh ng l ach n(shortestsequence of choices) mà
d
n n s k tthúcthành công.
Trongtr
ng h pkhông t n t i m t chu i nh ng l a ch n
mà d
n n s k tthúcthành côngtagi nh r nggi i
thu
t d ng và inrathông báo “t nh to n không thành
công”.
9
Gi ithu tkhông t t nh(tt
Ghi chú:
 Cá ô á success à failure à t ng ng v i
phát bi
u stop trong m tgi ithu t t t nh.
 ph c t ptínhtoán c aNSORT là O(n).
NP: t p h p t t c nh ngbài toánmàcóth cgi i
b
nggi ithu t không t t nh trongth igian a
th

c.
Thí d
:Bài toáncót n t i l i idài nh t t nh x n
nh y là thu c l pNP.
10
Bàitoánth a mãn m chlogic(circuit
satisfiabilityproble
Cho m t côngth c logiccód ng
(x1 +x3 + x5)*(x1+~x2 +x4)*(~x3 +x4+x5)*
(x2 + ~x3 + x5)
v
icá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.
BàitoánCSPlàxác
nhxem có t n t i m t phépgán các
tr
logicvào các bi n logicsao chotoàncôngth ctr
thành true.
CSP c
ng là m tbàitoánNP.
Ghichú
: L pP là m t t pcon c a l pNP.
11
2. V n NP- y
Có á ng bàitoánmà ã bi t là thu c v
l p NP nh ngkhôngr có th thu c v l pP hay không.
(T
clà tagi i ú à ê á ô
ó
ê í ô à á à

ú ).
Nh
ngbàitoán NPnày l i có thêm m ttính ch t n a là:
“N
u b t k m ttrong nh ng bàitoánnày có th gi i
ctrongth igian ath cthì t t c nh ng bàitoán
thu
c l pNP c ng s cgi itrongth igian ath c
trên m
tmáy t t nh.”
12
ng bàitoán nh v y c g i là nh ngbàitoán
NP- y (NP-complete)
Hình6.1
NP
P
NP-complete
13
Tínhkh thugi m ath c(Polynomial
reducibilit
• p NP- y là l pcon c a nh ng bàitoánkhó nh t
trong l
pNP.
• Công c chính ch ngminh m t bàitoánthu clo iNP-
y làý t ng v tínhkh thu gi m ath c (polynomial
reducibility)
.
• B t c gi ithu tnàogi i cbà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- y ã bi t
thành m
tth hi n c a bàitoán m i,gi i bàitoán này b ng
gi
i thu t ã có tìmra m t l igi i, r i bi n th l i gi i
này tr v thành m t l igi i c abàitoánNP- y ã bi t.
14
Tínhkh thugi m ath c(tt
h m t bàitoánthu c lo iNP là NP- y ,ta
ch
c n ch ng t r ng m t bàitoán NP- y ã bi t nào
ó thì kh thu gi m ath c v bàitoán m i y.
nh ngh a:(Thugi ).Ta b o bàitoánL1
( )bàitoánL2,ký hi u là L1 L2 n u b t k gi i
thu
t nàogi i cL2thì c ng có th c dùng gi i
L1.
15
Tínhkh thugi m ath c(tt
m tbàitoán m iLlà NP- y ,
chúngta c
n ch ngminh:
1.BàitoánLthu
c l p NP
2. M
tbà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
thành ph
và kho ng cách gi a m i c pthành ph ,tìm
m
t l trình i qua t t c m ithành ph sao cho t ng
kho
ng cách c a l trình nh h n M.
 Bàitoán chutrìnhHamilton(HCP):Cho m t th ,tìm
m
tchutrình nmà i qua t t c m i nh.
16
Tínhkh thugi m ath c(tt
bi t HCPlàNP- y và mu n xác nhxem
TSP c
nglà NP- y haykhông. B t k gi ithu t nào
có th
c dùng gi i bàitoánTSP c ng có th c
dùng
gi i bàitoánHCP,thông qua s thu gi msau:
Cho m
tth hi n c a bàitoánHCP(m t th ),hãy t ora
m
tth hi n c a bàitoánTSPt ng ngnh sau:
t ora các thànhph c a bàitoánTSPb ng cáchdùng
t p nh trong th ;
v kho ng cáchgi a hai c pthành ph ta gángiá tr 1
n u có t n t i m t c nh gi ahai nh t ng ngtrong
th và giá tr 2 n ukhông có c nh.
R
ithì dùng gi ithu t gi iTSP tìm m t l trình N(N

là s
nhtrong th ).
17
Tínhkh thugi m ath c(tt
à thugi , nh v ytính ch t NP- y
c a HCP hàm ý tính ch ttính ch t NP- y c aTSP.
S
thugi mHCP v TSP là n gi n vì hai bàitoán có
nh
ng nét t ng t nhau.
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ánmà t ng ikhác nhau.
Thí d
:Cóth thugi m bàitoántho mãn m chlogic
(CSP) v
bàitoán HCP.
18
3. nh lý Cook
à á ào là bàitoán NP- y utiên?
S.A. Cook(1971)
ã xu t c m t ch ngminhtr cti p
utiên r ng bàitoánth amãn m chlogic(CSP)làbài
toán NP-
y .

N à á
ã ì à á ó
c.”

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.
19
4. M t s bàitoánNP- y
à ìn bàitoánkhác nhau cbi tlà NP- y .
Danhsáchnày b
t u b ng bàitoántho mãn m chlogic,
bàitoán ng
ith ng gia du hành(TSP) và bàitoán chu
trìnhHamilton.
M tvàibàitoánkhác nh sau:
-
Bàitoán â Cho m t t p nh ng s nguyên,
có th
phân ho ch chúngthànhhai t p conmàcót ng
tr
s b ngnhau?
à á ê :Cho m t bàitoán quiho ch
tuy
ntính, li u có t n t i m t l i gi itoàn s nguyên?
20
- X ô ê ý
g) Cho m t k h n(deadline)vàm t t pcác
côngtác có chi
udàith igiankhác nhau ph i c
th
cthitrên hai b x lý. V n là có th s p x p
th cthi t t c nh ngcôngtác ósao choth amãn k

h nkhông?
-
Bàitoá C :Cho m t th
và m t s nguyên N,cóth ki m c m t t p nh h n
N
nhmàch m h t m i c nhtrong th ?
-
Bàitoán ù ( ING): cho n món mà
ph
i t vàotrongcácthùng có s c ch a b ng nhau L.
Món
i òi h i l
i
n v s c ch a c athùng. M c ích
là xác
nh s thùng ít nh t c n ch a t t c n món
ó.
21
P ≠ NP ?
à án nêutrênvànhi u bàitoán liên quan có
nh
ng ng d ngth c t quantr ng.
S
ki nkhông có nh ng gi ithu t t t ctìmth y cho
b
t k bàitoán nàotrong s nh ng bàitoán nêu trênlà
m
t b ngch ng m nh m r ng P NP.
Dù choP có khácNP haykhông,m
t s ki nth c t là

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- y nào m t cách h u hi u.
22
M t s k thu t iph v inh ngbài
toánNP-
y
1. ù “ x p x “(approximationalgorithm)
tìm l igi i x p x t i u(near-optimal).
2. D
avào hi u n ng c atr ng h ptrung bình phát
tri
n m tgi ithu tmàtìm ra l i gi itrong m t s tr ng
h
p nào ó, m c dù không làmvi c ctrong m itr ng
h
p.
3. S
d ng nh nggi ithu tcó ph c t p hàm m nh ng
h
u hi u, ví d nh gi ithu t quay lui.
4. a heuristic vàogi ithu t t ngthêm hi u qu c a
gi
ithu t.
5. S
d ng metaheuristic.
23
Heuristicvàmetaheuristic
 Heuristic là trith c v bàitoán c th c s d ng
d n d t quá trìnhtìm ra l igi i c a gi ithu t. Nh s

thêmvàocác heuristicmàgi ithu ttr nên h u hi u h n.
 Metaheuristic là lo iheuristic t ng quátcóth áp d ng
cho nhi
u l p bàitó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 :
-gi ithu t di truy n(geneticalgorithm)
-gi
ithu tmô ph ngluy nkim(simulatedannealing)
-tìmki
mtabu(Tabusearch)
v.v….
24
ngg p c a v n NP- y
Có hi ubàitoánNP- y trong các lãnh v c
 gi itích s (numericalanalysis),
 s pth t và tìmki m,
 x lý dòng ký t (stringprocessing),
 Mô hình hóa hình h c(geometrymodeling)
 x lý th (graphprocessing).
S
óng góp quan tr ng nh t c a lý thuy t v NP- y
là: nó cung à á
á ã ê à“ ” ay “khó”.
25
B n l pbàitoánphântheo khó
 Nh ng bàitoán b t kh quy t(Undecidableproblems): â
à nh ngbàitoán ch a h có gi ithu t gi i.
Thí d :Bàitoánquy t nhxem m tch ngtrình có d ng

trên m
tmáyTuring.
 Nh ng bàitoán khó gi i(intractable) : âylành ng bài
toánmàkhông t
n t igi ithu tth igian ath c gi i
chúng. Ch
t n t igi ithu tth igian hàm m gi i
chúng.
 Nh ng bàitoán NP- y
Nh ngbàitoán NP- y là m t l pcon c bi t c a l p
bàitoánNP.
 Nh ng bàitoán P.

×