You are on page 1of 10

Tm hiuThut gii di truyn(GAs)

Trng H GTVT TP H Ch Minh Nhm lp:01 Nhm 14

GVHD: Nguyn Lng Anh Tun

Danh Sch Nhm: Sinh vin 1: Trn Xun Diu Sinh vin 2: Phm Anh Tun MSSV:0751120078 MSSV:0751120127

Sinh vin 3: Dng Hong Nguyn MSSV:0751120.....

1.L do chn ti : Trong ngnh khoa hc my tnh, tm kim li gii ti u cho cc bi ton l vn c cc nh khoa hc my tnh c bit rt quan tm. Mc ch chnh ca cc thut ton tm kim li gii l tm ra li gii ti u nht cho bi ton trong thi gian nh nht. Cc thut ton nh tm kim khng c thng tin / vt cn ( tm kim trn danh sch, trn cy hoc th ) s dng phng php n gin nht v trc quan nht hoc cc thut ton tm kim c thng tin s dng heurictics p dng cc tri thc v cu trc ca khng gian tm kim nhm gim thi gian cn thit cho vic tm kim c s dng nhiu nhng ch vi khng gian tm kim nh v khng hiu qu khi tm kim trong khng gian tm kim ln. Tuy nhin, trong thc tin c rt nhiu bi ton ti u vi khng gian tm kim rt ln cn phi gii quyt. V vy, vic i hi thut gii cht lng cao v s dng k thut tr tu nhn to c bit rt cn thit khi gii quyt cc bi ton c khng gian tm kim ln. Thut gii di truyn (genetic algorithm) l mt trong nhng k thut tm kim li gii ti u p ng c yu cu ca nhiu 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. Chnh v vy, thut gii di truyn tr thnh ti nghin cu th v v em n nhiu ng dng trong thc tin. Vi nhng l do trn, em chn ti: Thut gii di truyn. 2.ng lc nghin cu: Thut gii di truyn cung cp mt phng php hc c thc y bi s tng t vi s tin ha sinh hc. Thay v tm kim cc gi thuyt t tng qut n c th hoc t n gin n phc tp, GAs to ra cc gi thuyt k tip bng cch lp vic t bin v vic ti hp cc phn ca gi thuyt c bit hin ti l tt nht . mi bc, mt tp cc gi thuyt c gi l qun th hin ti c cp nht bng cch thay th vi phn nh qun th bi c th con ca cc gi thuyt tt nht thi im hin ti. S ph bin ca GAs c thc y bi cc yu t sau:

Nhm thc hin: 14

Trang 1

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

