1.2 MỘT SỐ PHƯƠNG PHÁP TIẾP CẬN Với những bài toán CSP cỡ nhỏ hoặc những bài toán đặc biệt thì có thể tìm lời giải tối ưu nhờ kỹ thuật tìm kiếm vét cạn hoặc xây dựng những lời giải đặc
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THANH BÌNH
BÀI TOÁN XÂU GẦN NHẤT VÀ PHƯƠNG PHÁP ACO
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
Trang 2LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành tới TS Phạm Quang Dũng, người thầy đáng kính đã tận tình chỉ bảo, hướng dẫn tôi trong suốt quá trình tìm hiểu, nghiên cứu, người đã giúp đỡ tôi giải quyết những khúc mắc trong quá trình viết chương trình để chạy thực nghiệm và hoàn thiện luận văn
Tôi cũng xin được gửi lời cảm ơn sâu sắc tới PGS.TS Hoàng Xuân Huấn Thầy đã đưa ra những góp ý quý báu giúp cho tôi có thể hoàn thành tốt luận văn Với kiến thức sâu rộng, nhiều năm nghiên cứu trong lĩnh vực tối ưu hóa cũng như phương pháp tối
ưu hệ kiến của thầy đã giúp tôi hiểu rõ, sâu sắc nhiều vấn đề khó khăn gặp phải trong quá trình nghiên cứu
Tôi cũng bày tỏ lòng biết ơn về sự giúp đỡ của Sở GD&ĐT Hải Dương, ban giám hiệu và các đồng nghiệp trường THPT Thanh Miện III – cơ quan nơi tôi đang công tác, bạn bè và gia đình đã luôn động viên, giúp đỡ và tạo điệu kiện tốt nhất cho tôi
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các kết quả được viết chung với các tác giả khác đều được sự đồng ý của đồng tác giả trước khi đưa vào luận văn Các kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong các công trình nào khác
Tác giả
Trang 4MỤC LỤC
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
MỤC LỤC 4
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 7
DANH MỤC CÁC BẢNG 8
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 9
MỞ ĐẦU 10
Chương 1 BÀI TOÁN XÂU GẦN NHẤT VÀ MỘT SỐ PHƯƠNG PHÁP TIẾP CẬN 12
1.1 BÀI TOÁN XÂU GẦN NHẤT 12
Định nghĩa 1: Khoảng cách Hamming 12
Định nghĩa 2: Xâu gần nhất của một tập xâu 12
Xác định bài toán 13
Ứng dụng 13
1.2 MỘT SỐ PHƯƠNG PHÁP TIẾP CẬN 13
Heuristic cấu trúc 13
Tìm kiếm địa phương 14
Phương pháp Metaheuristic 14
Phương pháp Memetic 14
Chương 2 PHƯƠNG PHÁP ACO 16
2.1 TỪ KIẾN TỰ NHIÊN ĐẾN KIẾN NHÂN TẠO 16
2.1.1 Con kiến tự nhiên 16
2.1.2 Kiến nhân tạo (Artificial Ant) 19
2.2 PHƯƠNG PHÁP ACO 20
2.2.1 Đồ thị cấu trúc 20
2.2.2 Đặc tả thuật toán ACO tổng quát 22
2.2.3 Các hệ kiến 24
2.2.4 Một số vấn đề liên quan 24
2.2.4.1 Yếu tố hội tụ 24
2.2.4.2 Thực hiện song song 25
2.2.4.3 ACO kết hợp với tìm kiếm địa phương 25
Trang 52.2.4.4 Thông tin heuristic 26
2.2.4.5 Số lượng kiến 26
2.2.4.6 Hệ số bay hơi 27
2.2.4.7 Giới hạn vết mùi 27
2.2.4.8 Khởi tạo vết mùi 27
Chương 3 CÁC PHƯƠNG PHÁP ACO GIẢI BÀI TOÁN XÂU GẦN NHẤT 28
3.1 THUẬT TOÁN ACOM-CSP 28
3.1.1 Thuật toán ACO-CSP 28
Đồ thị cấu trúc 28
Thủ tục bước ngẫu nhiên để tìm lời giải 29
Quy tắc cập nhật mùi 30
3.1.2 Thuật toán Memetic 30
3.2 THUẬT TOÁN TSIACO 32
3.2.1 Phương pháp phân đoạn cứng 33
3.2.2 Phương pháp phân đoạn mềm 33
3.2.3 Đặc tả thuật toán T IACO giải bài toán CSP 34
3.3 THUẬT TOÁN TSIACO2-LS 36
Chương 4 KẾT QUẢ THỰC NGHIỆM 37
4.1 CHƯƠNG TRÌNH 37
4.1.1 Quy trình thực hiện 37
4.1.2 Cài đặt ứng dụng 37
Bài toán 37
Chương trình 37
Các bước tiến hành thực nghiệm 38
4.2 CÀI ĐẶT THAM SỐ 39
4.3 CẤU HÌNH MÁY TÍNH 40
4.4 THỰC NGHIỆM ẢNH HƯỞNG CỦA HỆ SỐ BAY HƠI TỚI CHẤT LƯỢNG LỜI GIẢI CỦA CÁC THUẬT TOÁN 41
4.5 THỰC NGHIỆM ẢNH HƯỞNG CỦA KỸ THUẬT TÌM KIẾM ĐỊA PHƯƠNG ĐẾN CHẤT LƯỢNG LỜI GIẢI Ant-CSP 44
4.5.1 N=10, Loop=2000 44
4.5.2 N=30, Loop=2000 44
Trang 64.5.3 N=50, Loop=2000 45
4.6 THỰC NGHIỆM SO SÁNH ACOM-CSP, TSIACO1, TSIACO2 VỚI Ant-CSP 45
4.6.1 So sánh hiệu quả và thời gian chạy với vòng lặp cho trước 45
4.6.1.1 N = 10, Loop = 2000 46
4.6.1.2 N = 20, Loop = 2000 48
4.6.1.3 N = 30, Loop = 2000 50
4.6.1.4 N = 40, Loop = 2000 52
4.6.1.5 N = 50, Loop = 2000 54
4.6.2 So sánh hiệu quả các thuật toán với cùng thời gian chạy 57
4.7 THỰC NGHIỆM SO SÁNH ACOM-CSP, TSIACO2 VỚI TSIACO2-LS 58
4.7.1 So sánh hiệu quả và thời gian chạy với vòng lặp cho trước 58
4.7.1.1 Giả sử thời gian không hạn chế: Chọn N=30, Loop=2500 58
4.7.1.2 Giả sử thời gian không hạn chế: Chọn N=40, Loop=2500 59
4.7.1.3 Giả sử thời gian không hạn chế: Chọn N=50, Loop=2500 59
4.7.2 So sánh hiệu quả các thuật toán với cùng thời gian chạy 60
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Ký hiệu Ý nghĩa
ACO Ant Colony Optimization (Tối ưu đàn kiến)
ACOM-CSP An Efficient Two-phase Ant Colony Optimization Algorithm for the
Closest String Problem (Thuật toán tối ưu đàn kiến hai pha cho bài toán xâu gần nhất)
ACS Ant Colony System (Hệ đàn kiến)
ANTS From Ant Colonies to Artificial Ants (Từ kiến tự nhiên đến kiến
nhân tạo)
CSP Closest String Problem (Bài toán xâu gần nhất)
MMAS Max-Min Ant System (Hệ kiến Max Min)
TSIACO Two-Stage updating pheromone for Invariant Ant Colony
Optimization algorithm (Thuật toán tối ưu đàn kiến hai giai đoạn cập nhật mùi)
TSP Traveling alesman Problem (Bài toán người chào hàng)
SMMAS Smooth Max-Min Ant System (Hệ kiến Max Min trơn)
Trang 8DANH MỤC CÁC BẢNG
Bảng 3.1 Hệ số bay hơi được trong các giai đoạn cập nhật mùi của TSIACO 35
Bảng 3.2 Điều kiện phân chia giai đoạn cập nhật mùi của thuật toán TSIACO 35
Bảng 4.1 Kết quả lời giải tốt nhất mà các thuật toán tìm thấy sử dụng bộ dữ liệu 10 chuỗi 46
Bảng 4.2 Kết quả giá trị trung bình của các giải pháp tốt sử dụng bộ dữ liệu 10 chuỗi 47
Bảng 4.3 Kết quả lời giải tốt nhất mà các thuật toán tìm thấy sử dụng bộ dữ liệu 20 chuỗi 48
Bảng 4.4 Kết quả giá trị trung bình của các giải pháp tốt sử dụng bộ dữ liệu 20 chuỗi 49
Bảng 4.5 Kết quả lời giải tốt nhất mà các thuật toán tìm thấy sử dụng bộ dữ liệu 30 chuỗi 50
Bảng 4.6 Kết quả giá trị trung bình của các giải pháp tốt sử dụng bộ dữ liệu 30 chuỗi 51
Bảng 4.7 Kết quả lời giải tốt nhất mà các thuật toán tìm thấy sử dụng bộ dữ liệu 40 chuỗi 52
Bảng 4.8 Kết quả giá trị trung bình của các giải pháp tốt sử dụng bộ dữ liệu 40 chuỗi 53
Bảng 4.9 Kết quả lời giải tốt nhất mà các thuật toán tìm thấy sử dụng bộ dữ liệu 50 chuỗi 54
Bảng 4.10 Kết quả giá trị trung bình của các giải pháp tốt sử dụng bộ dữ liệu 50 chuỗi 55
Bảng 4.11 Kết quả thực nghiệm sử dụng bộ dữ liệu 30 chuỗi 58
Bảng 4.12 Kết quả thực nghiệm sử dụng bộ dữ liệu 40 chuỗi 59
Bảng 4.13 Kết quả thực nghiệm sử dụng bộ dữ liệu 50 chuỗi 59
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 Phương pháp Heuristic cấu trúc 14
Hình 1.2 Đặc tả thuật toán Memetic-EC 15
Hình 2.1 Thể hiện hành vi của mỗi con kiến trong tự nhiên 16
Hình 2.2 Thí nghiệm cây cầu đôi 17
Hình 2.3 Thí nghiệm bổ xung 18
Hình 2.4 Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm 21
Hình 2.5 Lựa chọn đỉnh đi tiếp theo 22
Hình 2.6 Đặc tả thuật toán ACO 23
Hình 3.1 Đồ thị cấu trúc 29
Hình 3.2 Xây dựng lời giải 29
Hình 3.3 Đặc tả thuật toán Memetic –CSP 31
Hình 3.4 Ví dụ về Tìm kiếm địa phương 31
Hình 3.5 Đặc tả thuật toán TSIACO1 34
Hình 3.6 Đặc tả thuật toán TSIACO2 34
Hình 3.7 Đặc tả thuật toán TSIACO2-LS 36
Hình 4.1 Giao diện chương trình chính 38
Hình 4.2 Giao diện hiển thị bộ dữ liệu Input 39
Hình 4.3 Thông báo kết quả chạy thực nghiệm thuật toán ACOM-CSP 39
Đồ thị 4.1 Kết quả chạy thuật toán Ant-CSP với hệ số bay hơi khác nhau 41
Đồ thị 4.2 Kết quả chạy thuật toán ACOM-CSP với hệ số bay hơi khác nhau 42
Đồ thị 4.3 Kết quả chạy thuật toán TSIACO1 với hệ số bay hơi khác nhau 42
Đồ thị 4.4 Kết quả chạy thuật toán TSIACO2 với hệ số bay hơi khác nhau 43
Đồ thị 4.5 Kết quả chạy thực nghiệm Ant-CSP sử dụng bộ dữ liệu 10 chuỗi 44
Đồ thị 4.6 Kết quả chạy thực nghiệm Ant-CSP sử dụng bộ dữ liệu 30 chuỗi 44
Đồ thị 4.7 Kết quả chạy thực nghiệm Ant-CSP sử dụng bộ dữ liệu 50 chuỗi 45
Đồ thị 4.8 Biểu đồ biến thiên kết quả của các thuật toán khi thời gian chạy thay đổi từ 1000s đến 10000s cho ví dụ có N = 30, Length=1000 57
Đồ thị 4.9 Biểu đồ biến thiên kết quả của các thuật toán khi thời gian chạy thay đổi từ 1000s đến 25000s cho ví dụ có N = 30, Length=1000 61
Trang 10MỞ ĐẦU
Dữ liệu tin sinh học được tạo ra thường có dung lượng rất lớn, luôn đòi hỏi có những thuật toán hiệu quả để xử lý trên máy tính Bài toán xâu gần nhất có những ứng dụng cụ thể vào tin sinh học như tìm kiếm motif trên các chuỗi sinh học, cũng không phải là ngoại lệ về độ phức tạp tính toán Việc kiểm thử các thuật toán đã có và tìm ra một thuật toán mới hiệu quả cho bài toán này cũng như nhiều bài toán tin sinh học khác là vấn đề cấp thiết ngày nay, không chỉ ở Việt Nam, mà trên toàn thế giới Trong bài luận văn đi sâu tìm hiểu phương pháp ACO để giải bài toán trên
Trước tiên, tôi đã hệ thống hóa các nội dung lý thuyết và thuật toán liên quan đến vấn đề nghiên cứu: bài toán xâu gần nhất và các phương pháp tiếp cận, phương pháp ACO và các phương pháp biến thể mới áp dụng cho bài toán nêu trên (ví dụ như tìm hiểu các thuật toán Ant-CSP, ACO-CSP, ACOM-CSP) và tìm hiểu thuật toán TSIACO
áp dụng cho bài toán người chào hàng
au đó, tôi đã sử dụng quy tắc cập nhật mùi do Zhaojun Zhang và Zuren Feng [10]
đề xuất để xây dựng thuật toán giải bài toán nêu trên, đó là thuật toán TSIACO1, TSIACO2
Tôi đề xuất ra thuật toán mới TSIACO2-LS là thêm kỹ thuật tìm kiếm địa phương vào giai đoạn 2 của thuật toán TSIACO2
Tôi đã tiến hành cài đặt các thuật toán ACOM-CSP, TSIACO1, TSIACO2, TSIACO2-LS au đó, tôi chạy thực nghiệm và so sánh kết quả chạy của các thuật toán trên
Thực nghiệm cho thấy, thuật toán mới TSIACO2-LS có những ưu điểm nhất định, khoảng cách Hamming trung bình tìm được thấp hơn so với các thuật toán đã có, tuy thời gian thực hiện lâu hơn vì phải xử lý tìm kiếm địa phương Thực nghiệm cũng cho thấy, nếu thời gian hạn chế thì thuật toán cho chất lượng lời giải tốt nhất và hội tụ nhanh nhất là ACOM-CSP, nếu thời gian không hạn chế thì thuật toán cho chất lượng lời giải tốt nhất là TSIACO2-LS
Nội dung chính trong bài luận văn của tôi gồm 4 chương như sau:
- Chương 1 Bài toán xâu gần nhất và một số phương pháp tiếp cận
- Chương 2 Phương pháp ACO
Trang 11- Chương 3 Các phương pháp ACO giải bài toán xâu gần nhất
- Chương 4 Kết quả thực nghiệm
Trang 12TƯTH là một dạng của bài toán tối ưu hóa Tối ưu hoá là thuật ngữ thường được dùng để cực tiểu hoá hay cực đại hoá một hàm Thông thường chỉ cần tìm cực tiểu một hàm là đủ Việc tìm cực đại của f(x) thực hiện một cách đơn giản bằng cách tìm cực tiểu của hàm −f(x)
1.1 BÀI TOÁN XÂU GẦN NHẤT
Xét tập X các xâu có độ dài m với các thành phần thuộc bộ chữ cái ∑, trên đó xác định khoảng cách Hamming như sau:
Định nghĩa 1: Khoảng cách Hamming
- Với hai xâu tùy ý x = x 1 …x m và y = y 1 …y m , khoảng cách d H (x,y) là số vị trí khác nhau của x i và y i với i
- Với mỗi tập hữu hạn xâu có cùng độ dài S, khoảng cách từ một xâu t đến tập S
là khoảng cách lớn nhất của t đến các chuỗi trong S, ký hiệu là d H (t,S):
d H (t,S) = max{d H (t,s): s S} (1.1)
Ví dụ Xét xâu t = “GGGGG” và tập xâu S={ s1= “AGGAA”, s2
= “AGGGA”,
s3 = “GGGGA”} Do dH(t, s1)=3; dH (t,s2)=2; dH(t,s3)=1; Nên dH(t,S) =3
Định nghĩa 2: Xâu gần nhất của một tập xâu
Cho trước tập S gồm n xâu có độ dài m với các thành phần thuộc bộ chữ cái ∑, trên đó xác định xâu t được gọi là xâu gần nhất [10] của S nếu nó thỏa mãn công thức (1.2):
d H (t,S) = min{ d H (x,S): x X} (1.2)
Trang 13Bài toán xâu gần nhất có vai trò quan trọng trong xử lý thông tin và tìm kiếm
motif trong tin sinh học Vì vậy, nó đang thu hút nhiều người quan tâm nghiên cứu và
đã được chứng minh thuộc loại NP-khó
1.2 MỘT SỐ PHƯƠNG PHÁP TIẾP CẬN
Với những bài toán CSP cỡ nhỏ hoặc những bài toán đặc biệt thì có thể tìm lời giải
tối ưu nhờ kỹ thuật tìm kiếm vét cạn hoặc xây dựng những lời giải đặc thù riêng Tuy
nhiên, với các bài toán CSP cỡ lớn, hầu hết các bài toán trong số đó là bài toán NP-khó
[3, tr.205-219], thì phải tìm lời giải theo phương pháp tìm kiếm gần đúng Các phương
pháp giải loại bài toán này phần lớn dựa trên 2 kỹ thuật cơ bản: heuristic cấu trúc
(construction heuristic) và tìm kiếm địa phương (local search)
Heuristic cấu trúc
Đối với những bài toán không thể tìm lời giải tối ưu (ví dụ: bài toán với thời gian
đa thức) thì nghĩ tới việc tìm lời giải gần đúng Heuristic cấu trúc là kỹ thuật hay được
dùng trong việc tìm lời giải gần đúng, lời giải của bài toán được xây dựng thông qua
việc mở rộng tuần tự Từ đỉnh khởi tạo trong tập , từng bước mở rộng không quay
lui, thêm vào các thành phần mới theo phương thức ngẫu nhiên hay tất định dựa trên
những quy tắc heuristic
Ứng với mỗi bài toán cụ thể, có các quy tắc heuristic khác nhau, chúng được xây
dựng dựa trên các kết quả phân tích toán học hoặc kinh nghiệm
Khái quát hóa mô phỏng thuật toán Heuristic cấu trúc như hình 1.1 – trang bên
Trang 14 Tìm kiếm địa phương
- Ý tưởng: Bắt đầu từ một phương án chấp nhận được, lặp lại bước cải tiến lời
giải nhờ các thay đổi địa phương
- Cách thực hiện: Để thực hiện kỹ thuật này, cần xác định được cấu trúc lân cận
của mỗi phương án (lời giải) đang xét, tức là những phương án chấp nhận được, gần với nó nhất, nhờ thay đổi một số thành phần Cách thường dùng là lân cận -thay đổi,
tức là lân cận bao gồm các phương án chấp nhận được khác với phương án đang xét
nhờ thay đổi nhiều nhất thành phần
Phương pháp Metaheuristic
Phương pháp Metaheuristic là một phương pháp heuristic tổng quát được thiết kế,
định hướng cho các thuật toán cụ thể (bao gồm cả heuristic cấu trúc và tìm kiếm địa phương) Như vậy, mỗi metaheuristic là một lược đồ thuật toán tổng quát ứng dụng cho các bài toán tối ưu khác nhau, với một chút sửa đổi cho phù hợp với từng bài toán
Phương pháp Memetic
Phương pháp Memetic là một mô hình theo phương pháp metaheuristic Trong các
thuật toán được thiết kế theo memetic, có nhiều thế hệ quần thể có lời giải chấp nhận được Trong mỗi quần thể của thế hệ tương ứng, chỉ chọn ra một số lời giải (chẳng hạn lời giải tốt nhất) để thực hiện tìm kiếm địa phương nhằm cải thiện chất lượng Quá trình tiến hóa này tìm được lời giải tốt nhất có thể
Procedure Heuristic cấu trúc
Trang 15Hình 1.2 đặc tả một thuật toán memetic sử dụng tính toán tiến hóa (Evolutionary Computing - EC)
Hình 1.2 Đặc tả thuật toán Memetic-EC
Proedure Thuật toán Memetic-EC
Begin
Initialize: Tạo ra quần thể đầu tiên
While điều kiện dừng chưa thỏa mãn do
Đánh giá các cá thể trong quần thể
Thực hiện tiến hóa quần thể nhờ các toán tử cho trước
Chọn tập con để cải tiến nhờ thủ tục tìm kiếm địa phương
For mỗi cá thể trong do
Thực hiện tìm kiếm địa phương
Trang 16Chương 2
PHƯƠNG PHÁP ACO
ACO (Ant Colony Optimization - tối ưu đàn kiến) là một phương pháp
metaheuristic [3, tr.48-53] 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 ACO được cải tiến với nhiều phiên bản đa dạng và có nhiều ứng dụng Trước khi tìm hiểu phương pháp ACO tôi đi tìm hiể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 TỪ KIẾN TỰ NHIÊN ĐẾN KIẾN NHÂN TẠO
(From Ant Colonies to Artificial Ants - ANTS)
Những hình ảnh nhận thức đặc biệt của đàn kiến chỉ đơn giản là sự phát triển và hoàn toàn mò mẫm Trong thực tế, một điều quan trọng trong nghiên cứu về loài kiến
là hành vi liên lạc giữa các con kiến hoặc giữa các cá nhân với môi trường, được dựa trên việc sử dụng các sản phẩm hóa chất của các loài kiến Các hóa chất đó được gọi là pheromones (vết mùi)
2.1.1 Con kiến tự nhiên
Khi tìm đường đi, đàn kiến trao đổi thông tin gián tiếp và hoạt động theo phương thức tự tổ chức Phương thức này tuy đơn giản nhưng đã giúp cho đàn kiến có thể thực hiện được những công việc phức tạp vượt xa khả năng của từng con kiến, đặc biệt là khả năng tìm đường đi ngắn nhất từ tổ đến nguồn thức ăn [3, tr.16] (xem hình 2.1)
(mặc dù, kiến không có khả năng đo độ dài đường đi)
Hình 2.1 Thể hiện hành vi của mỗi con kiến trong tự nhiên
Trang 17Để làm được điều đó, trên đường đi, mỗi con kiến để lại vết mùi dùng để đánh dấu đường đi Bằng cách cảm nhận vết mùi, con kiến có thể lần theo đường đi đến nguồn thức ăn được các con kiến khác khám phá theo phương thức chọn ngẫu nhiên, có định hướng theo nồng độ vết mùi
Con kiến chịu ảnh hưởng của các vết mùi của các con kiến khác, đây là ý tưởng chính để thiết kế thuật toán ACO
Thí nghiệm chiếc cầu đôi
Sự gửi vết mùi và hành vi của một số loài kiến đã được điều tra kiểm soát trong các thực nghiệm của một số nhà nghiên cứu Một trong những thí nghiệm nổi bật nhất
là thí nghiệm được thiết kế và đi vào hoạt động của Deneubourg và các đồng nghiệp [3, tr.17-19], người mà đã sử dụng một chiếc cầu nối tổ của đàn kiến với nguồn thức
ăn (xem hình 2.2) Họ chạy các thực nghiệm với tỉ lệ dài đường 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
Hình 2.2 Thí 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
Trong thí nghiệm thứ nhất, chiếc cầu đôi có hai nhánh bằng nhau (hình 2.2.a) Ban
đầu, con kiến lựa chọn đường đi một cách tự do đi 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
Trang 18Giải thích kết quả: 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 con kiến để lại vết mùi trong quá trình di chuyển, nhánh có nhiều con 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 địa phương 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
Trong thí nghiệm thứ hai, độ dài của nhánh dài gấp đôi độ dài nhánh ngắn (hình
2.2b) 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
Giải thích kết quả: Cũng như thí 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 con 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à nhá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 kiến mới lựa chọn đi theo nhánh ngắn Điều này minh chứng đàn kiến đã sử dụng phương thức thăm
dò, tìm đường mới
Thí nghiệm thứ ba: 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 (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à kiến tập trung đi trên nhánh dài
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 19Giải thích kết quả: Nồng độ vết mùi cao trên cạnh dài và sự bay hơi của vết mùi trên cạnh dà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ố 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 địa phương đã được tìm thấy trước đây để tìm khám phá đường đi mới tốt hơn
2.1.2 Kiến nhân tạo (Artificial Ant)
Thí nghiệm chiếc cầu đôi 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 luật xác xuất 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 trong bài toán chọn tác động tối ưu [3], 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, 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 (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…
Năm 1991, Dorigo [2] sử dụng mô hình kiến nhân tạo này, đã xây dựng thuật toán
hệ kiến AS (Ant System) giải bài toán người chào hàng (Traveling Salesman Problem
- TSP) 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ư: thuật toán luyện kim và thuật toán di truyền) đã đượ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
Dorigo đã được Hội đồng châu Âu trao giải thưởng đặc biệt Marie Curie (Marie
Curie Excellence Award – trao hai năm một lần giành cho năm nhà khoa học có nhiều
đóng góp cho nền khoa học và công nghệ châu Âu) vào ngày 11 2 3 Đến nay, các hội nghị về kiến đã tổ chức lần (ANT 9 , ANT 2000, ANTS 2002, ANTS
Trang 202004, ANTS 2006, ANTS 2008, ANTS 2010, ANTS 2 12) và ở mỗi hội nghị có khoảng 3 -4 báo cáo về các công trình nghiên cứu lý thuyết và thực nghiệm có ý nghĩa khoa học và ứng dụng quan trọng góp phần chứng tỏ ACO là phương pháp tối
ưu mới m và hiệu quả
2.2 PHƯƠNG PHÁP ACO
2.2.1 Đồ thị cấu trúc
Xét bài toán TƯTH tổng quát như sau:
- Input: Cho bộ ba Mỗi phương án thỏa mãn các ràng buộc
gọi là phương án (hay lời giải) chấp nhận được
- Task: Tìm phương án chấp nhận được tối ưu hóa toàn cục hàm mục tiêu 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 , là tập các ràng buộc Chẳng hạn, với bài toán cực tiểu thì với mọi phương án chấp nhận được s
3) Từ , mở rộng tuần tự thành như sau:
i) 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 , xác định tập con của C, sao cho với mọi thì
Trang 21nhận được sẽ là các véc tơ đượ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ó thì đư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
Ký hiệu:
- là trọng số heuristic trên cạnh nối hai đỉnh i và j (với )
- là véc tơ các trọng số heuristic của cạnh
- là véc tơ biểu thị các thông tin học tăng cường (khởi tạo >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, xét trường hợp các thông tin này gắn vào các cạnh
Gọi đồ thị là đồ thị cấu trúc của bài toán TƯTH, 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ì 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 (xem 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
Hình 2.4 Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm
Trang 222.2.2 Đặc tả thuật toán ACO tổng quát
Sử dụng điều kiện kết thúc (có thể theo số bước lặp hoặc giới hạn thời gian chạy), 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
Thủ tục bước ngẫu nhiên
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 C, sao cho với mọi thì
là mở rộng được Đỉnh để mở rộng (xem hình 2.5), được chọn với xác suất theo công thức 2.1:
Hình 2.5 Lựa chọn đỉnh đi tiếp theo
Để tiện trình bày về sau tôi chọn và như nhau và không phân biệt với
Cập nhật mùi
Tùy theo chất lượng của lời giải tìm được, vết mùi trên mỗi cạnh sẽ được điều chỉnh tăng hoặc giảm tùy theo đánh giá mức độ ưu tiên tìm kiếm về sau Lượng mùi
Trang 23cập nhật theo các quy tắc cập nhật mùi khác nhau sẽ cho các thuật toán khác nhau Vì vậy, quy tắc cập nhật mùi thường dùng làm tên gọi thuật toán
Các quy tắc thông dụng đều có dạng như công thức (2.2):
Trong đó: là hằng số thuộc khoảng (0,1) là tỷ lệ lượng mùi bị bay hơi
Các bước thực hiện của các thuật toán ACO được đặc tả trong hình 2.6
Nhận xét chung về các thuật toán ACO
Nhờ kết hợp thông tin heuristic và thông tin học tăng cường để mô phỏng hoạt động của đàn kiến nên các thuật toán ACO thường có các ưu điểm sau:
1) Việc tìm kiếm ngẫu nhiên dựa trên các thông tin heuristic trở nên linh hoạt và mềm d o trên miền rộng hơn so với các phương pháp heuristic trước đây Do đó, phương pháp ACO cho lời giải tốt hơn và có thể tìm được lời giải tối ưu
2) Thông tin học tăng cường cho biết thông tin về cường độ vết mùi, cho phép từng bước thu hẹp không gian tìm kiếm, mà vẫn không loại bỏ các lời giải tốt, từ đó nâng cao chất lượng thuật toán
Chú ý: Ba yếu tố ảnh hưởng quyết định đến hiệu quả thuật toán là:
1) Xây dựng đồ thị cấu trúc thích hợp Khó khăn chính là với các bài toán cỡ lớn,
không gian tìm kiếm quá rộng, đòi hỏi sử dụng các ràng buộc một cách hợp lý để giảm miền tìm kiếm của kiến
Procedure Thuật toán ACO
Until (Điều kiện kết thúc)
Đưa ra lời giải tốt nhất
End;
Hình 2.6 Đặc tả thuật toán ACO
Trang 242) Chọn thông tin heuristic Thông tin heuristic tốt sẽ tăng hiệu quả thuật toán
Tuy nhiên, trong nhiều bài toán không có thông tin này thì có thể đánh giá chúng như nhau Khi đó, ban đầu thuật toán chỉ đơn thuần chạy theo phương thức tìm kiếm ngẫu nhiên, vết mùi thể hiện định hướng của học tăng cường và thuật toán vẫn thực hiện được
3) Chọn quy tắc cập nhật mùi Quy tắc cập nhật mùi thể hiện chiến lược học của
thuật toán Trong khi đồ thị cấu trúc và thông tin heuristic phụ thuộc vào bài toán cụ thể, quy tắc cập nhật mùi là yếu tố phổ dụng và thường được dùng để đặt tên cho thuật toán
2.2.3 Các hệ kiến
Bài toán TƯTH điển hình là bài toán TSP và được xem là bài toán chuẩn để đánh giá hiệu quả của các thuật toán giải các bài toán TƯTH mới Hiện nay, sử dụng phương pháp ACO giải bài toán TƯTH được chia thành 2 loại hệ kiến chính: các hệ kiến một giai đoạn và các hệ kiến hai giai đoạn
Một số hệ kiến một giai đoạn như: Hệ kiến AS, hệ đàn kiến ACS (Ant Colony System, do Dorigo & Gambardella đề xuất năm 1997), hệ kiến MMAS (Max-Min Ant System, còn gọi là hệ kiến Max-Min, do tützle & Hoos đề xuất năm 2 ),… Các thuật toán trong các hệ kiến này khác nhau ở quy tắc cập nhật mùi, quy tắc này được
sử dụng để đặt tên cho các thuật toán Tuy nhiên, hiệu quả của các thuật toán trong các
hệ kiến này so với các phương pháp metaheuristic khác giảm khi kích thước bài toán tăng, vì vậy đã có nhiều nghiên cứu tập trung cải tiến thuật toán trong hệ kiến một giai đoạn thành hệ kiến hai giai đoạn
Trong bài luận văn này tôi đi sâu tìm hiểu hai thuật toán ACO trong hệ kiến hai
giai đoạn, đó là thuật toán ACOM-CSP [8] và thuật toán TSIACO [10]
Trang 25là lời giải tốt nhất ở bước lặp Nhờ sử dụng mô hình Markov không thuần nhất, Gutjahr đã chứng minh rằng với xác suất bằng 1 ta có:
= với mọi cạnh thuộc lời giải tối ưu (2.4)
Mô hình này của Gutjahr không áp dụng được cho ACS Trong trường hợp MMAS không sử dụng thông tin heuristic, Stützle và Dorigo [3] đã chứng minh rằng:
, với mọi cạnh thuộc lời giải tối ưu (2.6)
Các tác giả cũng suy ra rằng kết quả này cũng đúng cho cả thuật toán ACS Với giả thiết tìm được lời giải tối ưu sau hữu hạn bước, Stützle và Dorigo suy ra rằng vết mùi của các cạnh thuộc lời giải tối ưu tìm được sẽ hội tụ đến , còn vết mùi trên các cạnh không thuộc lời giải sẽ hội tụ về hoặc Plelegrini và Elloro chỉ ra rằng sau một thời gian chạy, đa số vết mùi trên cạnh trở nên bé và chỉ có số ít cạnh có giá trị vết mùi là lớn vượt trội
2.2.4.2 Thực hiện song song
Đặc tính tự nhiên của các thuật toán ACO cho phép thực hiện song song theo dữ liệu hoặc theo quần thể [3] Trên thực tế, có nhiều mô hình song song được sử dụng cho các thuật toán dựa trên quần thể, dễ dàng tương thích với ACO
2.2.4.3 ACO kết hợp với tìm kiếm địa phương
Nhiều tài liệu [3,4] chỉ ra rằng với các phương pháp metaheuristic, một cách tiếp cận đầy hứa hẹn cho phép nhận được lời giải có chất lượng cao là kết hợp thuật toán với tìm kiếm địa phương
Mô hình ACO có thể bao gồm cả tìm kiếm địa phương Sau khi kiến xây dựng xong lời giải, có thể áp dụng tìm kiếm địa phương để nhận được lời giải tối ưu địa
Trang 26phương Việc cập nhật mùi được thực hiện trên các cạnh thuộc lời giải tối ưu địa phương này Kết hợp xây dựng lời giải với tìm kiếm địa phương sẽ là một cách tiếp cận có triển vọng, cách xây dựng lời giải của ACO có sử dụng lân cận khác với tìm kiếm địa phương Thực nghiệm cho thấy khả năng kết hợp tìm kiếm địa phương cải tiến được lời giải là khá cao (xem mục 4.5 ở chương 4)
Thuật toán ACOM-CSP có sử dụng kỹ thuật tìm kiếm địa phương ở giai đoạn 2 Thuật toán TSIACO chưa sử dụng kỹ thuật tìm kiếm địa phương
2.2.4.4 Thông tin heuristic
Biết rằng thuật toán ACO mà không sử dụng tìm kiếm địa phương, thông tin heuristic sẽ rất cần thiết để có được lời giải tốt
Trên thực tế, ở giai đoạn đầu vết mùi được khởi tạo như nhau Khi đó, vết mùi không thể giúp kiến tìm đường đi dẫn tới các lời giải tốt, vì chưa khác nhau nhiều Vai trò chính của thông tin heuristic là để khắc phục điều trên và giúp kiến có thể xây dựng được các hành trình tốt ngay trong giai đoạn đầu
Trong nhiều trường hợp, nhờ sử dụng tìm kiếm địa phương, kiến vẫn có thể tìm được lời giải tốt ngay trong giai đoạn đầu, không cần sử dụng thông tin heuristic nào
cả, mặc dù có làm cho quá trình tìm kiếm chậm hơn
2.2.4.5 Số lượng kiến
Như đã nói ở trên, nếu không sử dụng tìm kiếm địa phương và thông tin heuristic
ít (hoặc không có), trong giai đoạn đầu vết mùi không thể giúp kiến tìm đường đi dẫn tới các lời giải tốt
Nếu sử dụng số lượng kiến ít, trong giai đoạn đầu sẽ không tìm được lời giải tốt và việc cập nhật mùi được cập nhật dựa trên các lời giải không tốt Khi đó sẽ hướng việc tìm kiếm xung quanh lời giải không tốt và do đó thuật toán sẽ không hiệu quả
Có thể khắc phục phần nào nhược điểm này bằng cách tăng số kiến, để tăng khả năng tìm được lời giải tốt ở mỗi vòng lặp Tuy nhiên, khi có sử dụng tìm kiếm địa phương hoặc thông tin heuristic mạnh, sử dụng nhiều kiến là lãng phí
Trang 272.2.4.6 Hệ số bay hơi
Ở mỗi vòng lặp, khi xây dựng được lời giải tốt (sử dụng tìm kiếm địa phương hoặc thông tin heuristic mạnh), tham số bay hơi sẽ được xác lập có giá trị lớn, điều này giúp kiến quên đi những lời giải đã xây dựng, tập trung công việc tìm kiếm xung quanh lời giải tốt mới được xây dựng Trong trường hợp ngược lại, ở mỗi vòng lặp, khả năng kiến tìm được lời giải tốt không cao thì tham số bay hơi phải được thiết lập với giá trị nhỏ
Thuật toán ACOM-CSP sử dụng cùng hệ số bay hơi trong toàn bộ quá trình tìm lời giải Thuật toán TSIACO sử dụng hai hệ số bay hơi khác nhau trong mỗi giai đoạn cập nhật mùi
2.2.4.7 Giới hạn vết mùi
Để hạn chế bị sa lầy vào các lời giải tốt địa phương do nhiều con kiến tìm ra qua nhiều bước lặp sẽ giới hạn cận trên của vết mùi là Và để tránh bỏ qua các cạnh mặc dù tạm thời chưa nằm trong các lời giải tốt nhưng có triển vọng nằm trong lời giải tốt, giới hạn cận dưới của vết mùi là Trong đó: và là các số thực tùy ý thỏa mãn Khoảng giới hạn cập nhật mùi là [ , ]
2.2.4.8 Khởi tạo vết mùi
Ban đầu các vết mùi được khởi tạo cho mọi đỉnh (i,j) là
Với thuật toán ACOM-CSP: |∑| Với ∑ = {A, C, G, T} [8, 10] thì
Với thuật toán TSIACO: ( [13, tr.4] Giá trị khởi tạo liên quan tới cách lựa chọn để cập nhật mùi Ví dụ, nếu mùi cần được khởi tạo để giới hạn trên của vết mùi, thì m2 = 1, nếu mùi cần khởi tạo cho một nửa của giới hạn trên thì m2 = 0.5
Trang 28Năm 2 11, Zhaojun Zhang và Zuren Feng [10] chỉ đề xuất ra quy tắc cập nhật mùi mới và áp dụng cho bài toán T P, đó là thuật toán TSIACO Thuật toán T IACO được đánh giá là thuật toán cho chất lượng lời giải tốt nhất, áp dụng cho bài toán TSP Trong bài luận văn này tôi sẽ sử dụng quy tắc cập nhật mùi của Zhaojun Zhang và Zuren Feng [10] để giải bài toán CSP Gọi các thuật toán đó là TSIACO1 và TSIACO2 au đó, tôi sẽ áp dụng kỹ thuật tìm kiếm địa phương trong giai đoạn thứ 2 của thuật toán TSIACO2, gọi thuật toán đó là TSIACO2-LS
3.1 THUẬT TOÁN ACOM-CSP
Trước khi tìm hiểu thuật toán ACOM-CSP (An Efficient Two-phase Ant Colony Optimization Algorithm for the Closest String Problem - Thuật toán tối ưu đàn kiến hai pha cho bài toán xâu gần nhất), tôi tìm hiểu thuật toán ACO để giải bài toán CSP gọi tắt là thuật toán ACO-CSP
3.1.1 Thuật toán ACO-CSP
Thuật toán này thực hiện theo lược đồ được đặc tả trong hình 2.6 với đồ thị cấu trúc, thủ tục tìm kiếm lời giải và quy tắc cập nhật mùi [1,8] như sau:
Đồ thị cấu trúc
Xét tập chuỗi S={s1,…,sn}, gồm n chuỗi độ dài m, trong đó si= với thuộc bộ chữ cái ∑ Ký hiệu Vi = {a ∑: =a}, khi tập chữ cái nhỏ và số chuỗi lớn thì Vi thường trùng với ∑ Khi đó các đỉnh của đồ thị cấu trúc được xếp trên m cột,
trên mỗi cột chỉ có các đỉnh gồm m cột nhưng có khác là cột thứ i chỉ chứa các đỉnh có
Trang 29nhãn thuộc tập Vi (xem hình 3.1) Tập cạnh E nối các đỉnh thuộc hai cột liền kề Thông tin heuristic cho đỉnh (i,j) ở cột i hàng j là , được tính theo công thức 3.1:
(3.1)
Với các đại lượng cho trước, ban đầu khởi tạo vết mùi cho mọi đỉnh (i,j) đều bằng |∑| =0.25
Hình 3.1 Đồ thị cấu trúc
Thủ tục bước ngẫu nhiên để tìm lời giải
Một lời giải t được xác định bởi đường đi từ cột đầu đến cột cuối (xem hình 3.2) được mỗi kiến xác định như sau: Kiến chọn ngẫu nhiên một đỉnh thuộc cột thứ nhất với xác suất là tích của vết mùi và thông tin heuristic tương ứng được chuẩn hóa, sau
đó mở rộng tuần tự như sau Giả sử kiến đang ở đỉnh a Vi, nó sẽ chọn tiếp đỉnh b
Vi+1 cho vị trí tiếp theo của chuỗi với xác suất được tính theo công thức 3.2:
Trong đó, là hằng số dương, khi thì ứng với không dùng thông tin heuristic
Hình 3.2 Xây dựng lời giải
Trang 30 Quy tắc cập nhật mùi
Sau khi các con kiến trong bước lặp đã tìm được lời giải, vết mùi được cập nhật theo quy tắc SMMAS (Smooth Max-Min Ant System - Hệ kiến Max Min trơn) [1,8] như công thức 3.3:
Trong đó: {
Lời giải tốt nhất là lời giải gần S nhất tìm được cho tới lúc đó
Thông thường để tăng chất lượng lời giải, người ta kết hợp với tìm kiếm địa phương với hai chiến lược:
1) Chỉ áp dụng cho lời giải tốt nhất
2) Áp dụng cho mọi lời giải tìm được
Áp dụng theo cách thứ nhất thường lời giải tốt nhất hay bị lặp lại, còn áp dụng theo cách thứ hai thì mất nhiều thời gian chạy
Thuật toán hai giai đoạn ACOM-CSP kết hợp hai thuật toán ACO và Memetic Giai đoạn thứ nhất là sử dụng thuật toán ACO với quy tắc cập nhật mùi SMMAS áp dụng cho 6 % bước lặp đầu Giai đoạn thứ hai là thuật toán memetic áp dụng cho 40% bước lặp cuối Trong giai đoạn thứ hai, phương pháp ACO được dùng để xây dựng quần thể trong mỗi bước lặp, kỹ thuật tìm kiếm địa phương chỉ áp dụng cho hai lời giải tốt nhất trong bước lặp
3.1.2 Thuật toán Memetic
Giai đoạn thứ hai của ACOM-CSP là thực hiện thuật toán Memetic theo lược đồ
đã được đặc tả trong hình 3.3 Trong đó, dùng thuật toán ACO-C P để xây dựng quần thể cho mỗi bước lặp và lấy hai lời giải tốt nhất tìm được đến lúc đó làm tập Ωil để áp
dụng tìm kiếm địa phương [8] Nói cách khác, thuật toán này thực hiện theo thủ tục
của thuật toán ACO-C P nhưng sau khi đánh giá ở mỗi bước lặp, hai lời giải có khoảng cách tới tập S nhỏ nhất được áp dụng tìm kiếm địa phương để cải tiến chất lượng trước khi cập nhật mùi
Trang 31Kỹ thuật tìm kiếm địa phương
Kỹ thuật tìm kiếm địa phương thực hiện như sau: Việc tìm kiếm địa phương cho lời giải t= t1…tn sẽ được thực hiện theo thứ tự ngẫu nhiên của các vị trí cho đến khi có lời giải tốt hơn Khi vị trí ti được xét, nó sẽ lần lượt được thay thế bởi các ký tự còn lại trong tập Vi cho đến khi có lời giải tốt hơn t thì lời giải tìm được sẽ thay cho t và việc tìm kiếm địa phương cho nó chấm dứt [8] (xem hình 3.4)
Thuật toán ACOM-CSP chạy thuật toán ACO-CSP trong 60% vòng lặp đầu, 40% vòng lặp còn lại chạy thuật toán Memetic-CSP
Procedure Thuật toán Memetic-CSP
Begin
Initialize: Khởi tạo vết mùi
While điều kiện dừng chưa thỏa mãn do
For i=1 to n_ants do
Xây dựng lời giải nhờ đồ thị cấu trúc Đánh giá xác định Ωil gồm k lời giải tốt nhất Cải tiến lời giải do kiến xây dựng bằng tìm kiếm địa phương cho Ωil
Hình 3.3 Đặc tả thuật toán Memetic –CSP
Hình 3.4 Ví dụ về Tìm kiếm địa phương