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 tính toán 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.. Trong phạm vi bài thu ho
Trang 1BÀI THU HOẠCH MÔN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
TÌM HIỂU CÁC THUẬT GIẢI METAHEURISTICS ĐỂ GIẢI BÀI TOÁN CÂY STEINER
MÃ SỐ LỚP : CH08HỌC VIÊN THỰC HIỆN : HÀ THANH NHẤT
MÃ SỐ HỌC VIÊN : CH1301104GIẢNG VIÊN PHỤ TRÁCH : PGS.TS ĐỖ VĂN NHƠN
TP HỒ CHÍ MINH, THÁNG 10/2014
Trang 2Em xin chân thành cảm ơn sâu sắc đến PGS.TS ĐỖ VĂN NHƠN, người thầy đã
truyền đạt cho em những kiến thức về thuật toán và phương pháp giải quyết vấn
đề khi em tham gia khóa học
Xin được cảm ơn các anh/chị học cùng khóa đã đóng góp và chia sẻ tài liệu về
môn học, giúp em hoàn thành tốt bài thu hoạch này
MỤC LỤC
LỜI NÓI ĐẦU
Bài toán tối ưu tổ hợp là bài toán có độ phức tạp 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 tính
toán 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
Metaheuristics hợp nhất các khái niệm từ nhiều lĩnh vực khác nhau như di
truyền học, sinh vật học, trí tuệ nhân tạo, toán học và vật lý… Có thể kể một số
thuật giải metaheuristics như:
Giải thuật luyện thép (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
Giải thuật di truyền (GA): 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
Giải thuật đàn kiến (ACO): 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
Trong phạm vi bài thu hoạch này, em xin trình bày các giải thuật có hướng tiếp
cận dựa trên tập cá thể (GA và ACO) để giải quyết bài toán cây Steiner
Bài toán Steiner là thuộc lớp bài toán NP khó và trên thực tế chưa có tác giả
nào tìm được thuật toán hiệu quả để nó một cách chính xác Nó có rất nhiều ứng
dụng trong thiết kế mạch tích hợp cỡ lớn, thiết kế mạng, thiết kế kiến trúc xây
Trang 3dựng … Chi tiết về bài toán cũng như các giải pháp sẽ được em trình bày trong
bài thu hoạch này
Trang 41 GIỚI THIỆU BÀI TOÁN CÂY STEINER
Có rất nhiều phát biểu về bài toán cây Steiner Dưới đây là hai phát biểu theo lý
thuyết về hình học và lý thuyết về đồ thị
1.1 Phát biểu bài toán Steiner trên mặt phẳng
Cho ba điểm trên mặt phẳng, tìm một điểm thứ tư sao cho tổng khoảng cách
từ điểm này tới ba điểm đã cho có giá trị nhỏ nhất.
Bài toán này của Fermat sau đó đã được Heinen giải vào năm 1834 Tuy nhiên,
phải mất hơn một thế kỷ, chỉ sau khi Courant và Robbins cho xuất bản cuốn sách
mang tên “What is Mathematics” thì bài toán của Fermat và các biến thể của nó
mới được biết đến dưới tên bài toán Steiner như một sự ghi nhớ những đóng góp
to lớn của nhà bác học Jacob Steiner đối với nền toán học Từ đó đến nay, rất
nhiều phiên bản khác nhau của bài toán đã ra đời để đáp ứng nhu cầu ứng dụng
trên thực tế
Một cách tổng quát, bài toán cây Steiner được phát biểu như sau:
Cho một tập điểm P, tìm phương án nối các điểm này lại với nhau sao cho
chi phí để nối các điểm này là nhỏ nhất Trong quá trình nối có thể bổ sung
những điểm cần thiết với số lượng không hạn chế để đạt được yêu cầu của bài
toán.
Vào những năm 1960, Melzak là người đầu tiên đưa ra một giải thuật có độ
phức tạp hàm mũ để giải bài toán trên mặt phẳng Tuy giải thuật của Melzak
không mang giá trị thực tế cao nhưng sự xuất hiện của một giải thuật hữu hạn
cho bài toán Steiner cùng với một số công trình nghiên cứu rất có giá trị của hai
tác giả Gilbert và Pollack vào cùng thời gian đó đã là một “cú hích” tác động
mạnh tới cộng đồng những nhà toán học nghiên cứu nói chung và những người đi
sâu về lĩnh vực tối ưu hóa nói riêng
Trang 51.2 Phát biểu bài toán Steiner trên đồ thị
Cho G = (V, E) là một đồ thị vô hướng, mỗi cạnh e ∈ E được gán với một trọng
số thực không âm N là một tập con các đỉnh của đồ thị gọi là tập các đỉnh kết
thúc
Một cây T của đồ thị G được gọi là cây Steiner nếu nó chứa tất cả các đỉnh kết
thúc, nghĩa là N ⊆ V(T) Các đỉnh thuộc V \ N (được gọi là các đỉnh không kết
thúc) cũng có thể xuất hiện trong T, nếu thuộc T chúng được gọi là nút Steiner
Bài toán cây Steiner trên đồ thị được phát biểu như sau:
Tìm cây Steiner có trọng số nhỏ nhất trong tất cả các cây Steiner của đồ thị.
Cây T như vậy được gọi là cây Steiner nhỏ nhất.
Bài toán này thuộc lớp NP khó Do vậy, một thuật toán đa thức để giải bài toán
là không tồn tại ngoại trừ P = NP
Hai trường hợp riêng của bài toán Steiner giải được với điều kiện:
Tất cả các đỉnh của đồ thị đều là đỉnh kết thúc (1)
Chỉ có 2 đỉnh kết thúc (2)
Với bài toán 1: lời giải chính là cây khung nhỏ nhất của đồ thị có thể tìm được
nhờ thuật toán Kruskal.
Với bài toán 2: lời giải tối ưu chính là đường đi ngắn nhất giữa hai đỉnh kết
thúc trong đồ thị có thể tìm được nhờ thuật toán Dijsktra.
1.3 Một số ứng dụng của bài toán
1.3.1 Bài toán truyền thông đa hướng
Cho một mạng máy tính được biểu diễn bởi một đồ thị trọng số vô hướng G (V,
E, f), một tập con T các đỉnh của V được gọi là một nhóm truyền thông và một
điểm s được gọi là một máy nguồn
Bài toán yêu cầu tìm một topogoly nối tất cả các máy trong nhóm truyền
thông T ∪ s sao cho tổng số các kênh nối (trong một số trường hợp có thể là
tổng độ dài các kênh nối) cần sử dụng là nhỏ nhất mà vẫn thỏa mãn các ràng
buộc của mạng như tốc độ đường truyền, dung lượng băng thông …
Trang 61.3.2 Bài toán kết nối nhóm
Cho một đồ thị vô hướng G(V, E) và tập các đỉnh T1, T2, …… Tn⊂ V
Bài toán yêu cầu tìm một đồ thị con G ’ của G thỏa mãn hai điều kiện sau:
- Mỗi tập con T i , i = 1…n phải có ít nhất một điểm trong G.
- Độ dài của đồ thị G ’ phải đạt cực tiểu.
1.3.3 Bài toán Steiner nhiều pha
Hơi khác so với bài toán kết nối nhóm, bài toán Steiner nhiều pha yêu cầu phải
chứa được tất cả các tập đỉnh T1, T2, … Tn
Cho một đồ thị G(V, E) và tập các đỉnh T1, T2, …… Tn⊂ V Gọi S1, S2, … Sn là
các đồ thị con liên thông của T1, T2, … Tn
Bài toán đặt ra yêu cầu tìm một đồ thị có giá trị cực tiểu và chứa tất cả các
đồ thị liên thông.
1.3.4 Bài toán mạng Steiner nhiều pha
Cho một đồ thị G(V, E) và các tập con của V: X1, Y1, X2, Y2… Xn, Yn với Xi
∩ Yi = ∅
Bài toán yêu cầu tìm một đồ thị con G ’ của G thỏa mãn hai điều kiện:
- Với mỗi i = 1…n, G ’ chứa một cây Steiner S i của X i
- Các điểm Steiner của S i chỉ được lấy từ Y i
1.3.5 Bài toán giật giải
Cho một đồ thị G(V, E), xuất phát từ một phương án nào đó, bài toán sẽ kết nạp
một đỉnh của G vào phương án này, với mỗi một điểm mới được kết nạp vào,
một giá trị k = v (độ dài của các cạnh vừa kết nạp vào phương án) sẽ được cộng
vào hàm mục tiêu của phương án Mục tiêu tối ưu của bài toán này là làm cực đại
giá trị hàm mục tiêu của phương án cuối cùng Trong công thức tính k ở trên, v là
một hằng số được gắn với mỗi đỉnh trên đồ thị G
1.3.6 Thiết kế mạch VLSI
Trong bước thiết kế vật lý của vi mạch VLSI, pha đi dây bao gồm việc xác định
sơ đồ nối dây cho các điểm nối của từng khối hay từng cổng trên chip Một mạng
trên chip là tập hợp các điểm cần phải nối với nhau, thường bao gồm một điểm
Trang 7nguồn và nhiều điểm đích Trong việc đi dây, sơ đồ kết nối được đặc tả cho một
số lượng lớn các mạng Kết nối thường được thực hiện trên một mạng cùng lúc
Mỗi phương án kết nối cho một mạng đơn là một cây Steiner phủ các điểm nối
Nhiều yêu cầu tối ưu đặt ra cho việc nối mạng phụ thuộc vào chức năng của từng
mạng Việc thiết kế VLSI, các đường nối chỉ là đường ngang dọc trên bảng
mạch Bài toán tối ưu chiều dài dây nối được đưa về một biến thể của bài toán
cây Steiner, đó là bài toán cây Steiner thẳng góc trên đồ thị lưới
1.3.7 Bài toán phát sinh loài
Sự phát sinh loài được biểu diễn bằng một cây tiến hóa Nghiên cứu xây dựng
cây phát sinh loài là một trong những bài toán tính toán cơ bản trong sinh học Ta
quan tâm ở đây tới sự phân loài được mô tả bởi các tính trạng mà chúng thể hiện
ra từ tập các đặc tính Dữ liệu trên được mô tả dưới dạng bảng nhị phân, phần tử
(i, j) nhận giá trị 0 hoặc 1 tương ứng với loài i không có tính trạng j hoặc có tính
trạng j Sự khác biệt giữa hai loài được đo bằng khoảng cách Hamming giữa hai
vector tính trạng
Bài toán đặt ra là xây dựng cây tiến hóa sao cho sự khác biệt giữa các loài
đạt giá trị nhỏ nhất chính là giải bài toán cây Steiner nhỏ nhất
Các điểm kết thúc là các vector tính trạng của loài, các nút trung gian bản thân
cũng là các vector nhị phân, chúng nằm trên cạnh nối từ gốc đến lá Trọng số của
các cạnh đo bằng khoảng cách Hamming
1.4 Các thuật toán/thuật giải để giải quyết bài toán Steiner
1.4.1 Thuật toán Dreyfus-Wagner
Cho đồ thị vô hướng liên thông G = (V, E), T là tập đỉnh kết thúc của đồ thị
(G, c, T) là một thể hiện của bài toán, với mọi tập U ⊆ T và x V(G)\U, ta định
Trang 8 distG (x, y) là chiều dài đường đi ngắn nhất giữa cặp đỉnh x, y trong G.
Mã giả của thuật toán (sử dụng quy hoạch động)
Input Đồ thị vô hướng liên thông G, trọng số c và tập đỉnh kết thúc T
Output Trọng số p(T) của cây Steiner nhỏ nhất phủ tập T của đồ thị G
1 BEGIN
2 Nếu |T| ≤ 1 thì p(T) = 0, kết thúc thuật toán;
3 Tính distG(x,y) và đặt p(x,y) = distG(x,y) cho mọi x, y;
4 for k=2 to |T|-1
5 for (U ⊆ T, |U|=k) và (xV(G)\U)
6 Tính q(U{x}, x) theo công thức (a);
8 for (U ⊆ T, |U|=k) và (xV(G)\U)
9 Tính p(U{x}) theo công thức (b);
1.4.2 Các thuật giải metaheuristic
Bài toán cây Steiner là thuộc loại bài toán tối ưu tổ hợp nên việc sử dụng các kỹ
thuật tìm kiếm metaheuristic để tiếp cận giải quyết bài toán sẽ tốt hơn
Metaheuristic không được đảm bảo về mặt lý thuyết là có thể đưa ra lời giải tối
Trang 9ưu, nhưng qua những thử nghiệm thực tế, kết quả mà các phép tìm kiếm
metaheuristic mang lại rất khả quan
Chi tiết về các thuật giải metaheuristic sẽ được trình bày ở phần tiếp theo đây
2 GIỚI THIỆU VỀ METAHEUTISTIC
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
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 hai 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 đã được đề xuất cho nhiều metaheuristic Thuật giải
di truyền và đàn kiến đề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
Trong bài thu hoạch này, em xin trình bày hai giải thuật metaheuristic là: thuật
giải di truyền(GA) và thuật giải đàn kiến (ACO)
3 THUẬT GIẢI DI TRUYỀN
3.1 Lịch sử phát triển
Tính toán tiến hóa được I Rechenberg giới thiệu vào những năm 1960 trong
công trình “Evolution Stragies” (Những chiến lược tiến hóa) Ý tưởng của ông đã
được các nhà khoa học nghiên cứu phát triến tiếp
Trang 10Giải thuật di truyền do John Holland phát minh và được ông phát triển cùng vớicác đồng nghiệp và sinh viên Cuốn sách "Adaption in Natural and ArtificialSystems" (Sự thích nghi trong các hệ tự nhiên và nhân tạo) xuất bản năm 1975 đãtổng hợp các kết quả của quá trình nghiên cứu và phát triển đó.
Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyếtmột số bài toán và gọi phương pháp này là "Genetic Programming" (GP)
Năm 1996, thư viện các hàm C++ cho GA (GALib) đã được Mathew Wall,trường Đại học Massachussets (Massachusetts Institute of Technology) đưa ra.Đây là các công cụ sử dụng giải thuật di truyền cho tối ưu hoá các chương trình
có sử dụng sự biểu diễn hay các toán tử di truyền
Ngày nay giải thuật di truyền càng trở nên quan trọng, đặc biệt là trong lĩnh vựctối ưu hoá, một lĩnh vực có nhiều bài toán thú vị, được ứng dụng nhiều trong thựctiễn nhưng thường khó và chưa có giải thuật hiệu quả để giải
3.2 Các khái niệm cơ bản
3.2.1 Nhiễm sắc thể (Chromosome)
Nhiễm sắc thể (NST) hay còn gọi là cá thể Các sinh vật sống đều cấu tạo từ cá
tế bào, và tất cả các tế bào này đều bao gồm một tập hợp các nhiếm sắc thể giốngnhau Các NST này là một chuỗi các ADN, quy định đặc tính của cả cá thể MỗiNST bao gồm rất nhiều GEN, mỗi gen quy định một trạng thái nào đó
Trong bài toán tối ưu, cá thể tương ứng với một lời giải tiềm tàng
Trang 11khả năng đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản Các cá thể khôngthích nghi được với điều kiện sống thì dần mất đi Dựa vào nguyên lý của quátrình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong GAchính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theohoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn
Tuy nhiên, quá trình chọn lọc mang rất nhiều yếu tố ngẫu nhiên Có nhiều cách
để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ cókhả năng được chọn cao hơn
3.2.4 Lai ghép (CrossOver)
Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế hệcon Trong giải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tínhchất (thành phần) trong hai lời giải cha mẹ nào đó để sinh ra một lời giải mới mà
có đặc tính mong muốn là tốt hơn thế hệ cha mẹ Đây là một quá trình xảy ra chủyếu trong giải thuật di truyền
3.2.5 Đột biến (Mutation)
Đột biến là một sự biến đổi tại một (hay một số) gen của NST ban đầu để tạo ramột NST mới Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thểban đầu Tuy nhiên trong giải thuật di truyền thì ta luôn muốn tạo ra những phépđột biến cho phép cải thiện lời giải qua từng thế hệ Đột biến cũng mang tính chấtngẫu nhiên
3.2.6 Hàm thích nghi (Fitness Function)
Trong tự nhiên, chỉ có những cá thể nào thích nghi được với môi trường thì mớitồn tại, không nó sẽ bị diệt vong GA đưa ra khái niệm hàm thích nghi, hay hàmsức khỏe để đánh giá một cá thể hay một lời giải, so với các cá thể khác Từ đómới có thể chọn lựa được các lời giải tốt cho các thế hệ sau Hàm thích nghi cũng
là một tiêu chí đánh giá mức độ tiến hóa của quần thể
Trang 123.3 Mô tả thuật giải
GA được lấy cảm hứng từ Thuyết tiến hóa của Darwin Lời giải của một bàitoán được giải bằng GA sử dụng quá trình tiến hóa
Giải thuật bắt đầu bằng một tập các lời giải, được biểu diễn bằng các NST, gọi
là Quần Thể Các lời giải này được lấy ra và sử dụng để tạo nên quần thể mới,với một mong muốn quấn thể mới sẽ tốt hơn quần thể cũ Những lời giải đượcchọn từ quần thể mới hay thế hệ con cháu theo độ thích nghi Chúng càng thíchnghi cao, chúng càng có nhiều cơ hội để tái sinh sản
[Bắt đầu] Sinh ngẫu nhiên một quần thể gồm n cá thể (là n lời giải cho bài
toán)
[Thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể x trong quần thể
[Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi
quần thể mới hoàn thành
[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của
chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)
[Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai cá thể bố mẹ
để tạo ra một cá thể mới
[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá thể mới
[Chấp nhận] Thay con mới vào quần thể
[Thay thế] Sử dụng quần thể mới cho quá trình tiếp theo của thuật toán
[Thử nghiệm] Nếu điều kiện dừng được thoã mãn thì thuật toán kết thúc và trả
về lời giải tốt nhất trong quần thể hiện tại
[Vòng lặp ] Quay lại bước 2
3.4 Điều kiện dừng của thuật giải
Kết thúc theo kết quả: tức là khi giá trị thích nghi của cá thể trong quần thể cógiá trị sai số nhỏ hơn một giá trị ε cho trước thì dừng thuật toán
Kết thúc dựa trên số thế hệ: khi số lượng tiến hóa của quần thể đến một giớihạn cho phép thì dừng thuật giải mà không quan tâm đến chất lượng của cá thểtrong quần thể đó như thế nào
Trang 13Tính theo thời gian: phụ thuộc vào thời gian chạy chương trình được quy địnhtrước.
Kết hợp nhiều phương pháp khác nhau: kết hợp nhiều điều kiện khác nhau đểdừng thuật toán
4 THUẬT GIẢI ĐÀN KIẾN
4.1 Lịch sử phát triển
4.1.1 Đàn kiến tự nhiên
Loài kiến là loài sâu bọ có tính chất xã hội, chúng sống thành từng đàn, bởi vậy
có sự tác động lẫn nhau, chúng thạo tìm kiếm thức ăn và hoàn thành nhữngnhiệm vụ từ kiến chỉ huy Một điều thú vị trong tìm kiếm thức ăn của vài conkiến đặc biệt là khả năng của chúng để tìm kiếm đường đi ngắn nhất giữa tổ kiến
và nguồn thức ăn Trên thực tế, điều dễ nhận thấy có trong suy nghĩ nhưng nhiềucon kiến hầu hết không nhận ra vì chúng không dùng thị giác để tìm kiếm nhữngđầu mối thức ăn
Trong quá trình đi giữa tổ và nguồn thức ăn, vài con kiến tích tụ một chất đượcgọi là mùi lạ (pheromone) Nếu không có mùi lạ sẵn có, những con kiến dichuyển ngẫu nhiên, nhưng khi có mặt của mùi lạ này chúng có xu hướng đi theomùi lạ
Trên thực tế, cuộc thí nghiệm của nhà nghiên cứu sinh là những con kiến theothuyết tự nhiên thích những con đường được đánh dấu bởi tập hợp nhiều mùi lạ.Trong quá trình thực hiện, lựa chọn giữa những con đường tìm thấy khác nhaukhi có vài con đường phân cách Sau đó kiến sẽ lựa chọn xác suất một con đườngqua số lượng mùi lạ: mùi lạ càng nhiều thì sự lựa chọn càng cao
Bởi vậy, những con kiến đổi hướng theo mùi lạ trên đường đi, chúng được đềcập như sau: kết quả tìm kiếm thức ăn trong quá trình tăng cường ảnh hưởng từ
sự hình thành của con đường được đánh dấu bởi tập hợp nhiều mùi lạ Cách tìmthức ăn này tập trung kiến tìm đường đi ngắn nhất giữa tổ và nguồn thức ăn
Trang 14Kĩ thuật thế nào tập trung được kiến tới phạm vi con đường ngắn nhất Ở đó,không có mùi lạ nào trong môi trường và, khi kiến đến những chỗ giao nhau,chúng ngẫu nhiên lựa chọn một ngả đường Tuy nhiên, như kiến đi du lịch, conđường triển vọng nhất tiếp nhận số lượng mùi lạ nhiều hơn sau vài lần đi Nhờ
đó, những con đường ngắn hơn, kiến sẽ lựa chọn chúng để tới thức ăn nhanh hơn
và để bắt đầu trở lại hành trình kiếm thức ăn sớm hơn Từ khi ngả đường ngắnhơn được chọn mùi lạ tồn tại nhiều hơn, quyết định của kiến có xu hướng tiến vềngã đường ngắn hơn Vì thế, lựa chọn con đường nhiều mùi hơn khi kiến trở lạinhiều hơn ngả đường dài hơn Kết quả cuối cùng của quá trình này là sự tăng xuhướng tiến tới ngả đường ngắn và kết thúc, hội tụ lại là con đường ngắn nhất
Thủ tục sau đó được bổ sung trong môi trường tự nhiên bởi thực tế mùi lạ sẽ bịbay hơi sau vài lần Con đường này triển vọng ít dần vì mất dần mùi lạ bởi vì nóđược kiến đi ngày càng ít Tuy nhiên vài nhà sinh vật học đã nghiên cứu chỉ ramùi lạ rất bền, vì thế ít ảnh hưởng của sự bay hơi trên đường đi ngắn nhất củaquá trình tìm kiếm thức ăn
4.1.2 Hình thành ý tưởng thuật giải từ đàn kiến tự nhiên
Thuật toán ACO lấy ý tưởng từ việc kiếm thức ăn của đàn kiến ngoài thực tế đểgiải quyết các bài toán tối ưu tổ hợp Chúng dựa trên cơ sở một đàn kiến nhântạo, chúng được tính toán tìm kiếm thức ăn nhờ mùi lạ nhân tạo
Cấu trúc cơ bản của thuật toán ACO: trong mỗi thuật toán, tất cả kiến đi xâydựng cách giải quyết bài toán bằng cách xây dựng một đồ thị Mỗi cạnh của đồthị miêu tả các bước kiến có thể đi được kết hợp từ hai loại thông tin hướng dẫnkiến di chuyển:
Thông tin kinh nghiệm (heuristic information): giới hạn kinh nghiệm ưutiên di chuyển từ nút r tới s…của cạnh ars Nó được đánh dấu bởi ηrs Thôngtin này không được thay đổi bởi kiến trong suốt quá trình chạy thuật toán
Thông tin mùi lạ nhân tạo (artificial pheromone trail information), nó giớihạn “nghiên cứu sự thèm muốn” của chuyển động là kiến nhân tạo và bắtchước mùi lạ thực tế của đàn kiến tự nhiên Thông tin này bị thay đổi trongsuốt quá trình thuật toán chạy phụ thuộc vào cách giải quyết được tìm thấybởi những con kiến Nó được đánh dấu bởi τrs
Trang 15Giới thiệu các bước ảnh hưởng từ những con kiến thật vào ACO Có hai vấn đềcần chú ý:
Chúng trừu tượng hoá vài mô hình thức ăn của kiến ngoài thực tế để tìm rađường đi tìm kiếm thức ăn ngắn nhất
Chúng bao gồm vài đặc điểm không giống với tự nhiên nhưng lại cho phépthuật toán phát triển chứa đựng cách giải quyết tốt tới bài toán bị cản (ví dụ:
sử dụng thông tin kinh nghiệm để hướng dẫn chuyển động của kiến)
Cách thức hoạt động cơ bản của một thuật toán ACO như sau:
m kiến nhân tạo di chuyến, đồng thời và không đồng bộ, qua các trạng thái liền
kề của bài toán Sự di chuyển này theo một tập quy tắc làm cơ sở từ những vùngthông tin có sẵn ở các thành phần (các nút) Vùng thông tin này bao gồm thôngtin kinh nghiệm và thông tin mùi lạ để hướng dẫn tìm kiếm Qua sự di chuyểntrên đồ thị kiến xây dựng được cách giải quyết Những con kiến sẽ giải phóngmùi lạ ở mỗi lần chúng đi qua một cạnh (kết nối) trong khi xây dựng cách giảiquyết (cập nhật từng bước mùi lạ trực tuyến) Mỗi lần những con kiến sinh racách giải quyết, nó được đánh giá và nó có thể tạo luồng mùi lạ là hoạt động củachất lượng của cách giải quyết của kiến (cập nhật lại mùi lạ trực tuyến) Thôngtin này sẽ hướng dẫn tìm kiếm cho những con kiến đi sau
Hơn thế nữa, cách thức sinh hoạt động của thuật toán ACO bao gồm thêm hai
thủ tục, sự bay hơi mùi lạ (pheromone trail evaporation) và hoạt động lạ (daemon actions)
Sự bay hơi của mùi lạ được khởi sự từ môi trường và nó được sử dụng như
là một kĩ thuật để tránh tìm kiếm bị dừng lại và cho phép kiến khảo sát vùngkhông gian mới
Hoạt động lạ là những hoạt động tối ưu như một bản sao tự nhiên để thựchiện những nhiệm vụ từ một mục tiêu xa tới vùng của kiến
4.1.3 Các nghiên cứu về thuật giải đàn kiến
Hệ thống ACO lần đầu tiên được Marco Dorigo giới thiệu trong luận văn củamình vào năm 1992, và được gọi là Hệ thống kiến (Ant System, hay AS) AS làkết quả của việc nghiên cứu trên hướng tiếp cận trí tuệ máy tính nhằm tối ưu tổhợp mà Dorigo được hướng dẫn ở Politecnico di milano với sự hợp tác của