Tin ha l mt phng php mnh, thnh cng cho s thch nghi bn trong cc h thng sinh hc. GA c th tm kim trn cc khng gian gi thuyt c cc phn tng tc phc tp, nh hng ca mi phn ln ton th thch nghi gi thuyt kh c th m hnh. Thut gii GA c th c thc hin song song v c th tn dng thnh tu ca phn cng my tnh mnh. 3.Thut gii di truyn: a) Tng quan: -Thut gii di truyn (Genetic Algorithms- Vit tt l GAs), do John Holland (1975) v Goldberg (1989) xut v pht trin, l thut gii tm kim da trn c ch chn lc v di truyn t nhin. Thut gii ny s dng cc nguyn l di truyn v s thch nghi v s sng cc c th thch nghi nht trong t nhin. - Tp hp tt c cc li gii trong khng gian tm kim c gi l kiu hnh. Cc kiu hnh ny khi m ho gi l kiu gen. Ton t di truyn s c thc thi trn i tng ny. Mt nh x t kiu hnh sang kiu gen gi l qu trnh m ho. Mi c th trong kiu gen c nhiu nhim sc th. Trong mi nhim sc th c cha nhiu gen. Mi c trng di truyn c th c quy nh bi gi tr v v tr ca gen trong nhim sc th. thch nghi l thc o kh nng sng st v pht trin ca c th trong mi trng - Ton t xc nh c th trong th h hin ti c gi li trong th h k tip c gi l chn lc. Ton t kt hp ngu nhin hai c th c chn gi l lai ghp. Ton t thay i ngu nhin cu trc c th, tc lm thay i gi tr ca gen gi l t bin. b) Cc c trng c bn ca GA: - GAs lp lun mang tnh cht ngu nhin tm gii php ti u cho nhng vn phc tp, thay v xc nh nh ton hc gii tch. Tuy nhin y l hnh thc ngu nhin c hng dn bi tr s thch nghi. Chnh hm s thch nghi l gip GAs tm gii php ti u trong rt nhiu gii php c th. -GAs khng n chi tit vn , tri li ch ch n gii php cho vn , hay tm iu kin ti u cho vic iu hnh, v phn nhm nhng gii php c c. - GAs c s dng c bit cho nhng bi ton yu cu tm kim ti u ton cc vi khng gian tm kim ln v khng th kim sot nh kh nng duyt qua khng gian tm kim i din m khng thc s i qua tng im ca ton b khng gian c)Mt gii thut di truyn n gin bao gm cc bc sau: - Bc 1: Chn m hnh biu din vn thng qua cc dy k hiu (s, ch hoc hn hp) biu din cho mi gii php ca vn v s c th (s li gii chp nhn c) trong qun th biu din vn . - Bc 2: Tm hm s thch nghi) v tnh s thch nghi cho tng gii php.

Nhm thc hin: 14

Trang 2

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

- Bc 3: Da trn cc s thch nghi, thc hin vic sinh sn v tin ho (gm: lai ghp v t bin) cc gii php. - Bc 4: Tnh s thch nghi cho cc gii php mi sinh sn, loi b gii php km nht, ch gi li mt s nht nh cc gii php (c thch nghi cao). - Bc 5: Nu cha tm c gii php ti u hoc cha n thi hn (hay s th h) n nh th tr li bc 3 tm gii php mi. - Bc 6: Nu tm c gii php ti u hay ht thi hn n nh th dng v xut kt qu.

S TNG QUT CA THUT GII DI TRUYN Cu trc thut gii di truyn tng qut: Bt u t =0; Khi to P(t) Tnh thch nghi cho cc c th thuc P(t); Khi (iu kin dng cha tha) lp t = t + 1; Chn lc P(t) Lai P(t) t bin P(t) Ht lp Kt thc 4.Cc ton t di truyn: a.Ton t lai ghp : Ging nh trong sinh hc, vic lai ghp gia hai c th s cho ra c th con tha hng

Nhm thc hin: 14

Trang 3

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

