30
TRƯỜNG ĐẠI HỌC BÁCH KHOA Bài tiểu luận MÔN TRÍ TUỆ NHÂN TẠO NÂNG CAO Học viên thực hiện: 1. Nguyễn Thị Hảo 2. Trần Thị Hải Yến Lớp : 2010B CNTT – HV

Thuat Giai Di Truyen Tri Tue Nhan Tao Nang Cao LSiFIyJh60 20130405103221 4

Embed Size (px)

DESCRIPTION

kugiuhlkjlkj

Citation preview

Trong k thut, khi gii quyt bt k nhim v no chng ta u mong mun c phng n tt nht theo mt hoc mt vi tiu ch no

MC LC

2CHNG 1: M U

4CHNG 2: THUT TON DI TRUYN

41. Gii thiu:

42. Ni dung:

42.1. C s l thuyt:

62.2. Cc bc quan trng trong vic p dng thut gii di truyn

62.3. Cc cng thc ca thut gii di truyn:

8CHNG 3: P DNG GII THUT DI TRUYN TRONG

8GII BI TON TI U

81. Bi ton

92. Cch biu din bin trong thut gii di truyn

113. Thut ton cc tiu ha hm F vi n bin

124. Hm mc tiu

125. Cc hm, th tc

196. Hm chnh

21CHNG 4: KT LUN

CHNG 1: M U

Ti u ha l mt ni dung quan trng ca Tin hc ng dng c lin quan n mi lnh vc ca t nhin v x hi.

Cho n nay, tuy c kh nhiu phng php gii quyt bi ton ti u hm s, nhng nhn chung cc phng php ch dng li nhng lp bi ton vi thng tin r rng hoc vi cc thng tin b tr khc. Do , vic tm mt phng php mi gii bi ton ti u l cn thit v c ngha thc t.

Thut gii di truyn (Genetic Algorithm = GA) l mt trong nhng k thut tm kim li gii ti u p ng c yu cu ca bi ton v ng dng.

Hin nay, thut ton di truyn cng vi logic m c ng dng rt rng ri trong cc lnh vc phc tp. Thut ton di truyn kt hp vi logic m chng t c hiu qu ca n trong cc vn kh c th gii quyt bng cc phng php thng thng hay cc phng php c in, nht l trong cc bi ton cn c s lng gi, nh gi s ti u ca kt qu thu c. Chnh v vy, thut gii di truyn tr thnh ti nghin cu th v v em n nhiu ng dng trong thc tin.

GA l phng thc gii quyt vn bt chc li hnh x ca con ngi sinh tn v pht trin. N gip tm ra gii php ti u hay tt nht trong iu kin thi gian v khng gian cho php. Khc vi chng trnh gii tch, GA xt n ton b cc gii php, bng cch xt trc nht mt s gii php, sau loi b nhng thnh phn khng thch hp v chn nhng thnh phn thch nghi hn to sinh v bin ha nhm mc ch to ra nhiu gii php mi c h s thch nghi ngy cng cao.

Ngy nay, GA c ng dng kh nhiu trong cc lnh vc nh khoa hc, kinh doanh v gii tr. u tin phi k n l cc bi ton ti u bao gm ti u s v ti u t hp s dng GA tm li gii nh l bi ton ngi du lch (Travelling Salesman Problems - TSP). ng dng k tip ca GA l thit k v iu kin robo.Vi nhng u im trn ca GA, nhm chng em chn Thut gii di truyn" lm ti nghin cu vi ng dng Gii bi ton ti u hm nhiu bin.Cc thnh vin trong nhm cng cng tc mt ni nn vic su tm ti liu, son tho v chng trnh demo c nhm cng thc hin.

Chng em xin chn thnh cm n TS. Nguyn Thanh Thy cng cc thy c trong vin gip chng em hon thnh hc phn Tr tu nhn to nng cao v bi tiu lun ny.CHNG 2: THUT TON DI TRUYN

1. Gii thiu:

Thut ton di truyn l thut ton ti u ngu nhin da trn c ch chn lc t nhin v tin ha di truyn. Nguyn l c bn ca thut ton di truyn c Holland gii thiu vo nm 1962. C s ton hc c pht trin t cui nhng nm 1960 v c gii thiu trong quyn sch u tin ca Holland, Adaptive in Natural and Artificial Systems. Thut ton di truyn c ng dng u tin trong hai lnh vc chnh: ti u ha v hc tp ca my. Trong lnh vc ti u ha thut ton di truyn c pht trin nhanh chng v ng dng trong nhiu lnh vc khc nhau nh ti u hm, x l nh, bi ton hnh trnh ngi bn hng, nhn dng h thng v iu khin. Thut ton di truyn cng nh cc thut ton tin ha ni chung, hnh thnh da trn quan nim cho rng, qu trnh tin ha t nhin l qu trnh hon ho nht, hp l nht v t n mang tnh ti u. Quan nim ny c th xem nh mt tin ng, khng chng minh c, nhng ph hp vi thc t khch quan. Qu trnh tin ha th hin tnh ti u ch, th h sau bao gi cng tt hn (pht trin hn, hon thin hn) th h trc bi tnh k tha v du tranh sinh tn.Thut gii di truyn l k thut gip gii quyt vn bt chc theo s tin ha ca con ngi hay ca sinh vt ni chung, trong iu kin quy nh sn ca mi trng. Phng tin thc hin cch gii quyt vn ny l chng trnh tin hc gm cc bc thi hnh, t vic chn gii php tiu biu cho vn , cho n vic chn cc hm s thch nghi hn. Nh vy, GA khng ch trng n gii php duy nht v chnh xc nh phng php c in, tri li GA xt n ton b cc gii php v chn ly gii php tng i tt nht nu khng ni l ti u. GA tuy da trn tnh ngu nhin nhng c hng dn bi hm s thch nghi, do khng c ngha l on m nh nhiu ngi hiu lm, tri li GA c mt nn tng ton hc vng chc.2. Ni dung:

2.1. C s l thuyt:

Thut ton di truyn gm c bn quy lut c bn l lai ghp, t bin, sinh sn v chn lc t nhin nh sau:a) Qu trnh lai ghp (php lai):Qu trnh ny din ra bng cch ghp mt hay nhiu on gen t hai nhim sc th cha-m hnh thnh nhim sc th mi mang c tnh ca c cha ln m. Php lai ny c th m t nh sau: Chn ngu nhin hai hay nhiu c th trong qun th. Gi s chui nhim sc th ca cha v m u c chiu di l m. Tm im lai bng cch to ngu nhin mt con s t 1 n m-1. Nh vy, im lai ny s chia hai chui nhim sc th cha-m thnh hai nhm nhim sc th con l m1 v m2. Hai chui nhim sc th con lc ny s l m11+m22 v m21+m12. a hai chui nhim sc th con vo qun th tip tc tham gia qu trnh tin ha.

b) Qu trnh t bin (php t bin):

Qu trnh tin ha c gi l qu trnh t bin khi mt hoc mt s tnh trng ca con khng c tha hng t hai chui nhim sc th cha-m. Php t bin xy ra vi xc sut thp hn rt nhiu ln so vi xc sut xy ra php lai. Php t bin c th m t nh sau: Chn ngu nhin mt s k t khong 1 k m Thay i gi tr ca gen th k a nhim sc th con vo qun th tham gia qu trnh tin ha tip theo.

c) Qu trnh sinh sn v chn lc (php ti sinh v php chn):

- Php ti sinh: L qu trnh cc c th c sao chp da trn thch nghi ca n. thch nghi l mt hm c gn cc gi tr thc cho cc c th trong qun th ca n. Php ti sinh c th m phng nh sau: Tnh thch nghi ca tng c th trong qun th, lp bng cng dn cc gi tr thch nghi (theo th t gn cho tng c th) ta c tng thch nghi. Gi s qun th c n c th. Gi thch nghi ca c th th i l Fi, tng dn th i l Ft. Tng thch nghi l Fm To s ngu nhin F c gi tr trong on t 0 n Fm Chn c th k u tin tha mn F Ft a vo qun th ca th h mi.

- Php chn: L qu trnh loi b cc c th xu v li nhng c th tt. Php chn c m t nh sau: Sp xp qun th theo th t thch nghi gim dn Loi b cc c th cui dy, ch li n c th tt nht.2.2. Cc bc quan trng trong vic p dng thut gii di truyn

gii quyt vn bng thut gii di truyn, chng ta cn thc hin 7 bc quan trng sau y:

- Bc 1: Chn m hnh cho gii php ca vn . Chn 1 s tng trng cho ton b cc gii php c th c cho vn .

- Bc 2: Ch nh cho mi gii php mt k hiu, k hiu c th l dy ca nhng s 1 v 0 thuc h nh phn hay dy s thp phn, dy ca ch hay hn hp ca s v ch. Trong giai on mi lm quen vi GA, ch nn dng h nh phn lm k hiu cho gii php.

