You are on page 1of 35

MOT SO THUAT TOAN HEURISTIC

2.1 Mot so thuat toan can ban: 2.1.1 Phng phap giai quyet van e theo hng xac nh trc tiep li giai: Ap dung mot cong thc cu the e tnh ra li giai trong moi trng hp c s dung. ay la phng phap tot nhat (theo ngha cac cong thc tm ra va c chng minh se cho li giai trong moi trng hp.) va hu hieu nhat. V du: Lap chng trnh tnh S = 1 + 2 + 3 + + n (n N) 2.1.2 Phng phap Vet can: Gia s chung ta giai bai toan P tren mien D, xD - Bc 1: xD, P(x) ung: in ket qua va dng (success). - Bc 2: D := D \ {x}: Loai trng hp nay neu sai. - Bc 3: Kiem tra D {} + ung : Goto bc 1. + Sai: Dng (fail). Lu y: oi vi phng phap nay, viec gii han D cang nho giai cang nhanh. 2.1.3 Phng phap e qui: - nh ngha kieu e qui: V du: nh ngha so t nhien: 1 la so t nhien n la so t nhien th (n-1) cung la so t nhien. - Ham e qui: Ham f c goi la e qui neu: f(x) = f(x, f(x)) V du: Ham e qui tnh giai tha: 0! = 1 1! = 1 n! = n*(n-1)! - Thuat toan e qui: Cho biet cach giai bc tam thng nhat. Cho biet cach giai bc th n thong qua (n-1) bc giai trc. - V du: Xet day so Fibonaci: Cac con tho khong bai gi chet. 2 thang sau khi ra i, mot cap tho mi se sinh ra mot cap tho con (gom mot c va mot cai). Khi bat au sinh th c moi thang tiep theo chung lai sinh c mot cap tho mi.
C2-1

Gia s bat au t mot cap tho mi ra i. Hoi en thang th n co bao nhieu cap tho. Nhan xet: Thang 1: 1 cap U0 Thang 2: 1 cap U1 Thang 3: 2 cap U2 Thang 4: 3 cap U3 Thang 5: 5 cap U4 Thang 6: 8 cap U5 .

F(0) = 1 F(1) = 1 F( n ) = F( n 1) + F( n 2)

neu n < 2 1 F( n ) = F(n-1) + F(n-2) neu n 2


Nhan xet: Goi ( F(n) ) la o phc tap, neu n = 30 th ( F(n) ) = 832.040 cap, khi o vt qua dung lng o nh (int = 32.676). ) Dung phng phap lap: Nhan xet: o phc tap la (n).

) Dung phng phap trc tiep: oi cong thc e quy ra cong thc tng minh.
Xet phng trnh truy hoi thuan nhat tuyen tnh vi cac he so khong oi: a0tn + a1tn-1 + + aktn-k = 0 (*) (1) Tuyen tnh v an ti bac nhat. (2) Thuan nhat v ve phai bang zero. (3) Cac he so a0, , ak khong oi (khong phu thuoc vao n). at tn = xn (*) a0xn + a1xn-1 + + akxn-k = 0 xn-k(a0xk + a1xk-1 + + ak) = 0 a0xk + a1xk-1 + + ak = 0 (**) Phng trnh (**) la phng trnh ac trng bac k cua (*). Gia s r1, r2, , rk la k nghiem cua (**) (phan biet va co the la so phc). Khi o :

t n = ci rin
i =1

Vi c1, c2, , ck la cac hang so c xac nh t k ieu kien ban au.


C2-2

F(n) = F(n1) + F(n2) F(n) F(n1) F(n-2) = 0 at F(n) = xn xn - xn-1 - xn-2 = 0 (chia 2 ve cho xn-2) x2 - x - 1 = 0

x1,2 =

Bieu dien:

1 5 2
2

n n F( n ) = ci x in =c1x1 + c2 x 2 1

Van e: Tnh c1 va c2: F(0) = 1 F(0) = c1x10 + c2x20 = c1 + c2 = 1 F(1) = 1 F(1) = c1x11 + c2x21 = c1x1 + c2x2 = 1 T (1) va (2) tnh c c1, c2, thay vao F(n):

(1) (2)

(1 + 5 ) F ( n) =
Nhan xet: Phng phap nay co tron so.

n +1

1 5

n +1

2 n +1 5

5 la so vo ty nen ta phai tra gia bang cach lam

) Phng phap ngau nhien (phng phap Monte Carlo):

Bai toan: Tnh dien tch cua hnh M bat ky. + Co the bao hnh M noi tiep trong mot hnh vuong co canh la 1 n v. + Phat ngau nhien N iem vao trong hnh vuong. + Co NM iem nam trong hnh M.

C2-3

Khi o vi N u ln, dien tch (xap x) hnh M c tnh nh sau:

NM S hnh M = S hnh M N S hnh vuong

V du: Tnh : dien tch hnh tron S0 = R2

=
ma R = 1/2 = 4S0

S0 R2
y x(x0,y 0) O x

2.2 Phan tch thuat toan (algorithm): 2.2.1 Cac tnh chat cua mot thuat toan: Khi xay dng mot thuat toan va chng trnh tng ng e giai mot bai toan can phai phan tch: + Tnh ung an cua thuat toan: phai dung cong cu toan hoc e chng minh la ung. + Tnh n gian cua thuat toan: de hieu, de lap trnh, de hieu chnh. + Tnh toi u cua thuat toan (neu co nhieu thuat toan). Lu y: - Thi gian va bo nh la 2 ai lng ty le nghch, nen nhieu khi tnh cang n gian cang lam cham chng trnh. - Thi gian thc hien mot thuat toan phu thuoc rat nhieu yeu to: + Kch thc cua d lieu. + Kieu lenh + Toc o x ly cua may. + Ngon ng lap trnh. + Trnh bien dch. V du: Neu thi gian thc hien thuat toan T1 la T1(n) = cn2, Neu thi gian thc hien thuat toan T2 la T2(n) = kn (k, c = const). Khi o vi n u ln, ta noi rang T2 co thi gian thc hien nhanh hn T1.
C2-4