mt phn t c th cha v mt phn t c th m. Tuy nhin khng phi l tha hng mt na t c th cha v mt na t c th m. Mi ton t lai ghp s c xc sut xy ra tng ng ca n. Cc nghin cu sinh hc ch ra rng trong t nhin xc sut ca vic lai ghp thng rt cao 99,97%. Tuy nhin thc t khi p dng vo cc bi ton trn my tnh xc sut ny khng cao n mc . Vic xc nh xc sut lai ghp hon ton ph thuc vo vn cn gii quyt. Code mu ca n c th c dng nh sau : int laighep(double pCross, c th cha, c th m, c th con 1, c th con 2) { // to ngu nhin t 0 --> 1 double n = makeRand(); // nu khng tho ngng th khng lai ghp if (n > p) return 0; // thc hin lai ghp ... return 1; b.Ton t t bin (Mutation): Mi c th khi c sinh ra u c kh nng t bin trn mt(hay nhiu) gen ca n. Kh nng t bin ca mi c th trong mt qun th c xc sut i km l pMutation. Trong t nhin xc sut t bin thng rt thp khong 0.03% nhng ng mt vai tr rt ln n s tin ho ca qun th. Trong GA cng vy, xc sut ca ton t t bin khng cao (nhng cng ln hn nhiu so vi 0.03%) nhng ng mt vai tr rt quan trng n s ti u ca c th. Thng thng, ton t t bin ng vai tr nh l ngi m ng. Ngha l khi cc ton t lai ghp c dng nhiu dn n s lp i lp li cc c th c thch nghi gn gn nhau, ton t t bin c nhim v ph v s cn bng , thc y qun th pht trin i ln (hoc i xung) nhng cc c th s phong ph, a dng hn. Code ca mt ton t t bin : int dotbien(double p, c th ) { // to ngu nhin t 0 --> 1 double n = makeRand(); // nu khng tho ngng th khng t bin if (n > p) return 0; // thc hin t bin int pos = rand() % length_of_individual; // t bin ti gen th pos ... return 1; } Chnh v nhng c im nh trn, vic chn cc ton t t bin cn phi cn thn. N c th gip cho qun th pht trin i ln nu ng mc, nhng cng c th lm cho cc c th b thay i lin tc nu qu cao, hay khng c tc dng nu qu thp

Nhm thc hin: 14

Trang 4

Tm hiuThut gii di truyn(GAs)


Cc chui ban u Lai ghp im n:
1110100100 0 0000101010 1 1111100000 0

GVHD: Nguyn Lng Anh Tun


Cc c th con
1110101010 1 0000100100 0 1100101100 0 0010100010 1 1000100010 0 0110101100 1 1110101100 0

Mt n lai ghp

Lai ghp im kp:


1110100100 0 0000101010 1 0011111000 0

Lai ghp ng nht:


1110100100 0 0000101010 1 0110010110 0

t bin im:

1110100100 0

Bng 4.1 Hnh nh cc ton t lai ghp v t bin c.Ton t chn lc (Selection): Mt ton t lai ghp (crossover) cn hai c th thc hin lai ghp. Vn l hai c th c chn nh th no ? Mc ch ca ton t chn lc s chn ra cc c th c lai ghp. Sau khi chn lc, vic chn cp lai ghp c th tin hnh ngu nhin hay tun t tng cp lin tip...(tu cc bn quyt nh). Theo nguyn l tin ho qun th, cc c th c thch nghi cao hn s cng c kh nng di truyn li cho cc th h sau. Nhiu php chn lc c ra theo nguyn l ny. y ti ch trnh by mt ton t chn lc tng i c dng ph bin l K-tournament. Code ca n c dng nh sau : void K_Select(int k, qun th, c th c chn) { // chn ngu nhin k c th t qun th. for (int i = 0 ; i < k ; i ++) { // chn ngu nhin c th th i K_individuals[i] = qun th[ rand() % length_of_qun_th] ; } // chn c th tt nht (theo hm thch nghi) trong tp k c th va chn ngu nhin trn. l c th c chn. } Tham s k ng vai tr xc nh s c th trong mt qun th con. C th tt nht trong qun th con s c chn cho vic di truyn cho th h sau. Thng thng k s c chn trong khong t 5 -> 8. + Mt s vn v chn tp ti sinh

Nhm thc hin: 14

Trang 5

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

Trong t nhin, mt c th d thch nghi vi mi trng cch no i na th n vn phi cht i. N ch c th di truyn li cho th h sau thng qua vic lai ghp, t bin (sinh sn). Trong my tnh, nu mun, chng ta c th cho c th sng bao lu cng c min sao n thch nghi vi mi trng. N ging nh vn nhn bn m cc bc "bc hc th gii" ang tranh ci. C th no tt, ta c th cho n sng n th h sau. l t tng chnh ca vic ti sinh. Gi s qun th ca bn th h th i (i >= 0) l Q(i). Qun th ca th h th i+1, Q(i+1), c th c nhng c th rt tt ca Q(i). Trong thc t, ngi ta thng chn mt t l nht nh no , thng thng < 5%, cc c th tt nht trong Q(i) c ti sinh Q(i+1). Mc ch ca n l mong mun qun th hi t ti u nhanh nht c th. Mt khuynh hng na trong vic chn tp ti sinh l lm phong ph qun th bng cch to ngu nhin mt s c th mi, thng thng chim < 30%. Cc c th mi ny khng c to ra bi cc c th t th h trc; m n c "ng Tri" to ra ngu nhin. Hai vn ny b sung cho nhau : mt bn mong mun cc c th tt nht ca th h trc vn c duy tr; mt bn mong mun qun th ngy cng a dng hn, gip cho kt qu t c cui cng s ti u hn. Nh vy, t l cc c th trong qun th th h th i+1 : Q(i+1) s c dng nh sau : - khong 5% c th t Q(i). - khong 30% c th mi c "ng tri" sinh ra. - khong 65% c th di truyn bi Q(i) (thng qua vic lai ghp, t bin). 5. Hm thch nghi : Mt cch trc quan, hm thch nghi ging nh l mt hm nh gi tt ca c th. N dng so snh gia hai c th c th no tt hn. Do vic chn hm thch nghi phi xt n vn ca bi ton v ng cnh ca bi ton a ra. Thng thng trong cc bi ton n gin hm thch nghi chnh l hm ti u m bi yu cu. Trong cc bi ton thc t th c vic chng minh chn cc hm thch nghi no l thch hp l cn thit. Bi v n nh hng trc tip n cc tham s v cch chn cc ton t di truyn v cc tham s ca n. T dn n vic hi t ca qun th sm hay chm hay l mi mi. -V hm thch nghi phi nhn gi tr khng m, do phi xy dng nh x hm mc tiu ang xt trong bi ton sang hm thch nghi thng qua mt hay nhiu ln nh x. Nu bi ton ti u l cc tiu mt hm mc tiu g(x) th vic chuyn hm g(x) ny sang hm thch nghi f(x) s dng trong GAs nh sau: f(x) = Cmax - g(x) khi g(x)< Cmax ; Ngc li f(x)=0 - Trong Cmax l tham s u vo . C th ly Cmax l gi tr g(x) ln nht trong qun th hin ti, hoc ln nht sau k vng lp. - Khi hm mc tiu gc tng hoc bi ton ang xt cc i ca hm u(x), hm thch nghi c th c chuyn sang nh sau: f(x) = Cmin + u(x) khi u(x) +Cmin >0 Ngc li f(x)=0 - Trong Cmin l tham s u vo, c th l tr tuyt i ca u b nht trong qun th hin ti, hoc trong k vng lp cui cng, hoc l mt hm ca bin qun th.

Nhm thc hin: 14

Trang 6

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

- Trong mt vi trng hp hm thch nghi c th l nghch o ca hm mc tiu hoc l sai s trung bnh bnh phng ca cc tp mu trong qun th. 6.iu kin dng ca gii thut: - kt thc vng lp GAs, thng c th ch nh trc s th h cn to ra sau kim tra li thch nghi nhng phn t tt nht bng cch so snh vi bi ton ban u.

V d 1: Ti u hm mt bin Xt bi ton ti u khng rng buc sau: Max F(x)=x*sin(10pi*x)+1.0 ; x thuc [-1;2] Bi ton c ngha l tm x trong on [-1;2] f c ga tr ln nht, ngha l tm x0 sao cho: F(x0)>=f(x) vi mi x thuc [-1;2] By gi ta dng thut gii di truyn gii bi ton ni trn, ngha l tm 1 im trong on [-1;2] sao cho ti f c gi tr ln nht Ta s ln lt bn v 5 thnh phn chnh ca thut gii di truyn gii bi ton ny. a.Biu din Ta s dng 1 vecto nh phn lm nhim sc th biu din cc gi tr thc ca bin x. Chiu di ca vecto ph thuc vo chnh xc cn c, trong v d ny, ta tnh chnh xc n 6 s l. Min gi tr ca x c th c chiu di 2-(-1)=3; vi yu cu v chnh xc 6 s l nh th phi chia on [-1;2] thnh t nht 3*10^6 hong c kch thc bng nhau. iu ny c ngha l cn c 22 bit cho vecto nh phn (nhim sc th): nh x bin chui nh phn ( ... ) thnh s thc x trong on [-1;2] c thc hin qua 2 bc sau: + i chui nh phn ( ... ) t c s 2 sang c s 10: (< ... >)= *2^0+....+ *2^21=x' + tm s thc x tng ng x=-1+x'*3/(2^22-1) vi -1 l cn di ca min gi tr v 3 l chiu di ca min V d, nhim sc th (1000101110110101000111) biu din s 0.637197 v X'=(1000101110110101000111)=2288967 V x=1.0+2288967*3/4194303=0.637197 ng nhin nhim sc th (000000000000000000000) v (1111111111111111111111) biu din cc cn ca cc min, -1 v 2 cho mi cn b.Khi ng to qun th: Tin trnh khi to rt n gin: Ta to 1 qun th cc nhim sc th trong mi nhim sc th l 1 vecto nh phn 22 bit, tt c 22 bit ca mi nhim sc th u c to ngu nhin. c.Hm lng gi: Hm lng gi eval ca cc vecto nh phn v chnh l hm f: Eval(v)=f(x) Trong , nhim sc th v biu din gi tr thc x nh ni trn, hm lng gi ng vai

Nhm thc hin: 14

Trang 7

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

tr mi trng, nh gi tng li gii theo thch nghi ca chng. V d, 3 nhim sc th: V1=(1000101110110101000111), V2=(0000001110000000010000), V3=(1110000000111111000101) Tng ng vi cc gi tr x1=0.637197, x2=-0.958973, v x3=1.627888. V c thch nghi tng ng: Eval(x1)=f(x1)=1.586345 Eval(x2)=f(x2)=0.078878 Eval(x3)=f(x3)=2.250650 R rng, nhim sc th v3 l tt nht trong 3 nhim sc th ny v hm lng gi n tr v gi tr cao nht d.Cc php ton di truyn: Trong giai on tin ho qun th, ta c th dng 2 php ton di truyn c in: t bin v lai Nh trnh by trn, t bin lm thay i 1 (s) gen (cc v tr trong 1 nhim sc th) vi xc xut bng tc t bin. Gi nh rng gen th 5 trong nhim sc th v3 c chn t bin. V t bin ny chnh l thay i gi tr gen ny: 0 thnh 1 v 1 thnh 0. Nh vy sau t bin v3 s l: V'3=(1110100000111111000101) nhim sc th ny biu din gi tr x'3=1.721638 v f(x'3)=0.082257. iu ny c ngha l t bin c th lm gim kh nhiu gi tr ca nhim sc th v3. By gi, nu gen th 10 c chn t bin nhim sc th v3 th v'"3=(1110000001111111000101) gi tr tng ng x"3=1.630818 v f(x"3)=2.343555, kh hn gi tr f(x3)=2.250650 ta s minh ho php lai trn cc nhim sc th v2 v v3. Gi nh im lai c chn (ngu nhin) v tr th 6: v2=(00000|01110000000010000) v3=(11100|00000111111000101) v'2=(00000|00000111111000101) v'3=(11100|01110000000010000) cc con ny c thch nghi: f(v'2)=f(-0.998113)=0.940965 f(v'3)=f(1.666028)=2.459245 ch rng con th 2 thch nghi hn c cha ln m n e.Cc tham s: i vi bi ton t bit ny, ta dng cc tham s sau y: kch thc qun th pop-size=50, xc xut lai Pc=0.25 ngha l c th v trong qun th c 25% c hi c chn thc hin php lai; cn xc xut t bin Pm=0.01 li l 1% 1 bit bt k ca 1 cc th bt k trong qun th b t bin. f.Cc kt qu th nghim: Bng di y trnh by 1 s kt qu hm mc tiu f 1 s th h. Ct bn tri cho bit th h c xem xt, v ct bn phi cho bit gi tr hm f. Nhim sc th tt nht sau 150 th h l Vmax=(111001101000100000101) tng ng vi gi tr xmax=1.850773 ng nh chng ta mong i, xmax=1.85+ e v f(xmax) ln hn 2.85 1 cht. Kt qu 150 th h

Nhm thc hin: 14

Trang 8

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

Th h th Hm lng gi 1 1.441942 6 2.250003 8 2.250283 9 2.250284 10 2.250363 12 2.329077 39 2.344251 40 2.345087 51 2.738930 V d 2: Bi ton ngi du 99 2.849246 lch 137 2.850217 145 2.850227 Bi ton: Mt ngi du lch mun i qua tc c cc thnh ph, mi thnh ph ch gh thm mt ln duy nht. Tm ng i ngn nht? Gi s tp cc thnh ph l {A,B,C,D,E}; * M t p dng gii thut di truyn gii quyt bi ton trn: //u tin chng ta xc nh cc thng s, thng tin, cng nh cu trc cn thit cho gii thut di truyn. - Dng cu trc mng 5 phn t lu tr mt c th (ng i) v d [BACDE] //v yu cu l tm ng i m. - Chn s lng c th l 5 // vy qun th gm c 5 c th. - Chn t l s dng ton t l 70% kt hp, 30% t bin. - Chn thch nghi chnh l di ng i. - V cho di truyn ti th h th 50. Phn m t hot ng GT di truyn: Bc 1: khi to ngu nhin qun th ban u. To ngu nhin 5 mng tng ng vi 5 c th ban u ca qun th. V d: [ABCDE] [AEBCD] [CBDAE] [EADCB] [BCDEA] Bc 2: tnh di ca mi ng i. V d: [ABCDE] = AB + BC + CD + DE + EA = .... Bc 3: gn thch nghi cho c th (tc ng i ). V d: [ABCDE]=15; [AEBCD]=14; [CBDAE]=16 ;[EADCB]=20; [BCDEA]=21 Bc 4 v 5: Gi chung l qu trnh tin ha // do 2 phn ny lin quan cht vi nhau nn mnh gp chung - gi li mt c th tt nht : [AEBCD]=14 -Repeat cho n khi s lng c th trong qun th mi tc 5 c th +)chn random mt s t 0.0 n 1.0 nu random < 0.3 th (dng t bin) chn 1 c th (dng gii thut chn cnh tranh) //m t chn ngu nhin mt s c th (t 1 - 5) vd: [CBDAE]=16 [EADCB]=20 [BCDEA]=21 so snh thch nghi v chn c th tt nht trong s

Nhm thc hin: 14

Trang 9

Tm hiuThut gii di truyn(GAs)

GVHD: Nguyn Lng Anh Tun

-> chn [CBDAE]16 so snh thch nghi vi c th tt nht ca th h trc nu tt hn th chn do y l i u nn chc chn tt hn-> chn [CBDAE]=16 nu khng tha th chn li t bin hon v c th chn: [CBDAE] -> [CBEAD] // hon v gia D v E lu vo qun th mi nu random > 0.3 th (dng ton t lai ghp) chn 2 c th trong qun th// php chn ging trn vd: c [BDCAE](mum) [EACDB](dad) dng ton t lai ghp khng trng gen // chn 2 v tr ngu nhin, vd c 1 v 2 v tr 1, 2 ca mum l BD lu vo baby1 c [BD ], ly tng phn t ca dad: nu c trong baby1 th k thm vo nu k c th k thm vo -> baby1 = [BDEAC] v tr 1, 2 ca dad l EA lu vo baby2 c [EA ], ly tng phn t ca mum: nu c trong baby2 th k thm vo nu k c th k thm vo -> baby2 = [EACBD] lu vo qun th mi //kt thc Repeat Gi s n y ta c mt qt l [AEBCD] [CADEB] [BECDA] [AEBCD] [CDEAB] thay vo qun c ri lp li bc 2 - 5 cho n th h th 50 ri chn c th tt nht lm li gii bi ton. //the end

Nhm thc hin: 14

Trang 10

You might also like