TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THÁI HÒA PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN GIẢI BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA MỘT ĐỒ THỊ LUẬN VĂN THẠC SĨ KHOA HỌC Thái Nguyê
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÊ THÁI HÒA
PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN GIẢI BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA MỘT ĐỒ THỊ
LUẬN VĂN THẠC SĨ KHOA HỌC
Thái Nguyên - Năm 2015
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÊ THÁI HÒA
PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN GIẢI BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA MỘT ĐỒ THỊ
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS ĐỖ ĐỨC ĐÔNG
Thái Nguyên - Năm 2015
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi, dưới sự chỉ dẫn của TS Đỗ Đức Đông Các số liệu, kết quả nêu trong luận văn là trung thực, bảo đảm tính khách quan, luận văn này cho đến nay chưa được bảo vệ tại bất kỳ hội đồng nào và chưa hề được công bố trên bất kỳ phương tiện nào khác Các tài liệu tham khảo có nguồn gốc xuất xứ rõ ràng
Tác giả xin chịu trách nhiệm về những lời cam đoan trên
Thái nguyên, ngày 23 tháng 7 năm 2015
Tác giả luận văn
Lê Thái Hòa
Trang 4LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo TS Đỗ Đức Đông đã trực tiếp giao cho em đề tài, tận tình hướng dẫn và tạo mọi điều kiện cho em hoàn thành luận văn
Em xin chân thành cảm ơn các thầy cô giáo, các cán bộ nhân viên phòng đào tạo, ban lãnh đạo Trường Đại học Công nghệ thông tin và Truyền thông đã giúp đỡ tạo điều kiện cho em hoàn thành bản luận văn này
Em xin bày tỏ lòng cảm ơn của mình đến giáo sư Raka Jovannovic, người đã chia sẻ cho em rất nhiều tài liệu về thuật toán tối ưu hóa đàn kiến
và cũng là người đã cung cấp cho em bộ dữ liệu để em thử nghiệm trong bài luận văn này
Cuối cùng, em xin chân thành cảm ơn sự quan tâm giúp đỡ của gia đình, bạn bè và tập thể lớp Cao học K12I đã cổ vũ động viên em hoàn thành tốt luận văn của mình
Thái nguyên, ngày 23 tháng 7 năm 2015
Học viên Lê Thái Hòa
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
Danh mục các ký hiệu và chữ viết tắt v
Danh mục các bảng vii
Danh mục các hình viii
MỞ ĐẦU 1
Chương 1 BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA MỘT ĐỒ THỊ 3
1.1 Bài toán tối ưu tổ hợp tổng quát 3
1.2 Bài toán tìm tập thống trị nhỏ nhất của một đồ thị (MWDSP) 5
1.3 Các cách tiếp cận hiện nay giải quyết bài toán tìm tập thống trị nhỏ nhất của đồ thị 5
1.3.1 Thuật toán tham lam tìm tập phủ đỉnh nhỏ nhất 5
1.3.2 Thuật toán tham lam 1 (Greedy1) 6
1.3.2 Thuật toán tham lam 2 (Greedy2) 9
1.4 Một số ứng dụng trong thực tế về bài toán MWDSP 10
1.5 Kết luận chương 11
Chương 2 PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN 13
2.1 Kiến tự nhiên và kiến nhân tạo 13
2.1.1 Kiến tự nhiên 13
2.1.2 Kiến nhân tạo 17
2.2 Phương pháp ACO cho bài toán TƯTH tổng quát 18
2.2.1 Đồ thị cấu trúc 18
2.2.2 Thuật toán ACO tổng quát 20
2.3 Phương pháp ACO giải bài toán người chào hàng 23
2.3.1 Bài toán TSP và đồ thị cấu trúc 23
Trang 62.3.2 Các thuật toán ACO giải bài toán TSP 24
2.3.2.1 Hệ kiến AS 27
2.3.2.2 Hệ đàn kiến ACS 30
2.3.2.3 Hệ kiến Max-Min 33
2.3.2.4 Phương pháp Max-Min trơn: SMMAS (Smoothed Max Min Ant System) 36
2.4 Một số lưu ý khi sử dụng các thuật toán ACO 36
2.4.1 Thông tin heuristic 37
2.4.2 Số lượng kiến 37
2.4.3 Tham số bay hơi 38
2.5 Kết luận chương 38
Chương 3 PHƯƠNG PHÁP TỐI ƯU HÓA ĐÀN KIẾN GIẢI BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA ĐỒ THỊ 39
3.1 Xây dựng lời giải 40
3.2 Cập nhật mùi cho bài toán MWDSP 41
3.3 Thực nghiệm và đánh giá 43
3.4 Kết luận chương 48
KẾT LUẬN 49
TÀI LIỆU THAM KHẢO 51
Trang 7Danh mục các ký hiệu và chữ viết tắt
Kí hiệu và
Cận trên của vết mùi Cận giữa của vết mùi Vết mùi được khởi tạo ban đầu Vết mùi trên cạnh
Vết mùi trên đỉnh
Thông tin heuristic trên cạnh
Thông tin heuristic trên đỉnh
Số vòng lặp trong thuật toán ACO
Số kiến sử dụng trong thuật toán ACO Tham số bay hơi
3-LAS Three-Level Ant System (Hệ kiến ba mức)
ACO Ant Colony Optimization (Tối ưu đàn kiến)
ACS Ant Colony System (Hệ đàn kiến)
AS Ant System (Hệ kiến)
G-best Global-best (Lời giải tốt nhất tính đến thời điểm hiện
tại) I-best Iteration-best (Lời giải tốt nhất trong bước lặp hiện tại) MLAS Multi-level Ant System (Hệ kiến đa mức)
Trang 8MMAS Max-Min Ant System (Hệ kiến Max Min)
MWDSP Bài toán tìm tập thống trị nhỏ nhất của đồ thị
SMMAS Smoothed Max-Min Ant System (Hệ kiến Max Min
trơn) TSP Bài toán người chào hàng
Trang 9Danh mục các bảng
Trang
Bảng 2.1: Thuật toán ACO theo thứ tự thời gian xuất hiện………
Bảng 3.1: Kết quả thực nghiệm trên bộ dữ liệu 1 với kích thước
Trang 10Danh mục các hình
Trang
Hình 1.1: Thuật toán tham lam tìm tập phủ đỉnh ………
Hình 1.2: Một ví dụ về đồ thị làm cho Greedy1 sai kết quả………
Hình 1.3: Thuật toán tính [ ] trong Greedy1_new………
Hình 1.4: Thuật toán tính [ ] trong Greedy2_new………
Hình 2.1: Thực nghiệm cây cầu đôi………
Hình 2.2: Tỉ lệ các con kiến chọn đường đi………
Hình 2.3: Thí nghiệm bổ xung………
Hình 2.4: Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm ( , … , )………
Hình 2.5: Thuật toán ACO………
Hình 2.6: Thuật toán ACO giải bài toán TSP có sử dụng tìm kiếm cục bộ………
Hình 3.1: Thuật toán cập nhật mùi SMMAS cho bài toán MWDSP
6
7
8
10
15
15
16
20
21
25
42
Trang 11MỞ ĐẦU
Hiện nay, có rất nhiều bài báo, luận văn, luận án hay các công trình nghiên cứu đề cập đến vấn đề giải quyết các bài toán tối ưu tổ hợp Đa số các bài toán này thuộc lớp các bài toán NP – khó Trừ các bài toán cỡ nhỏ
có thể tìm lời giải bằng cách tìm kiếm vét cạn, còn lại thì thường không thể tìm được lời giải tối ưu
Đối với các bài toán kích thước lớn không có phương pháp giải đúng Hiện nay, người ta thường tìm lời giải gần đúng nhờ các thuật toán
mô phỏng tự nhiên như giải thuật di truyền (Genetic Algorithm - GA), tối
ưu bầy đàn (Particle Swarm Optimization -PSO)…
Trong các phương pháp mô phỏng tự nhiên, tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) là cách tiếp cận metaheuristic tương đối mới,
được giới thiệu bởi Dorigo năm 1991 đang được nghiên cứu và ứng dụng rộng rãi cho các bài toán TƯTH - khó
Các thuật toán ACO mô phỏng cách tìm đường đi của các con kiến thực Trên đường đi, mỗi con kiến thực để lại một vết hoá chất gọi là vết mùi (pheromone trail) và theo vết mùi của các con kiến khác để tìm đường
đi Đường có nồng độ vết mùi càng cao thì càng có nhiều khả năng được các con kiến chọn Nhờ cách giao tiếp gián tiếp này đàn kiến tìm được đường đi ngắn nhất từ tổ tới nguồn thức ăn Theo ý tưởng đó, các thuật toán ACO sử dụng kết hợp thông tin kinh nghiệm (heuristic) và học tăng cường qua các vết mùi của các con kiến nhân tạo để giải các bài toán TƯTH bằng cách đưa về bài toán tìm đường đi tối ưu trên đồ thị cấu trúc tương ứng của bài toán
Trang 12Bài luận văn này em trình bày phương pháp tối ưu hóa đàn kiến ACO để giải quyết bài toán tìm tập thống trị nhỏ nhất của một đồ thị vô hướng Em sẽ thử nghiệm trên các đồ thị với kích cỡ khác nhau, mật độ cạnh khác nhau, các chức năng phân phối trọng số trên các đỉnh khác nhau
để thấy được hiệu quả của thuật toán đề xuất so với một số thuật toán đang được sử dụng
Trang 13Chương 1 BÀI TOÁN TÌM TẬP THỐNG TRỊ NHỎ NHẤT CỦA
MỘT ĐỒ THỊ
Trong các bài toán thực tế cũng như trong lý thuyết, ta thường phải tìm các giá trị cho các biến rời rạc để cực trị hàm mục tiêu nào đó Các bài toán này thường dễ phát biểu nhưng lại khó giải do chúng thuộc loại tối ưu
tổ hợp (TƯTH) NP - khó Chương này giới thiệu các bài toán tối ưu tổ hợp dưới dạng tổng quát, bài toán tìm tập thống trị nhỏ nhất và các cách tiếp cận hiện nay
1.1 Bài toán tối ưu tổ hợp tổng quát
Trong đời sống thực tế ta thường phải giải quyết nhiều bài toán TƯTH quan trọng Chẳng hạn như: tìm đường đi ngắn nhất nối hai điểm trên một đồ thị đã cho, lập kế hoạch phân phối nguồn hàng tới nơi tiêu thụ với chi phí cực tiểu, lập thời khóa biểu cho giáo viên và học sinh thuận lợi nhất, định tuyến cho các gói dữ liệu trong Internet, lập lịch hợp lý cho các
hệ thống sản xuất, đối sánh các chuỗi gen trong sinh học phân tử v.v…
Mỗi bài toán TƯTH ứng với một bộ ba ( , , )S f W trong đó:
- S là tập hữu hạn trạng thái (lời giải tiềm năng hay phương án);
- f là hàm mục tiêu xác định trên ;
- W là tập các ràng buộc
Mỗi phương án sS thỏa mãn các ràng buộc W gọi là phương án trả lời (hay lời giải) Mục đích của ta là tìm phương án chấp nhận được s tối *
ưu hóa toàn cục hàm mục tiêu , tức là một phương án s tốt nhất Chẳng *
hạn với bài toán cực tiểu thì ta phải tìm ( ) ≤ ( ) với mọi phương án trả lời
Trang 14Mỗi bài toán đều có thể chỉ ra một tập hữu hạn gồm thành phần
= { , … , } sao cho mỗi phương án trong đều biễu diễn được nhờ liên kết các thành phần trong nó Cụ thể hơn, các tập , và W có các đặc điểm sau:
1) Ký hiệu là tập các vectơ trên có độ dài không quá : ={< , … , >} ∈ ∀ Khi đó, mỗi phương án trong được xác định nhờ ít nhất một vectơ trong
2) Tồn tại tập con của và ánh xạ từ lên sao cho ( ) không rỗng với mọi ∈ , trong đó tập có thể xây dựng được từ tập con nào đó của nhờ thủ tục mở rộng tuần tự dưới đây
3) Từ ta mở rộng tuần tự thành như sau:
i) Ta xem = < > là mở rộng được với mọi ∈
ii) Giả sử = < , … , > là mở rộng được và chưa thuộc Từ tập ràng buộc W, xác định tập con ( ) của , sao cho với mọi ∈ ( ) thì = < , … , , > là mở rộng được
iii) Áp dụng thủ tục mở rộng từ các phần tử ∈ cho phép ta xây dựng được mọi phần tử của
Như vậy, mỗi bài toán TƯTH được xem là một bài toán cực trị hàm
có biến, trong đó mỗi biến nhận giá trị trong tập hữu hạn kể cả giá trị rỗng Nói một cách khác, nó là bài toán tìm kiếm trong không gian vectơ
độ dài không quá trên đồ thị đầy đủ có các đỉnh có nhãn trong tập
Chú ý:
Với các bài toán TƯTH có dạng giải tích: Tìm cực trị hàm ( , … , ) trong đó mỗi biến nhận giá trị trong tập hữu hạn tương ứng và các biến này thỏa mãn các ràng buộc W nào đó, thì là tập =
Trang 15và là các vectơ - chiều, trong đó thành phần nhận giá trị trong tập , là tập còn là tập các vectơ thỏa mãn các ràng buộc W
1.2 Bài toán tìm tập thống trị nhỏ nhất của một đồ thị (MWDSP)
Cho một đồ thị vô hướng = { , } trong đó là tập đỉnh, là tập cạnh của đồ thị Với mỗi đỉnh ∈ có gắn một trọng số
Một tập thống trị của là một tập sao cho mọi đỉnh thuộc
\ đều kề với ít nhất một đỉnh thuộc tập Trong các tập thống trị đó, tập thống trị nhỏ nhất là tập thống trị mà tổng trọng số của tất cả các đỉnh thuộc nhỏ nhất
Bài toán tìm tập thống trị nhỏ nhất của đồ thị thuộc lớp bài toán khó và có nhiều ứng dụng trong thực tế Đã có nhiều nhà nghiên cứu đưa ra các phương pháp khác nhau để giải quyết bài toán trên, tuy nhiên các thuật toán này chưa thực sự hiệu quả
NP-1.3 Các cách tiếp cận hiện nay giải quyết bài toán tìm tập thống trị nhỏ nhất của đồ thị
1.3.1 Thuật toán tham lam tìm tập phủ đỉnh nhỏ nhất
Trước hết ta xét đồ thị mà chưa quan tâm đến trọng số của các đỉnh (coi mỗi đỉnh đều có trọng số bằng 1) Khi đó bài toán trở thành “Tìm tập phủ đỉnh có số lượng đỉnh ít nhất”
Trang 16- Các đỉnh còn lại là các đỉnh chưa được phủ gọi là đỉnh tô màu trắng ( )
Trong tài liệu [4] người ta đưa ra ý tưởng như sau: Tại mỗi lần lặp
ta kết nạp thêm một đỉnh mới thuộc hoặc vào cho đến khi = Việc ưu tiên chọn đỉnh nào đó kết nạp vào được xác định bởi giá trị của ( là những đỉnh trắng kề với )
Thuật toán được mô ta như sau:
Khi thêm một đỉnh vào tập ta phải cập nhật lại đồ thị, tất cả những cạnh liên thuộc với đỉnh đó sẽ được tô màu đỏ, những đỉnh kề với nó bằng cạnh màu đen sẽ được tô thành màu xám
Như vậy sau khi ta kết nạp được đỉnh vào thì đồ thị được biến đổi thành ( , ) Khi đó trọng số của cạnh của đồ thị được biểu diễn như sau:
Trang 171
5
6
Lưu ý ( , )chỉ nhận giá trị bằng 0 hoặc bằng 1
Khi muốn kết nạp một đỉnh nào đó vào thì giải pháp được chọn
để ưu tiên như sau:
( ) = ∑( , )∈ ( , ) (1.2)
Từ (1.1) và (1.2) ta thấy ( ) thực chất là số lượng những đỉnh kề với mà chưa được phủ (còn là đỉnh màu trắng)
Như vậy việc chọn một đỉnh để kết nạp vào dựa trên hai tiêu chí:
+ Số lượng đỉnh màu trắng kề với nó càng nhiều càng tốt + Trọng số của đỉnh đó càng nhỏ càng tốt
Phép cộng 1 vào tử số để đảm bảo được việc so sánh giữa các đỉnh không còn kết nối nữa, tức là những đỉnh cô lập (khi đó ta sẽ chọn đỉnh nào
có trọng số nhỏ hơn)
Theo công thức (1.3) ta thấy rằng khi đồ thị chỉ gồm các đỉnh cô lập thì việc lựa chọn đỉnh nào chỉ phụ thuộc vào trọng số của nó chứ không phân biệt đỉnh đó đã được phủ hay chưa Tức là có thể chọn thêm vào kết quả đỉnh đã được tô màu xám mà không kề với bất kỳ đỉnh màu trắng nào
Một ví dụ về đồ thị làm cho Greedy1 sai kết quả
A
B
C
Trang 18Ta có đỉnh A là đỉnh đã được chọn, bây giờ xét tiếp đỉnh B và C, ta
có:
=1 + Cov(B)W(B) =
15
γ =1 + Cov(C)
W(C) =
16
Vì γ > γ nên theo Greedy1 thì đỉnh tiếp theo được chọn vào làm kết quả là đỉnh B, sau đó mới chọn đỉnh C Kết quả cuối cùng bằng W[A] + W[B] + W[C] = 1 + 5 + 6 = 12 (kết quả này sai so với kết quả thực tế)
Ta có thể cải tiến thuật toán này bằng cách thêm vào đồ thị ban đầu những cạnh khuyên ( , ) với 1 ≤ ≤ Khi đó nếu một đỉnh màu xám nằm cô lập (đã được phủ bởi đỉnh khác) thì giá trị của nó sẽ bằng không, trong khi một đỉnh màu trắng nằm cô lập thì giá trị của nó lại bằng 1 Vì vậy ta không cần cộng thêm 1 vào tử số, đồng thời tránh được sai sót như trong ví dụ trên (cải tiến này được minh họa trong chương 3 bằng thuật toán Greedy1_new) Khi đó công thức (1.3) sẽ được biến đổi như sau: γ = ( )
Trang 191.3.2 Thuật toán tham lam 2 (Greedy2)
Trong thuật toán tham lam 1 việc lựa chọn các đỉnh chỉ coi trọng số lượng các đỉnh kề với nó chứ không quan tâm đến tổng trọng số của các đỉnh kề với nó Tài liệu [6], [11] đã cải tiến công thức trên bằng việc cho thêm tổng trọng số của các đỉnh màu trắng kề với nó Nếu tổng trọng số này càng lớn thì càng được ưu tiên
= ( ) ( ∑( , )∈( ) ( ) ( , )) (1.5)
Cũng tương tự như thuật toán trước, tại công thức (1.5) giả sử đồ thị chỉ gồm các đỉnh thuộc W và R (màu trắng và màu xám) nằm cô lập Lúc đó ( ) = 0 với mọi , làm cho = 0 như vậy sẽ không có tiêu chí để chọn lựa đỉnh nào là đỉnh tiếp theo kết nạp vào kết quả Trên thực tế
ta thấy việc chọn những đỉnh màu xám không có ý nghĩa gì mà chỉ làm xấu
đi kết quả Vì vậy, để thuật toán tốt hơn ta vẫn phải thêm vào đồ thị ban đầu những cạnh ( , ) với 1 ≤ ≤ Do đó ta có thể sửa công thức (1.5) thành công thức sau:
Trang 201.4 Một số ứng dụng trong thực tế về bài toán MWDSP
Đa số các bài toán về đồ thị đều được áp dụng rộng rãi trong thực tế, bài toán MWDSP cũng không ngoại lệ, có thể đưa ra một số ứng dụng cụ thể như sau:
Ứng dụng 1: Ứng dụng trong việc chọn địa điểm để xây dựng cột phát
sóng điện thoại Giả sử một công ty viễn thông muốn phát sóng điện thoại
di động cho tất cả ngôi làng, do địa hình phức tạp nên khi xây dựng cột phát sóng tại ngôi làng thì đương nhiên ngôi làng sẽ được phủ sóng, ngoài ra có thể có một số ngôi làng khác cũng sẽ được phủ sóng Do giá thành mặt bằng để thuê đặt cột phát sóng, cũng như nhiều yếu tố khác làm cho việc xây dựng và thuê đặt địa điểm của các cột phát sóng tại các ngôi làng là khác nhau Vấn đề đặt ra cho công ty này là làm sao xây dựng các cột phát sóng để có thể phát sóng cho tất cả mọi người dân trong ngôi làng nói trên nhưng có chi phí thuê và lắp đặt nhỏ nhất
Trang 21Ứng dụng 2: Ứng dụng trong việc xây dựng các công trình nước sạch phục
vụ cho đồng bào vùng cao Việc xây dựng một công trình nước sạch tại một địa phương nào đó có thể cấp phát nước cho địa phương đó cũng như một số địa phương lân cận khác Chi phí để xây dựng công trình nước sạch tại những địa phương khác nhau là khác nhau do việc vận chuyển vật liệu cũng như giá thuê nhân công Vì vậy bài toán đặt ra là phải xây dựng các công trình nước sạch sao cho có giá thành nhỏ nhất nhưng vẫn đảm bảo cấp phát nước đầy đủ cho tất cả các địa phương trên
Trên thực tế còn có rất nhiều bài toán được mô hình hóa bởi bài toán MWDSP chẳng hạn như bài toán đặt các trạm biến áp điện, bài toán về xây
dựng các đại lí phân phối hàng
1.5 Kết luận chương
Các bài toán TƯTH ( , ,W) nhằm tìm cực trị hàm trên tập hữu hạn trạng thái , thỏa mãn ràng buộc W, có vai trò quan trọng trong nghiên cứu lý thuyết và ứng dụng Đa số các bài toán trong chúng thuộc loại NP-khó, khi đó với các bài toán cỡ lớn thì không giải đúng được Đã có nhiều phương pháp để giải quyết được đề xuất, trong đó các phương pháp giải gần đúng với các kỹ thuật bổ trợ như tìm kiếm cục bộ, memetic đang được
sử dụng rộng rãi
Bài toán tìm tập thống trị nhỏ nhất của đồ thị là một bài toán NP–khó với không gian bài toán là 2 (với là số đỉnh của đồ thị) Bài toán có nhiều ý nghĩa về mặt khoa học cũng như ứng dụng trong thực tế
Có nhiều ý tưởng tham lam để giải quyết bài toán tìm tập thống trị nhỏ nhất của đồ thị tuy nhiên các chiến lược tham lam này cho kết quả còn sai lệnh nhiều so với kết quả thực tế của bài toán Việc nghiên cứu cách
Trang 22giải bài toán trên để đạt kết quả tốt hơn là một lĩnh vực được nhiều nhà khoa học trong nước và thế giới quan tâm
Trang 23Chương 2 PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN
Bài toán tối ưu hóa tổ hợp là bài toán hấp dẫn và thú vị bởi vì phần lớn chúng đều dễ để hình dung nhưng khó mà tìm ra lời giải cho chúng Nhiều bài toán tối ưu tổ hợp là các bài toán NP-khó và chúng không thể giải được trong thời gian đa thức Trên thực tế người ta thường giải quyết các bài toán này bằng các phương pháp xấp xỉ, chúng có nghiệm gần tối ưu
và thời gian chạy khá ngắn Các thuật toán thuộc lại này tạm gọi là các
thuật toán heuristic, chúng được sử dụng để giải quyết các bài toán cụ thể
Mở rộng của chúng là các thuật toán metaheuristic có thể giải quyết được
cả một lớp các bài toán rộng lớn ACO là một phương pháp theo hướng tiếp
cận như thế
Tối ưu đàn kiến (ACO) là một phương pháp metaheuristic dựa trên ý
tưởng mô phỏng cách tìm đường đi từ tổ tới nguồn thức ăn của các con kiến tự nhiên Đến nay phương pháp này được cải tiến đa dạng và có nhiều ứng dụng Trước khi giới thiệu phương pháp ACO, luận văn sẽ giới thiệu phương thức trao đổi thông tin gián tiếp của kiến tự nhiên và mô hình kiến nhân tạo
2.1 Kiến tự nhiên và kiến nhân tạo
2.1.1 Kiến tự nhiên
Tối ưu hóa đàn kiến (ACO) là các thuật toán dựa vào sự quan sát bầy kiến thực Kiến là loại cá thể sống bầy đàn Chúng giao tiếp với nhau thông qua vết mùi mà chúng để lại trên hành trình mà chúng đi qua Mỗi kiến khi
đi qua một đoạn đường sẽ để lại trên đoạn đó một hóa chất mà chúng ta gọi
là vết mùi Số lượng mùi sẽ tăng lên khi có nhiều kiến cùng đi qua Các con kiến khác sẽ tìm đường đi dựa vào mật độ vết mùi, mật độ vết mùi càng lớn
Trang 24thì chúng càng có xu hướng chọn Dựa vào hành vi tìm kiếm này mà đàn kiến tìm được đường đi ngắn nhất từ tổ đến nguồn thức ăn và sau đó quay trở tổ của mình.
Thí nghiệm trên cây cầu đôi
Có rất nhiều nghiên cứu để tìm hiểu hành vi của loài kiến đã được tiến hành, một trong những thí nghiệm nổi tiếng nhất là thí nghiệm của
Deneubourg và các cộng sự của ông năm 1989, thí nghiệm này là cơ sở lý thuyết đầu tiên và cũng tạo ra ý tưởng cho thuật toán ACO mà Dorigo đưa
ra sau này
Họ đã thực nghiệm với tỉ lệ độ dài đường r = giữa hai nhánh khác nhau của chiếc cầu đôi, trong đó là độ dài của nhánh dài còn là độ dài của nhánh ngắn
Trong thực nghiệm thứ nhất, chiếc cầu đôi có hai nhánh bằng nhau (r
= 1, hình 2.1.a) Ban đầu, kiến lựa chọn đường đi một cách tự do từ tổ đến nguồn thức ăn, cả hai nhánh đều có kiến đi, nhưng sau một thời gian các con kiến này tập trung đi theo cùng một nhánh Kết quả có thể được giải thích như sau: ban đầu không có vết mùi nào trên cả hai nhánh, do đó kiến lựa chọn nhánh bất kỳ với xác suất như nhau Một cách ngẫu nhiên, sẽ có một nhánh có số lượng kiến lựa chọn nhiều hơn nhánh kia Do kiến để lại vết mùi trong quá trình di chuyển, nhánh có nhiều kiến lựa chọn sẽ có nồng
độ mùi lớn hơn nồng độ mùi của nhánh còn lại Nồng độ mùi trên cạnh lớn hơn sẽ ngày càng lớn hơn vì ngày càng có nhiều kiến lựa chọn Cuối cùng, hầu như tất cả các kiến sẽ tập trung trên cùng một nhánh Thực nghiệm này cho thấy là sự tương tác cục bộ giữa các con kiến với thông tin gián tiếp là vết mùi để lại cho phép điều chỉnh hoạt động vĩ mô của đàn kiến
Trang 25Hình 2.1: Thực nghiệm cây cầu đôi
(a) Hai nhánh có độ dài bằng nhau (b) Hai nhánh có độ dài khác nhau
Hình 2.2 Tỉ lệ các con kiến chọn đường đi
(a) Hai nhánh có độ dài bằng nhau (b) Hai nhánh có độ dài khác nhau
Trong thực nghiệm thứ hai (xem hình 2.1b), độ dài của nhánh dài gấp đôi độ dài nhánh ngắn (tỉ lệ r = 2) Trong trường hợp này, sau một thời
gian tất cả các con kiến đều chọn đoạn đường ngắn hơn Cũng như trong thực nghiệm thứ nhất, ban đầu đàn kiến lựa chọn hai nhánh đi như nhau, một nửa số kiến đi theo nhánh ngắn và một nửa đi theo nhánh dài (mặc dù trên thực tế, do tính ngẫu nhiên có thể một nhánh nào đó được nhiều kiến lựa chọn hơn nhánh kia) Nhưng thực nghiệm này có điểm khác biệt quan trọng với thực nghiệm thứ nhất: Những kiến lựa chọn đi theo nhánh ngắn
sẽ nhanh chóng quay trở lại tổ và khi phải lựa chọn giữa nhánh ngắn và
Trang 26nhánh dài, kiến sẽ thấy nồng độ mùi trên nhánh ngắn cao hơn nồng độ mùi trên nhánh dài, do đó sẽ ưu tiên lựa chọn đi theo nhánh ngắn hơn Tuy nhiên, trong thời gian đầu không phải tất cả các kiến đều đi theo nhánh ngắn hơn Phải mất một khoảng thời gian tiếp theo nữa bầy kiến mới lựa chọn đi theo nhánh ngắn Điều này minh chứng bầy kiến đã sử dụng phương thức thăm dò, tìm đường mới
Một điểm thú vị nữa là quan sát xem sẽ xảy ra điều gì khi quá trình tìm kiếm đang hội tụ, lại xuất hiện một đường mới từ tổ đến nguồn thức ăn Việc này được thực nghiệm như sau: ban đầu từ tổ đến nguồn thức ăn chỉ
có một nhánh dài và sau 30 phút, thêm một nhánh ngắn (xem hình 2.3) Trong trường hợp này, nhánh ngắn thường không được kiến chọn mà chúng tập trung đi trên nhánh dài Điều này có thể giải thích như sau: nồng
độ vết mùi trên cạnh dài cao và sự bay hơi của vết mùi diễn ra chậm nên đại đa số các con kiến vẫn lựa chọn nhánh dài (có nồng độ vết mùi cao) Hành vi này tiếp tục được củng cố và kiến chọn đi theo nhánh dài, ngay cả khi có một nhánh ngắn xuất hiện Việc bay hơi vết mùi là cơ chế tiện lợi cho việc tìm đường mới, nghĩa là việc bay hơi có thể giúp kiến quên đi đường đi tối ưu cục bộ đã được tìm thấy trước đây để tìm khám phá đường
đi mới, tốt hơn
Hình 2.3: Thí nghiệm bổ xung
Ban đầu chỉ có một nhánh và sau 30 phút thêm nhánh ngắn hơn
Trang 272.1.2 Kiến nhân tạo
Thực nghiệm cây cầu đôi cho thấy đàn kiến tự nhiên có thể sử dụng luật di chuyển theo xác suất, dựa trên thông tin địa phương để tìm được đường đi ngắn nhất giữa hai địa điểm Vết mùi của đàn kiến cho phép liên tưởng tới cách học tăng cường (reinforcement learning) trong bài toán chọn tác động tối ưu, gợi mở mô hình mô phỏng cho bài toán tìm đường đi ngắn nhất giữa hai nút (tương ứng là tổ và nguồn thức ăn) trên đồ thị, trong đó các tác tử (agent) là đàn kiến nhân tạo
Tuy nhiên, trong các bài toán ứng dụng các đồ thị thường phức tạp hơn Từ mỗi đỉnh có thể có nhiều cạnh, nên nếu mô phỏng thực sự hành vi của đàn kiến tự nhiên nhiều con kiến sẽ đi luẩn quẩn và do đó hiệu quả thuật toán sẽ rất kém Vì vậy, người ta dùng kỹ thuật đa tác tử (multiagent)
mô phỏng đàn kiến nhân tạo, trong đó mỗi con kiến nhân tạo có khả năng nhiều hơn so với kiến tự nhiên Kiến nhân tạo (về sau trong luận văn ta sẽ gọi đơn giản là kiến) có bộ nhớ riêng, có khả năng ghi nhớ các đỉnh đã thăm trong hành trình và tính được độ dài đường đi nó chọn Ngoài ra, kiến
có thể trao đổi thông tin với nhau, thực hiện tính toán cần thiết, cập nhật mùi…
Sử dụng mô hình kiến nhân tạo này, Dorigo (1991) [7] đã xây dựng
thuật toán hệ kiến (AS) giải bài toán người chào hàng Hiệu quả của thuật
toán so với các phương pháp mô phỏng tự nhiên khác như SA và GA đã được kiểm chứng bằng thực nghiệm
Thuật toán này về sau được phát triển và có nhiều ứng dụng phong phú, được gọi chung là phương pháp ACO
Trang 282.2 Phương pháp ACO cho bài toán TƯTH tổng quát
Trong mục này giới thiệu sơ lược về phương pháp tối ưu đàn kiến
Để biết chi tiết hơn, có thể xem [10] Trước khi mô tả thuật toán tổng quát,
ta tìm hiểu đồ thị cấu trúc cho bài toán tối ưu tổ hợp
Để tìm các lời giải chấp nhận được, ta xây dựng đồ thị đầy đủ với tập đỉnh , mỗi đỉnh của nó tương ứng với mỗi thành phần của Các lời giải chấp nhận được sẽ là các vectơ được xác định theo thủ tục mở rộng tuần tự hay
mở rộng ngẫu nhiên
Thông thường, đối với các bài toán thuộc loại NP-khó, người ta đưa
ra các phương pháp heuristic tìm lời giải đủ tốt cho bài toán Các thuật toán ACO kết hợp thông tin heuristic này với phương pháp học tăng cường, mô phỏng hành vi của đàn kiến, để tìm lời giải tốt hơn
Mỗi cạnh nối đỉnh , ∈ có trọng số heuristic để định hướng chọn thành phần mở rộng là khi thành phần cuối của trạng thái hiện tại
Trang 29là Ký hiệu là vectơ các trọng số heuristic của cạnh (trong bài toán TSP
đó là vectơ có các thành phần là nghịch đảo của độ dài cạnh tương ứng), còn là vectơ biểu thị các thông tin học tăng cường , (trong luận văn từ nay về sau gọi là vết mùi, ban đầu được khởi tạo giá trị > 0 ) Trường hợp đặc biệt và chỉ phụ thuộc vào , các thông tin này sẽ gắn với các đỉnh Không làm mất tính tổng quát, ta xét trường hợp các thông tin này gắn vào các cạnh
Ta gọi đồ thị = ( , , , ) là đồ thị cấu trúc của bài toán tối ưu tổ
hợp, trong đó là tập đỉnh, là tập cạnh, và là các thông tin gắn với cạnh Từ các cạnh, xây dựng tập nhờ mở rộng tập theo thủ tục tuần
tự Nếu không có thông tin heuristic thì ta xem có các thành phần như nhau và bằng 1
Trường hợp tổng quát, là đồ thị đầy đủ Tuy nhiên, tùy theo ràng buộc của bài toán, các cạnh có thể lược bớt để giảm miền tìm kiếm lời giải theo thủ tục mở rộng tuần tự Chẳng hạn, với bài toán tìm cực trị của hàm giải tích ( , … , ) , với thuộc tập giá trị hữu hạn , đồ thị cấu trúc có tầng, tầng chứa các đỉnh thuộc tập , còn tập cạnh chỉ gồm các cạnh nối các đỉnh thuộc tầng với các đỉnh thuộc tầng + 1 như trong hình 2.4 Khi đó tập là tập , mỗi mở rộng tuần tự của lời giải sẽ được xây dựng
từ một đỉnh thuộc tập này
Trang 30Hình 2.4: Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm
( , … , )
2.2.2 Thuật toán ACO tổng quát
Ta dùng đàn kiến có con, tiến hành lặp quá trình xây dựng lời giải trên đồ thị cấu trúc = ( , , ,) như sau:
Tại mỗi lần lặp, kiến chọn ngẫu nhiên một đỉnh ∈ làm thành phần khởi tạo = { } và thực hiện xây dựng lời giải theo thủ tục bước ngẫu nhiên
Dựa trên lời giải tìm được, đàn kiến sẽ thực hiện cập nhật mùi theo cách học tăng cường
Số lần lặp có thể qui định bởi một hằng số cụ thể hoặc được qui định bởi thời gian chạy
Xây dựng lời giải:
Giả sử =< , > là mở rộng được và chưa thuộc Từ tập
ràng buộc Ω, xác định tập con ( ) của , sao cho với mọi ∈ ( ) thì = < , … , , > là mở rộng được Đỉnh = để mở rộng, được chọn với xác suất ( )như sau:
Trang 31, ← (1 ) , + ) , ) (2.2)
trong đó là hằng số thuộc khoảng (0,1) là tỷ lệ lượng mùi bị bay hơi
Hình 2.5: Thuật toán ACO
Procedure Thuật toán ACO;
Cập nhật lời giải tốt nhất;
until (Điều kiện kết thúc);
Đưa ra lời giải tốt nhất;