T1

T2

Neu thi gian thc hien thuat toan ch phu thuoc vao kch thc d lieu (khong phu thuoc vao toc o may, ngon ng lap trnh) th ta goi thi gian thc hien thuat toan la o phc tap cua thuat toan va ky hieu la . V du: (n2), (n) 2.2.2 Quy tac xac nh o phc tap tnh toan: 2.2.2.1 Quy tac tong: T1(n): thi gian thc hien mot oan chng trnh P1: T1(n) = ( f(n) ) T2(n): thi gian thc hien mot oan chng trnh P2: T2(n) = ( g(n) ) Khi o thi gian e thc hien P1 va P2 la: T1(n) + T2(n) = ( max(f(n),g(n)) ) V du: Mot chng trnh co 3 bc thc hien, thi gian thc hien o c cua tng bc la:(n2), (n3), (nlog2n). Khi o tong thi gian thc hien la: ( max(n2, n3, nlog2n) ) = (n3) ng dung: Neu g(n) f(n) n n0 th ( f(n) + g(n) ) = ( f(n) ) V du: (n4 + n3) = (n4) 2.2.2.2 Quy tac nhan: Thi gian thc hien P1 long P2 la: T1(n)*T2(n) = ( f(n)*g(n) ) ng dung: ( c,f(n) ) = ( f(n) ) V du: ( 2*n2 ) = ( n2 ) 2.2.2.3 Phep toan tch cc: Phep toan tch cc la mot phep toan thuoc mot thuat toan ma thi gian thc hien no t hn thi gian thc hien cac phep toan khac. Va tat nhien phep toan tch cc khong phai la duy nhat.
C2-5

V du: Lap thuat toan tnh bieu thc ex vi x, n cho trc:

Nhan xet: Chng trnh co 3 phep toan: gan, cong, nhan va chia, trong o phep toan nhan va chia (P := P * x / j) la lau nhat, co o phc tap
n(n + 1) . 2

x x2 xn + ... + e = 1+ + 1! 2! n!
x

Nhan xet: Trong cac phep gan, tong, nhan va chia, phep nhan va chia (P:=P*x/j) la tch cc va co o phc tap la (n). 2.3 o th: - Mot o th G = (V, E) bao gom: + Mot tap hu han V cac nut (nh) + Mot tap hu han E cac cap nh (canh) Neu (vi, vj) la mot cap nh thuoc E th khi o ta noi co mot cung noi vi vi vj. Neu cung (vi, vj) khac cung (vj, vi) th ta noi co mot o th co hng va (vi, vj) c goi la cung nh hng t vi en vj. Neu th t cac nut tren khong c coi trong th ta co mot o th khong nh hng.
1 3 1 4 5 Khong nh hng 2

4 nh hng

- Cay la mot trng hp ac biet cua o th: co duy nhat mot nh ma khong co cung nao hng en (goi la goc cua cay) va moi nh khac cua cay ch co mot cung hng en.

C2-6

- Neu (vi, vj) la mot cung thuoc tap E(G) th vi va vj c goi la lan can cua nhau. - Mot ng i t nh vp en nh vq trong o th G la mot day cac nh: vp, vi1, vi2, , vin, vq ma (vp, vi1), (vi1, vi2), , (vin, vq) la cac cung thuoc E(G). So lng cac cung tren ng i o goi la o dai cua ng i. - Mot ng i n la ng i ma moi nh tren o, tr nh au va nh cuoi, eu khac nhau. - Mot chu trnh la mot ng i n ma nh au va nh cuoi trung nhau. - Trong mot o th G, hai nh vi va vj c goi la lien thong neu co ng i t vi en vj th ong thi cung co ng i t vj en vi (oi vi o th khong nh hng). - Mot o th G c goi la lien thong neu oi vi moi cap iem phan biet vi,vjV(G) eu co mot ng i t vi en vj.
1

o th khong nh hng lien thong


3

o th khong nh hng khong lien thong


2 4 3 5

o th nh hng lien thong

C2-7

o th nh hng khong lien thong


3

- Tren o th chung ta gan mot gia tr khong am cho cac cung, goi o th nay co trong so.
5 1 3 3 14 7 4 2 9

2.4 Mot so phng phap tm kiem heuristic: 2.4.1 Mo ta bai toan: ) i ti ch t mot iem ban au: - Bai toan me cung:

- Bai toan taci:

2 1 7 8 6 START

3 4 5

1 8 7

3 4

6 GOAL

) Cc tieu hoa gia thanh: Ngi a th can xac nh hanh trnh i ngan nhat sao cho
moi thanh pho i en ung mot lan va quay ve thanh pho xuat phat.
C2-8

) Tro chi: Tic-tac-toe (c caro).


2.4.2 Bieu dien bai toan:
Gia thuyet Ket luan

S0 S1 S2 Sn START Trang thai bat au GOAL Trang thai ket thuc

