1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ư

33 980 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 493,19 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ânbằ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 n

Trang 1

MSHV: CH1301016 KHÓA: CH08



TP HCM, 01/2014

Trang 2

M c l c ục lục ục lục

Giới thiệu 2

Danh mục hình vẽ 3

Phần 1:Thuật toán bầy kiến 4

1.1 Giới thiệu 4

1.2 Hệ thống Ant Colony - Đàn kiến nhân tạo 7

1.3 Các sơ đồ thuật toán 11

1.3.1 Thuật toán Ant System (AS) 11

1.3.2 Thuật toán Ant Colony System (ACS) 13

1.3.3 Thuật toán Max-Min Ant System (MMAS) 15

1.3.4 Thuật toán Rank-Based Ant System (RBAS) 16

1.3.5 Thuật toán Best-Worst Ant System (BWAS) 17

Phần 2: Bài toán người đưa thư 20

2.1 Giới thiệu 20

2.2 Phát biểu bài toán 21

2.3 Mục tiêu bài toán 21

2.4 Các bước tiến hành 22

2.5 Sử dụng nguyên lý tham lam cho bài toán người du lịch 22

2.6 Giải thuật ACO cho bài toán người du lịch 23

Phần 3: Demo Ứng dụng 25

3.1 Giao diện chương trình 25

3.2 Một số hàm trong chương trình 26

Kết luận 31

Tài liệu tham khảo 32

Trang 3

Gi i thi u ới thiệu ệu

Metaheuristic là một cách gọi chung cho các giải thuật heuristic trong việc giảiquyết các bài toán tổ hợp khó Metaheuristic bao gồm những chiến lược khác nhautrong 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ácnhau 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 giantì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ânbằ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ảithuật đàn kiến (ACO) ,…Trong đó giải thuật đàn kiến là metaheuristic dùng chiến lượccủ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ácsuấ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ệcgiả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ếmcá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ậttoá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ĩnhvực tối ưu tổ hợp)

Trang 4

Danh m c hình vẽ ục lục

Hình 1.1: Luồng đi của đàn kiến thực tế 4

Hình 1.2: Sơ đồ giải thích tình huống bầy 5

Hình 1.3: Sơ đồ chung của thuật toán bầy kiến 7

Hình 2.1: Mô hình ví dụ về bài toán TSP 21

Hình 2.2: Sơ đồ thuật toán ACO cho bài toán TSP 24

Hình 3.1 Giao diện chương trình 25

Hình 3.2 Giao diện chức năng 25

Hình 3.3 Giao diện form cài đặt 25

Trang 5

Ph n 1:Thu t toán b y ki n ần 1:Thuật toán bầy kiến ật toán bầy kiến ần 1:Thuật toán bầy kiến ến

1.1 Gi i thi u ới thiệu ệ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 ColonyOptimization – ACO) được đề xuất như là một phương pháp mới trong việc tìm kiếm lờigiả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ảiquyết bài toán người đưa thư (TSP) và gần đây nó đã được mở rộng và cải tiến để ápdụ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 vicủ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 conkhá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 chocá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 đivớ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ủachú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

Trang 6

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

A

B

C D

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 dichuyể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ệtpheromone với nồng độ là 1 Để đơn giản chúng ta xét lượng pheromone bay hơi hoàntoà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ó 15con 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ạihướ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 mongmuố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

Trang 7

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áikế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ặpcủ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ả đànkiế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ápsiê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 chutrì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ộ

Trang 8

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 ệu ống Ant Colony - Đàn kiến nhân tạo ến ạ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ântạ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 theonồ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 τ ij và thông số heuristic μ ij 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:

Trang 9

C nn: 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ềngcủa i theo quy luật phân bố xác suất được xác định theo công thức sau:

P i j k

Trong đó:

P ij k: 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 τ ij

μ ij: thông tin heuristic giúp đánh giá chính xác sự lựa chọn của con kiến khiquyết định đi từ đỉnh i đến j; được xác định theo công thức:

o d ij: Khoảng cách giữa đỉnh i và đỉnh j

β : Hệ số điều chỉnh ảnh hưởng của μ ij

N k j: 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ố 0 ' ' q0' ' 1 và một số 0 ' ' q ' ' 1 đượ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:

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:

Trang 10

0<q ' ' 1: Tỷ lệ bay hơi của vệt mùi

∅ τ ij k(t): lượng mùi mà con kiến k để lại trên cạnh i,j được xác định như sau:

∅ τ ij k={f (k) Q Nếu con kiến k đi qua cạnh(i , j)

0 Ngược lại

(6)

o Q: là một hằng số

o f (k ): 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ắcxá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ữnghà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éttrong một thời gian liên tục

Mã giả cho thuật toán Ant Colony

Đố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 địnhhướ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ớiviệc thực hiện song song hoạt động của các con kiến

Procedure AntColonyAlgorithm

Khởi tạo các thông tin Pheromone cho các đườ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

Trang 12

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 đànkiế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 khichư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(): Là tác động của môi trường để làm giảm thông

tin pheromone theo thời gian Thủ tục này để tránh bế tắc trong tìm kiếm và cho phépđàn kiến mở rộng không gian tìm kiếm

Daemon_action(): Là thủ tục hỗ trợ thêm và không gặp trong thực tế (không

có ở đàn kiến tự nhiên) Là một thủ tục để điều chỉnh các thông số khi cần thiết làmtăng tính hiệu quả của thuật toán Ví dụ: Thủ tục tìm kiếm cục bộ, thủ tục khởi tạo lạicác thông tin pheromone khi gặp bế tắc trong tìm kiếm

1.3 Các s đ thu t toán ơ đồ thuật toán ồ thuật toán ật toán bầy kiến

Nhiều thuật toán đã được đưa ra dựa trên mô hình thuật toán metaheuristicACO Trong các mô hình đưa ra để giải quyết các bài toán tổ hợp tối ưu NP-khó Các

mô hình này là phát triển dựa trên mô hình thuật toán ACO cụ thể được trình bày bêntrên Theo các nghiên cứu cho thấy khi sử dụng thuật toán bầy kiến nói chung cácthông tin pheromone và heuristic có thể áp dụng cho các nút hoặc cạnh nối Trong cácthuật toán đưa ra sau đây thì thông tin pheromone và heuristic chỉ gắn với các cạnh màthôi Phần này chỉ đưa ra 5 mô hình thuật toán ACO phát triển từ hệ thống AntSystem 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ấtnhiều các biến thể khác

1.3.1.Thu t toán Ant System (AS) ật toán bầy kiến

Được phát triển bởi Dorigo, Maniezzo và Colorni năm 1991, là thuật toán ACOđầu tiên Ban đầu có 3 biến thể khác nhau là: AS-Density, AS-Quantity và AS-Cyclekhác nhau bởi cách thức cập nhật thông tin Pheromone

Trong đó:

 AS-Density: Thì đàn kiến sẽ đặt thêm pheromone trong quá trình xây dựnglời giải (online step-by-step pheromone update), lượng pheromone để cập nhật là mộthằng số

Trang 13

 AS-Quantity: Thì đàn kiến sẽ đặt thêm pheromone trong quá trình xây dựnglời giải (online step-by-step pheromone update), lượng pheromone để cập nhật là phụthuộc vào độ mong muốn (thông tin heuristic) với đoạn đường đi qua ηij.ij.

 AS-Cycle: Thông tin pheromone sẽ được cập nhật khi lời giải đã hoàn thành(online delayed pheromone update) Đây là mô hình cho kết quả tốt nhất và được coinhư là thuật toán AS

Như vậy theo mô hình của AS-cycle thì pheromone sẽ cập nhật khi tất cả conkiến hoàn thành lời giải của mình.Việc cập nhật pheromone được tiến hành như sau:

 Đầu tiên tất cả pheromone trên các cung sẽ được giảm đi bởi một hằng số(pheromone evaporation)

τ ij ←(1− p)τ rs

Với p trong khoảng (0,1) là tốc độ bay hơi của pherromone

 Tiếp theo mỗi con kiến trong đàn sẽ đặt thêm một lượng thông tinpheromone, lượng pheromone này là hàm của chất lượng lời giải mà con kiến xâydựng

Thuật toán này được tóm tắt như sau:

Procedure new_ant (ant_id)

Trang 14

r = next_state ; S k=¿S k ,r >¿

-L k=L k ∪r

end while{

the pheromone_evaporation ( ) procedure triggers and

evaporates pheromone in every edge a rs :τ rs=(1− p)τrs}

for each edge a rs ∈ S k do

τ rs=τ rs+f (C(S k))

end for

release_ant_resources (ant_id)

end Procedure.

1.3.2.Thu t toán Ant Colony System (ACS) ật toán bầy kiến

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 q0 là một tham số, và một giá trị ngẫu nhiên

q Trong đó giá trị của q và q0 là trong khoảng (0,1) Nút s tiếp theo được chọn để dichuyển kiến k tới được chọn như sau:

 Có Daemon action, thực hiện việc cập nhật pheromone chỉ duy nhất với

lời giải S global−best Cập nhật theo công thức như sau:

τ rs ←(1−p ) τ rs ∀ a rs ∈ S global−best

Trang 15

 Áp dụng online step-by-step pheromone update

τ rs ←(1−φ) τ rs+φ τ0

Trong đó φ là một tham số để giảm pheromone thứ hai sau p Còn τ0 được chọn

là một tham số rất bé (như là ngưỡng dưới của pheromone)

Thuật giải được tóm tắt như sau:

Procedure new_ant (ant_id)

k = ant_id ; r = generate_initial_state;S k=r; Lk=r

while (current-state ≠ target_state)

for each s∈ N k(r) do compute b rs=τ rs μ rs β

Trang 16

S current −best=¿ best_solution (S k)

if (better (S current −best , S global−best))

S global−best=S current −best

end if

for each edge a rs ∈ S global−best do

{ the pheromone_evaporation ( ) procedure triggers and

evaporates pheromone in every edge a r s :τ rs=(1− p)τrs}

τ rs=τ rs+p f (C(S global−best))

end for

end Procedure.

1.3.3.Thu t toán Max-Min Ant System (MMAS) ật toán bầy kiến

Được phát triển bởi Stutzle và Hooss vào năm 1996, được mở rộng lên từ hệthống AS Một số đặc điểm được mở rộng từ hệ thống AS như sau

 Giống như ACS, MMAS thực hiện offline pheromone trail update, tức làsau khi toàn bộ kiến trong đàn hoàn thành lời giải thì việc cập nhật được tiến hành cholời giải tối ưu Đầu tiên thực hiện bay hơi bớt thông tin pheromone (pheromoneevaporation) trên tất cả các cạnh

 Một cải tiến quan trọng trong hệ thống MMAS là việc thêm vào giới hạn

cận trên và dưới của thông tin Pheromone (τ max và τ min), điều đó giúp tránh hội tụ tạiđiểm tối ưu cục bộ Khởi tạo tất cả thông số Pheromone giá trị cận trên để ưu tiên việc

khai phá không gian tìm kiếm Cận trên τ max thường được chọn là giá trị lớn nhất màPheromone có thể đạt được ở vòng lặp cuối cùng

τ max=1 /¿

Trong đó S là lời giải tối ưu, bởi vì lời giải tối ưu không biết trước nên thông

thường được thay thế bởi S global−best trong tính toán

Ngày đăng: 23/05/2015, 00:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đoàn Duy Bình, Ứng dụng giải thuật Meta-Heuristic trong bài toán tìm đường đi ngắn nhất, 2010 Khác
[2] Geoyar, Applying Ant Colony Optimization Algorithms to Solve the Traveling Salesman Problem 13/09/2013 Khác
[3] James McCaffrey, Test Run - Ant Colony Optimization, MSDN Magazine 02/2012 [4] Jean-Luc Ngassa, Jakob Kierkegaard, ACO and TSP, Roskilde University, Bachelor of Computer Sciences, 2nd module, 29/05/2007 Khác
[5] M. Dorigo, Thomas Stutzle, Ant Colony Optimaziton, 2004 Khác
[6] Phạm Hồng Luân, Dương Thành Nhân, Nghiên cứu ứng dụng thuật toán ACO tối ưu thời gian và chi phí cho dự án xây dựng, 24/12/2009 Khác
[7] Trần Đan Thư, Dương Anh Đức, Lý thuyết đồ thị, 09/2008 Khác

HÌNH ẢNH LIÊN QUAN

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 - 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ư
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 (Trang 5)
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 - 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ư
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 (Trang 6)
Hình 1.3: Sơ đồ chung của thuật toán bầy kiến - 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ư
Hình 1.3 Sơ đồ chung của thuật toán bầy kiến (Trang 8)
Hình 2.1: Mô hình ví dụ về bài toán TSP - 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ư
Hình 2.1 Mô hình ví dụ về bài toán TSP (Trang 21)
Hình 2.2: Sơ đồ thuật toán ACO cho bài toán TSP b) Thuật toán - 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ư
Hình 2.2 Sơ đồ thuật toán ACO cho bài toán TSP b) Thuật toán (Trang 24)
Hình 3.1 Giao diện chương trình - 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ư
Hình 3.1 Giao diện chương trình (Trang 25)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w