Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
0,92 MB
Nội dung
Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY SONG SONG HÓA THUẬT GIẢI ACO GIẢI BÀI TOÁN TSP GVHD: PGS. TS. NGUYỄN PHI KHỨ HVTH: NGUYỄN MINH PHÁT MSHV: CH1301047 TP. HỒ CHÍ MINH Tháng 6/2014 TỔNG QUAN Mục đích của bài toán tối ưu tổ hợp là tìm lời giải tốt nhất trong các lời giải có thể và không gian tìm kiếm lời giải của bài toán là rời rạc .Nhiều bài toán tối ưu tổ hợp có độ phức tạp tính toán cao và được phân lọai thuộc lớp NP khó .Việc tìm ra lời giải tối ưu cho các bài toán này cho các hệ thống song song lớn nhất cũng không thể hoàn thành được trong giới hạn thời gian cho phép vì vậy các kỹ thuật heuristic cho việc giải các bài toán tổ hợp theo hướng xấp xỉ đã được phát triển để tìm ra các lời giải gần tối ưu (hay xấp xỉ )trong giới hạn thời gian cho phép. Bài toán người du lịch (TSP) là một bài toán cổ điển thuộc lớp NP được nghiên cứu sâu trong lĩnh vực tối ưu tổ hợp. Metaheuristic là một cách gọi chung cho các giải thuật heuristic trong việc giải quyết các bài toán tổ hợp khó. Metaheuristic bao gồm những chiến lược khác nhau trong việc khám phá không gian tìm kiếm bằng cách sử dụng những phương thức khác nhau và phải đạt được sự cân bằng giữa tính đa dạng và chuyên sâu của không gian tìm kiếm. Một cài đặt thành công của metaheuristic trong một bài toán tổ hợp phải cân bằng giữa sự khai thác được kinh nghiệm thu thập được trong quá trình tìm kiếm để xác định được những vùng với những lời giải có chất lượng cao gần tối ưu. Những ví dụ của metaheuristic bao gồm giải thuật luyện thép (SA) , giải thuật di truyền (GA) , giải thuật đàn kiến (ACO) ,…Giải thuật đàn kiến là metaheuristic dùng chiến lược của kiến trong thế giới thực để giải bài toán tối ưu. Với độ phức tạp tính toán cao của các bài toán tối ưu tổ hợp cũng như đòi hỏi về mặt thời gian , việc giải các bài toán này yêu cầu cần phải có những siêu máy tính. Con người hy vọng sẽ đem sức mạnh của siêu máy tính tới tất cả người dùng PC đơn lẻ trên thế giới. Để giải quyết vấn đề này người ta đã sử dụng Điện toán lưới và Điện toán đám mây. Trong phạm vi tiểu luận này sẽ tìm hiểu cài đặt song song hóa giải thuật ACO để giải quyết bài toán TSP. Song song hóa các giải thuật metaheuristic phải đạt được 2 yêu cầu : đa dạng hóa để khám phá được nhiều vùng trong không gian tìm kiếm và tăng tốc độ tìm kiếm . Nhiều mô hình song song hoái đã được đề xuất cho nhiều metaheuristic. ACO và GA đều là các cách tiếp cận dựa trên tập cá thể và vì vậy khá tự nhiên cho việc xử lý song song . Tiểu luận nhằm mục đích nghiên cứu ,cài đặt thực tế giải thuật song song hóa ACO nhằm mục đích so sánh hiệu quả của giải thuật ACO thông thường và khả năng song song hóa của các mô hình song song cho việc tìm kiếm lời giản gần tối ưu của bài tóan TSP. Mô hình thực nghiệm dùng MPI và một vài bài toán trong thư viện TSPLIB. 1. Bài toán TSP (Traveling Salesman Problem) 1.1 Giới thiệu bài toán !"#$%&' ()"*+,#$$-"./0 121'3+#$4256 )#% Hình 1: Việc kết nối 15 thành phố lớn nhất nước Đức với lộ trình ngắn nhất là một phép tính khá phức tạp. ""78(6(9:.;7<"./< =>>#">?@8A9: 2-B1%CA9:1-"8 B881#%DBE 7###'# F2""($/#(E" G"BH2A1'"%I"6J .;)E#9:1"*"#H $8.;9879:"+KIL% MB9N9#.##O'#!-/ #P'1P;#%86O'#. ##8BFO5'8GQR,S#$-T 24US6VEQ#W#"1--2;% &"I./9X=>Y>Z">?"* "12"7%D2'#F "88[2\/6.9:]8"8'(6 F6.\Q9[59*EH% 1.2. Nhắc lại bài toán Người du lịch &"I./9X6-./0"./. =>?68J7./")#[ #$6]4.;#$984]8 #$4\#(^6.;#1"'_`a5 "7.]$LYbc"de"" Z>8"f6.;"$"-gh8'RXP ' i)j"9%I225"2A" '\5#A#F"3>"$k="8 F"./J7l*"IZ@2?%I./ 04B$']"88([ 3`mno=omQ?6"'3,SSo ".;\$Q\,o%maV6 9O"TJ'#:3"*% &"21#19.\B*R X. D"RXQ48 27$pq=M@F#Q6r@F# ?2"B.\%--e" 2P7$ H% 1.3. Ý tưởng mô phỏng hành vi của đàn kiến thực trong tự nhiên I3`mVm67./sCK>>"O B$']A(E'L>=" '''\?67(EtD'4Bu=K">&9> r)#>>?% D:167v'4BR=929 !406.-T?$P '\R A362'04]" l ""/ \%f']4"'>" '4\$.;4.6. $/]./F8"'2).\7 01=VS@`SSw$.;?% f'].;7h.K"(O (276+"'981B1.;2 7'x=#>"">?././-l T>""./2.;xF%D'x8* "28>"/69"F84-.;x5 )#Q.6."/X 0T2.;xF"\99"k.; x4)#Q.#$59F#$x5 8TB98!2906*k9" .;x9kTX8"x "/% I3`mm`6\5'] (EP'6 "7./&QC"K""v)89OF"'=L L"68J7eE'6LY8>?4A9:" "./9X6B$"F'y B%" "86$\EF"L@D8>=F "P'E]"\#F"eE'?.;B $3`mmU#(h8' zrrr=z>"jr>9 r>"r>>6E#ABE"7 4'\?%eE86K""Ov)89O.;E '#A#A9:" "22hy"7 ON% 1.4. Thuật toán đàn kiến giải bài toán người du lịch s10.\ "' O6K"")89O"'"={?k2 .'x1./34'>"R x1O7"./2Rx"1%M\" I./9XRX"B\7$" r9>*Q|6K""0\+=6}?"7 $9=6}?R'x2%&46Rx +.;5"!!$"2% Phương pháp tìm đường đi mô phỏng hành vi con kiến D"'T'-./[Q)#] "Q]85Q46Q"'T7 Q..;]"F# >") "2 @~M=?F#Q ..;"'E]% 7B>l#()OO7 "']8'X[Q]Q% 211BA. ]8'XO7Q'#>"1 " '.;O7G>")=A Q"2)"T23.; 7"6.B2yQ2 )#B.;72.;7\# B?%•.58.;1E]€F&)>)$$=g">8 b>>?T.;-8%M)8=837Q'# >" "'?_EF\R'x.;7 =>"( "'O?_EX\96 *E$11EO7 "'#("% Kỹ thuật bánh xe xổ số s8€F#P'89:"#.##-' 9O")6E"#W#"D77=Y>>"? F "98=p>>L"?%D:1€F. pMq• ` 6 , 6‚6 ƒF# 6# ` 6# , 6‚6#) O7Q'#>"[ .A ` 6 , 6‚6 A007`"Q1'#%s1 ".' *Q2)\6. G" Q2)# ./$G =S6„R7H"" D8B#H" J ]8)P$=J.;#4B !?6…]8B' ]8TQ"#4".k2 1F88#4\T3"2% D(-F8€F8.;7&)>)P$% I.F86"'[Q)#64.;\3 Q'#>">"]80=3)"9l?"' 3\Q$x]8Q46'l-% †-8.;##6-$=290? T.;F#F"'"/ $=B./( ">"$J#6\./;#H=$Q‡q,SS?$J# !nSS -']$.6J\./;#\# \$4#\6x8"[9*E:1% Y"]-"'-./'x=? .;F#F6-lX'P9"]-89"]- (k8 "'2%D2F#Fx6+ 2.5X'.; F"%DF#F x. Y+J#="'-.;- -?6' x+.;F#F>"BA "2 7$8=59y7.F8-+4F# F.;x=6}?T.; ./.; 7S6V"8.-%I".;8 2+=6}?J.;(:.;x Xx8 "["']6:1.;(. "2†!$6g 9- "'A% I/EF#Fx86+J#=8+4" ''-?6R'xT8P=" "394?.5']8'X7 "'62 15.\#871.'.\#G" '2B]2*%I/F8F"23- .;/$"*./;#9*EO\% 2. Điện toán lưới và điện toán đám mây 2.1 Giới thiệu Điện toán lưới ( Grid computing) p9"E$#6$(""6"#W# "^681OF#;#R8F# Xh6x8>"3ˆ26B6"6#(84 .;9X: ./9:% sE".\=sCg?2y"#4 28(68 'X.*"9"E#6.; t"2u=‰>?+8(\%M-sCg#2* 3("B.;9:"/1|6l2 1"#W#9"E#3./$6A )hBO'6lŠ8]8-("F"% "26#(GT.;*5A#-sCg21.;)8 9O[(4E262##4"O8$. 3("% sCg"#W#"2A3("#k. R)h63B3.*61[2" E$R6"#W#./9:A9:8F# B$"(3E"\%p$../.\d> )>9$]d>6./9:sCgk-8 8("O\98% 7 sCg9OF#;#5 Š "A6(9:f'l9X:.\5=ipYL?6"#W#] B./+##Xh%M\sCg6PA 9"E#21$.23("R9*E6F# l*$A\6^l] lŠ8O#$;#6.% p9:6./2'8(22# A)h".\9$8A9:JH A)h-BE.;]8''82 T.;O#P\8".\t+u BX.9:A(2"BE"% ‹89O.\921.E"#W#$ .;HZD">>".*F9:*3. .;'%[]8B14H6./9:2 19494"F#A5.\x8>"4 9"E#% g.\8BQ21']8-" #F 21#$;##J\"F('A 4 $9"E#F#% 2.2 Điện toán đám mây – Cloud computing sE"8 ="9"#?6J7 E"8 "6B- E" 9:BE 8( #19O " z>>%F*<8<58$2Š9:Q z>> =9O".;$( 2"R8(? ..5#A# 54A"2%Œ B-E"8673]' BEB .;#9.\9<9X:<6"#W#./9:8F# 9X:BE[#"2<"8<B 4#2'A6EBE26k.B 4]'54#::BE2% >"PA ‹v8(zrrr <I2-G"2B .;.*./O8 z>>Q.;.;. */586"R8(6(6 8("9"E#6#.E8(486%%%<%sE "8EP1"RE. #4 9X:6 b>,%S )E486).\ BEPF6"2 8' 29O"z>> 1#A*4E" ./9x%M(9:69X: p""> L##r> #*A9:9"O8'B./62 18F#[ -98Ed>6J #4 9*E .; .*8 % 3. Giao thức truyền gói tin(MPI) và các vấn đề song song hóa 3.1 Kiến trúc máy tính song song C8(""2'l&\#\9x % C8("">"'l\#O F#8(4O=7•"9>?xE1]8' %C+l238F#"\ 2 8F#"\ lB]"'#6./ "'#2$"%K*E.;"P*l2 .;8"'#% C8(""\9x6)h9x B\!\$"%fB \9x"#W#)h"P^E8F#9* EE]%Y$.;)h9x"B-\9x 2\H%gh9"$.;9*E.;8] \')h2\% 'E'#>" 8(""E89:';# *'l\#\9x%C…l2 )h9x\l.;'$! "'#$"% [...]... ra 5 mô hình thuật toán ACO phát triển từ hệ thống Ant System Nhưng đó chỉ là một số các dạng tiêu biểu của thuật toán ACO, còn tồn tại rất nhiều các biến thể khác Và trong đồ án sẽ áp dụng thuật toán theo mô hình hệ thống MMAS để giải bài toán CPMP Mô hình thuật toán MMAS là một trong các thuật toán hiệu quả nhất của các thuật toán bầy kiến 4.3 Thuật toán đàn kiến song song Từ sơ đồ giải thuật ta nhận... đồ thị đầy đủ có trọng số Bao gồm các nút và các cung không định hướng Sau khi đi biến đổi bài toán về dạng phù hợp mới áp dụng thuật toán ACO để giải Trên đồ thị này các con kiến sẽ đi xây dựng các lời giải cho bài toán Sau đây là mô hình cụ thể hơn về thuật toán ACO Mô tả về thuật toán ACO với việc thực hiện song song hoạt động của các con kiến 1 Procedure ACO_ Metaheuristic 2 parameter_initialization... dữ liệu MPI 4 Thuật toán bầy kiến và bầy kiến song song Bài toán người du lịch là một bài toán NP-khó Cho nên việc tìm kiếm lời giải tối ưu là một việc rất khó khăn khi mà không gian các lời giải của bài toán là dạng hàm mũ của số thành phố làm cho việc tìm kiếm vét cạn không khả thi Các thuật toán xấp xỉ được phát triển để tìm ra những lời giải tốt nằm trong một cận xấp xỉ đối với lời giải tối ưu Một... nay đó là áp dụng các thuật toán heuristic vào các bài toán tối ưu nhằm tìm ra những giá trị gần với giá trị tối ưu 4.1 Sơ đồ chung của thuật toán bầy kiến 4.1.1 Giới thiệu chung về thuật toán bầy kiến Các thuật toán kiến lần đầu tiên được giới thiệu bởi Dorigo và các cộng sự như là cách tiếp cận đa tác tử tới các vấn đề về tối ưu tổ hợp khó, như bài toán người du lịch (TSP) , bài toán người đưa thư Hiện... ) 4.2.5 Thuật toán Best-Worst Ant System(BWAS) Thuật toán được đưa ra bởi Cordon vào năm 1999 Thuật toán này bao gồm một thuật toán mở rộng khác của AS là MMAS (về luật di chuyển và việc bay hơi của pheromone) Bên cạnh đó trong thuật toán này còn quan tâm tới của việc tối ưu cục bộ một cách hệ thống để nâng cao chất lượng lời giải của con kiến Trong thuật toán BWAS có 3 daemon action thêm vào gồm có:... Phiên bản mở rộng tiếp đó đã được công bố vào năm 2004 Hầu hết các nghiên cứu gần đây về ACO tập trung vào việc phát triển các thuật toán biến thể để làm tăng hiệu năng tính toán của thuật toán Ant System ban đầu Trên đây là sơ lược chung về các thuật toán kiến, mục tiếp theo sẽ mô tả về sơ đồ chung của thuật toán kiến Sơ đồ chung của thuật toán bầy kiến Procedure ACO Initial(); While (!ĐK dừng) do ConstructSolutions();... các thuật toán kiến Thuật toán tối ưu bầy kiến (ACO) nghiên cứu các hệ thống nhân tạo dựa vào hành vi tìm kiếm của bầy kiến thực và được sử dụng để giải quyết các vấn đề về tối ưu rời rạc .Thuật toán bầy kiến siêu tìm kiếm (ACO meta_heuristic) lần đầu tiên được Dorigo, Di Caro và Gambardella đề xuất vào năm 1999 ACO là một meta-heuristic, trong đó một tập các con kiến nhân tạo phối hợp tìm kiếm các giải. .. ra tối ưu cục bộ 19 Hình 4 Sơ đồ chung của thuật toán bầy kiến Đó là sơ đồ chung của thuật toán bầy kiến, mục tiếp theo sẽ đi sâu vào mô tả thuật toán bầy kiến đơn giản cho bài toán người đưa thư Trung Hoa trên đồ thị hỗn hợp 4.1.2 Nội dung thuật toán Trước khi nói về nội dung thuật toán bầy kiến ta đi tìm hiểu về đàn kiến trong tự nhiên, xem các đặc điểm và cách hoạt động của đàn kiến tự nhiên Từ... đầu được áp dụng cho bài toán người du lịch (TSP) và QAP Cũng vào năm 1992, tại hội nghị sự sống nhân tạo lần đầu tiên ở châu Âu , Dorigo và các cộng sự đã công bố bài: sự tối ưu được phân bố bởi đàn kiến Tiếp theo tại hội nghị quốc tế thứ hai về giải quyết các vấn đề song song trong tự nhiên ở Hà Lan (1992), ông và các cộng sự đã công bố bài: nghiên cứu về các đặc tính của một giải thuật kiến Kể từ năm... này, mô hình phân tách công việc hay song song hóa công việc là hiệu quả hơn mô hình phân tách dữ liệu Trong song song hóa công việc, bài toán được phân chia thành một số lượng lớn các nhiệm vụ nhỏ hơn và các công việc nhỏ được gán cho các bộ xử lý một cách phù hợp Các bộ xử lý sẽ kết thúc nhanh chóng một công việc và được gán cho công việc tiếp theo Song song hóa công việc được thực hiện trên kiến . Để giải quyết vấn đề này người ta đã sử dụng Điện toán lưới và Điện toán đám mây. Trong phạm vi tiểu luận này sẽ tìm hiểu cài đặt song song hóa giải thuật ACO để giải quyết bài toán TSP. Song. Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY SONG SONG HÓA THUẬT GIẢI ACO GIẢI BÀI TOÁN TSP GVHD: PGS. TS. NGUYỄN PHI KHỨ HVTH: NGUYỄN MINH. quả của giải thuật ACO thông thường và khả năng song song hóa của các mô hình song song cho việc tìm kiếm lời giản gần tối ưu của bài tóan TSP. Mô hình thực nghiệm dùng MPI và một vài bài toán