Hau het cac bai toan eu co the phat bieu di dang sau: t mot trang thai xuat phat hay tm ng dan en mot trang thai ket thuc mong muon. Viec tm ng i nay la mot nghe thuat e giai quyet van e, bao gom cac bc sau: - Chon c khong gian tm kiem thch hp. - Tien hanh tm kiem co he thong va co hieu qua trong khong gian tm kiem. - S dung triet e cac nguon tri thc co lien quan trong qua trnh tm kiem tng ng vi mien ai lng cu the. Khong gian tm kiem cua mot van e giai tren may tnh thng c bieu dien bi mot o th hoac mot dang ac biet cua o th (cay). Sau khi bai toan c bieu dien di dang o th (hoac cay) th: - Moi nh la mot giai oan cua qua trnh giai (hay la trang thai). - Moi cung la mot tac ong bien oi qua trnh t giai oan nay sang giai oan khac. Nh vay viec giai quyet rot cuc lai la tm ng i t trang thai ban au en trang thai mong muon c bieu dien qua 2 nh nao o cua mot o th (hoac cay tm kiem). V du:
2 1 7 8 6 START 3 4 5 1 8 7 6 GOAL 2 3 4 5

C2-9

2 1 7 8 2 1 7 6 8 3 4 5 1 7 2 8 6 1 1 2 8 7 7 1 7 2 8 6 3 4 5 6 8 6 2

3 4 5 3 3 4 5 2 1 7 3 8 6 4 3 4 5 8 1 8 7 6 GOAL 2 3 4 5 2 1 7 3 8 6 5 4 4 5

2.4.3 Cac thu tuc tm kiem:


A E K O Q S 1 1 1 1 1 1 T U V 1 1

100 B F 1

17 1 10 G 1 L

1 C H 20 1 M 12

D 1 J N P R 1 1 1 I

Trang thai ch

- Tm kiem rong: ng i c tm theo moi hng co the moi bc.


C2-10

V du: A B C D E F G H I J K L M N O P Q R S T U V
- Tm kiem sau: ng i sau mai theo mot hng en khi nao khong tiep tuc i c na th chuyen sang hng khac. V du: AEKOQSTUV BF CGLHM DIJNPR - Tm kiem sau dan: Ket hp cua tm kiem rong va tm kiem sau tren c s cho biet mc sau n roi tm kiem rong ng mi mc sau o. V du: Mc sau n = 2: (A,E), (B,F), (C,G), (C,H), (D,I), (D,J) Mc sau n = 3: : (A,E,K), (B,F), (C,G,L), (C,H,M), (D,I), (D,J,N) - Tm kiem cc tieu hoa gia thanh: Moi cung cua mot cay hay o th c gan mot gia thanh va hng tm kiem c xac nh bi viec cc tieu hoa gia thanh ng i (xem v du giai thuat AT). - Tm kiem vi tri thc bo sung: Hng tm kiem c xac nh bi tri thc bo sung sau moi bc i (xem v du giai thuat AKT).

2.4.4 Cac thuat toan tm kiem: 2.4.4.1 Thuat giai AT (Algorthm for Tree): - Moi nh n tng ng vi mot so g(n): gia thanh cua ng i t nh ban au en nh n. - nh: + nh ong (Closed) : la nhng nh a c xem xet. +nh m (Open) : la nhng nh gia thiet se c xem xet bc sau. + nh an (Hiden) : la nhng nh ma tai o ham g(n) cha c xac nh.
Bc 1: + Moi nh n, moi gia tr g(n) eu la an. + M nh au tien va goi o la nh S. at g(S) = 0. Bc 2 : Chon nh m vi gia thanh g tng ng la nho nhat va goi o la nh N.
C2-11

+ Neu N la muc tieu: ng i t nh ban au en N la ng i ngan nhat va bang g(N). Dng (Success). + Neu khong ton tai mot nh m nao na: cay bieu dien van e khong co ng i ti muc tieu. Dng (Fail). + Neu ton tai nhieu hn 1 nh N (ngha la co 2 nh N tr len) ma co cung gia thanh g(N) nho nhat. Kiem tra xem trong so o co nh nao la ch hay khong. Neu co: ng i t nh ban au en nh N la ngan nhat va bang g(N), dng (Success). Neu khong co: Chon ngau nhien mot trong cac nh o va goi la nh N.
Bc 3: ong nh N va m cac nh sau N (la nhng nh co cung hng t N ti). Tai moi nh S sau N tnh : g(S) = g(N) + cost(SN) Bc 4: Quay lai bc 2.

V du: (1) Moi nh n, g(n) cha biet. M S, at g(S) = 0. (2) ong S; m A, B, C g(A) = g(S) + gt(SA) = 0 + 100 = 100 g(B) = 0 + 17 = 17 g(C) = g(D) = 0 + 1 = 1 (min) Chon ngau nhien gia C, D: chon C (3) ong C, m G, H: g(A) = 100 g(B) = 17 g(D) = 1 (min) g(G) = 11 g(H) = 21 (4) ong D, m I, J: g(A) = 100 g(B) = 17 g(I) = 12 g(J) = 2 (min) g(G) = 11 g(H) = 21 (5) ong J, m N:
C2-12

g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(N) = 3 (min) (6) ong N, m P: g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(P) = 4 (min) (7) ong P, m R: g(A) = 100 g(B) = 17 g(I) = 12 g(G) = 11 g(H) = 21 g(R) = 5 (min)
1 1 1 1 1 D J N P R R la ch. Vay ng i la: S Nhan xet: Thuat toan nay ch s dung 3 thong tin: nh, cung va gia thanh cua cung.

