You are on page 1of 19

Phng php gii quyt vn

Thut ton Heuristic


l mt s m rng khi nim thut ton. N th hin cch gii bi ton vi cc c tnh sau:
Thng tm c li gii tt (nhng khng chc l li gii tt nht) Gii bi ton theo thut gii Heuristic thng d dng v nhanh chng a ra kt qu hn so vi gii thut ti u, v vy chi ph thp hn.

Thut gii Heuristic thng th hin kh t nhin, gn gi vi cch suy ngh v hnh ng ca con ngi.

phng php xy dng mt thut ton Heuristic


Nguyn l vt cn thng minh: khi khng gian tm kim ln, ta tm cch gii hn li khng gian tm kim hoc thc hin mt kiu d tm c bit da vo c th ca bi ton nhanh chng tm ra mc tiu. Nguyn l tham lam (Greedy): Ly tiu chun ti u (trn phm vi ton cc) ca bi ton lm tiu chun chn la hnh ng cho phm vi cc b ca tng bc (hay tng giai on) trong qu trnh tm kim li gii. Nguyn l th t: Thc hin hnh ng da trn mt cu trc th t hp l ca khng gian kho st nhm nhanh chng t c mt li gii tt. Hm Heuristic: Trong vic xy dng cc thut gii Heuristic, ngi ta thng dng cc hm Heuristic. l cc hm nh gi th, gi tr ca hm ph thuc vo trng thi hin ti ca bi ton ti mi bc gii. Nh gi tr ny, ta c th chn c cch hnh ng tng i hp l trong tng bc ca thut gii.

V d
Hy tm mt hnh trnh cho mt ngi giao hng i qua n im khc nhau, mi im i qua mt ln v tr v im xut pht sao cho tng chiu di on ng cn i l ngn nht.

ng dng nguyn l Greedy


T im khi u, ta lit k tt c qung ng t im xut pht cho n n i l ri chn i theo con ng ngn nht. Khi i n mt i l, chn i n i l k tip cng theo nguyn tc trn. Ngha l lit k tt c con ng t i l ta ang ng n nhng i l cha i n. Chn con ng ngn nht. Lp li qu trnh ny cho n lc khng cn i l no i.

Minh ha nguyn l Greedy

V d v trng hp khng ti u ca phng php Greedy

ng dng ca nguyn l th t
Mt cng ty nhn c hp ng gia cng m chi tit my J1, J2, Jm. Cng ty c n my gia cng ln lt l P1, P2, Pn. Mi chi tit u c th c gia cng trn bt k my no. Mt khi gia cng mt chi tit trn mt my, cng vic s tip tc cho n lc hon thnh, khng th b ct ngang. gia cng mt vic J1 trn mt my bt k ta cn dng mt thi gian tng ng l t1. Nhim v ca cng ty l phi lm sao gia cng xong ton b n chi tit trong thi gian sm nht.

Minh ha mt li gii
xt bi ton trong trng hp c 3 my P1, P2, P3 v 6 cng vic vi thi gian l t1=2, t2=5, t3=8, t4=1, t5=5, t6=1. ta c mt phng n phn cng (L) nh hnh sau:

Thut ton Heuristic theo phng php th t


Sp xp cc cng vic theo th t gim dn v thi gian gia cng. Ln lt sp xp cc vic theo th t vo my cn d nhiu thi gian nht.

Minh ha v phng php th t


xt bi ton trong trng hp c 3 my P1, P2, P3 v 6 cng vic vi thi gian l t1=2, t2=5, t3=8, t4=1, t5=5, t6=1. ta c mt phng n phn cng (L) theo th t nh hnh sau:

Phng php tm kim khng cn thng tin m rng


Chin lc tm kim theo chiu sau Chin lc tm kim theo chiu rng

Tm kim theo chiu rng


