Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
493,19 KB
Nội dung
ĐỒ ÁN MÔN HỌC: THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o GVHD: PGS. TS. ĐỖ VĂN NHƠN HVTH: VŨ QUỐC HƯNG MSHV: CH1301016 KHÓA: CH08 TP. HCM, 01/2014 Mục lục CH1301016 - Vũ Quốc Hưng Giới thiệ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ó. 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) ,…Trong đó 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 đó 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 1 loài. Bài toán tìm kiếm được xem là bài toán được nhiều người quan tâm, đặc biệt là tìm kiếm tối ưu toàn cục. Một thuật toán được xem là lý thuyết vững chắc trong việc giải các bài toán tìm kiếm tối ưu toàn cục đã có nhiều ứng dụng thực tế như: tìm kiếm các trang web cần tìm trên mạng, sắp xếp thời khóa biểu, tìm kiếm đường đi tối ưu … Các bài toán này đều có thể áp dụng thuật toán đàn kiến. Nội dung đồ án này chỉ đề cập đến giải thuật metaheutistic và đặc biệt là thuật toán đàn kiến để thực hiện bài toán tìm kiếm đường đi tối ưu, cụ thể là bài toán người du lịch (TSP) (một bài toán cổ điển thuộc lớp NP-Khó được nghiên cứu sâu trong lĩnh vực tối ưu tổ hợp). Tr 3 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Danh mục hình vẽ Tr 4 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Phần 1:Thuật toán bầy kiến 1.1. Giới thiệu Vào đầu thập niên 90, một thuật toán với tên gọi Tối ưu đàn kiến (Ant Colony Optimization – ACO) được đề xuất như là một phương pháp mới trong việc tìm kiếm lời giải tối ưu cho những bài toán tìm kiếm tối ưu. ACO lần đầu tiên được ứng dụng để giải quyết bài toán người đưa thư (TSP) và gần đây nó đã được mở rộng và cải tiến để áp dụng cho nhiều bài toán khác nhau. Giải thuật ACO đã thu hút được rất nhiều sự chú ý nhờ vào khả năng tối ưu của nó trong nhiều lĩnh vực khác nhau. Thuật toán lấy cảm hứng từ việc quan sát hành vi của đàn kiến trong quá trình tìm kiếm nguồn thức ăn. Người ta đã khám phá ra rằng, đàn kiến luôn tìm được đường đi ngắn nhất từ tổ của chúng đến nguồn thức ăn. Phương tiện truyền đạt tín hiệu được kiến sử dụng để thông báo đến cho những con khác trong việc tìm đường đi hiệu quả nhất chính là mùi của chúng (pheromone). Kiến để lại vệt mùi trên mặt đất khi chúng di chuyển với mục đích đánh dấu đường đi cho các con theo sau. Vệt mùi này sẽ bay hơi dần và mất đi theo thời gian, nhưng nó cũng có thể được củng cố nếu những con kiến khác tiếp tục đi trên con đường đó lần nữa. Dần dần, các con kiến theo sau sẽ lựa chọn đường đi với lượng mùi dày đặc hơn, và chúng sẽ làm gia tăng nồng độ mùi hơn nữa trên những đường đi nhiều. Các đường đi với nồng độ mùi ít hơn sẽ bị loại bỏ và cuối cùng, tất cả đàn kiến sẽ cùng kéo về một đường đi có khuynh hướng trở thành đường đi ngắn nhất từ tổ đến nguồn thức ăn của chúng. Hình 1.1: Luồng đi của đàn kiến thực tế a) Đường đi từ tổ đến nguồn thức ăn Tr 5 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng b) Khi có vật cản kiến sẽ chọn 2 đường đi c) Đường đi ngắn hơn thì sẽ có nhiều mùi hơn Hình 1.2 bên dưới giải thích tình huống bầy kiến trong hình 1.1 b) như sau Hình 1.2: Sơ đồ giải thích tình huống bầy Giả sử khoảng cách DF=BF=DB qua C và = 1, C là điểm nằm giữa B và D(hình 1.2 a). Bây giờ chúng ta xem xét điều gì xảy ra tại những khoảng thời gian rời rạc: t=0, 1, 2… Giả định rằng 30 con kiến mới đi từ A đến B, 30 con từ E đến D, mỗi kiến di chuyển với tốc độ một đơn vị thời gian và khi di chuyển kiến để tại thời điểm t một vệt pheromone với nồng độ là 1. Để đơn giản chúng ta xét lượng pheromone bay hơi hoàn toàn và liên tục trong khoảng thời gian (t+1, t+2). Tại thời điểm t=0, thì không có vệt mùi nào trên cạnh và có 30 kiến ở B, 30 ở D. Việc lựa chọn đường đi của chúng ta ngẫu nhiên do đó, trung bình từ mỗi nút có 15 con kiến sẽ đi đến F và 15 con sẽ đi đến C (hình 1.2 b) Tại thời điểm t=1, 30 con kiến mới đi từ A đến B, lúc này nó sẽ chọn hướng đến C hoặc hướng đến F. Tại hướng đến F có vệt mùi 15 do 15 con kiến đi từ B đến F, tại hướng đến C có vệt mùi 30 do 15 kiến đi từ B đến D và 15 con đi từ D đến B thông qua C (hình 1.2 c). Do đó khả năng kiến hướng đến chọn đường đến C, do đó số kiến mong muốn đi đến C sẽ gấp đôi số kiến đi đến F (20 con đến C và 10 con đến F). Tương tự như vậy cho 30 con kiến mới đi từ D đến B. Quá trình sẽ liên tục cho đến khi tất cả kiến sẽ chọn đường đi ngắn nhất. Sơ đồ chung của thuật toán bầy kiến Tr 6 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Procedure ACO Initial(); While (!ĐK dừng) do ConstructSolutions(); LocalSearch(); /*Tuỳ ý, có thể có hoặc không UpdateTrails(); End; End; Trong đó: ĐK dừng (tức là điều kiện dừng) là điều kiện đạt được khi thuật toán ở trạng thái kết thúc. Với bài toán người đưa thư thì ĐK dừng là điều kiện đạt được khi số vòng lặp của thuật toán = số vòng lặp lớn nhất do người dùng tự định nghĩa hoặc là tất cả đàn kiến đều đi theo một đường (tức là đường đi ngắn nhất). ConstrucSolutions() là hàm xây dựng một giải pháp có thể theo phương pháp siêu tìm kiếm(meta-heuristic), với bài toán người đưa thư thì đó là hàm xây dựng chu trình cho mỗi kiến . UpdateTrails() là hàm cập nhật mùi cho hành trình mà kiến đã đi qua. LocalSearch() là hàm tìm kiếm địa phương, giúp tìm ra tối ưu cục bộ. Tr 7 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Hình 1.3: Sơ đồ chung của thuật toán bầy kiến 1.2. Hệ thống Ant Colony - Đàn kiến nhân tạo Để bắt chước hành vi của các con kiến thực, Dorigo xây dựng các con kiến nhân tạo cũng có đặc trưng sản sinh ra vết mùi để lại trên đường đi và khả năng lần vết theo nồng độ mùi để lựa chọn con đường có nồng độ mùi cao hơn để đi. Gắn với mỗi cạnh (i,j) nồng độ vết mùi và thông số heuristic trên cạnh đó. Ban đầu, nồng độ mùi trên mỗi cạnh (i,j) được khởi tạo bằng một hằng số c, hoặc được xác định theo công thức: (1) Tr 8 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Trong đó: • : nồng độ vết mùi trên cạnh i,j • : số lượng kiến • : chiều dài hành trình cho bởi phương pháp tìm kiếm gần nhất Tại đỉnh i, một con kiến k sẽ chọn đỉnh j chưa được đi qua trong tập láng giềng của i theo quy luật phân bố xác suất được xác định theo công thức sau: (2) Trong đó: • : xác xuất con kiến k lựa chọn cạnh i,j • : hệ số điều chỉnh ảnh hưởng của • : thông tin heuristic giúp đánh giá chính xác sự lựa chọn của con kiến khi quyết định đi từ đỉnh i đến j; được xác định theo công thức: (3) o : Khoảng cách giữa đỉnh i và đỉnh j • : Hệ số điều chỉnh ảnh hưởng của • : Tập các đỉnh láng giềng của i và con kiến k chưa đi qua Quy luật này mô phỏng hoạt động của một vòng quay xổ số nên được gọi là kỹ thuật bánh xe xổ số. Cho một hằng số và một số được tạo ra một cách ngẫu nhiên. Con kiến k ở đỉnh i sẽ lựa chọn đỉnh j kế tiếp để đi theo một quy tắc lựa chọn được mô tả bởi công thức sau: (4) Trong đó: • : giá trị được lựa chọn một cách ngẫu nhiên với một xác suất không thay đổi trong khoảng [0,1] • : là một hằng số cho trước • : là một biến số ngẫu nhiên được lựa chọn theo sự phân bố xác suất cho bởi quy luật phân bố xác suất theo công thức (2) Sau khi cũng như trong quá trình các con kiến tìm đường đi, các vết mùi trên mỗi cạnh sẽ được cập nhật lại, vì chúng bị biến đổi do quá trình bay hơi cũng như quá trình tích lũy mùi khi các con kiến đi trên cạnh đó. Sau mỗi vòng lập, vết mùi trên mỗi cạnh được cập nhật lại theo công thức sau: (5) Trong đó: • : Tỷ lệ bay hơi của vệt mùi • : lượng mùi mà con kiến k để lại trên cạnh i,j được xác định như sau: Tr 9 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng (6) o : là một hằng số o : giá trị mục tiêu trong mỗi vòng lặp Qua thực nghiệm trên cho thấy rõ ràng có khả năng xây dựng được tối ưu hóa đàn kiến: Thông tin để tìm ra con đường ngắn nhất giữa 2 điểm có thể dữa vào quy tắc xác xuất. Có 2 khía cạnh bất đồng quan trọng sau: Phạm vi xem xét các hành vi của hệ thống là trung bình, và không phải những hành vi ứng xử tuân theo biến thiên ngẫu nhiên của đàn kiến là duy nhất. Thực nghiệm trên những thời gian không liên tục, trong khi trước đó mô hình xét trong một thời gian liên tục Mã giả cho thuật toán Ant Colony Procedure AntColonyAlgorithm Khởi tạo các thông tin Pheromone cho các đường đi Do while ( Chưa thỏa mãn điều kiện dừng ) Do until ( Mỗi Ant hoàn thành một đường đi ) Cập nhật thông tin pheromone cục bộ (Local trail update) End Do Phân tích các lời giải thu được (Analyze solution) Cập nhật thông tin pheromone toàn cục (Global trail update) End Do End Procedure Đối với thuật toán ACO, sự hội tụ được đảm bảo tuy nhiên tốc độ và thời gian thì không biết trước, thường sử dụng để giải quyết các vấn đề tối thiểu về giá thành. Thường các bài toán trước khi được giải bằng thuật toán ACO phải được biến đổi đưa về dạng đồ 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. Procedure ACO_Metaheuristic parameter_initialization while (termination_criterion_not_satisfied) schedule_activities ants_generation_and_activity ( ) Tr 10 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư [...]... Vũ Quốc Hưng Tr 30 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Kết luận Đồ án này tập trung đi sâu vào nghiên cứu giải thuật đàn kiến và các phương pháp cải tiến nó, giúp hiểu rõ hơn về quá trình hình thành, phát triển cũng như bản chất, cách thức mà giải thuật đàn kiến hoạt động, đồng thời áp dụng giải thuật này vào bài toán người đưa thư, một bài toán thuộc thể loại... đi sâu vào phân tích các giải thuật khác cho bài toán người đưa thư để có thể so sánh, tìm ra điểm mạnh yếu của giải thuật này so với các giải thuật metaheuristic khác như giải thuật di truyền, luyện thép CH1301016 - Vũ Quốc Hưng Tr 31 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Tài liệu tham khảo [1] Đoàn Duy Bình, Ứng dụng giải thuật Meta-Heuristic trong bài toán tìm... Quốc Hưng Tr 24 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Phần 3: Demo Ứng dụng 3.1 Giao diện chương trình Màn hình chính Hình 3.1 Giao diện chương trình Danh mục Menu Hình 3.2 Giao diện chức năng Giao diện cài đặt Hình 3.3 Giao diện form cài đặt CH1301016 - Vũ Quốc Hưng Tr 25 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư 3.2 Một số hàm... Hưng Tr 19 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Phần 2: Bài toán người đưa thư 2.1 Giới thiệu Bài toán người đưa thư (Travelling 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 điểm và khoảng cách giữa... 17 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư = end if for to do for each edge do end for end for for each edge do end for end Procedure 1.3.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. .. 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ài toán người đưa thư (TSP) là một trong những bài toán kinh điển và được đầu tư nghiên cứu trong một thời gian dài Nó góp phần quan trọng vào việc nghiên cứu giải thuật ACO: các giải thuật ACO nguyên thủy và những cải tiến của giải thuật này về sau đều được áp dụng mô phỏng bởi bài toán người du lịch CH1301016... Hưng Tr 11 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Trong đó thủ tục ants_generation_and_activity() là thủ tục chính, cơ bản của giải thuật Thủ tục này công việc chính gồm: Tạo và khởi tạo các thông số cho đàn kiến Với mỗi con kiến trong đàn sẽ tiến hành xây dựng một lời giải cho bài toán khi chưa thỏa mãn điều kiện dừng Ngoài ra có hai thủ tục phụ thêm vào là: Pheromone_evaporation():... Quốc Hưng Tr 21 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Mỗi cung (i,j) thuộc A được gán một giá trị mô tả chiều dài của đường đi giữa hai đỉnh i, j với i, j thuộc N Mục đính cuối cùng của bài toán người đưa thư là tìm ra chu trình Hamilton ngắn nhất của đồ thị G có n đỉnh với n là số điểm mà người đưa thư phải đi qua Như vậy kết quả tốt nhất của bài toán chính là... - Vũ Quốc Hưng Tr 13 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư release_ant_resources (ant_id) end Procedure 1.3.2 Thuật toán Ant Colony System (ACS) Phát triển từ thuật toán AS với một số cải thiện như sau: Sử dụng một luật khác cho việc di chuyển, gọi là pseudo-random proportional rule Gọi k là con kiến đang ứng tại nút r là một tham số, và một giá trị ngẫu nhiên... tính liên thông và bảo đảm bậc mỗi đỉnh luôn lơn hơn hay bằng 2 Mô tả thuật toán CH1301016 - Vũ Quốc Hưng Tr 22 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư Tìm kiếm danh sách thứ tự các điểm mà người đưa thư có thể di chuyển đến từ điểm hiện tại, rở lại điểm xuất phát sau khi đi qua tất cả các điểm còn lại mỗi điểm một lần với khoảng cách ít nhất c) Thuật toán While (Chưa . Procedure Tr 19 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Phần 2: Bài toán người đưa thư 2.1. Giới thiệu Bài toán người đưa thư (Travelling. người đưa thư CH1301016 - Vũ Quốc Hưng Danh mục hình vẽ Tr 4 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người đưa thư CH1301016 - Vũ Quốc Hưng Phần 1 :Thuật toán bầy kiến 1.1 là bài toán người du lịch (TSP) (một bài toán cổ điển thuộc lớp NP-Khó được nghiên cứu sâu trong lĩnh vực tối ưu tổ hợp). Tr 3 Nghiên cứu thuật giải đàn kiến và ứng dụng giải quyết bài toán người