2.4.4.2 Thuat giai AKT Tm kiem vi tri thc bo sung (Algorthm for Knowled geable Tree Search): Thuat giai AT la thuat giai tm kiem ng i tot nhat oi vi cay ch co cac thong tin ve nh, cung va gia tr cua cung. Trong nhieu trng hp viec tm kiem ng i se c nh hng ro them neu s dung cac tri thc thu c da tren cac hieu biet ve tnh huong van e moi bc. Cho en cuoi cac nam 1960, cac thu tuc tien kiem ch da tren ba cach tiep can: - Khong tnh en cac tri thc bo sung ngoai thong tin ve nh, cung, gia thanh. - S dung tri thc bo sung e tm cach giai rieng biet cho van e bo qua viec xay dng bieu dien van e. - Xay dng bieu dien van e di dang cay co tnh en tri thc bo sung trong cau truc cay hoac trong gia thanh cac cung.

C2-13

Gan ay a xuat hien cach tiep can xay dng cac thuat giai van nang tm kiem ng i vi tri thc bo sung. Tri thc bo sung moi nh c tng ng vi mot gia tr h(n). Chang han o la c lng gia thanh ng i t n en muc tieu. v du cua giai thuat AT, bc au tien : g(c) = g(d) = 1 T A chon tuy y mot trong hai nh c va d e xet tiep. Nhng thay v chon tuy y chung ta co the at cau hoi nh nao trong cac nh c va d gan muc tieu hn, chung ta c lng c: h(c) = 11 h(d) = 4 th viec chon nh ke tiep se la d ch khong phai c. Do vay tri thc bo sung se da tren c s cc tieu hoa gia thanh f moi bc : f(n) = g(n) + h(n) Trong o f(n): c lng gia thanh ng i t nh au en muc tieu qua nh n. Thuat giai gom cac bc sau: Bc 1: - Moi nh, cung nh cac ham g, h, f cha biet. - M nh au tien S, gan g(S) = 0 - S dung tri thc bo sung e c tnh ham h(S) - Tnh f(S) = g(S) + h(S)
Bc 2: Chon nh m co f la nho nhat va goi la nh N - Neu N la ch: ng i t nh ban au en nh N la ngan nhat va va bang g(N). Dng (Success). - Neu khong ton tai nh m nao: cay bieu dien van e khong ton tai ng i ti muc tieu. Dng (Fail). - Neu co 2 nh m tr len co cung gia tr f nho nhat: Chung ta phai kiem tra xem nhng nh o co nh nao la ch hay khong. + Neu co: ng i t nh ban au en nh N la ngan nhat va bang g(N). Dng (Success). + Neu khong co: chon ngau nhien mot trong cac nh o va goi nh o la N. Bc 3: - ong nh N, m moi nh sau N. Vi moi nh S sau N, tnh: g(S) = g(N) + cost(SN) - S dung tri thc bo sung e tnh h(S) va f(S): f(S) = g(S) + h(S)
C2-14

Bc 4: Quay lai bc 2.

V du: Bai toan Thap Ha Noi vi n = 2.

Cac trng hp cua bai toan la vi trang thai cot th ba:

S0

Sn

h(n) = 0

vi h(n) la so lan t nhat phai chuyen a e at c ch


g=0 h=2 f=2

g=1 h=2 f = 3 (min)

g=1 h=3 f=4

g=2 h=2 f=4

g=2 h=3 f=5

g=2 h=1 f = 3 (min)

g=3 h=2 f=5


C2-15

g=3 h=1 f=4

g=3 h=0 f = 3 (ch)

V du : Bai toan taci


2 1 7 S0
t

8 6

3 4 5

1 8 7

3 4

6 Sn

) Cach 1: H = (a i , b i ) vi (a i , b i ) =
i =1

0 neu a i = b i 1 neu a i b i

2 1 7

8 6

3 4 5

g=0 h = 4 (co 4 so sai v tr so vi Goal) f=4

2 1

8 6 7

3 4 5

g=1 h=5 f=6

2 1 7

3 4

g=1 h=3 f = 4 (min)

2 1 7

8 6 5

3 4

g=1 h=5 f=6

8 1

3 4 5

g=2 h=3 f=5

2 1 7 8 6

3 4 5

g=2 h=3 f = 5 (min)

2 1 7

8 4 6

g=2 h=4 f=6

2 1 7 8 6

3 4 5

g=3 h=2 f = 5 (min)

2 1 7

3 8 6 4 5

g=3 h=4 f=7

2 8

3 4 5

7
t

g=4 h=1 f = 5 (min)

1 8 7

3 4

g=5 h=0 f = 5 (ch)

) Cach 2:

H = (a i , b i ) vi (ai,bi) la so lan t nhat phai ay o ai = a theo chieu


i =1

doc hay ngang ve ung v tr bi = b.


C2-16

Gia s:
2 1 7 8 6 3 4 5 So V tr 1 1 2 1 3 0 4 0 5 0 6 1 7 0 8 2 Cong 5

) Cach 3: tnh H1 hoac H2 sau hai lan ay, tuy nhien neu ket qua xuat hien lan
so le th khong xac nh c. anh gia thuat giai: - Neu h(n) = h*(n): c lng trung vi gia tr that AKT la thu tuc hoan toan tuyet oi. - Neu h(n) = 0: AKT suy bien thanh AT - Neu h(n) h*(n) n: AKT am bao se tm c ng i ngan nhat vi gia thanh nho nhat va toi u theo ngha la s dung so nh ung t nhat so vi moi giai thuat cung lam viec vi tri thc nh vay. - Neu h(n) > h*(n) n hoac tai mot so nh: AKT khong am bao tm c ng i vi gia thanh nho nhat. 2.4.4.3 Thuat giai A* - tm kiem ng i tren o th tong quat: M rong thuat giai AKT thanh thuat giai A* nh sau:
Bc 1: M nh au tien: =E {Tnh huong trang thai ban au} S0 g(S0) = 0 {c lng h(S0) va gan cho f(S0)} f(S0) = h(S0) = {S0} {Gan S0 cho tap nh m} while {} do Bc 2: Chon mot S trong vi f(S) nho nhat: = - {S} C = C + {S} {ong nh S} Neu S la ch th dng. Ngc lai qua bc 3. Bc 3: Xay dng cac nh Si co the en t S nh cac hanh ong co the chon e thc hien. Bc 4: Tnh f(Si) ng vi moi i: f(Si) = g(Si) + h(Si).
C2-17

