Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
242,01 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o BÀI THU HOẠCH MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ ĐỀ TÀI: GIẢI BÀI TOÁN NGƯỜI BÁN HÀNG BẰNG GIẢI THUẬT MÔ PHỎNG LUYỆN KIM GIÁO VIÊN HƯỚNG DẪN: PGS.TS. ĐỖ VĂN NHƠN HỌC VIÊN: VƯƠNG ĐỨC HIỀN MSHV: CH1301087 LỚP: CAO HỌC KHÓA 8 TP HỒ CHÍ MINH - THÁNG 10, NĂM 2014 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn MỤC LỤC: Trang 2 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn LỜI MỞ ĐẦU Bài toán tối ưu tổ hợp là một bài toán có nhiều ứng dụng trong thực tiễn và lý thuyết, góp phần xây dựng nên các thuật toán hữu hiệu. 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ó. Bài thu hoạch này sẽ trình bày một số vấn đề về bài toán tối ưu tổ hợp trong khoa học máy tính, cách giải các bài toán đó sử dụng các metaheuristic; giới thiệu bài toán người bán hàng với các giải thuật để giải nó; tìm hiểu giải thuật mô phỏng luyện kim Simulated Annealing và áp dụng vào giải bài toán người bán hàng. Bên cạnh các tìm hiểu lý thuyết, bài thu hoạch còn xây dựng một chương trình demo mô phỏng cách giải quyết bài toán người bán hàng theo thuật giải luyện kim. Chương trình đã mô tả, biểu diễn được vấn đề bài toán và đưa ra được kết quả là đường đi ngắn nhất qua các thành phố trong thời gian nhanh, sử dụng metaheuristic trong suy luận Trang 3 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn CHƯƠNG 1 : KHÁI QUÁT VỀ BÀI TOÁN TỐI ƯU TỔ HỢP 1.1 Bài toán tối ưu tổ hợp với metaheuristic Bài toán tối ưu tổ hợp là bài toán chỉ quan tâm đến một cấu hình “tốt nhất” theo một nghĩa nào đấy. Đây là bài toán có nhiều ứng dụng trong thực tiễn và lý thuyết tổ hợp đã đóng góp một phần đáng kể trong việc xây dựng những thuật toán hữu hiệu. 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 loại 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 kim (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. SA xuất phát từ phương thức xác suất và kỹ thuật luyện bao gồm việc nung và điều khiển làm nguội các kim loại để đạt được trạng thái năng lượng nhỏ nhất. Trong khi Trang 4 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn đó giải thuật di truyền dựa trên ý tưởng từ cơ chế di truyền trong sinh học và tiến trình tiến hóa trong cộng đồng các cá thể của một loài. 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 cài đặt song song hóa hiệu quả của các giải thuật để giải quyết chúng. 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á đã đượ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. Tuy nhiên SA thì vốn đã mang tính tuần tự và rất chậm cho các bài toán với không gian tìm kiếm lớn nhưng vẫn có một vài kỹ thuật song song hóa có thể được áp dụng để tăng tốc độ tìm kiếm. 1.2 Bài toán người bán hàng 1.2.1 Giới thiệu chung a. Tổng quan: Bài toán người bán hàng (Travellng Salesman Problem - TSP) là một bài toán khá nổi tiếng trong lĩnh vực tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa học máy tính. Nội dung của nó khá đơn giản, nó được phát biểu như sau: Cho một danh sách các thành phố và khoảng cách giữa chúng, nhiệm vụ là phải tìm đường đi ngắn nhất có thể mà chỉ thăm mỗi thành phố đúng 1 lần. Bài toán được lần đầu tiên đưa ra như một vấn đề toán học vào năm 1930 và là một trong số những bài toán được nghiên cứu chuyên sâu trong lĩnh vực tổ hợp thời đó. Nó được sử dụng như một sự đánh giá cho nhiều phương thức tối ưu khác nhau. Thậm chí bài toán là thuộc lớp NP khó , một lượng rất lớn các heuristic và Trang 5 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn phương thức tìm kiếm cụ thể đã được biết đến vì vậy một vài trường hợp của bài toán với khoảng chục nghìn thành phố đã được giải quyết. TSP có một vài ứng dụng thậm chí trong dạng thức nguyên thuỷ của nó như lập kế hoạch, logistic, và sản xuất các microchip. Thay đổi đi chút ít nó xuất hiện như một bài toán con trong rất nhiều lĩnh vực như việc phân tích gen trong sinh học. Trong những ứng dụng này, khái niệm thành phố có thể thay đổi thành khách hàng, các điểm hàn trên bảng mạch, các mảnh DNA trong gen, và khái niệm khoảng cách có thể biểu diễn bởi thời gian du lịch hay giá thành, hay giống như sự so sánh giữa các mảnh DNA với nhau. Trong nhiều ứng dụng, các hạn chế truyền thống như giới hạn tài nguyên hay giới hạn thời gian thậm chí còn làm cho bài toán trở nên khó hơn. Trong lý thuyết của độ phức tạp tính toán, phiên bản quyết định của bài toán TSP thuộc lớp NP-complete . Vì vậy không có giải thuật hiệu quả nào cho việc giải bài toán TSP. Hay nói cách khác, giống như thời gian chạy tồi nhất cho bất kỳ giải thuật nào cho bài toán TSP tăng theo hàm mũ với số lượng thành phố, vì vậy thậm chí nhiều trường hợp với vài trăm thành phố cũng đã mất vài năm CPU để giải một cách chính xác. b. Lịch sử bài toán: Nguồn gốc của bài toán người du lịch đến nay vẫn chưa rõ ràng. Một cuốn sách cho người du lịch từ năm 1832 đã đề cập tới vấn đề và bao gồm vài ví dụ về các đường đi từĐức qua Thụy Sỹ nhưng không chứa đựng ý nghĩa toán học nào. Vấn đề toán học liên quan tới bài toán người du lịch đã được nhắc đến trong những năm 1800 bởi nhà toán học Ireland W. R. Hamilton và nhà toán học người Anh Thomas Kirkman. Trò chơi Icosian Game của Hamilton là một trò đố vui dựa trên cơ sở tìm chu trình Hamilton. Dạng tổng quát của bài toán TSP được nghiên cứu bởi các nhà toán học suốt những năm 1930 ở đại học Harvard, đáng chú ý là Trang 6 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn Karl Menger người đã định nghĩa bài toán, xem xét giải thuật Brute-force và quan sát thấy tính không tối ưu của heuristic dựa trên láng giềng gần nhất. Hassler Whitney ở đại học Princeton đưa ra tên “Bài toán người bán hàng” ngay sau đó. Trong những năm 1950 và 1960 , bài toán trở nên ngày càng phổ biến trong giới nghiên cứu khoa học ở châu Âu và Mỹ. Những đóng góp đáng chú ý được kể đến như George Dantzig, Delbert Ray Fulkerson và Selmer M. Johnson tại RAND CorporationởSanta Monica, những người đã trình bày bài toán như bài toán số nguyên tuyến tính và phát triển phương thức cắt cho lời giải của nó. Với những phương thức mới này họ đã giải được tối ưu một trường hợp có 49 thành phố bằng cách xây dựng một chu trình và chứng minh rằng không còn chu trình nào ngắn hơn. Trong những thập kỷ tiếp theo, bài toán được nghiên cứu bởi rất nhiều nhà nghiên cứu từ toán học, khoa học máy tính, hóa học,vật lý và những ngành khác. Richard M. Karp năm 1972 chứng minh rằng bài toán chu trình Hamiltonthuộc lớp NP-đầy đủ, và qua đó chỉ ra tính NP khó (NP-hardness ) của bài toán TSP. Điều này giải thích một cách khoa học cho độ phức tạp tính toán của việc tìm lời giải tối ưu cho bài toán . Nhiều thành tựu đã đạt được trong suốt những năm cuối thập kỷ 1970 và 1980, khi Grötschel, Padberg, Rinaldi và những người khác cố gắng giải một cách chính xác một thể hiện của bài toán với 2392 thành phố, sử dụng phương pháp mặt phẳng cắt và nhánh cận. Trong những năm 1990 Applegate, Bixby, Chvátal, và Cook đã phát triển chương trìnhConcorde mà đã được sử dụng nhiều trong việc giải các bài toán TSP cho đến nay . Gerhard Reinelt đã công bố thư viện TSPLIB vào năm 1991, đó là một tập các thể hiện của bài toán TSP với nhiều độ khó khác nhau, và đã được sử Trang 7 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn dụng bởi nhiều nhóm nghiên cứu khác nhau để so sánh kết quả. Năm 2005, Cook và những người khác đã tính được độ dài tối ưu cho chu trình với thể hiện của bài toán TSP lên tới 33,810 thành phố , được lấy ra từ bài toán xây dựng layout cho microchip, cho tới nay vẫn là thể hiện lớn nhất trong các thể hiện ở TSPLIB.Nhiều thể hiện khác với hàng triệu thành phố , lời giải tìm được có thể chứng minh nằm sai khác 1% so với lời giải tối ưu. 1.2.2 Mô tả bài toán Hình 1.1 Mô tả bài toán Phát biểu bài toán: Có một người giao hàng cần đi giao hàng tại n thành phố. Anh ta xuất phát từ một thành phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban đầu. Mỗi thành phố chỉ đến một lần, và khoảng cách từ một thành phố đến các thành phố khác đã được biết trước. Hãy tìm một chu trình sao cho tổng độ dài các cạnh là nhỏ nhất. TSP có thể được mô hình như một đồ thị , các đỉnh của đồ thị tương ứng với các thành phố và các cạnh thì tương ứng với đường nối giữa các thành phố, chiều dài của một cạnh tương ứng với khoảng cách giữa 2 thành phố. Một đường đi trong bài toán TSP là một chu trình Hamilton trên đồ thị và một lời giải tối ưu của bài toán là chu trình Hamilton ngắn nhất. Trang 8 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn Thường thì đồ thị là đồ thị đầy đủ , vì vậy mọi cặp cạnh đều được nối bởi các cạnh. Đây là bước đơn giản hóa bài toán vì việc tìm chu trình Hamilton trong một đồ thị đầy đủ là dễ. Các bài toán mà không phải 2 thành phố nào cũng được nối với nhau có thể được chuyển đổi thành đồ thị đầy đủ bằng cách thêm những cạnh có độ dài lớn giữa cách thành phố này , những cạnh sẽ không xuất hiện trong chu trình tối ưu. 1.2.3 Các giải thuật giải bài toán a. Lời giải chính xác Lời giải trực tiếp nhất có thể là thử tất cả các hoán vị và xem hoán vị nào là tốt nhất (dùng brute-force). Thời gian chạy cho cách tiếp cận này là O(n!), vì vậy cách tiếp cận này thậm chí không thể thực hiện với chỉ 20 thành phố. Một trong số những ứng dụng mới đây nhất của quy hoạch động là giải thuật có độ phức tạp O(n 2 2 n ) và yêu cầu không gian bộ nhớ là hàm mũ. Cải thiện tốc độ cho cách giải thuật trên là hầu như không thể. Ví dụ, thậm chí là rất khó tìm một giải thuật chính xác cho bài toán TSP chạy trong độ phức tạp O(1.9999 n ) . Những cách tiếp cận khác bao gồm • Rất nhiều giải thuật nhánh cận, có thể sử dụng để giải các bài toán TSP với khoảng 40-60 thành phố. • Các giải thuật cải thiện dần dần sử dụng kỹ thuật ghi nhớ lại của lập trình tuyến tính. Có thể làm việc tốt cho khoảng 200 thành phố. • Thực hiện nhánh cận và cắt cho các bài toán cụ thể , đây là phương thức sử dụng để giải quyết các bài toán với số lượng lớn thành phố. Cách tiếp Trang 9 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS. Đỗ Văn Nhơn cận này đang giữ kỷ lục hiện tại giải quyết được bài toán TSP với 85,900 thành phố. Lời giải chính xác cho bài toán với 15,112 thành phố ở Đức từ TSPLIB đã được tìm ra năm 2001 sử dụng phương thức lát cắt đề xuất bởi George Dantzig, Ray Fulkerson, và Selmer Johnsonvào năm 1954, dựa trên lập trình tuyến tính. Quá trình tính toán đã được thực hiện trong mạng máy tính gồm 110 bộ vi xử lý tại đại học Rice University và Princeton University. Tổng thời gian tính toán tương đương với 22.6 năm trong một máy đơn vi xử lý tốc độ 500 MHz. Vào tháng 5-2004, bài toán người du lịch thăm tất cả 24,978 thành phố ở Thụy Điển đã được giải quyết: đoạn đường ngắn nhất vào khoảng 72,500 kilomet đã được tìm thấy và đã được chứng minh rằng không có đường đi nào ngắn hơn. Vào tháng 3- 2005, bài toán người du lịch với 33,810 điểm trong 1 mạch in đã được giải quyết sử dung công cụ Concorde TSP Solver: Đoạn đường tối ưu dài 66,048,945 đơn vị đã được tìm thấy và đã được chứng minh không có đường đi nào ngắn hơn tổng khối lượng tính toán mất khoảng 15.7 năm CPU (Cook et al, 2006). Vào tháng 4 năm 2006 một bài toán với 85,900 điểm cũng đã được giải quyết bởi Concorde TSP Solver, và mất khoảng 136 năm CPU. b. Heuristic và các thuật giải xấp xỉ Rất nhiều heuristics và giải thuật xấp xỉ có thể đưa ra nhanh chóng lời giải tốt đã được đề xuất. Các phương thức hiện đại có thể tìm lời giải cho bài toán cực lớn (hàng triệu thành phố) trong khoảng thời gian chấp nhận được với lời giải xấp xỉ chỉ khác 2-3% so với lời giải tối ưu. Một vài kiểu heuristic đã được tìm ra như: Giải thuật láng giềng gần nhất nearest neighbour (NN) (hay còn gọi là giải thuật tham lam (greedy algorithm)) để cho người du lịch chọn thành phố gần nhất Trang 10 [...]... PGS.TS Đỗ Văn Nhơn KẾT LUẬN Bài thu hoạch đã trình bày một số vấn đề về bài toán tối ưu tổ hợp trong khoa học máy tính, cách giải các bài toán đó sử dụng metaheuristic; giới thiệu bài toán người bán hàng với các giải thuật để giải nó; tìm hiểu giải thuật mô phỏng luyện kim Simulated Annealing và áp dụng vào giải bài toán người bán hàng như thế nào Bên cạnh các tìm hiểu lý thuyết, bài thu hoạch còn xây... địa phương (local minimum) 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ể Trang 12 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS Đỗ Văn Nhơn 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 metricmà những heuristic khác không giải quyết được CHƯƠNG 2 : GIẢI BÀI TOÁN NGƯỜI BÁN HÀNG BẰNG GIẢI THUẬT MÔ PHỎNG LUYỆN KIM. .. chương trình demo mô phỏng cách giải quyết bài toán người bán hàng theo thuật giải luyện kim Chương trình đã mô tả, biểu diễn được vấn đề bài toán và đưa ra được kết quả là đường đi ngắn nhất qua các thành phố trong thời gian nhanh, sử dụng metaheuristic trong suy luận Trang 23 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS Đỗ Văn Nhơn TÀI LIỆU THAM KHẢO [1] “So sánh hiệu quả của một vài giải thuật metaheuristic... tốt hơn cả thuật toán vét cạn, khi mà đơn thuần chỉ cần một kết quả chấp nhận được Thuật toán được nêu ra độc lập bởi Scott Kirkpatrick, C Daniel Gelatt, Mario P Vecchivào năm 1983, và bởi Vlado Černýnăm 1985 a Ý tưởng thuật toán Tên gọi và ý tưởng của thuật toán bắt nguồn từ kỹ thuật luyện kim trong ngành luyện kim, một kỹ thuật sử dụng một cách khéo léo việc nung nóng rồi làm nguội vật liệu kim loại... tuần tự các câu lệnh nên độ phức tạp của thuật toán là O(n) Các thuật toán sử dụng heuristic tuy không cho kết quả hoàn toàn chính xác nhưng đổi lại độ phức tạp không cao Ta có thể thấy nhanh hơn rất nhiều so với độ khó của bài toán cũng như các giải thuật thông thường khác 2.2 Chương trình giải bài toán TSP sử dụng thuật giải luyện kim Chương trình demo giải bài toán TSP có giao diện đơn giản như sau:... vật lý của kỹ thuật trên, từng bước của thuật toán SA cố gắng thay thế các giải pháp hiện tại bằng một giải pháp ngẫu nhiên (lựa chọn theo một danh sách phân phối của các ứng cử viên, thường được xây dựng từ các giải pháp gần với giải pháp hiện tại đang xét), các giải pháp mới sau đó có khả năng được chấp nhận dựa trên một xác suất, quyết định bởi sự khác biệt của giá trị một hàm tương ứng và một tham... nếu rơi vào xac suất, thay //đổi trạng thái // nếu s tốt hơn sbest sbest ← snew; ebest ← enew // gán lại trạng thái tốt nhất k ← k + 1 return sbest // tăng biến đếm // trả về sbest tìm thấy Trang 18 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS Đỗ Văn Nhơn 2.1.3 Áp dụng vào bài toán TSP Để áp dụng thuật toán SA vào bài toán TSP, trước tiên ta cần thống nhất các tham số trong thuật toán vào bài toán, cụ... lời giải tốt, và cứ như vậy lời giải trôi về vùng không gian lời giải có năng lượng thấp, cuối cùng dừng lại khi T=0 Hình 2.2 Quá trình thực hiện thuật giải Trang 17 TH: Vương Đức Hiền – CH1301087 GVHD: PGS.TS Đỗ Văn Nhơn Đối với bất một vấn đề cụ thể nào, thuật toán cho xác suất để tìm thấy lời giải tối ưu của vấn đề dần tiến tới 1 khi mà thời gian thực hiện thuật toán đủ lớn Tuy nhiên ta không nên... LUYỆN KIM 2.1 Giải thuật mô phỏng luyện kim 2.1.1 Giới thiệu chung Simulated Annealing (SA) là một thuật toán dựa trên các heuristic về xác suất, dùng cho một lớp các vấn đề để tìm một số điều kiện tốt nhất trong một không gian tìm kiếm lớn Nó thường được dùng khi khi không gian tìm kiếm là hữu hạn (chẳng hạn như tất cả đường đi thăm qua tất cả các thành phố cho trước) Đối với một số vấn đề cố định,... Hành động thay đổi giải pháp để tìm ra giải pháp lân cận được gọi là di chuyển (move) và các move khác nhau sẽ cho các giải pháp lân cận khác nhau Việc tìm kiếm những lân cận của một trạng thái là cơ bản cho việc tối ưu vì lời giải cuối cùng có được sau một tour lần lượt các lân cận Heuristic đơn giản di chuyển bằng việc tìm lân cận tốt nhất và dừng lại khi tìm được một lời giải mà lời giải đó không có . HỌC CÔNG NGHỆ THÔNG TIN o0o BÀI THU HOẠCH MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ ĐỀ TÀI: GIẢI BÀI TOÁN NGƯỜI BÁN HÀNG BẰNG GIẢI THUẬT MÔ PHỎNG LUYỆN KIM GIÁO VIÊN HƯỚNG DẪN: PGS.TS metaheuristic; giới thiệu bài toán người bán hàng với các giải thuật để giải nó; tìm hiểu giải thuật mô phỏng luyện kim Simulated Annealing và áp dụng vào giải bài toán người bán hàng. Bên cạnh các. thuyết, bài thu hoạch còn xây dựng một chương trình demo mô phỏng cách giải quyết bài toán người bán hàng theo thuật giải luyện kim. Chương trình đã mô tả, biểu diễn được vấn đề bài toán và đưa