- Bc 3: Tm hm s thch nghi cho vn v tnh h s thch nghi cho tng gii php.

- Bc 4: Da trn h s thch nghi ca cc gii php thc hin s to sinh (reproduction) v bin ha cc gii php. Cc phng thc bin ha gm: lai ghp (cross over), t bin (mutation).

- Bc 5: Tnh cc h s thch nghi cho cc gii php mi l loi b nhng gii php km nht ch cong gi li mt s nht nh cc gii php.

- Bc 6: Nu cha tm c gii php ti u hay tng i kh nht hay cha ht hn k n nh, tr li bc th 4 tm gii php mi.

- Bc 7: Tm c gii php ti u hoc nu thi gian cho php chm dt th bo co kt qu tnh c.2.3. Cc cng thc ca thut gii di truyn:

Tnh thch nghi eval(vi)ca mi nhim sc th vi(i =1..kch thc qun th):

Vi f(vi) l hm mc tiu.

Tm tng gi tr thch nghi qun th:

Tnh xc sut chn pi cho mi nhim sc th vi:

Tnh xc sut tch ly qi cho mi nhim sc th:

Tin trnh chn lc c thc hin bng cch quay bnh xe rulet kch thc qun th ln. Mi ln chn ra mt nhim sc th t qun th hin hnh vo qun th mi theo cch sau: Pht sinh mt s ngu nhin r trong khong [0, 1] Nu r < q1 th chn nhim sc th v1, ngc li chn nhim sc th vi (2 i kch thc qun th) sao cho qi-1 < r qi.

l cc bc quan trng trong vic p dng thut gii di truyn. Mt ng dng n gin v c ngha thc t m nhiu ngi quan tm l bi ton ti u hm s nhiu bin.CHNG 3: P DNG GII THUT DI TRUYN TRONG

GII BI TON TI U1. Bi tonTrong k thut, khi gii quyt bt k nhim v no chng ta u mong mun c phng n tt nht theo mt hoc mt vi tiu ch no . C th lit k rt nhiu nhng v d c th nh: tit kim thi gian nht, chi ph nh nht, nng sut ln nht, qung ng i ngn nht, thit k kt cu vi trng lng vt liu nh nht gii c nhng bi ton ny, ton hc cho ra i mt ngnh l Quy hoch ton hc hay ti u ha. Bi ton ti u ni chung c vit di dng ton hc nh sau:

Tm gi tr cc tiu (hoc cc i) hm:

(1)

Vi cc iu kin: gi(x) 0; i = 1,2,... , m

hi(x) = 0; i = 1,2,... , l

Bi ton t ra yu cu l tm tp hp cc bin xi, i = 1, ,n tho mn cc iu kin rng buc ng thi hm f(x) t gi tr cc tiu (hoc cc i). Thc ra tm cc tiu hoc cc i trong ton hc khng khc nhau nhiu (dng php bin i hm ngc).

Hm f(x) trong biu thc (1) c gi l hm mc tiu hoc tiu chun ti u, biu din mi quan h gia tiu chun cht lng ca qu trnh kho st v cc bin c lp x.

Cc hm s gi(x), hi(x) l cc iu kin rng buc ca bi ton ti u di dng ng thc v bt ng thc. Trong khng gian cc bin, cc hm s ny to ra min gii hn D cc kh nng cho php ca hm f(x).

Nu nh D ( Rn (vi R l s chiu ca hm mc tiu), c ngha l khng tn ti bt k mt iu kin gii hn no ta ni rng bi ton quy hoch phi tuyn khng c iu kin rng buc.

Thut gii di truyn cho bi ton ti u mt hm F c n bin, F(x1, x2, ..,xn). Bit rng mi bin xi c th ly cc gi tr t min Di = [ai; bi] l tp con ca tp cc s thc R v yu cu chnh xc l k ch s thp phn i vi cc gi tr bin.2. Cch biu din bin trong thut gii di truyna) Biu din cc bin nh cc vct nh phn

- M ha, nh x mt xu vi chiu di hu hn sang cc tham bin ca bi ton ti u.

- Tham bin x thuc [Umin; Umax] s c biu din bi chui nh phn c chiu di L. L bit m ha x ng vi gi tr trong min [0; 2L] nh x ln min [Umin; Umax]; t c th kim sot min gi tr ca cc bin v tnh chnh xc ca chng. T l co gin ca nh x g= (Umax Umin)/ (2L 1) (1)

Gi tr x tng ng vi chui nh phn String2, tnh theo cng thc:

X = Umin + decimal(String2)*g (2)