Bc 5: at vao trong nhng Si khong co trong lan trong C. oi vi cac Si a co trong hoac trong C th gan: f(Si) = min( fcu(Si), fmi(Si) ). If Si co trong C then C := C {Si} := + {Si} {M Si} End A*

Thuat giai nay c dien giai nh sau : Bc 1: - Moi nh, cung nh cac ham g, h, f cha biet. - M nh au tien S, gan g(S) = 0 - c lng ham h(S) - Gan f(S) = h(S) Bc 2: Chon nh m co f(S) la nho nhat va goi la nh N - Neu N la ch: ng i t nh ban au en nh N la ngan nhat va va bang g(N). Dng (Success). - Neu khong ton tai nh m nao: cay bieu dien van e khong ton tai ng i ti muc tieu. Dng (Fail). - Neu co 2 nh m tr len co cung gia tr f(S) nho nhat: ta phai kiem tra xem nhng nh o co nh nao la ch hay khong. + Neu co: ng i t nh ban au en nh N la ngan nhat va bang g(N). Dng (Success). + Neu khong co: chon ngau nhien mot trong cac nh o va goi nh o la N. Bc 3: - ong nh N, va oi vi moi nh S sau N, chung ta tnh: g(S) = g(N) + cost(NS) - Neu nh S a m va g(S) g(S) th bo qua S Ngc lai m S va at g(S) = g(S), tnh h(S) va f(S): f(S) = g(S) + h(S)
Bc 4: Quay lai bc 2.

Thc hanh: Ap dung bai toan thap Ha Noi va taci vao thuat toan nay.

Chung ta co the dung A* e tm ng i ngan nhat gia hai thanh pho da theo ban o giao thong vi tri thc bo sung h(n) la khoang cach ng chim bay t thanh
C2-18

pho n en thanh pho muc tieu (Do khoang cach ng chim bay bao gi cung nho hn khoang cach giao thong). Do o h(n) h*(n) n
A* vi tri thc bo sung h(n) nh tren se tm c ng i ngan nhat (hoac gia thanh nho nhat) vi mc o hieu qua cang cao neu h(n) cang gan h*(n)

Copenhagen
180

Vacsava

Hamburg Beclin
338 182 628 526 558 497

345 479

219

Amsterdam
164

Praha
174

464

394

Bruxen
225

Muynhem
311 582 317

185 Vien 155 280 384

Budapest
263 501

Paris
629

740

Bern 489
304 361 328

403

Triest
442 134

Bengrat

805

1104

Genoa

Roma
951

Neapol

Lisbon

339

Madrit

Ban o giao thong chau Au

Moi quan he gia AT, AKT, A*: f(S) = (1 - ) g(S) + h(S) vi 0 1 AT (dang cay) - Neu = 0 - Neu = 1 AKT (dang cay) A* - Neu =

C2-19

2.4.4.4 Thuat toan AK Kraskal:

Bc 1: Xuat phat t o th T rong co n nh. Bc 2: Sap xep cac canh cua o th G theo th t khong giam dan cua o dai. Bc 3: Bat au t canh au tien cua day nay, ta c them dan cac canh cua day canh va c sap xep vao T theo nguyen tac canh them vao khong c tao thanh chu trnh trong T. Bc 4: Lap lai bc 3 cho en khi nao so canh trong T bang (n-1) ta thu c cay nho nhat can tm.

V du: o th G:
9 (5) x1 8 (4)

x2

2 (1) 5 (2)

x3

(3) 7

Sap xep cac canh cua o th theo th t tang dan cua o dai: x2x3 x2x4 x3x4 x1x4 x1x2 2 5 7 8 9 Them cac canh vao T: canh T = 1 < n-1 = 3 + T: x2x3 + T: x2x3, x2x4 canh T = 2 < 3 + T: x2x3, x2x4, x3x4 canh T = 2 < 3 (khong them x3x4 c v tao thanh chu trnh)
C2-20

x4

+ T: x2x3, x2x4, x1x4 canh T = 3. Dng. Vay ng i la: x1x4x2x3 = 8 + 5 + 2 = 15


x2 2 (1) 5 (2) 8 (4) x4

x3

x1

2.4.4.5 Thuat toan to mau toi u tren o th: Gia thiet 4 mau: Chung ta noi 2 nc tren ban o ve tren mat cau hoac la mat phang la lang gieng cua nhau neu nh chung co chung ng bien gii (ch xet nhng nc co ng bien gii la mot ng cong khep kn). Yeu cau: to toan bo ban o ma ch s dung 4 mau sao cho khong co bat ky 2 nc lang gieng nao co cung chung mot mau. V du: To mau ban o chau Au, a ve dang o th nh sau: + nh: Thu o. + Cung: bien gii gia hai nc.
1 Lisbon 3 Brusels

Paris 1

Luxemburg 4 The Hague 4 Berne 3

