whatever the algorithm is doing, there is only one thing it could do next.
Trang 2T n t i hay không t n t i gi i thu t h u hi u
• v i nhi u bài toán chúng ta có nh ng gi i thu t
Trang 3Nh ng bài toán khó và nh ng bài toán d
Bài toán 1 - BFS – th i gian tuy n tínhBài toán 2 – th i gian hàm m
Trang 41 Gi i thu t th i gian a th c t t nh và không
t t nh
P: p h p t t c nh ng bài toán có th gi i c b ng
nh ng gi i thu t t t nh trong th i gian a th c
“T t nh” (Deterministic : khi gi i thu t ang làm gì,
c ng ch có m t vi c duy nh t có th c th c hi n k
ti p (whatever the algorithm is doing, there is only one
thing it could do next)
Thí d : X p th t b ng ph ng pháp chèn thu c l p P vì có
Trang 5Thí d : Cho A là m t m ng s nguyên M t gi i thu t không
t t nh NSORT(A, n) s p th t các s theo th t t ng
và xu t chúng ra theo th t này
Trang 8Gi i thu t không t t nh (tt
ra, m t máy tính không t t nh không t o ra nh ng
b n sao c a gi i thu t m t khi ph i th c hi n m t l a
Trang 9Gi i thu t không t t nh (tt
Ghi chú:
! Cá ô á success à failure à t ng ng v i
phát bi u stop trong m t gi i thu t t t nh
! ph c t p tính toán c a NSORT là O(n)
Trang 10Bài toán th a mãn m ch logic (circuit
satisfiability proble
Cho m t công th c logic có d ng
(x1 + x3 + x5)*(x1+ ~x2 + x4)*(~x3 + x4 +x5)*
(x2 + ~x3 + x5)
v i các bi 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ài toán CSP là xác nh xem có t n t i m t phép gán các
tr logic vào các bi n logic sao cho toàn công th c tr
thành true
CSP c ng là m t bài toán NP
Ghi chú: L p P là m t t p con c a l p NP
Trang 112 V n NP- y
Có á ng bài toán mà ã bi t là thu c v
l p NP nh ng không r có th thu c v l p P hay không.(T c là ta gi i ú à ê á ô
ó
ú )
Nh ng bài toán NP này l i có thêm m t tính ch t n a là:
“N u b t k m t trong nh ng bài toán này có th gi i
c trong th i gian a th c thì t t c nh ng bài toánthu c l p NP c ng s c gi i trong th i gian a th c
Trang 12ng bài toán nh v y c g i là nh ng bài toán
NP- y (NP-complete)
Hình 6.1
NP
P NP-complete
Trang 13• B t c gi i thu t nào gi i c bài toán m i thu c lo i NP
có th c dùng gi i m t bài toán NP- y nào ó
ã bi t b ng cách sau:
bi n th m t th hi n b t k c a bài toán NP- y ã bi t
thành m t th hi n c a bài toán m i, gi i bài toán này b ng
gi i thu t ã có tìm ra m t l i gi i, r i bi n th l i gi i
Trang 14Tính kh thu gi m a th c (tt
h m t bài toán thu c lo i NP là NP- y , ta
ch c n ch ng t r ng m t bài toán NP- y ã bi t nào
ó thì kh thu gi m a th c v bài toán m i y
nh ngh a: (Thu gi ) Ta b o bài toán L1
( ) bài toán L2, ký hi u là L1 L2 n u b t k gi ithu t nào gi i c L2 thì c ng có th c dùng gi iL1
Trang 15Tính kh thu gi m a th c (tt
m t bài toán m i L là NP- y ,chúng ta c n ch ng minh:
1 Bài toán L thu c l p NP
2 M t bài toán NP- y ã bi t thu gi m v L
Thí d : Cho hai bài toán
Bài toán ng i th 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 p thành ph , tìm
m t l trình i qua t t c m i thành ph sao cho t ng
kho ng cách c a l trình nh h n M
Bài toán chu trình Hamilton (HCP): Cho m t th , tìm
Trang 16Tính kh thu gi m a th c (tt
bi t HCP là NP- y và mu n xác nh xemTSP c ng là NP- y hay không B t k gi i thu t nào
có th c dùng gi i bài toán TSP c ng có th c
dùng gi i bài toán HCP, thông qua s thu gi m sau:
Cho m t th hi n c a bài toán HCP (m t th ), hãy t o ra
m t th hi n c a bài toán TSP t ng ng nh sau:
Trang 17S thu gi m th i gian a th c có th s r t ph c t p khi
chúng ta liên k t nh ng bài toán mà t ng i khác nhau.Thí d : Có th thu gi m bài toán tho mãn m ch logic
(CSP) v bài toán HCP
Trang 183 nh lý Cook
à á ào là bài toán NP- y u tiên?
S.A Cook (1971) ã xu t c m t ch ng minh tr c ti p
u tiên r ng bài toán th a mãn m ch logic (CSP) là bài
Trang 194 M t s bài toán NP- y
à ìn bài toán khác nhau c bi t là NP- y Danh sách này b t u b ng bài toán tho mãn m ch logic,bài toán ng i th ng gia du hành (TSP) và bài toán chutrình Hamilton
M t vài bài toán khác nh sau:
- Bài toán â Cho m t t p nh ng s nguyên,
có th phân ho ch chúng thành hai t p con mà có t ng
tr s b ng nhau?
à á ê : Cho m t bài toán qui ho chtuy n tính, li u có t n t i m t l i gi i toàn s nguyên?
Trang 20- X ô ê ý
g) Cho m t k h n (deadline) và m t t p cáccông tác có chi u dài th i gian khác nhau ph i c
th c thi trên hai b x lý V n là có th s p x p
th c thi t t c nh ng công tác ó sao cho th a mãn k
h n không?
và m t s nguyên N, có th ki m c m t t p nh h n
N nh mà ch m h t m i c nh trong th ?
- Bài toán ù ( ING): cho n món mà
ph i t vào trong các thùng có s c ch a b ng nhau L.Món i òi h i li n v s c ch a c a thùng M c ích
là xác nh s thùng ít nh t c n ch a t t c n món
ó
Trang 21P ≠ NP ?
à án nêu trên và nhi u bài toán liên quan có
nh ng ng d ng th c t quan tr ng
S ki n không có nh ng gi i thu t t t c tìm th y cho
b t k bài toán nào trong s nh ng bài toán nêu trên là
Trang 22tri n m t gi i thu t mà tìm ra l i gi i trong m t s tr ng
h p nào ó, m c dù không làm vi c c trong m i tr ng
h p
3 S d ng nh ng gi i thu t có ph c t p hàm m nh ng
h u hi u, ví d nh gi i thu t quay lui
4 a heuristic vào gi i thu t t ng thêm hi u qu c a
gi i thu t
5 S d ng metaheuristic
Trang 23Heuristic và meta heuristic
" Heuristic là tri th c v bài toán c th c s d ng
d n d t quá trình tìm ra l i gi i c a gi i thu t Nh s
thêm vào các heuristic mà gi i thu t tr nên h u hi u h n
" Meta heuristic là lo i heuristic t ng quát có th áp d ng
cho nhi u l p bài tóan
" G n ây meta heuristic là m t lãnh v c nghiên c u pháttri n m nh m , v i s ra i c a nhi u meta heuristic nh :
- gi i thu t di truy n (genetic algorithm)
- gi i thu t mô ph ng luy n kim (simulated annealing)
- tìm ki m tabu (Tabu search)v.v…
Trang 25B n l p bài toán phân theo khó
" Nh ng bài toán b t kh quy t (Undecidable problems): â
à nh ng bài toán ch a h có gi i thu t gi i
Thí d : Bài toán quy t nh xem m t ch ng trình có d ngtrên m t máy Turing
Nh ng bài toán khó gi i (intractable) : ây là nh ng bài
toán mà không t n t i gi i thu t th i gian a th c gi ichúng Ch t n t i gi i thu t th i gian hàm m gi i
chúng
Nh ng bài toán NP- y
Nh ng bài toán NP- y là m t l p con c bi t c a l pbài toán NP