Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
0,95 MB
Nội dung
bộ giáo dục đào tạo trờng đại học bách khoa hà nội - luận văn thạc sĩ khoa học Thuậttoánbầykiếngiảitoán k-median ngành : Công nghệ thông tin m số:23.04.3898 TRầN TRUNG HIếU Ngời hớng dẫn khoa học: PGS TS Nguyễn Đức Nghĩa Hà Nội 2007 Li cm n Vi tt c lũng kớnh trng v bit n sõu sc, em xin gi li cm n chõn thnh ti thy giỏo PGS TS Nguyn c Ngha, ngi ó tn tỡnh dy d v hng dn em quỏ trỡnh hon thnh lun Em cng xin gi li cm n chõn thnh ti cỏc Thy Cụ Khoa Cụng ngh Thụng tin, Trng i hc Bỏch Khoa H ni, nhng ngi ó tn tỡnh ging dy, truyn cho chỳng em nhng kin thc cn bn sut quỏ trỡnh hc ti trng to c s hon thnh bi lun ny MC LC Trang CC THUT NG VIT TT LI NểI U _ Chng Tng quan v cỏc h thng tớnh toỏn phng sinh hc 1.1 Gii thiu 1.2 Di truyn v s tin hoỏ _ 1.3 Cỏc khụng gian tỡm kim, c t v cỏc hm phự hp 12 1.3.1 Khụng gian tỡm kim 12 1.3.2 Cỏc c t di truyn _ 12 1.3.3 Cỏc hm phự hp 13 1.4 Phõn loi cỏc thut toỏn phng sinh hc _ 13 1.4.1 Cỏc ng dng quy hoch 14 1.4.2 Cỏc ng dng thit k 16 1.4.3 Cỏc ng dng mụ phng v nhn dng _ 17 1.4.4 Cỏc ng dng iu khin 17 1.5 Nguyờn lý c bn ca cỏc thut toỏn phng sinh hc _ 19 Chng Thut toỏn phng by kin _ 21 2.1 Gii thiu 21 2.2 Mụ hỡnh mụ phng ca thut toỏn _ 23 2.3 Trỡnh by gii thut _ 25 2.3.1 Mt s nh ngha ban u _ 25 2.3.2 Trỡnh by thut toỏn 26 2.4 Mt s ng dng _ 29 2.4.1 Gii thut ACO cho bi toỏn TSP 29 2.4.2 Bi toỏn SMTWTP _ 31 2.4.3 Bi toỏn GAP _ 32 2.4.4 Bi toỏn SCP 34 2.4.5 Bi toỏn nh tuyn mng 35 2.5 ỏnh giỏ nh hng cỏc tham s 38 2.5.1 Xỏc nh cỏc vt mt mựi 38 2.5.2 Cõn nhc cỏc thm dũ v khai thỏc _ 39 2.5.3 ACO v tỡm kim cc b _ 40 2.5.4 Tm quan trng ca cỏc thụng tin tri thc _ 41 2.5.5 S lng cỏc kin _ 42 2.5.6 Danh sỏch cỏc ng c viờn _ 42 2.6 Kt lun 43 Chng Bi toỏn k-median 44 3.1 Phỏt biu bi toỏn 44 3.2 Cỏc ng dng thc t _ 46 3.3 Tng quan v cỏc phng phỏp gii _ 46 3.3.1 Thut toỏn vột cn 48 3.3.2 Thut toỏn Local Search _ 49 3.3.3 Thut toỏn Tabu Search _ 50 3.3.4 Thut toỏn GRASP _ 51 Chng Gii thut phng by kin gii bi toỏn k-median 53 4.1 Mt s nh ngha 53 4.2 Xõy dng cỏc tham s _ 54 4.3 Lu thut toỏn 55 4.3.1 Th tc InitData _ 55 4.3.2 Th tc AntSystemInitialize 56 4.3.3 Th tc SimulateAnts _ 57 4.3.4 Th tc UpdateTrails _ 57 4.3.5 Nguyờn tc chung ca thut toỏn 58 4.3.6 iu kin dng ca thut toỏn 59 4.4 ỏnh giỏ phc tớnh toỏn 59 Chng Kt qu thc nghim 61 5.1 Mụ t thc nghim _ 61 5.1.1 c im cỏc b d liu _ 61 5.1.2 Thit k chng trỡnh _ 62 5.2 Kt qu thc nghim 64 5.2.1 Xỏc nh cỏc tham s _ 64 5.2.2 Cỏc kt qu tớnh toỏn 68 5.3 ỏnh giỏ kt qu thc nghim 75 5.3.1 ỏnh giỏ v cht lng thut toỏn _ 75 5.3.2 ỏnh giỏ v thi gian thc hin _ 76 5.3.3 ỏnh giỏ v n nh 77 Kt lun v hng phỏt trin _ 78 Ti liu tham kho _ 79 Ph lc: Cu trỳc d liu v cỏc modul chng trỡnh 81 CC THUT NG VIT TT EC Evolutionary Computation Cỏc tớnh toỏn phng sinh hc EA Evolutionary Algorithm Cỏc thut toỏn phng sinh hc ACO Ant Colony Optimize Bi toỏn ti u phng by kin AS Ant System H thng phng by kin GA Genetic Algorithms Thut toỏn di truyn TSP Traveling Salesman Problem Bi toỏn ngi bỏn hng di ng QAP Quadratic Assignment Problem Bi toỏn phng trỡnh bc hai JSP Job-shop Scheduling Problem Bi toỏn lp lch bỏn hng GBAS Graph-Based Ant System H thng Ant da trờn th SMTWTP Single Machine Total Weighted Bi toỏn lp lch sn xut Tardiness Scheduling Problem trờn mt mỏy n GAP Generalized Assignment Problem Bi toỏn lp lch tng quỏt SCP Set Covering Problem Bi toỏn ph nh LI NểI U Cỏc h thng cụng ngh thụng tin ngy cng phỏt trin, li t duy, c ch tớnh toỏn, suy din ngy cng tin gn hn vi kiu t logic ca ngi Cựng vi nú, cỏc h thng tớnh toỏn mụ phng theo cỏc c ch hot ng sinh hc ca cỏc thc th cuc sng cng ngy cng c nghiờn cu sõu hn, chi tit hn Cỏc bi toỏn thc t cng c cỏc nh nghiờn cu nm bt v gii quyt d dng hn thụng qua cỏc mi liờn h tn ti v khụng ngng phỏt trin ca cỏc thc th sinh hc Cỏc h thng tớnh toỏn nh vy c nghiờn cu di tờn gi cỏc h thng tớnh toỏn phng sinh hc Mt cỏc h thng tớnh toỏn phng sinh hc ó dng rt tt li t ny vo cỏc bi toỏn ti u t hp, ú chớnh l mụ hỡnh gii thut phng by kin, mụ phng li di chuyn i sng thc t by n ca cỏc kin Cỏc phc v v nng lc phc v ca cỏc trm dch v i vi cỏc yờu cu ca khỏch hng ngy tr thnh mt mng ti khỏ núng Do phi tip nhn s lng ln cỏc yờu cu t cỏc khỏch hng v tip tc tng lờn m cỏc trm dch v nhiu quỏ ti nng lc phc v khụng ỏp ng c bit, mt s loi hỡnh dch v mang tớnh khn cp, cỏc yờu cu cn phc v vi thi gian nhanh nht, thỡ ci t cỏc trm dch v mt cỏch hp lý cho kh nng ỏp ng l tt nht cú th c li tr nờn ht sc quan trng Bi toỏn k-median, mt bi toỏn in hỡnh ỏp ng cỏc kiu mụ hỡnh trờn ó c trin khai vi nhiu nghiờn cu chuyờn sõu Vi mc tiờu i sõu nghiờn cu v h thng gii thut phng by kin, cng nh ng dng nú gii mt lp bi toỏn ti u t hp ú l bi toỏn kmedian, lun ny s c gng tỡm hiu mụ hỡnh c bn nht ca h thng gii thut phng by kin, bi toỏn k-median v ng dng gii thut phng by kin gii bi toỏn ny Lun gm chng: Chng Gii thiu tng quan v cỏc h thng phng sinh hc, cỏc phng phỏp tớnh toỏn phng sinh hc, cng nh nguyờn lý c bn ca mt h thng thut toỏn phng sinh hc Chng Gii thiu tng quan v thut toỏn phng by kin Chng Gii thiu tng quan v bi toỏn k-median cng nh mt s phng phỏp gii ó c ỏp dng i vi bi toỏn ny Chng Trỡnh by gii thut phng by kin gii bi toỏn kmedian Chng Trỡnh by mt s kt qu thc nghim ó t c, cựng mt s ỏnh giỏ v gii thut Thut toỏn phng by kin cng nh bi toỏn k-median thc t ó c nghiờn cu nhiu Tuy nhiờn vic ỏp dng thut toỏn phng by kin vo gii bi toỏn k-median cũn cha c nghiờn cu sõu sc Chớnh vỡ vy, quỏ trỡnh nghiờn cu, tỡm hiu, chc chn cỏc tụi cp cũn cú nhiu thiu sút, khim khuyt Do vy rt mong nhn c s úng gúp, ch dy ca cỏc thy cụ, cỏc bn hc cú quan tõm ti ny CHNG I TNG QUAN V CC H THNG TNH TON PHNG SINH HC 1.1 Gii thiu Cỏc k thut tớnh toỏn phng sinh hc (EC) [10] c nghiờn cu cho thy chỳng hon ton phự hp vi cỏc phng phỏp tớnh, gii cỏc bi toỏn t hp Nguyờn lý chung ca cỏc k thut ny u da trờn cỏc hin tng sinh hc t nhiờn Cỏc tớnh toỏn ny bao gm lp cỏc thut toỏn phng sinh hc (EA), ú cha cỏc gii thut tỡm kim da trờn cỏc tri thc kinh nghim Cỏc tri thc ny cú th c s dng tỡm kim cỏc li gii tt cho cỏc bi toỏn khú (ch khụng phi cỏc li gii ti u) Cỏc tớnh toỏn ú luụn tỡm cỏch suy din cỏc li gii tt hn t cỏc li gii trc ú v c bit phự hp vi cỏc dng bi toỏn khụng tn ti cỏc gii thut hiu qu (l gii thut cú thi gian tớnh toỏn a thc) Cỏc gii thut ny thng l n gin, mang tớnh tng quỏt v cú th c ng dng lp cỏc bi toỏn tỡm kim v ti u Tt nhiờn, cú mt s ỏnh giỏ ỳng v vic ti v lm th no cỏc thut toỏn cú th lm vic, cn cú cỏc hiu bit c bn v di truyn v s tin hoỏ 1.2 Di truyn v s tin hoỏ Trong sinh hc, s khỏc bit c to gia kiu gen v kiu hỡnh ca sinh vt Kiu gen l t hp cỏc gen mó húa sinh vt, c bit l cỏc phõn t DNA cú mi t bo ca c th sinh vt (cho dự ú l vi khun, nm, 10 thc vt hay ng vt) Cỏc phõn t DNA ny cú cha cỏc gen, ú l cỏc on nh ca phõn t DNA mó húa cho cỏc c im riờng ca sinh vt (cũn gi l tớnh trng), vớ d nh da hoc mu lụng, s lng chi, kớch thc s, Mt cỏch chớnh xỏc hn, cỏc gen (hoc cỏc on DNA) ny c dch mó thnh cỏc protein to nờn cỏc phn ca c th, v to nờn cỏc chc nng cn thit cho s tn ti (chuyn húa, ng c, bo v chng li bnh tt, ) S hỡnh thnh sinh vt cựng vi cỏc chc nng hoc hnh vi ca nú to nờn kin hỡnh, hay sinh vt thc th sng th gii thc Núi túm li, cú quỏ trỡnh chiu m thụng tin v gen (kiu gen) xỏc nh (cựng vi tỏc ng ca mụi trng) hỡnh dng v chc nng (kiu hỡnh) ca sinh vt Khi hai sinh vt cựng loi sng cựng v sinh con, cỏc thay i mc gen nh sau: li cỏc phõn t DNA ca c b ln m v kt hp vi nhau, v kiu gen ca nhn c mt phn gen t b, mt phn gen t m Núi cỏch khỏc, kiu gen ca tng cỏ th l t hp (mt cỏch ngu nhiờn) kiu gen ca b m, mi cỏ th cú t hp gen khỏc Quỏ trỡnh ny c gi l lai Hn na, quỏ trỡnh chộp thụng tin gen t b m cho ụi cú li chộp, ú c gi l t bin Hin tng ny him xy ra, nhng nú (cú th) to cỏc thay i mi gen Kt qu ca hin tng lai v t bin ny cỏc cỏ th (th h tip theo) s cú cỏc thay i so vi b m ca chỳng Mt s tớnh trng ca th h tip theo cú t b, v mt s t m Hn na, cỏc t bin ngu nhiờn ny cú th biu hin hon ton mt s tớnh trng nht nh Túm li, mi thay i u cú ngun gc, xut phỏt t mc kiu gen (qua lai v t bin) v biu hin mc kiu hỡnh Trong th gii sinh vt, khụng phi tt c cỏc cỏ th c sinh u tn ti v tip tc sinh sn Vớ nh qun th chut, a s chut cht 73 Di õy l th biu din s bin i gia s im median cn tỡm kim (k) v t l sai lch gia giỏ tr ti u v giỏ tr m thut toỏn Ant tỡm kim c % sai lch 120.00% 100.00% 80.00% B d liu s B d liu s 60.00% 40.00% 20.00% 0.00% k 10 11 12 13 Hỡnh 5.6 th mụ t bin thiờn % sai s theo k (i vi cỏc b d liu K1 v K2) % sai lch 140.00% 120.00% B d liu s 100.00% B d liu s 80.00% B d liu s B d liu s 60.00% 40.00% 20.00% 0.00% 10 11 12 13 k Hỡnh 5.7 th mụ t bin thiờn % sai s theo k (i vi cỏc b d liu K3 n K6) 74 T.gian 4000 3500 3000 2500 B d liu s 2000 B d liu s 1500 1000 500 k Hỡnh 5.8 th mụ t bin thiờn thi gian theo k (i vi cỏc b d liu K1 v K2) T.gian 2500 2000 B d liu s B d liu s 1500 B d liu s B d liu s 1000 500 k Hỡnh 5.9 th mụ t bin thiờn thi gian theo k (i vi cỏc b d liu K3 n K6) 75 5.3 ỏnh giỏ kt qu thc nghim T cỏc kt qu tớnh toỏn v so sỏnh trờn, cú th a mt s nhn xột nh sau: 5.3.1 ỏnh giỏ v cht lng thut toỏn Cỏc kt qu tớnh toỏn li gii ti u l cú th chp nhn c Vic kim chng c thc hin rừ nột nht i vi cỏc b d liu nh Khi khụng gian tỡm kim nh nh i vi cỏc b d liu ca Galvóo, vic tỡm kim giỏ tr tt nht c thc hin nhanh chúng, ng thi % sai s so vi giỏ tr ti u l khụng ỏng k (tham kho bng 5.6 v bng 5.7) Khi khụng gian tỡm kim tng lờn, chng hn i vi b d liu Koerkel cú s nỳt lờn n 1000 im, sai s gia giỏ tr tỡm c v giỏ tr ti u cng tng lờn ỏng k mi s median c tng lờn Tuy nhiờn trng hp ny, nu so sỏnh vi khụng gian tỡm kim thỡ sai s ny cú th chp nhn c Chng hn vi b d liu Koerkel th nht v th hai: - Khi s median l im, thỡ khụng gian tỡm kim l 499500 b d liu, ú thut toỏn Ant ch thc hin tỡm kim trờn khong 100 b d liu ó cú th cho kt qu tớnh toỏn vi sai s xp x 0.1% - Khi s median tng lờn n 25 im, thỡ khụng gian tỡm kim ó tng lờn n 4.76x1049 b d liu tc l ó rt ln, ú thut toỏn Ant ch mi thc hin tỡm kim trờn khong 100 b d liu (chỳ ý rng õy l mt s rt nh nu so vi khụng gian tỡm kim ca bi toỏn) ó cú th t c kt qu tớnh toỏn vi sai s xp x 7% 76 Kt qu nhn c i vi cỏc b d liu Koerkel th n th cng cho cỏc nhn xột tng t nh trờn T õy cú th kt lun v mt giỏ tr thu c sau tớnh toỏn bng thut toỏn Ant, kt qu t c l tng i hiu qu 5.3.2 ỏnh giỏ v thi gian thc hin: Theo nh kt qu thng kờ chy thut toỏn Ant i vi b d liu Koerkel th nht, trng hp s median l im, t c kt qu tớnh toỏn trờn cn thi gian khong phỳt, ú nu tng s median lờn 25 im thỡ cn khong gi, v nu tng s median lờn 333 im thỡ chy vũng lp (duyt qua b d liu trờn khụng gian tỡm kim khong 5.8x10274 b d liu) thỡ phi cn ti khong 100500 giõy 28 gi tc l hn ngy mi cho c kt qu tớnh toỏn vi sai lch so vi giỏ tr ti u khong 77% Qua nghiờn cu thut toỏn, cú th nhn thy thi gian tớnh toỏn lõu nht trung gii thut tớnh hm giỏ tr tt nht ca b d liu tỡm c (Hm Cost) õy cng chớnh l mt nhng khim khuyt m thut toỏn cha gii quyt trit c T õy cú th kt lun s median cng tng, tc tớnh toỏn li gii ti u ca thut toỏn cng chm Nh vy v mt thi gian tớnh toỏn ca gii thut cú th cha ỏp ng c yờu cu v tớnh thi gian thc Cht lng li gii tt nht nhn c ca thut toỏn t l thun vi thi gian thc hin trung bỡnh tỡm c li gii tt ú 77 5.3.3 ỏnh giỏ v n nh T cỏc biu so sỏnh hiu qu thut toỏn i vi cỏc b d liu Koerkel khỏc (tham kho biu 5.6 v 5.7), cú th nhn thy t l % sai lch ca thut toỏn l tng i ng u i vi cỏc b d liu khỏc nhng c thc hin trờn cựng iu kin nh (cựng s median, cựng khụng gian tỡm kim, cựng s vũng lp) So sỏnh cỏc thay i ca thi gian theo k cng cho kt lun tng t (tham kho biu 5.8 v 5.9) T õy cú th a nhn xột rng thut toỏn Ant hot ng tng i n nh v cho cỏc kt qu tng ng mt s iu kin khỏc iu ny l khỏ quan trng, nú lm cho thut toỏn cú kh nng c ng dng nhiu lnh vc hn, mang tớnh ph bin hn so vi mt s thut toỏn khỏc ch cú hiu qu mt s iu kin rng buc nht nh 78 KT LUN V HNG PHT TRIN ng dng gii thut phng by kin vo gii bi toỏn k-median, mt dng bi toỏn ti u t hp, l mt ti khỏ mi Tuy nhiờn vi n lc nghiờn cu, tỡm hiu, cng nh k tha cỏc nghiờn cu ca mt s mụ hỡnh phng by kin gii cỏc bi toỏn ti u khỏc nh bi toỏn TSP, mt s dng gii thut ó cú nh gii thut LocalSearch, tụi ó hon thnh bn lun ny nh mc tiờu ban u Cỏc kt qu t c nhỡn chung l kh quan, mang li mt hng nghiờn cu mi sõu hn v sau i vi ch ny Tt nhiờn kt qu t c mc dự chp nhn c nhng cũn nhiu khim khuyt cha khc phc c u tiờn, lun cha ỏnh giỏ c mc nh hng ca cỏc tham s by kin lờn thut toỏn Cỏc tham s , , cng nh s lng cỏc kin nờn chn cú th ti u hoỏ thi gian tỡm kim li gii ti u cũn l mt cõu hi b ng Tip n, thi gian hn ch, phn kt qu thc nghim vit thut toỏn cng cha gn, cha trỡnh by c mt gii thut tớnh toỏn chi phớ vi thi gian ti u, vy thi gian tớnh toỏn ca gii thut cng ch mc nghiờn cu Cỏc kt qu ỏnh giỏ so sỏnh vi mt s gii thut ó cú cng cũn nhin hn ch õy chớnh l mt s hng gi m cú th tip tc nghiờn cu, hon chnh hn lun ny 79 TI LIU THAM KHO J.Cheryan, R.Ravi Approximation algorithms for network problems, September 1998 Eva Gúmez Ballester, Luisa Mico, Jose Oncina - A Fast Approximated k-Median Algorithm Mauricio G.C.Resende, Renato F.Werneck - A Fast Swap-based Local Search Procedure for Location Problem Sudipto Guha - Approximation Algorithms for facility location problems, for the degree of doctor of philosophy, August 2000 Mauricio G.C.Resende, Renato F.Werneck - A grasp with path- relinking for the p-median problem Edson L.F.Senne, Luizi A.N.Lorena - Lagrangean/Surrogate heuristic for p-median problems K.Jain, M.Mahdian, A.Saberi - A new greedy for facility location problem, Proceedings of the 34th Annual ACM Symposium on the Theory of computing, p731-741, 2002 Dipl.-Wirtschaftsing.Thomas G.Stuttzle Local Search Algorithms for Combinatorial Problems Marco Dorigo, Luca Maria Gambardella Ant colonies for traveling saleman problem 10 Wim Hordijk - An Introduction to Evolutionary Computation, Karunya Institute of Technology and Sciences Deemed University 11 Patrice Cal Egari, Giovanni Coray, Alain Hertz, Daniel Kobler and Pierre Kuonen A taxonomy of Evolutionary Algorithms in Combinatorial Optimization 12 David Beasley Handbook of Evolutionary Computing, IOP Publishing Ltd and Oxford University Press, 1997 80 13 Marco Dorigo, Thomas Stutzle The Ant Colony Optimization Metaheuristic: Algorithms, Applications and Advances 14 Mauricio G.C Resende, Renato F.Werneck A GRASP with path- relinking for the p-median 15 Nguyn Xuõn Tựng - Gii thut kin v ỏp dng vic xỏc nh ma trn trng s ca mng Neuron 16 M Dorigo and G Di Caro - The Ant Colony Optimization meta- heuristic, McGraw Hill, London, UK, 1999 17 M Dorigo, G Di Caro, and L M Gambardella - Ant algorithms for discrete optimiization Artificial Life, 5(2):137 172, 1999 18 M Dorigo and L M Gambardella - Ant Colony System: A cooperative learning approach to the travelling salesman problem IEEE Transactions on Evolutionary Computation, 1997 19 W Gutjahr - ACO algorithms with guaranteedconvergence to the optimal solution Information Processing Letters, 82(3):145-153, 2002 20 W J.Gutjahr - A generalized convergence result fot the graph-based Ant System metaheuristic Technical Report 99-09, Department of Statistics and Decision Support Systems, University of Vienna, Austria, 1999 21 T Stỹtzle and M Dorigo - A Short convergence proof for a class of ant colony Optimization Algorithms IEEE Transactions on Evolutionary Computation, 2002 22 Marco Dorigo - The Ant System: Optimization by a colony of cooperating agents 23 OSMAN ALP and ERHAN ERKUT - An Efficient Genetic Algorithm for the p-Median Problem Kluwer Academic Publishers, 2003 24 http://www.business.ualberta.ca/eerkut/testproblems/ 81 Ph lc Cu trỳc d liu v cỏc module chng trỡnh Cỏc cu trỳc d liu chớnh c xõy dng bao gm: Lp CAnt mụ t cỏc d liu v mi kin v chu trỡnh di chuyn ca chỳng Type CAnt currentCity As Integer nextCity As Integer visitedCities() As Boolean path() As Integer pathIndex As Integer tourLength As Double End Type Trong ú: - currentCity lu v trớ hin ti ca kin - nextCity lu v trớ tip theo m kin s chuyn n - visitedCity() ỏnh du cỏc im m kin ó i qua - path() lu ng dn qua cỏc nh m kin ó i qua - pathIndex lu v trớ hin ti ng dn - tourLenght lu di hnh trỡnh m kin ó i qua Lp CSolution mụ t cỏc d liu v cỏc li gii kh thi Type CSolution Medians() As Integer Index As Double bestCost As Double bestIndex As Double 82 End Type Trong ú: - Medians() l cỏc median kh thi, mi median l mt b gm k_median im - Index lu s lng v ó duyt cho n thi im hin ti - bestCost lu giỏ tr chi phớ tt nht tớnh n thi im hin ti - bestIndex lu tr v trớ median t giỏ tr tt nht ú Cỏc module chng trỡnh ch yu bao gm: Th tc xỏc nh hm ỏnh giỏ xỏc sut Function AntProduct(from As Integer, t_o As Integer) As Double AntProduct = ((pow(pheromone(from, distance(from, t_o)), BETA))) t_o), End Function 'Th tc tớnh toỏn im tip theo m kin th ant s chuyn ti Function GetNextCity(ant As Integer) As Integer Dim denom As Double Dim p As Double Dim q As Double Dim Pos As Integer Dim stamp As Integer denom = from = Ants(ant).currentCity For t_o = To MAX_CITIES If (Ants(ant).visitedCities(t_o) = 0) Then denom = denom + AntProduct(from, t_o) End If Next stamp = For t_o = To MAX_CITIES ALPHA) * pow((1 / 83 If (Ants(ant).visitedCities(t_o) = 0) Then stamp = stamp + Next If stamp = Then GetNextCity = -1 Exit Function End If Do While (1) t_o = t_o + If (t_o > MAX_CITIES) Then t_o = If (Ants(ant).visitedCities(t_o) = 0) Then p = AntProduct(from, t_o) / denom If (Threshold < p) Then Exit Do End If Loop GetNextCity = t_o End Function 'Th tc tớnh toỏn im s thay th li gii kh thi Function ChangeWorstCity(ant As Integer, NewCity As Integer) As Integer Dim OldCity As Integer Dim best As Double Dim city As Integer Dim index As Integer Dim from As Integer Dim Temp As Double best = MAX_DOUBLE OldCity = -1 For from = To k_MEDIAN city = Ants(ant).Solution(from) Ants(ant).Solution(from) = NewCity Temp = Cost(ant) If best > Temp Then best = Temp OldCity = city index = from End If Ants(ant).Solution(from) = city Next Ants(ant).Solution(index) = NewCity ChangeWorstCity = OldCity End Function 84 'Th tc tớnh toỏn li gii to cho n kin Public Function InitializeSolution() As Integer Dim moving As Integer moving = For ant = To MAX_ANTS With Ants(ant) If pathIndex < MAX_CITIES) Then nextCity = GetNextCity(ant) If nextCity = -1 Then Exit Function visitedCities(.nextCity) = path(.pathIndex + 1) = nextCity If pathIndex < k_MEDIAN) Then Solution(.pathIndex + 1) = nextCity End If pathIndex = pathIndex + tourLength = tourLength + distance(.currentCity, nextCity) If (.pathIndex = MAX_CITIES) Then tourLength = tourLength + distance(.path(MAX_CITIES - 1),.path(0)) End If currentCity = nextCity moving = moving + End If End with Next InitializeSolution = moving End Function 'Th tc tớnh toỏn li gii tip theo cho n kin Public Function SimulateAnts() As Integer Dim moving As Integer Dim city As Integer moving = For ant = To MAX_ANTS With Ants(ant) If moving < MAX_CITIES Then nextCity = GetNextCity(ant) If nextCity = -1 Then moving = -1 Exit For End If city = ChangeWorstCity(ant, nextCity) If city = -1 Then moving = -1 85 Exit For End If visitedCities(.nextCity) = path(.pathIndex + 1) = nextCity pathIndex = pathIndex + tourLength = tourLength + distance(.currentCity, nextCity) currentCity = nextCity moving = moving + Else moving = -1 Exit For End If End with Next SimulateAnts = moving End Function 'Th tc cp nht vt ca n kin Public Sub UpdateTrails() Dim from, t_o, i, ant As Integer ' _pheromone Evaporation For from = To MAX_CITIES For t_o = To MAX_CITIES If (from t_o) Then pheromone(from, t_o) = pheromone(from, t_o) * (1 - RHO) If (pheromone(from, t_o) < 0) Then pheromone(from, t_o) = End If Next Next For ant = To MAX_ANTS For i = To MAX_CITIES If (i < MAX_CITIES - 1) Then from = Ants(ant).path(i) t_o = Ants(ant).path(i + 1) Else from = Ants(ant).path(i) t_o = Ants(ant).path(0) End If If (from >= 0) And (t_o >= 0) Then pheromone(from, t_o) = pheromone(from, t_o) + (QVAL Ants(ant).tourLength) pheromone(t_o, from) = pheromone(from, t_o) End If Next / 86 Next For from = To MAX_CITIES For t_o = To MAX_CITIES pheromone(from, t_o) = pheromone(from, t_o) * RHO Next Next End Sub 'Th tc tớnh toỏn chi phớ t c li gii ca kin th ant Public Function Cost(ant As Integer) As Double Dim disTemp As Double Dim Temp As Double Dim CalCost As Double CalCost = For from = To MAX_CITIES disTemp = MAX_DOUBLE For t_o = To k_MEDIAN With Ants(ant) If distance(from, Solution(t_o)) = Then disTemp = Exit For ElseIf disTemp > distance(from,.Solution(t_o)) Then ' disTemp = distance(from, Solution(t_o)) End If Next CalCost = CalCost + disTemp Next Cost = CalCost End Function 'Th tc chớnh ca thut toỏn Public Sub ACO_Algorithm() For i = To 10000 If SimulateAnts = -1 Then MsgBox "Finish search!" Exit Sub End If UpdateTrails For ant = To MAX_ANTS If bestPossible > Cost(ant) Then bestPossible = Cost(ant) bestAntPosition = ant End If Next 87 ShowResult DoEvents Next End Sub ... dụng toán • Chương Trình bày giải thuật bầy kiến giải toán kmedian • Chương Trình bày số k t thực nghiệm đạt được, số đánh giá giải thuật Thuật toán bầy kiến toán k- median thực tế nghiên cứu nhiều... để giải lớp toán tối ưu tổ hợp toán kmedian, luận văn cố gắng tìm hiểu mô hình hệ thống giải thuật bầy kiến, toán k- median ứng dụng giải thuật bầy kiến để giải toán Luận văn gồm chương: • Chương... End; / /K t thúc thủ tục 21 CHƯƠNG II THUẬT TOÁN PHỎNG BẦY KIẾN 2.1 Giới thiệu ACO - Thuật toán bầy kiến [16, 17, 18] mô hành vi bầy kiến tự nhiên nhằm tìm kiếm