4 Madrid

2 Rome 1 Viene

2 Berlin

C2-21

nhLisbon Madrid Paris Berne Rome Viene Berlin Luxemburg Brusen Hague L M P Be R V Ber Lx Bru H Bac 1 2 6 4 3 3 6 3 4 2
Thuat toan: Lap lai cac bc sau cho en khi nao to mau het cac nh Bc 1: Chon nh co bac ln nhat to mau i. Bc 2: Ha bac: - nh a to mau: bac = 0 - Nhng nh co lien he: bac := bac 1 Bc 3: anh dau cac nh lien he (bac va tr i 1) cam to mau i.

Mau to lan 7 (Cac nc co bac la 0 ma cha to mau) Mau to lan 6 Mau to lan 5 Mau to lan 4 Mau to lan 3 Mau to lan 2 Mau to lan 1 nh Bac Ha bac lan 1 Ha bac lan 2 Ha bac lan 3 Ha bac lan 4 Ha bac lan 5 Ha bac lan 6

2 3 1 1

1 3

3 3 3 2 22 2 2 2 2 2 2 1 1 1 1 1 1 1 L M P Be R V BerLx BruH 1 2 6* 4 3 3 6 3 4 2 1 1 0 3 2 3 5* 2 3 2 1 1 0 2 2* 2 0 1 2 1 1 1 0 1 0 1 0 1 2* 1 1* 1 0 1 0 1 0 0 0 0 0 0 0 1* 0 1 0 0 0 0 0 0 0 0 00 0 0 0 0

Ap dung: (1) Hay xay dng cac cot en sao cho viec lu thong khong b giao nhau (so mau en la bao nhieu).

C2-22

E B A

Quy c:

Xanh i

o i

- Lu y: tuyen EC la mot chieu. - Gi y: + Xac nh tai giao lo co bao nhieu tuyen ng: A: AB AC AD B: BA BC BD D: DA DB DC E: EA EB EC ED + Lay 13 tuyen ng lam nh o th. + Cung la nhng tuyen ng khong the cung i mot luc. (2) Phan cong, lch cong tac, lch thi au: - Co mot cuoc hoi thao khoa hoc vi 9 chu e khac nhau, moi chu e dien ra trong mot buoi. - Cac chu e sau khong c ong thi: AE, BC, CD, ED, ABD, AHI, BHI, DFI, DHI, FGH. - Xay dng lch sao cho so buoi dien ra la t nhat. Gi y: so mau = so buoi.

C2-23

2.5 M rong khai niem thuat toan: thuat giai heuristic 2.5.1 Khai quat: oi vi thuat toan, chung ta co ba tnh chat bat buoc: - Tnh xac nh (n nh). - Tnh dng (hu han). - Tnh ung (ket qua). Tuy nhien trong qua trnh nghien cu giai bai toan, cac nha toan hoc a nhan thay cac tnh huong nh sau: (1) Co cac bai toan cho en nay van cha tm ra c cach giai theo thuat toan va cung khong biet co ton tai thuat toan e giai bai toan nay hay khong? (2) Co cac bai toan a tm ra c thuat toan nhng khong the thc hien c hoac kho thc hien v thi gian giai theo thuat toan o qua dai hoac cac ieu kien at ra cho thuat toan la kho ap ng c. (3) Co cac bai toan c giai theo cac cach giai ma vi pham cac tnh chat cua thuan toan nhng li giai c thc tien chap nhan. T cac tnh huong (3) gi m cac oi mi cho khai niem thuat toan giai cac bai toan thuoc tnh huong (1) va (2). M rong tnh xac nh : Tnh xac nh cua thuat toan c hieu theo trc quan la tnh t nhien ti tng bc nho nhat (o la cac thao tac s cap) cua thuat toan c hieu n tr va ro rang du la ngi hay may ch can biet thc hien ung cac bc (cac thao tac s cap) theo ung trnh t quy nh se i ti ket qua mong muon. Tuy nhien co nhieu cach giai cac ba toan trong thc te khong can phai giai theo cach nay. Thay cho viec xac nh toan bo qua trnh giai ch can ch ra cach chuyen (khong bat buoc phai n tr va ro rang) t bc i en bc i+1 la c. M rong tnh ung: c hieu theo ngha ket qua nhan c sau khi thc hien thuat toan phai la ket qua ung. That ra yeu cau ve ket qua ung a vi pham t khi con ngi phai lien quan en so thc. Co the noi vi moi thuat toan tren may tnh co noi dung tnh toan vi so thc eu ch cho ket qua gan ung. Nhieu bai toan thc tien cung nh vay. Neu chap nhan ket qua khong bat buoc la ket qua ung ma ch gan ung th co the ton tai nhieu cach giai phc tap va hieu qua hn. Tuy nhien m rong ve tnh ung an cua thuat toan c khi nguon t cach giai quyet van e bai toan heuristic. o la cac cach giai n gian thng cho ket qua ung hay gan ung, cach giai nay khong phai luc nao cung dan en ket qua nhng do tnh n gian va kha nang thanh cong nhieu nen xet ve mat hieu qua van co vai tro quan trong. 2.5.2 nh ngha: Mot thuat giai Heuristic co hai ac tnh sau: - Thng tm c li giai tot, mac du khong phai la li giai tot nhat.
C2-24

- Thc tien de dang va nhanh chong so vi thuat giai toi u.