void BFS(int v) { struct queue q; q.Front=NULL; insert_Queue(q,v); chuaxet[v]=0; while (q.Front!=NULL) { int p = Delete_queue(q); Process(p); for (int i=0; i<n; i++) if (chuaxet(i) && G(p,i)) { insert_Queue(q,i); chuaxet[i]=0;
} } }

Const Max=10 int chuaxet[Max]; int G[Max][Max];


Void DuyetDothiBFS() { for(v=0;v<n;v++) chuaxet[v]=1; for (int v=0; v<n; v++) if (chuaxet[v]) BFS(v); }

1. 2. 3. 4. 5. 6. 7.

8. 9. 10. 11. 12. 13. 14. 15.

void BFS(int v) { struct queue q; q.Front=NULL; insert_Queue(q,v); chuaxet[v]=0; while (q.Front!=NULL) { int p = Delete_queue(q); Process(p); for (int i=0; i<n; i++) if (chuaxet(i) && G(p,i)) { insert_Queue(q,i); chuaxet[i]=0; } } }

1. 2. 3. 4. 5. 6.

void DFS(int v) { process(v); chuaxet[v]=0; for (int i=0; i<n; i++) if (G(v,i)==1 && chuaxet[i]==1) DFS(i); }

Tm kim theo chiu su


Const Max=10 int chuaxet[Max]; int G[Max][Max]; 1. 2. 3. 4. 5.
6.

void DFS(int v) { process(v); chuaxet[v]=0; for (int i=0; i<n; i++) if (G(v,i)==1 && chuaxet[i]==1) DFS(i); }

1. 2. 3. 4. 5.

void DuyetDothiDFS() { for(v=0;v<n;v++) chuaxet[v]=1; for (int v=0; v<n; v++) if (chuaxet[v]) DFS(v) }

So snh DFS v BFS


Chiu su
Tnh hiu qu Hiu qu khi li gii nm s u trong cy tm kim v c mt phng n chn hng i chnh xc. Hiu qu ca chin lc ph thuc vo phng n chn hng i. Phng n cng km hiu qu th hiu qu ca chin lc cng gim. Thun li kh i mun tm ch mt li gii. Ch lu li cc trng thi cha xt n. Vt cn ton b Phng n chn hng i tuyt i chnh xc. Li g ii c xc nh mt cch trc t ip.

Chiu rng
Hiu qu khi li gii nm gn gc ca cy tm kim. Hiu qu ca chin lc ph thuc vo su ca li gii. Li gii cng xa gc th hiu qu ca chin lc cng gim. Thun li khi mun t m nhiu li gii. Phi lu ton b cc trng thi. Vt cn ton b. Vt cn ton b.

Lng b nh s dng lu tr cc trng thi Trng hp xu nht Trng hp tt nht

Tm kim theo chiu su gii hn


Const Max=10 int chuaxet[Max]; int G[Max][Max]; 1. 2. 3. 4. 5. 6. void DLimitedS(int v, int k) { process(v); chuaxet[v]=0; for (int i=0; i<n; i++) if (G(v,i)==1 && chuaxet[v]==1&& k<=gioihan) DFS(i, k+1); }

Tm kim lp su du
Const Max=10 int chuaxet[Max]; int G[Max][Max];
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. void IterativeDS(int v, k) { struct queue q; q.Front=NULL; insert_Queue(q,v); chuaxet[v]=0; while (q.Front!=NULL) { int p = Delete_queue(q); for (int i=0; i<n; i++) if (chuaxet(i) && G[p,i]) { insert_Queue(q,i); chuaxet[i]=0; } DLimitedS(p,K+1); } }

So snh cc chin lc tm kim

Tm kim chiu su v tm kim chiu rng u l cc phng php tm kim c h thng v chc chn tm ra li gii. Tuy nhin, do bn cht l vt cn nn khng kh thi vi nhng bi ton c khng gian. Hai chin lc ny u c tnh cht "m qung" v chng khng ch n nhng thng tin (tri thc) trng thi hin thi v thng tin v ch cn t ti cng mi quan h gia chng.

You might also like