Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
755,38 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỀ TÀI MÔN TOÁN CHO MÁY TÍNH Đề tài : PHÂN TÍCH VÀ THIẾT KẾ THUẬT GIẢI CHO BÀI TOÁN “NGƯỜI DU LỊCH” GV: PGS. TS Nguyễn Phi Khứ HV: Dương Thị Xuân Thoại Mã số: CH1301061 TP Hồ Chí Minh, 2013 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH KHOA KHOA HỌC MÁY TÍNH Đề tài : PHÂN TÍCH VÀ THIẾT KẾ THUẬT GIẢI CHO BÀI TOÁN “NGƯỜI DU LỊCH” GV: PGS. TS Nguyễn Phi Khứ HV: Dương Thị Xuân Thoại Mã số: CH1301061 TP Hồ Chí Minh, 2013 Mục Lục 1. Giới thiệu bài toán 1 2. Lịch sử bài toán TSP 1 3. Mô tả bài toán TSP 3 4. Phân loại bài toán 3 Đối xứng và bất đối xứng 3 Với khoảng cách là metric 3 Với khoảng cách không là metric 4 5. Các giải thuật giải bài toán TSP 4 Các giải thuật để tìm lời giải chính xác 4 Heuristic và các giải thuật xấp xỉ 5 6. Thuật giải Heuristic 7 7. Ứng dụng nguyên lý Greedy vào giải bài toán TSP 7 8. Đánh giá thuật giải Heuristic của thuật toán 9 9. Một số ví dụ minh hoạ 11 Mục lục hình Hình 1 – Mô hình đồ thị của bài toán TSP 3 Hình 2 – Mô hình ban đầu 8 Hình 3 – Mô hình các bước chọn lựa đường đi 9 Hình 4 – Ví dụ 1 12 Hình 5 – Ví dụ 2 12 Hình 6 – Ví dụ 3 13 MSHV: CH1301061_Dương Thị Xuân Thoại Trang 1 1. Giới thiệu bài toán i du lch (Travelling Salesman problem (TSP)) là mt bài toán khá ni ti vc t hc nghiên cu trong lý thuyt khoa hc máy tính. Ni dung ca c phát bit danh sách các thành ph và khong cách gia chúng , nhim v là phn nht có th mà ch i thành ph n. c lt v toán hm 1930 và là mt trong s nhc nghiên cc t hp thc s dt s c tm chí bài toán là thuc lp NP khó , mng rt l thc tìm kim c th c bin vì vy mng hp ca bài toán vi khong chc nghìn thành ph c gii quyt. TSP có mt vài ng dng thm chí trong dng thc nguyên thu cp k hoch , logistic , và sn xut các microchip. t hit bài toán con trong rt nhic phân tích gen trong sinh hc. Trong nhng ng dng này, khái nim thành ph có th m hàn trên bng mch, các mnh DNA trong gen, và khái nim khong cách có th biu din bi thi gian du lch hay giá thành , hay gi so sánh gia các mnh DNA vi nhau. Trong nhiu ng dng, các hn ch truyn thi hn tài nguyên hay gii hn thi gian thm chí còn làm cho bài toán tr Trong lý thuyt c phc tp tính toán, phiên bn quynh ca bài toán TSP thuc lp NP-complete . Vì vy không có gai thut hiu qu nào cho vic gii bài toán TSP. Hay nói cách khác , gii gian chy ti nht cho bt ký gii thut nào cho bài toán i s ng thành ph, vì vy thm chí nhing hp vi vài gii mt cách chính xác. 2. Lịch sử bài toán TSP Ngun gc ci du ln nay vàng. Mt cun sách cho i du lch t cp ti v và bao gm vài ví d v c qua Thy s a đựng ý nghĩa toán học nào Vấn đề toán học liên quan tới bài i du lc nhn trong nhng 800 bi nhà toán hc ireland W. R. Hamilton và nhà toán hi Anh Thomas Kirkman. Trò chIcosian Game ca Hamilton là m vui d tìm chu trình Hamilton. Dng tng quát cc nghiên c bi các nhà toán hc sut nhng i hKarl Menger ng MSHV: CH1301061_Dương Thị Xuân Thoại Trang 2 xét gii thut brute-force và quan sát thy tính không ta heuristic da trên láng ging gn nht. Hassler Whitney i hc Princeton University là ngu i du lch cho bài toán . Trong nh nên ngày càng ph bin trong khoa hc châu Âu và M. Nhc k George Dantzig, Delbert Ray Fulkerson và Selmer M. Johnson ti RAND Corporation Santa Monica, nhi nguyên tuyn tính và phát tric ct cho li gii ca nó. Vi nhc mi này h c mt thí d ca bài toán vi 49 thành ph xây dng mt cách tng minh rn a. Trong nhng thp k tic nghiên cu bi rt nhiu nhà nghiên c t toán hc , khoa hc máy tính , hóa hc ,vt lý và nhng khoa hc khác. Richard M. Karp ch ra rng bài toán chu trình Hamiltonian thuc lp NP- complete ra tính NP khó (NP-hardness ) cu này gii thích mt cách khoa h phc tp tính toán ca vic tìm li gii t Nhiu thành tc trong sut nhi thp k 1970 và 1980, khi Grötschel, Padberg, Rinaldi và nhi khác c gng gii mt cách chính xác mt th hin ca bài toán vi 2392 thành ph, s dc ct và branch-and-bound. Trong nh Applegate, Bixby, Chvátal trình Concorde c s dng nhiu trong vic gin nay . t tp các th hin ca bài toán TSP vi nhi c s dng bi nhiu nhóm nghiên cu so sánh kt quc dài ti i th hin ca bài toán TSP lên ti 33,810 thành ph c ly ra t bài toán xây dng layout cho microchip, cho ti nay vn là th hin ln nht trong các th hin TSPLIB .Nhiu th hin khác vi hàng triu thành ph , li gic có th chng minh nm sai khác 1% so vi li gii t MSHV: CH1301061_Dương Thị Xuân Thoại Trang 3 3. Mô tả bài toán TSP Hình 1 – Mô hình đồ thị của bài toán TSP TSP có th th nh c th ng vi các thành ph và các cng vng ni gia các thành ph, chiu dài ca mt cng vi khoang cách gia 2 thành ph. Mt th và mt li gii ta bài toán là chu trình Hamilton ngn nht. th th , vì vy mi cp cc ni bi các cnh. n hóa bài toán vì vic tìm chu trình Hamilton trong m th là d. Các bài toán mà không phi 2 thành ph c ni vi nhau có th c chuyn th bng cách thêm nhng c dài ln gia cách thành ph này , nhng cnh s không xut hin trong chu trình t 4. Phân loại bài toán Đối xứng và bất đối xứng i xng khong cách gia các thành ph o ng, vì vy th biu din th ng. S i xng này làm gim 1 na s li gii có th. Trong bài toán bi xng , khong cách t thành ph n thành ph khác không nht thit phi bng khoc li, thm chí có th không có kt ni theo chic li. Vì vy graph biu din bài toán bi x th ng. Ly ví d ng mt chiu trong giao thông chng hn. Với khoảng cách là metric Trong bài toán metric TSP khong cách gia các thành ph phi thu kin ca bt ng thu này có th phát biu bng ni trc tip t n B không bao gi A ti B mà qua C trung gian MSHV: CH1301061_Dương Thị Xuân Thoại Trang 4 Nhng chiu dài ct metric trong tnh . Khi các thành ph m trên tm hình, nhiu hàm khong cách t nhiên là các metric ví d Trong bài toán Euclidian TSP khong cách gia 2 thành ph là khong cách Euclide ging. Trong bài toán Rectilinear TSP khong cách gia 2 thành ph là tng hai t x và y ca chúng. c gi là khong cách Manhattan hay city-block metric. Trong maximum metric, khong cách gia 2 thành ph là max c chênh lêch ta x và y ca chúng. Hai metric cui xut hin trong ving mp các h trong mch in. ng tnh t th nht ri ti t kia, vì vy thi gian di chuyn ti mm mi là tng c ng di chuyng vi mày mà chnh c 2 t cùng 1 lúc vì vy th di chuyn ti mm mi quynh bi di chuy Với khoảng cách không là metric Khong cách không tha mãn bng thc tam giác phát sinh trong nhinh tuyn. Ví d trong mt kiu vn tch bng máy bay có th c dù khong cách di chuy 5. Các giải thuật giải bài toán TSP Các giải thuật để tìm lời giải chính xác Li gii trc tip nht có th là th tt c các hoán v và xem hoán v nào là tt nht ( dùng brute-force) . Thi gian chy cho cách tip cn này là O(n!), vì vy cách tip cn này thm chí không th thc hin vi ch 20 thành ph .Mt trong s nhng ng dng mt ca quy hong là gii thu phc tp O(n 2 2 n ) và yêu cu không gian b nh là Ci thin t cho cách gii thut trên là h. Ví d, thm chí là rt khó tìm mt gii thut chính xác cho bài toán TSP ch phc tp O(1.9999 n ) . Nhng cách tip cn khác bao gm Rt nhiu gii thut branch-and-bound, có th s d gii các bài toán TSP vi khong 40-60 thành ph. MSHV: CH1301061_Dương Thị Xuân Thoại Trang 5 Các gii thut ci thin dn dn s dng k thut ghi nh li ca linear programming. Có th làm vic tt cho khong 200 thành ph. Thc hin branch-and-bound và cut cho các bài toán c th c s d gii quyt các bài toán vi s ng ln thành ph. Cách tip c gi k lc hin ti gii quyc bài toán TSP vi 85,900 thành ph. Li gii chính xác cho bài toán vi 15,112 thành ph c t TSPLIB 2001 s dc lát c xut bi George Dantzig, Ray Fulkerson, và Selmer Johnson 1954, da trên linear programming. c thc hin trong mng máy tính gm 110 b vi x lý ti hc Rice University và Princeton University. Tng thi 22.6 lý t 500 MHz. Vào tháng 5-2004, i du lt c 24,978 thành ph thc gii quyng ngn nht vào khong 72,500 kilomet c tìm thc chng minh rn Vào tháng 3- 2005, i du lch vi 33,810 m trong 1 mc gii quyt s dung công c Concorde TSP Solver: ng t c tìm thc chng khi lng tính toán mt khong 15.7 CPU (Cook et al. 2006). 2006 mt bài toán vi 85,900 c gii quyt bi Concorde TSP Solver, và mt khong 136 CPU . Heuristic và các giải thuật xấp xỉ Rt nhiu heuristics và gii thut xp x, có th i gii t xut. c hii có th tìm li gii cho bài toán cc ln (hàng triu thành ph) trong khong thi gian chp nhc vi li gii xp x ch khác 2-3% so vi li gii t Mt vài kic tìm ra. Heuristics xây dựng Gii thut láng ging gn nht nearest neighbour (NN) (hay còn gi là gii thut tham lam greedy algorithm) i du lch chn thành ph gn nhn di chuyn tip theo. Gii thun và hiu qu . Cho khong N thành ph phân b ngu nhiêu trên mt phng trung bình gii thui gii có chiu dài xp x 1.25 * ln chiu dài c Tuy nhiên, có nhiu cách sp xc bit các thành ph làm cho gii thu i t nht (Gutin, Yeo, and Zverovich, 2002). bài toán TSP i xng và bi xng (Gutin and Yeo, 2007). MSHV: CH1301061_Dương Thị Xuân Thoại Trang 6 Gt heuristic mMatch Twice and Stitch (MTS) (Kahng, Reda 2004. MTS y tính hiu qu n so vi nhng heuristic xây dng hin ti . MTS thc hin hai ln khp tun t , mà ln khp th c thc hin sau khi xóa tt c các cnh ca ln khp th nh a ra tp tt c i cùng Cải tiến từng bước Chuyển cặp, hay heuristic Lin-Kernighan. K thut chuyn cp hay '2-opt' bao gm vic lp li vic xóa 2 cnh và thay chúng bng hai cnh khác nn to bi cnh b xóa tng di ngng hc bit cc k-opt. k-opt heuristic Ly mng l nhng mnh còn l không có hai mng i vi nhau (không nm u cui ca 2 mnh vi nhau s t. n t nhiu. Mu cui có th c ni ti 2k 2 m khác có th: trong s 2k tng s u cui có th, tr ra u cui ca m n hóa 2k thành ph TSP có th gii s dng tìm t hp tt nht ca các mu. K thut k-opt ng hp riêng ca k thuât V-opt hay variable-opt . K thut ph bin ca k-opt là 3-opt, c gii thiu bi Shen Lin ca Bell Labs 1965. Có mng hc bit ca 3-opt khi mà cách cnh là có th không nht thim chung (hai trong s các cnh k vi nhau). Trong thc t, có th c nhng phát tri ca k thut 2-opt không nht thit phi s dng 3-opt bgn cách gii hn 3-changes n hp riêng vi hai ci vi nhau. K thuc gi là 2.5-opt nm gia 2-opt và 3-opt, hiu theo c a chng li gic và th c li gii. V'-opt heuristic K thut variable-opt method gi, tông quát hóa ca k-opt k thut. Trong khi k thut k-opt t s long c nh (k) cnh t u k thut variable-opt t s ng cnh c nh. Thay vì vy nó phát trin tp này khi quá trình tìm kim tip tc. c ni tic Lin- Kernighan . Shen Lin và Brian Kernighan lu tiên c ca h y nhát cho vic gii du lch trong sut hai thp k . Nhng k thut tiên tic phát trin ti Bell Labs cui nh1980 bi David Johnson i nghiên cu ca ông. Nhc gi là Lin-Kernighan-Johnson xây dc Lin-Kernighan , ng t tabu [...]... ) Kỹ thuật V-opt được xem như một trong số những heuristic mạnh cho bài toán và có thể giải quyết các trường hợp đặc biệt, như bài toán chu trình Hamilton và những bài toán TSP không phải metric mà những heuristic khác không giải quyết được 6 Thuật giải Heuristic Thuật giải Heuristic là một sự mở rộng khái niệm thuật toán Nó thể hiện cách giải bài toán với các đặc tính sau: Thường tìm được lời giải. .. điểm: thuật giải có những hạn chế, chưa cho ra lời giải chính xác Kết luận: Thuật giải Heuristic cho bài toán người du lịch tuy chưa đưa ra được lời giải chính xác cho bài toán, nhưng nó cho ra một lời giải có thể chấp nhận được với độ phức tạp thấp hơn nhiều so với thuật toán tối ưu 9 Một số ví dụ minh hoạ Chương trình viết bằng ngôn ngữ C# 2005 Chương trình sẽ đọc đồ thị (ma trận) từ file Graph.txt và. .. tốt (nhưng không chắc là lời giải tốt nhất) Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người ta thường dựa vào một số nguyên lý cơ bản... bước của thuật giải 7 Ứng dụng nguyên lý Greedy vào giải bài toán TSP Phát biểu lại bài toán: Hãy tìm một hành trình cho người du lịch đi qua n điểm (thành phố) khác nhau, mỗi điểm đi qua một lần và trở về điểm xuất phát sao cho tổng chiều dài đoạn đường cần đi là ngắn nhất Giả sử rằng có con đường nối trực tiếp từ giữa hai điểm (thành phố) bất kỳ Trang 7 MSHV: CH1301061_Dương Thị Xuân Thoại Bài toán này... từ đỉnh x cho trước và xuất ra hành trình cần đi: e=x; Trang 10 MSHV: CH1301061_Dương Thị Xuân Thoại v[0]=x; for(int i=1;i . CHÍ MINH KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỀ TÀI MÔN TOÁN CHO MÁY TÍNH Đề tài : PHÂN TÍCH VÀ THIẾT KẾ THUẬT GIẢI CHO BÀI TOÁN “NGƯỜI DU LỊCH” GV: PGS. TS. Các giải thuật giải bài toán TSP 4 Các giải thuật để tìm lời giải chính xác 4 Heuristic và các giải thuật xấp xỉ 5 6. Thuật giải Heuristic 7 7. Ứng dụng nguyên lý Greedy vào giải bài toán. NGHỆ THÔNG TIN TP HỒ CHÍ MINH KHOA KHOA HỌC MÁY TÍNH Đề tài : PHÂN TÍCH VÀ THIẾT KẾ THUẬT GIẢI CHO BÀI TOÁN “NGƯỜI DU LỊCH” GV: PGS. TS Nguyễn Phi Khứ