2.5.3 Cach tiep can chung cho viec thiet ke mot thuat giai Heuristic: Liet ke tat ca cac yeu cau cua mot thuat toan va chia chung thanh 2 lp: - Lp 1: nhng yeu cau de dang thoa man. - Lp 2: nhng yeu cau khong de dang thoa man. Hoac 2 lp khac nh sau: - Lp 1: nhng yeu cau can phai thoa man. - Lp 2: nhng yeu cau co the san long thoa hiep. 2.5.4 Mot so thuat giai Heuristic: 2.5.4.1 Thuat giai GTS (Greedy-Traveling Saleman): ) GTS1: Xay dng mot lch trnh du lch co chi ph Cost toi thieu cho bai toan trong trng hp phai qua n thanh pho vi ma tran chi ph C va bat au tai mot nh U nao o. Thuat giai: Bc 1: {Khi au} at Tour := {}; Cost := 0; V := U; {V la nh hien tai ang lam viec} Bc 2: {Tham tat ca cac thanh pho} For k := 1 To n Do qua bc 3; Bc 3: {Chon cung ke tiep} at (V, W) la cung co chi ph nho nhat tnh t V en cac nh W cha dung: Tour := Tour + {(V,W)}; Cost := Cost + Cost(V,W); Nhan W c s dung at V := W; {Gan e xet bc ke tiep} Bc 4: {Chuyen i hoan thanh} at Tour := Tour + {(V,U)}; Cost := Cost + Cost(V,U); Dng. V du:

C2-25

A 5 E 3 7 3 2 2 4 4 B 1

Ma tran chi ph:

U= A Tour = {} Cost = 0 V =A {Cac nh co the en t A} W {B, C, D, E} W=B {V qua B co gia thanh be nhat} Tour = {(A, B)} Cost = 1 V=B W {C, D, E} W=E Tour = {(A, B),(B, E)} Cost = 1 + 3 = 4 V =E W {C, D} W=C Tour = {(A, B), (B, E), (E, C)} Cost = 4 + 2 = 6 V=C W {D}
C2-26

1 2 7 5 1 4 4 3 C = 2 4 1 2 7 4 1 3 5 3 2 3

W=D Tour = {(A, B), (B, E), (E, C), (C, D)} Cost = 6 + 1 = 7 V =D Tour = {(A, B), (B, E), (E, C), (C, D), (D, A)} Cost = 7 + 7 = 14

Tour du lch A B E C D A vi gia thanh Cost = 14. Ket qua: Nhan xet: Tuy nhien ket qua nho nhat se la A B D C E A vi Cost=13. S d khong toi u do hau an: c hng nao co chi ph thap th i, bat chap ve sau.

) GTS2: Tao ra lch trnh t p thanh pho xuat phat rieng biet. Tm chu trnh cua ngi
ban hang qua n thanh pho (1<p<n) va p chu trnh c tao ra va ch chu trnh tot nhat trong p chu trnh c gi lai ma thoi (thuat giai nay oi hoi phai nhap n, p va C) Thuat giai: Bc 1: {Khi au} k := 0; {em so thanh pho i qua} Best := {}; {Ghi nh chu trnh tot nhat tm thay co chi ph la Cost} Cost := ;
Bc 2: {Bat au chu trnh mi} Chuyen qua bc 3 khi k<p, ngc lai dng. Bc 3: {Tao chu trnh mi} k := k + 1; Call (GTS1(Vk)) : Tra ve mot chu trnh T(k) ng vi chi ph C(k). Bc 4: {Cap nhat chu trnh tot nhat} Neu C(k)< Cost th Best := T(k); Cost := C(k);
Ap dung:

C2-27

25 40 31 27 5 17 30 25 C = 19 15 6 1 9 30 24 6 22 8 7 10

Vi p = 3

2.5.4.2 Bai toan phan cong cong viec: + Gia s co n may: P1, P2, , Pn co m cong viec: J1, J2, , Jm + Cac cong viec c tien hanh ong thi va oc lap. + Thi gian a cac cong viec len may la 0. + Mot cong viec a len mot may th phai lam xong cong viec o roi mi lam cong viec khac. + Moi cong viec co thi gian hoan thanh: T1, T2, , Tm Yeu cau: Bo tr cac cong viec Ji len cac may Pk sao cho thi gian hoan thanh tat ca cac cong viec la be nhat. Mo hnh 1: - Ch co 3 may P1, P2, P3. - Ch co 6 cong viec vi thi gian hoan thanh lan lt la: 2, 5, 8, 1, 5, 1. - Nguyen ly xep th t Heuristic: hay xep cac cong viec theo th t giam dan theo thi gian, tc:

T T2 J= 3 8 5
P1 P2 P3 t2 = 5 t5 = 5

T5 T1 T4 5 2
t1 = 2

t3 = 8

T6 1
t=8

t4 = 1 t6 = 1

Mo hnh 2: - Co 2 may: P1, P2. - Co 5 cong viec vi thi gian hoan thanh lan lt la: 3, 3, 2, 2, 2. Neu theo nguyen ly Heuristic cua mo hnh 1:
P1 P2 t1 = 3 t2 = 3 t3 = 2 t4 = 2 t5 = 2 t=7

Heuristic khong tot v co the chon phng an sau:


C2-28

P1 P2

t1 = 3 t3 = 2 t4 = 2

t2 = 3 t5 = 2 t=6

Ap dung: 3 may va 10 cong viec Cong viec Thi gian 1 2 2 3 3 8 4 9 5 5 6 7 7 1 8 4 9 6 10 10

