3
MỤC LỤC
Lời cam đoan 1
Lời cảm ơn 2
Mục lục 3
Danh mục các ký hiệu và chữ viết tắt 7
Danh mục các bảng 12
Danh mục các hình vẽ, đồ thị 13
MỞ ĐẦU 15
Chương 1. TỐI ƯU TỔ HỢP 20
1.1. Bài toán tối ưu tổ hợp tổng quát 20
1.2. Các ví dụ 22
1.2.1. Bài toán người chào hàng 22
1.2.2. Bài toán quy hoạch toàn phương nhị phân không ràng buộc 23
1.3. Các cách tiếp cận 24
1.3.1. Heuristic cấu trúc 24
1.3.2. Tìm kiếm cục bộ 25
1.3.3. Phương pháp metaheuristic 26
1.4. Kết luận chương 27
Chương 2. PHƯƠNG PHÁP TỐI ƯU ĐÀN KIẾN 28
2.1. Từ kiến tự nhiên đến kiến nhân tạo 28
2.1.1. Kiến tự nhiên 28
4
2.1.2. Kiến nhân tạo 31
2.2. Phương pháp ACO cho bài toán TƯTH tổng quát 32
2.2.1. Đồ thị cấu trúc 32
2.2.2. Mô tả thuật toán ACO tổng quát 34
2.3. Phương pháp ACO giải bài toán người chào hàng 37
2.3.1. Bài toán TSP và đồ thị cấu trúc 38
3.7. Kết luận chương 80
Chương 4. THUẬT TOÁN ACOHAP GIẢI BÀI TOÁN SUY DIỄN HAPLOTYPE . 81
4.1. Bài toán suy diễn haplotype và tiêu chuẩn pure parsimony 81
4.1.1. Giải thích genotype 81
4.2.2. Suy diễn haplotype theo tiêu chuẩn pure parsimony 83
4.2. Thuật toán ACOHAP 84
4.2.1. Mô tả thuật toán 84
4.2.2. Đồ thị cấu trúc 85
6
4.2.3. Thủ tục xây dựng lời giải của mỗi con kiến 86
4.2.4. Thông tin heuristic 89
4.2.5. Cập nhật vết mùi 91
4.2.6. Hoán vị thứ tự xử lý các vị trí trong bộ genotype 91
4.2.7. Sử dụng tìm kiếm cục bộ 92
4.2.8. Độ phức tạp thuật toán 92
4.3. Kết quả thực nghiệm 93
4.3.1. Thực nghiệm trên bộ dữ liệu chuẩn 94
4.3.2. Thử nghiệm trên dữ liệu thực 95
4.4. Kết luận chương 96
Chương 5. THUẬT TOÁN AcoSeeD TÌM TẬP HẠT GIỐNG CÓ CÁCH TỐI ƯU 97
5.1. Bài toán tìm tập hạt giống có cách tối ưu và một số vấn đề liên quan 97
5.1.1. Bài toán tìm tập hạt giống tối ưu 97
5.1.2. Các cách tiếp cận hiện nay 99
5.2. Thuật toán AcoSeeD giải bài toán tìm tập hạt giống tối ưu 101
5.2.1. Mô tả thuật toán 101
5.2.2. Thuật toán xác định độ dài các hạt giống 102
5.2.3. Thuật toán xây dựng các hạt giống 103
5.2.4. Tìm kiếm cục bộ 105
5.2.5. Cập nhật mùi 106
TÀI LIỆU THAM KHẢO 126
9
Danh mục các ký hiệu và chữ viết tắt
Cn trên ca vt mùi
Ci ca vt mùi
Cn gia ca vt mùi
Vc khi tu
Vt mùi trên cnh
Thông tin heuristic trên cnh
Evolutionary Computing (Tính toán tin hoá)
GA
Genetic Algorithm
GASVM
Thut toán di truyn tìm tham s
d báo hou tit gen
G-best
Global-best (Li gii tt nhn thm hin ti)
HI
Haplotype Inference (Suy din haplotype)
HIPP
Haplotype Inference by Pure Parsimony (Suy din haplotype
theo tiêu chun Pure Parsimony)
I-best
Iteration-best (Li gii tt nhc lp hin ti)
JSS
Job Shop Scheduling (Bài toán lp lch sn xut)
MLAS
Multi-level Ant System (H kic)
MMAS
Max-Min Ant System (H kin Max Min)
PSO
Particle Swarm Optimization (T
SA
Simulated Annealing (Thut toán mô phng luyn kim)
SMMAS
Smoothed Max-Min Ant System (H ki
SpEED
Thui tìm tp ht ging t
11
Bảng 4.4: Thông tin dữ liệu thực 95
Bảng 4.5: Kết quả thực nghiệm với dữ liệu thực 96
Bảng 5.1: Kết quả thực nghiệm SpEED với AcoSeeD trên bộ dữ liệu nhỏ 108
Bảng 5.2: So sánh AcoSeeD với các phương pháp khác trên bộ dữ liệu trung bình 109
Bảng 5.3: Kết quả thực nghiệm so sánh AcoSeeD với các phương pháp trên bộ dữ liệu
lớn PatternHunterII và BFAST 110
Bảng 5.4: So sánh AcoSeeD với SpEEDfast trên bộ dữ liệu lớn MegaBFAST 110
Bảng 6.1: Kết quả thực nghiệm so sánh 3 phương pháp 121
13
Danh mục các hình vẽ, đồ thị
Hình 1.1: Phương pháp heuristic cấu trúc tham ăn 24
Hình 1.2: Lời giải nhận được nhờ thay 2 cạnh (2,3), (1,6) bằng (1,3), (2,6) 26
Hình 1.3: Thuật toán memetic sử dụng EC 27
Hình 2.1: Thực nghiệm cây cầu đôi 29
Hình 2.2: Thí nghiệm bổ xung 31
Hình 2.3: Đồ thị cấu trúc tổng quát cho bài toán cực trị hàm 34
Hình 2.4: Thuật toán ACO 36
Hình 2.5: Lựa chọn đỉnh đi tiếp theo 40
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ộ 40
Hình 3.1: Hai chu trình khác nhau 7 cạnh, đường liền qua cạnh và đường đứt
đoạn qua cạnh 62
Hình 3.2: Đồ thị cấu trúc giải bài toán UBQP 72
Hình 4.1: Thuật toán ACOHAP 84
Hình 4.2: Đồ thị cấu trúc (phần thuộc đường đậm) xác định giải thích genotype 201 86
Hình 4.3: Thủ tục tìm lời giải của mỗi con kiến 88
Hình 4.4: Lời giải HI của một con kiến với =121, =002, =221 89
Hình 5.1: Thuật toán leo đồi dùng trong SpEED và SpEEDfast 100
Hình 5.2: Thuật toán AcoSeeD 101
Hình 5.3: Đồ thị cấu trúc để xác định độ dài các hạt giống 103
PSO)…
Hai cách tiếp cận đầu thường cho lời giải nhanh nhưng không thể cải thiện thêm
lời giải tìm được, nên cách tiếp cận thứ ba đang được sử dụng rộng rãi cho các bài toán
cỡ lớn.
Trong các phương pháp mô phỏng tự nhiên, tối ưu đà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 (xem [28,29,31]) đang được nghiên cứu và ứng dụng rộng rãi cho
các bài toán TƯTH khó (xem [7,9,10,31,36,37,55,59,63]).
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à
16
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 [31], đà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 (hay còn gọi là thông
tin 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.
Với mỗi bài toán TƯTH , trong đó là tập hữu hạn các phương án
chấp nhận được, là hàm mục tiêu xác định trên và là để xác định qua các thành
phần của tập hữu hạn và các liên kết của tập này, mỗi lời giải trong sẽ tương ứng
với một hoặc một tập hữu hạn các vectơ
nhật mùi là yếu tố phổ dụng cho các bài toán và nó thường dùng làm tên để phân biệt
các thuật toán ACO.
Thuật toán ACO đầu tiên [28] là thuật toán hệ kiến (Ant System - AS) giải bài
toán người chào hàng (Traveling Salesman Problem - TSP). Đến nay đã có nhiều biến
thể được đề xuất, thông dụng nhất là hệ đàn kiến (Ant Colony System - ACS) [30,31] và
hệ kiến Max-Min (Max-Min Ant System - MMAS) [66]. Ngoài các kết quả được kiểm
chứng bằng thực nghiệm trên các bài toán ứng dụng, đã có nhiều nghiên cứu về đặc
tính của các thuật toán [8,10,36-38,55,65] như ảnh hưởng của vết mùi, thời gian chạy
và tính hội tụ, tính bất biến đối với biến đổi của hàm mục tiêu,… nhằm hiểu rõ và cải
tiến các thuật toán.
Khi áp dụng các thuật toán thông dụng như ACS và MMAS, người ta phải tìm
một lời giải đủ tốt, trên cơ sở đó xác định các tham số cho cận trên và cận dưới của vết
mùi. Điều này gây nhiều khó khăn khi áp dụng thuật toán cho các bài toán mới. Ngoài
ra, vấn đề lượng mùi cập nhật cho mỗi thành phần trong đồ thị tỷ lệ với giá trị hàm
mục tiêu của lời giải chứa nó liệu có phản ánh đúng thông tin học tăng cường hay
không cũng còn phải thảo luận.
Nhiệm vụ tác giả luận án đặt ra là:
1) Phân tích xu thế biến thiên của vết mùi trong các thuật toán ACO, trên cơ sở đó đề
xuất các quy tắc cập nhật mùi dễ sử dụng và hiệu quả hơn;
18
2) Áp dụng kết quả đạt được, đề xuất các thuật toán giải một số bài toán thời sự trong
công nghệ sinh học.
Trong luận án này, dựa trên các phân tích toán học, chúng tôi đề xuất quy tắc
Max-Min trơn (Smoothed Max-Min Ant System - SMMAS) như là cải tiến của thuật
toán Max-Min. Ưu điểm nổi trội của chúng được kiểm định bằng thực nghiệm qua đối
với các bài toán chuẩn như: lập lịch sản xuất (Job Shop Scheduling - JSS), người chào
hàng (Traveling Salesman Problem - TSP), quy hoạch toàn phương nhị phân không
ràng buộc (Unconstrained Binary Quadratic Programming- UBQP). Trường hợp các
thông tin heuristic có ảnh hưởng nhiều tới kết quả tìm kiếm, chúng tôi đề xuất quy tắc
Chương 1. TỐI ƯU TỔ HỢP
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, sẽ sử dụng trong
phương pháp tối ưu đàn kiến, các ví dụ minh họa và những vấn đề liên quan cần dùng
về sau.
1.1. Bài toán tối ưu tổ hợp tổng quát
Trong đời sống và trong các hệ thông tin, ta thường phải giải nhiều bài toán tối
ưu tổ hợp 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…
Về mặt hình thức, mỗi bài toán TƯTH ứng với một bộ ba , trong đó
là tập hữu hạn trạng thái (lời giải tiềm năng hay phương án), là hàm mục tiêu xác
định trên , còn là tập các ràng buộc (xem [31]). 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. Mục đích của ta là 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 . Chẳng hạn với bài
toán cực tiểu thì
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.
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ú ý.
1) Trong bài toán suy diễn haplotype ở chương 4, mỗi lời giải được biễu diễn
qua xâu độ dài . Cách biễu diễn này không mâu thuẫn với phát biểu bài
toán ở trên vì xâu này ứng với một vectơ có độ dài , trong đó mỗi thành
phần của vectơ tương ứng với một ký tự trong các xâu con của xâu kết hợp.
2) 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
Để thuận tiện trong các trình bày về sau, mục này giới thiệu hai bài toán TƯTH
điển hình: Bài toán người chào hàng (Traveling Salesman Problem - TSP) và bài toán
Quy hoạch toàn phương nhị phân không ràng buộc (Unconstrained Binary Quadratic
Programming - UBQP).
1.2.1. Bài toán người chào hàng
Bài toán người chào hàng (Traveling Salesman Problem - TSP) là bài toán
TƯTH điển hình, được nghiên cứu nhiều và được xem là bài toán chuẩn để đánh giá
hiệu quả các lược đồ giải bài toán TƯTH mới (xem [30,31]).
Bài toán được phát biểu như sau:
Có mt tp gm thành ph (hom tiêu th)
trc tip t c
i
n c
j
là d
i,j
. Mi chào hàng mun tìm mt hành trình ngn nht
t qua mi thành ph t l gii thiu sn phm cho khách hàng,
v thành ph xut phát.
Như vậy, bài toán này chính là bài toán tìm chu trình Hamilton có độ dài ngắn
nhất trên đồ thị đầy đủ có trọng số, trong đó là tập đỉnh với nhãn là các
thành phố trong là các cạnh nối các thành phố tương ứng, độ dài các cạnh chính là
(1.1)
ở đây là khoảng cách từ đến .
Bài toán TSP được xem là bài toán chuẩn để kiểm định hiệu quả của các
phương pháp giải bài toán TƯTH mới với thư viện dữ liệu chuẩn TSPLIB (Reinelt,
1991) tại địa chỉ [77] (Dữ liệu trong nó sẽ được sử dụng trong luận án này).
Bài toán này có nhiều ứng dụng thực tiễn, chẳng hạn như: khoan các lỗ trên
bảng mạch in (Reinelt, 1994) hay định vị các thiết bị X-quang (Bland & Shallcross,
1989)… [31].
1.2.2. Bài toán quy hoạch toàn phương nhị phân không ràng buộc
Bài toán quy hoạch toàn phương nhị phân không ràng buộc (Unconstrained
(1.2)
Trong bài toán này, tập là tập các vectơ nhị phân độ dài , hàm đã xác định
như trên, tập ràng buộc là rỗng. ,
trùng với , tập là vectơ độ dài :
với
, còn
trùng với .
24
1.3. Các cách tiếp cận
Trên đây cho thấy các bài toán TƯTH có thể đưa về bài toán tìm kiếm trên đồ
thị. Các bài toán này có thể giải đúng hoặc gần đúng. Với những bài toán cỡ nhỏ hoặc
có dạng đặc biệt người ta có thể tìm lời giải tối ưu nhờ tìm kiếm vét cạn hoặc bằng một
thuật toán với thời gian đa thức, được xây dựng dựa trên các phân tích toán học. Nhiều
bài toán trong số đó là NP-khó, nên với các bài toán cỡ lớn, người ta phải tìm lời giải
gần đúng. Các thuật toán giải gần đúng các bài toán TƯTH khó thường dựa trên 2 kỹ
thuật cơ bản: heuristic cấu trúc (construction heuristic) và tìm kiếm cục bộ (local
search).
1.3.1. Heuristic cấu trúc
Khi không thể tìm được lời giải tối ưu của bài toán, trong thực hành người ta
tìm lời giải gần đúng. Một kỹ thuật hay được dùng là heuristic cấu trúc, trong đó lời
;
Đưa ra lời giải ;
End;
Hình 1.1: Phương pháp heuristic cấu trúc tham ăn
25
trong đó GreedyComponent(
) có nghĩa là chọn thành phần bổ sung vào
theo quy tắc heuristic đã có. Ký hiệu
là kết quả phép toán thêm thành phần
vào
.
Dễ dàng hình dung phương pháp này khi áp dụng thuật toán cho bài toán TSP
với đồ thị đầy đủ và sử dụng quy tắc heuristic láng ging gn nht chnh thêm
vào (tức là chọn đỉnh gần nhất chưa đi qua để thêm vào hành trình). Các thuật toán này
có ưu điểm là tốn ít thời gian chạy nhưng nhược điểm chính là không cải tiến lời giải
được.
1.3.2. Tìm kiếm cục bộ
Kỹ thuật tìm kiếm cục bộ hay còn gọi là tìm kiếm địa phương, thực hiện bằng
cách 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 cục bộ. Để thực hiện kỹ thuật này, ta cần xác định được cu trúc lân cn 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 -i, tức là
lân cn 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.
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 cục bộ;
for mỗi cá thể trong
do
Thực hiện tìm kiếm cục bộ;
end-for
Chọn phần tử tốt nhất;
end-while;
Đưa ra lời giải tốt nhất;
End;
Hình 1.3: Thuật toán memetic sử dụng EC
Trong ứng dụng thực tế, các thuật toán ACO thường được kết hợp với tìm kiếm
cục bộ theo mô hình memetic này.
1.4. Kết luận chương
Các bài toán TƯTH
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, có vai trò quan trọng trong nghiên cứu lý thuyết và ứng