Trong , decimal(String2) biu din gi tr thp phn ca chui nh phn string2, g xc inh bi cng thc (1).

V d, biu din bin x1 bi chui nh phn 0001 th decimal(0001) = 1.b) Ton t chn c th

- Gi tr thch nghi f(i) c xc nh i vi mi qun th; gi tr ny cng ln th c th c coi l hp l.

- Cc bc thc hin:

+ Tnh tng gi tr thch nghi ca tt c cc thnh vin qun th v gi n l tng thch nghi.

+ Pht sinh mt s n l s ngu nhin trong khong t 0 n tng gi tr thch nghi.

+ Tr li thnh vin qun th u tin m thch nghi ca n cng vi thch nghi cc thnh vin qun th trc y ln hn hoc bng n.c) Ton t lai ghp

Tc ng ln cc c th cha m to ra con lai tt. Chng c p dng ln cp cha m c la chn vi xc xut lai ghp k hiu Pcross cho bit s lng Pcross * pop_size (kch thc ca qun th lai to) nhim sc th c dng cho hot ng lai ghp.

Vi mi nhim sc th trong qun th:

Pht sinh mt s ngu nhin r thuc [0;1].

r < pcross th chn nhim sc th lai ghp.

Sau , kt hp nhim sc th c chn mt cch ngu nhin: chn ngu nhin v tr lai ghp pos t min [1;L] (L l tng s bit trong nhim sc th).

(b1b2bposbpos+1bL)

(c1c2cposcpos+1cL)

Lai ghp c con chu:(b1b2bposcpos+1cL)

(c1c2cposbpos+1bL)

d) Ton t t bin

Nhm to ra nhng thng tin mi trong qun th lai to ti cc v tr bit no . S lng bit t bin l Pmu*L*pop_size. Mi bit c c hi t bin nh nhau v c thay i 0 thnh 1 v ngc li. Pmu l xc sut t bin.

Vi mi nhim sc th trong qun th v mi bit trong nhim sc th:

Pht sinh mt s ngu nhin r trong min [0;1].

Nu r < Pmu tin hnh t bin ti bit .

Cc thao tc x l trn c lp li cho n khi cc c th con chu ca chng tng trng ti kch c mong mun ca qun th.

e) Hm thch nghi

* nh x gi tr hm mc tiu sang gi tr thch nghi

Gi s cc tiu hm nh gi g(x), chuyn sang hm thch nghi f(x)

f(x)=

Vi Cmax l tham s u vo; c th l gi tr ln nht trong qun th hin ti hoc ln nht sau k vng lp.

* iu chnh thch nghi:

iu chnh tuyn tnh, gi s thch nghi gc l f, thch nghi bin i l f th f = a*f + b

V fmax = Cmult * favg; trong Cmult l s cc bn sao i vi 1 thnh vin tt nht; s lng qun th n nh th Cmult = 1.2 n 2 t ra kh hiu qu.

3. Thut ton cc tiu ha hm F vi n bin

Thut ton di truyn bao gm cc bc sau: - Bc 1: Khi to qun th cc nhim sc th.

- Bc 2: Xc nh gi tr thch nghi ca tng nhim sc th.

- Bc 3: Sao chp li cc nhim sc th da vo gi tr thch nghi ca chng v to ra nhng nhim sc th mi bng cc php ton di truyn.

- Bc 4: Loi b nhng thnh vin khng thch nghi trong qun th.

- Bc 5: Chn nhng nhim sc th mi vo qun th hnh thnh mt qun th mi.- Bc 6: Nu mc tiu tm kim t c th dng li, nu khng tr li bc 3.S thut ton:

4. Hm mc tiu

Tm gi tr nh nht ca f(x1,x2,x3, x4) = (x1-6)2 + (x2-4)2 + (x3 2)2 + x42. Vi cc bin x1, x2, x3, x4 thuc [-10; 10].float f(float *k)

{

float s;

s=(k[0]-6)*(k[0]-6)+(k[1]-4)*(k[1]-4)+ (k[2]-2)*(k[2]-2) + k[3]*k[3];

return s;

}

5. Cc hm, th tca) Khi to ngu nhin trong min [0;1]

float random01()

{

float s;

s=random(30000)/30000.0;

return s;

}b) Hm to gi tr ngu nhin 0 hoc 1 theo xc sut flip

Hm cho vo mt xc sut no c th l xc sut t bin Pmu, xc sut lai ghp Pcross hay xc sut khi to ban u.

int flip(float p)

{

if(random01()