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.

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