2.5.4.3 Bai toan ong goi: - Co 3 loai hop co kch thc: 3 (100 hop), 4 (400 hop), 5 (500 hop) - Kch thc container: 8 Yeu cau: Xep cac hop vao container sao cho so lng container la t nhat. Th t: tuy y + Cach 1: Cach xep: tuy y Th t: sap theo th t giam dan cua kch thc + Cach 2: Th t: tuy y + Cach 3: Cach xep: u tien xep trung kht Th t: theo th t giam dan cua kch thc + Cach 4: Cach xep: u tien xep trung kht V du: Gia s co cac oi tng L = (7, 9, 7, 1, 6, 2, 4, 3) xep vao cac hop co kch thc 13.
7,1,2,3 3 hop + Xep theo cach 3: 9,4 7,6

+ Neu bt oi tng 1 roi xep lai (cung vi cach xep 3):


7,6 9,2 4 hop 7,4 3

2.5.4.4 Thuat giai Hill-Climbing: Trong tm kiem ng i tren o th chien lc th at ti ch bang viec la chon cac nut ma d oan trc la gan ti ch nhat goi la phng phap leo oi. Bc 1: n:=Startnode; Bc 2: Neu n la ch th dng (Success). Bc 3: Trien kha`i n, Tnh ham h( n i ) , vi ni la con cua n. Chon ni tng ng vi
^ ^

h( n i ) nho nhat va goi la nextn.


C2-29

^ ^ Bc 4: Neu h( n) < h( nextn ) th thoat (Fail). Bc 5: n:=nextn; Bc 6: Nhay sang bc 2.


V du:

h ( n ) =Toa o x cua ch Toa o x cua n+ Toa o y cua ch Toa o y cua n


n:=S

h (S) = 4 1 + 4 1 = 6

h( A) = 4 2 + 4 3 = 3 h( A ) < h(S)
NextS = A n:=A
^ ^

h( B) = 4 2 + 4 4 = 2 (min) h ( C) = 4 2 + 4 2 = 4 h ( B) < h( A)
NextA = B
^ ^

n:=B

h ( D) = 4 1 + 4 4 = 3
C2-30

h ( E) = 4 3 + 4 4 = 1 (min) h( E) < h( B)
NextB = E
^ ^

n:=E

h(G ) = 4 4 + 4 4 = 0 (min) h( H ) = 4 3 + 4 3 = 2 h (G ) < h ( E )


NextE = G (ch- Dng)
^ ^

2.5.4.5 Thu tuc Min-Max: Ap dung trong cac tro chi oi khang 2 pha. e c lng nc i tot da tren ham c lng, chung ta dung thu tuc Min-Max nh sau: Gia s mot trong hai ngi chi: - Goi mot ngi la Max: tm cach lam cc ai ham c lng qua viec xac nh gia tr ham c lng moi nc i co kha nang roi chon nc i tng ng vi gia tr ln nhat. - Nhng khi o oi thu cua Max la Min th lai tm cach lam cc tieu gia tr ham c lng nay. Nh vay moi mc cua cay bieu dien tro chi: - Neu 1 nh tng ng vi 1 nc i cua Max th gia tr cua nh nay se lay gia tr cc ai cua cac nh tiep sau o.
C2-31

- Neu 1 nh tng ng vi 1 nc i cua Min th gia tr cua nh nay se lay gia tr cc tieu cua cac nh tiep sau o.
V du: Tro chi Tic-Tac-Toe: Max = X (i trc) Min = O Nguyen tac: Neu co 3 con thang hang th thang. Ham c lng: f(x) = (So dong, so cot, so ng cheo con m oi vi Max)(So dong, so cot, so ng cheo con m oi vi Min)

C2-32

C2-33

V du: Bai toan 8 hau: + Cho 3 quan hau at trc vao ban c A0 {(1,4), (2,2), (3,8)} + Hay at tiep 5 quan hau khac sao cho cac con hau khong an nhau:
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 A B C

X X X

+ Gi y: Co the at tai dong 4 mot con hau mot trong ba v tr A,B,C: Neu chon A: se con 8 v tr co the at tiep quan hau Neu chon B: se con 9 v tr co the at tiep quan hau Neu chon C: se con 10 v tr co the at tiep quan hau + Ham anh gia: f1(0): so v tr co the at quan hau tiep tren khong gian con lai f1(B) = 9; f1(C) = 10 f1(A) = 8; Max f1(0) = C f2(0): so t nhat cac v tr co the at quan hau tiep tren mot hang f2(B) = 1; f2(C) = 2 f2(A) = 1; Max f2(0) = C Co the s dung cung luc ca 2 ham f1(0) va f2(0). Neu 2 ham nay tnh ra co v tr sai lech nhau, ta chon:
f +f Max 1 2 2

C2-34

V du: Bai toan ma i tuan + Cach 1: Viet chng trnh e ma i qua het 64 o trong ban c ma moi o ch qua mot lan. + Cach 2: Viet chng trnh e ma i qua het 64 o trong ban c ma moi o ch qua mot lan va bc cuoi cung phai quay ve ung v tr xuat phat. + Cach lam: giong bai 8 hau.
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

V du : Cho n ng thang trong mat phang: yi = aix + biy vi i = 1, n va mot iem M(x,y) trong mat phang. Hay tm 2 ng thang gan iem M nhat. + Phng phap vet can: Vi moi ng thang tnh c khoang cach t M en tng ng thang. Tm Min 2 lan. + Phng phap Heuristic: Dng mot ng thang song song vi truc o th, ng thang nay se cat n ng thang tai n iem. Tm c 2 iem gan M nhat. Tng t vi truc hoanh. V du: Cho N iem trong mat phang: Mi(x,y) vi i = 1, n . Hay xac nh 2 iem gan nhau nhat.

C2-35

You might also like