2.2.3 Quy tắc cập nhật vế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, với mỗi một quy tắc cập nhật mùi khác nhau thì tương ứng là các thuật toán khác nhau. Dưới đây sẽ giới thiệu một vài quy tắc cập nhật mùi khác nhau theo thứ tự thời gian xuất hiện.
2.2.3.1 Thuật toán AS
Đây là thuật toán ACO đầu tiên được Dorigo đề xuất năm 1991[8,11]. Vết mùi khởi tạo: 𝜏𝑖𝑗 = 𝜏0 = 𝑚
𝐶𝑛𝑛 với m là số lượng kiến, 𝐶𝑛𝑛 độ dài lời giải tìm được của thuật toán heuristic .
Ban đầu tất cả các cạnh sẽ bị mất đi một lượng mùi do bay hơi:
𝜏𝑖𝑗 ← (1 − 𝜌)𝜏𝑖𝑗 (2.3)
Sau đó những cạnh nào có kiến đi qua sẽ được cộng thêm một lượng mùi mà kiến để lại: 𝜏𝑖𝑗 ← 𝜏𝑖𝑗 + ∆𝑖𝑗𝑚′ 𝑚 𝑚′=1 (2.4) Trong đó: ∆𝑖𝑗𝑚′ 1 𝐶𝑚′ 𝑛ế𝑢 𝑐ạ𝑛 𝑖, 𝑗 𝑡𝑢ộ𝑐 𝑇𝑚′ 0 𝑛𝑔ượ𝑐 𝑙ạ𝑖 (2.5)
2.2.3.2 Thuật toán ACS
Thuật toán ACS do Dorigo và Gambardella đề xuất năm 1997[9]. Trong thuật toán ACS gồm có hai quy tắc cập nhật mùi.
Cập nhật mùi toàn cục 𝜏𝑖𝑗 ← 1 − 𝜌 𝜏𝑖𝑗 + 𝜌∆𝑖𝑗 (2.6) Trong đó: ∆𝑖𝑗= 𝐶𝑔𝑏 −1 , 𝑛ế𝑢 𝑖, 𝑗 ∈ 𝑙ờ𝑖 𝑔𝑖ả𝑖 𝐺 − 𝑏 0 ∈ 𝑙ờ𝑖 𝑔𝑖ả𝑖 𝐺 − 𝑏 (2.7) Cập nhật mùi cục bộ 𝜏𝑖𝑗 ← 1 − 𝛾 𝜏𝑖𝑗 + 𝛾∆𝑖𝑗 (2.8) Trong đó: 0 < 𝛾 < 1 và ∆𝑖𝑗= 𝜏0= (𝑛. 𝐶𝑛𝑛)−1 , n là số thành phố, 𝐿𝑛𝑛 là độ dài hành trình theo thuật toán tham ăn. Thuật toán ACS chỉ có duy nhất một kiến tìm được lời giải 𝐺 − 𝑏 được phép để lại mùi sau mỗi lần lặp.
2.2.3.3 Thuật toán Max-Min
Thuật toán Max- Min được kí hiệu là MMAS được Stutzle và Hoos đề xuất năm 2000[19], với hàm cập nhật vết mùi như sau:
𝜏𝑖𝑗 ← 𝜏𝑖𝑗 + ∆𝑖𝑗𝑏𝑒𝑠𝑡 (2.9)
Trong đó: ∆𝑖𝑗𝑏𝑒𝑠𝑡= 1/𝑓(𝐶𝑏𝑒𝑠𝑡), với 𝑓 𝐶𝑏𝑒𝑠𝑡 = 𝐶𝑔𝑏 𝑜ặ𝑐 𝐶𝑖𝑏 Vết mùi bị giới hạn trong đoạn [𝜏𝑚𝑖𝑛, 𝜏𝑚𝑎𝑥]:
𝜏𝑖𝑗 =
𝜏𝑚𝑎𝑥 𝑛ế𝑢 𝜏𝑖𝑗 > 𝜏𝑚𝑎𝑥 𝜏𝑖𝑗 𝜏𝑖𝑗 ∈ [𝜏𝑚𝑖𝑛, 𝜏𝑚𝑎𝑥]
𝜏𝑚𝑖𝑛 𝑛ế𝑢 𝜏𝑖𝑗 < 𝜏𝑚𝑖𝑛 (2.10)
Trong MMAS việc sử dụng 𝐶𝑔𝑏 và 𝐶𝑖𝑏 ảnh hướng tới hướng tìm kiếm và không xảy ra đồng thời mà thay phiên nhau. Khi luôn cập nhật bằng 𝐶𝑔𝑏 thì việc tìm kiếm định hướng xảy ra nhanh chóng. Khi cập nhật bằng 𝐶𝑖𝑏 thì việc tìm kiếm định hướng giảm do số lượng cạnh được cập nhật mùi nhiều.
Giới hạn vết mùi
Trong thuật toán MMAS sử dụng giới hạn trên 𝜏𝑚𝑎𝑥 và giới hạn dưới 𝜏𝑚𝑖𝑛 đối với vết mùi trên tất cả các cạnh nhằm mục đích cho thuật toán tránh khỏit tình trạng tắc nghẽn. Giới hạn của vết mùi sẽ ảnh hướng tới giới hạn xác suất 𝑝𝑖𝑗 trong việc lựa chọn đỉnh đi tiếp theo và bị giới hạn trong khoảng [𝑝𝑚𝑖𝑛, 𝑝𝑚𝑎𝑥].
2.2.3.4 Thuật toán Max- Min trơn
Thuật toán Max-Min trơn kí hiệu là SMMAS được Đỗ Đức Đông đề xuất năm 2012[1]. 𝜏𝑖𝑗 ← 1 − 𝜌 𝜏𝑖𝑗 + 𝜌∆𝑖𝑗 Với: ∆𝑖𝑗= 𝜌𝜏𝑚𝑖𝑛 𝑛ế𝑢 (𝑖, 𝑗) ∉ 𝑤(𝑡) 𝜌𝜏𝑚𝑎𝑥 𝑛ế𝑢 (𝑖, 𝑗) ∈ 𝑤(𝑡) (2.11)
Chọn 𝜏0 = 𝜏𝑚𝑎𝑥. Trong đó kí hiệu 𝑤(𝑡) là lời giải tốt nhất các kiến tìm được cho tới lần lặp thứ t. Nếu kí hiệu 𝑤𝑖(𝑡) hiểu là lời giải tốt nhất trong bước lặp thứ t. Nếu
𝑤𝑖(𝑡) không tốt hơn 𝑤(𝑡 − 1) ta có 𝑤 𝑡 = 𝑤(𝑡 − 1), lúc này sẽ quan tâm tới lời giải
gần đúng 𝑤(𝑡).
2.3 Ứng dụng thuật toán ACO trong việc giải quyết bài toán Ngƣời chào hàng Sale Man
2.3.1 Bài toán ngƣời chào hàng trong thực tế
Bài toán người chào hàng hay còn gọi là bài toán TSP là một bài toán khá nổi tiếng trong lĩnh vực tối ưu tổ hợp. Bài toán có nội dung như sau: “ Một người đi chào hàng tại n thành phố. Người chào hàng muốn tìm một hành trình ngắn nhất, bắt đầu xuất phát từ một thành phố và đi sang các thành phố khác để chào hàng, sau đó lại quay trở lại thành phố xuất phát sao cho mỗi thành phố chỉ đi qua đúng một lần và khoảng cách giữa các thành phố đã được biết trước”.
Input: Tập C gồm n thành phố : 𝐶 = {𝑐𝑖}𝑖=1𝑛 và độ dài nối hai thành phố 𝑑𝑖𝑗(thành phố 𝑐𝑖 nối với thành phố 𝑐𝑗 ).
Output: min ∑𝑛𝑖,𝑗 =1𝑑𝑖𝑗 𝑖≠𝑗
(với điều kiện mỗi đỉnh đi qua đúng một lần).
2.3.2 Phát biểu bài toán ngƣời đƣa hàng trên mô hình hóa đồ thị
𝑑𝑖𝑗
Bài toán TSP có thể được mô hình hóa như một đồ thị đầy đủ có trọng số 𝐺 = (𝑉, 𝐸), trong đó 𝑉 là các tập đỉnh của đồ thị, với mỗi đỉnh tương ứng là một thành phố trong 𝐶. Kí hiệu 𝐸 là các cạnh nối các thành phố tương ứng, khoảng cách giữa hai thành phố là độ dài cạnh 𝑑𝑖𝑗. Đây là vấn đề cực tiểu hóa với điểm đầu và điểm cuối là cùng một đỉnh sau khi đi qua hết tất cả các thành phố đúng một lần. Bài toán TSP 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ố.
2.3.3 Áp dụng thuật toán ACO giải quyết bài toán ngƣời chào hàng
Bài toán TSP được nêu ra trong thế kỉ thứ XIX bởi nhà toán học Ireland William Roman Hamilton và nhà toán học Anh Thomas Kirkman. Bài toán TSP là một trong những bài toán nghiên cứu sâu nhất trong tối ưu hóa. Bài toán thường được dùng làm thước đo cho nhiều phương pháp tối ưu hóa. Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều phương pháp đã được tìm ra để giải quyết cho những trường hợp dữ liệu lớn. Bảng 2.1 đưa ra một vài thuật toán ACO có khả năng trong việc giải quyết bài toán TSP và một số bài toán khác. Các thuật toán được sắp xếp theo thứ tự thời gian phát triển.
Bảng 2.1 Một số thuật toán ACO
Năm Thuật toán ACO Tác giả
1991 Ant System (AS) Dorigo, Maniezzo,&Colorni 1992 Elitist AS Dorigo, Maniezzo,& Colorni 1995 Ant-Q Gambardella&Dorigo
1996 Ant Colony System Dorigo & Gambardella 1996 Max-Min Ant System Stützle & Hoos
1997 Rank-based Ant System Bullnheimer, Hartl & Strauss
1999 ANTS Maniezzo
2000 Best-Worst Ant System Cordon, Viana, Herrera & Moreno 2001 Hyper-cube Ant System Blum, Roli & Dorigo
Thuật toán ACO có thể áp dụng trực tiếp cho bài toán TSP với đồ thị cấu trúc 𝐺 = (𝑉, 𝐸, 𝐻, 𝜏), trong đó:
V: Tập các đỉnh tương ứng với tập các thành phố.
E: Tập các cạnh nối các thành phố tương ứng.
H: Thông tin heuristic trên cạnh (𝑖, 𝑗), kí hiệu là 𝜂𝑖𝑗 và là độ dài của nghịch đảo cạnh: 𝜂𝑖𝑗 = 1
𝑑𝑖𝑗 ∀(𝑖, 𝑗).
τ: Vết mùi được gán trên các cạnh, là vectơ biểu thị các thông tin học tăng
cường, 𝜏𝑖,𝑗 dùng để chỉ thông tin học tăng cường phục vụ mở rộng tuần tự lời giải từ 𝑖 đến 𝑗.
Trong trường hợp này tập 𝑆 là các chu trình Hamilton trên 𝐺, 𝑓 là độ dài của chu trình, Ω là ràng buộc đòi hỏi chu trình là chu trình Hamilton (qua tất cả các đỉnh, mỗi đỉnh đúng một lần).
Giải quyết bài toán
Thuật toán ACO phân biệt bởi quy tắc cập nhật mùi như đã nêu ở mục 2.2.3 về các quy tắc cập nhật mùi khác nhau sẽ cho ra các phương pháp giải quyết khác nhau. Ban đầu tiến hành xây dựng lời giải cho mỗi con kiến. Đối với thuật toán AS và MMAS trong giải quyết bài toán TSP xây dựng lời giải cho việc lựa chọn đỉnh đi tiếp theo được xác định theo công thức (2.1) mục 2.2.2. 𝐽(𝑥𝑘) trong công thức (2.1) là các đỉnh lân cận 𝑗 mà kiến có thể đi đến từ đỉnh 𝑖. Đối với thuật toán ACS, kiến sẽ lựa chọn di chuyển đến đỉnh tiếp theo, theo quy tắc:
𝑗 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑙∈𝐽 (𝑥𝑘) 𝜏𝑖𝑙 𝜂𝑖𝑙 𝛽 , 𝑛ế𝑢 𝑞 ≤ 𝑞0 𝐽 𝑛𝑔ượ𝑐 𝑙ạ𝑖
(2.12)
Trong đó 𝑞 là một biến ngẫu nhiên, phân bố đều trong [0,1], 𝑞0 ∈ [0.1] là một tham số cho trước và J là một biến ngẫu nhiên lựa chọn theo công thức (2.1).
Sau khi xây dựng xong lời giải cho mỗi thuật toán, tiến hành cập nhật mùi được trình bày trong phần mục 2.2.3. Cuối cùng đưa ra lời giải tốt nhất.
Từ thuật toán ACO tổng quát ta có thuật toán ACO cho bài toán TSP được mô tả trong hình 2.5:
Procedure Thuật toán ACOTSP; Dữ liệu vào:
Đồ thị 𝐺 = (𝑉, 𝐸)
Ma trận trọng số 𝐷 = 𝑑𝑖𝑗 với 𝑖, 𝑗 ∈ 𝑉
Số lượng kiến m
Kết quả ra: Là một chu trình với tổng độ dài ngắn nhất. Begin
Khởi tạo các tham số, ma trận mùi, m con kiến;
Repeat
For 𝑚′ = 1 to m do
Kiến 𝑚′xây dựng lời giải (lựa chọn đỉnh đi tiếp theo); Cập nhật mùi (cập nhật mùi trên mỗi cạnh);
Cập nhật lời giải tốt nhất (cập nhật những chu trình với tổng độ dài ngắn
nhất và thỏa mãn điều kiện của bài toán);
Until (điều kiện kết thúc);
Đưa ra lời giải tốt nhất (chu trình với tổng độ dài ngắn nhất);
End
CHƢƠNG III
GIẢI BÀI TOÁN TƢƠNG TÁC GEN BẰNG PHƢƠNG PHÁP ACO
3.1 Các phƣơng pháp tiếp cận, và ƣu nhƣợc điểm 3.1.1 Thuật toán BEAM
Thuật toán BEAM (Bayesian Epistasis Association Mapping) được Yu Zhang và Jun S. Liu đề xuất năm 2007 [24]. Trong BEAM việc phát hiện ra các tương tác gen sử dụng mô hình phân vùng Bayesian để phân vùng các SNP và thông qua chuỗi Markov Chain Monte Carlob (MCMC) chiến lược lấy mẫu hiệu quả, tính xác suất cho mỗi bộ để đưa ra những bộ liên quan đến bệnh.
3.1.2 Thuật toán SNPHarvester
Thuật toán SNPharvester do Can Yang và cộng sự đề xuất vào năm 2009[23] với tư tưởng tìm kiếm các nhóm SNPs từ bộ dữ liệu ban đầu để từ đó đưa ra các vị trí SNP tương tác có liên quan đến bệnh. Tại mỗi một lần lặp thực hiện lựa chọn ra tập hợp các nhóm gồm có 𝑘 𝑣ị 𝑡𝑟í (mỗi vị trí là một SNP) thỏa mãn điều kiện thống kê (kí hiệu: M) và tối ưu địa phương (E), có nghĩa tối ưu lại những SNP, chỉ xét những SNP có liên quan đến bệnh và loại bỏ những SNP không liên quan. Sau k=1….[ln3Nd-1] lần lặp thu được tập hợp các nhóm gồm có 𝑘 𝑣ị 𝑡𝑟í (kí hiệu: S). Từ tập S, tiến hành xác định được số lượng q vị trí tương tác có liên quan tới bệnh. Với mỗi một nhóm trong tập S sẽ có 𝐶𝑘𝑞 vị trí tương tác với nhau liên quan đến bệnh (2≤q≤k). Thuật toán được đặc tả trong hình 3.1:
Dữ liệu vào:
D: Tập hợp các mẫu kiểu gen của Nd cá thể bị bệnh và Nu cá thể không bị bệnh ở L SNP makers.
SuccessiveRun: Điều kiện dừng- số lượng nhóm liên quan tới bệnh.
T: Ngưỡng ý nghĩa thống kê
Kết quả ra:
S: Tập hợp các nhóm k-SNP thỏa mãn điều kiện thống kê. k= 1,...[ln3Nd−1].
for k=1 to ln3Nd−1do
if k==1 then
tìm kiếm L SNP markers, đưa những SNPs có ý nghĩa vào trong S, và xóa những SNPs khác.
NumRandomRun←0
while NumRandomRun<SuccessiveRun do (M,E) = PathSeeker(D,k,T)
Loại bỏ tối ưu địa phương E if M rỗng then
NumRandomRun++ else
Đưa M vào trong S, và NumRandomRun←0 end if
end while
end if end for return S
Hình 3.1 Đặc tả thuật toán SNPHarvester 3.1.3 Ƣu, nhƣợc điểm 3.1.3 Ƣu, nhƣợc điểm
3.1.3.1 Ƣu điểm
Thuật toán BEAM
Thuật toán BEAM gồm có hai thành phần chính: Công cụ tìm kiếm tương tác gen thông qua MCMC và một đánh giá ý nghĩa thống kê. Trong thuật toán BEAM, phương pháp tiếp cận Bayes có một lợi thế, khả năng đưa ra thông tin về mỗi maker (ví dụ maker là vùng đã được mã hóa hay quản lý), định lượng tất cả các thông tin và những vùng không chắc chắn để cho phân loại lần sau.
Thuật toán SNPHarvester
Thuật toán SNPHarvester cải tiến hơn thuật toán BEAM là từ bộ dataSNPs ban đầu, thuật toán thực hiện gom nhóm các SNP vào với nhau và kiểm tra điều kiện thống kê, sau đó chỉ xét các SNP thỏa mãn điều kiện thống kê. Vì vậy làm giảm đáng kể số lượng SNP. Ngoài ra cũng đem lại thời gian chạy nhanh hơn trong cả trường hợp mô phỏng và thực tế.
3.1.3.2 Nhƣợc điểm
Hai thuật toán BEAM và SNPHarvester được chứng minh là có khả năng thực hiện xử lý dữ liệu trên quy mô lớn. Nhưng các nhà nghiên cứu muốn tìm ra những thuật toán có khả năng tốt hơn và có độ chính xác cao cũng như khả năng phát hiện
3.2 Tƣơng quan giữa bài toán tƣơng tác gen với bài toán ngƣời chào hàng
Bài toán người chào hàng là một bài toán điển hình được các nhà nghiên cứu áp dụng đưa các thuật toán ACO vào giải quyết như: Thuật toán AS, thuật toán ACS, thuật toán Max-Min (MMAS), gần đây có thêm thuật toán Max-Min trơn (SMMAS). Bài toán người chào hàng là một bài toán đồ thị cấu trúc đầy đủ, có thông tin về độ dài khoảng cách giữa các thành phố. Thông tin heuristic được xác định bằng độ dài nghịch đảo của cạnh.
Bài toán tương tác gen là một bài toán đồ thị cấu trúc đầy đủ, thông tin về khoảng cách giữa các vị trí là như nhau. Thông tin heuristic được xác định bằng 1.
Bảng 3.1 Minh họa tƣơng quan đồ thị
Đồ thị cấu trúc 𝐺 = (𝑉, 𝐸)
Bài toán tương tác gen Bài toán người chào hàng
- V: Tập các đỉnh tương ứng với tập các vị trí, mỗi vị trí tương ứng một 𝑆𝑁𝑃 . - E: Tập các cạnh nối các vị trí - V: Tập các đỉnh tương ứng với tập các thành phố. - E: Tập các cạnh nối các thành phố tương ứng.
3.3 Thuật toán ACO để giải quyết bài toán tƣơng tác gen 3.3.1 Trình bày thuật toán
3.3.1.1 Thuật toán Generic ACO
Mô tả thuật toán:
Theo định nghĩa của Dorigio và Gambardella [10], 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 các con kiến thực để lại một vết hóa chất gọi là vết mùi và theo vết mùi của các con kiến khác để tìm đường đi. Dựa trên hành vi của kiến thực, các thuật toán ACO được xây dựng trên mô hình kiến nhân tạo, ngoài những đặc điểm của kiến thực, kiến nhân tạo có bộ nhớ riêng và có khả năng ghi nhớ các đỉnh mà kiến đi qua. Các con kiến giao tiếp với nhau thông qua một hàm mật độ xác suất (Probability Density Function: PDF), hàm PDF được cập nhật bởi một vết hóa chất gọi là vết mùi mà mỗi con kiến để lại trên đường đi.
Dữ liệu vào gồm có N cá thể (bị bệnh và không bị bệnh) và dataSNPs. Kết quả ra là bộ gồm 𝑘 𝑣ị 𝑡𝑟í tương tác với nhau có liên quan đến bệnh.
Trong trường hợp này ACO là một hàm thủ tục lặp, dừng lại khi xác định được số lượng tương tác. Tư tưởng tổng quát cho thuật toán Generic ACO gồm các bước thực hiện như sau:
- Bước thứ nhất: Từ bộ dữ liệu N cá thể (bị bệnh và không bị bệnh) và dataSNPs
ban đầu, khởi tạo vết mùi cho mỗi một vị trí. Mỗi vị trí tương ứng với một SNP.
- Bước thứ hai: Tại mỗi một bước lặp, kiến m chọn ra một bộ 𝑆𝑚 gồm có 𝑘 𝑣ị 𝑡𝑟í từ dataSNPs.
- Bước thứ ba: Tính 𝑋2 cho mỗi bộ 𝑆𝑚 được chọn và đồng thời cập nhập mùi cho mỗi vị trí. Sau đó chọn ra những bộ 𝑆𝑚 thỏa mãn điều kiện 𝑃 𝑣𝑎𝑙𝑢𝑒 < 𝑃 −
𝑉𝑎𝑙𝑢𝑒. Trong đó 𝑃 𝑣𝑎𝑙𝑢𝑒 là giá trị của các bộ 𝑆𝑚 và 𝑃 − 𝑉𝑎𝑙𝑢𝑒 là mức ý nghĩa
thống kê ban đầu. Hàm kiểm định thống kê X2 và mức ý nghĩa thống kê sẽ được trình bày chi tiết trong phần 3.3.3.
Procedure Generic ACO Dữ liệu vào:
N cá thể (bị bệnh và không bị bệnh) L SNPs (L-vị trí)
P-Value
Kết quả ra: Tập 𝑉 các bộ, mỗi bộ gồm k-vị trí tương tác với nhau Begin
Khởi tạo các tham số, ma trận mùi, m con kiến
Repeat
For 𝑚′=1 to m do
Kiến 𝑚′ xây dựng lời giải
Tính 𝑋2 cho mỗi bộ mà kiến xây dựng Cập nhật mùi;
Until (điều kiện kết thúc)
Đưa vào tập 𝑉 những bộ thỏa mãn 𝑃 − 𝑉𝑎𝑙𝑢𝑒 (giá trị mang ý nghĩa thống kê)
End
Xây dựng lời giải:
Khởi tạo m con kiến và thực hiện 𝑛 lần lặp. Tại mỗi một lần lặp các con kiến thực hiện đồng thời và độc lập. Mỗi con kiến phải xây dựng cho mình một lời giải, lựa chọn cho mình một tập 𝑇 các đỉnh, mỗi đỉnh là một SNP tương ứng với một vị trí.
Trong quá trình đi xây dựng lời giải, kiến phải lựa chọn cho mình một bộ SNPs để cho vào tập lời giải. Việc lựa chọn bộ SNPs phụ thuộc vào 𝑘 𝑣ị 𝑡𝑟í trong mỗi bộ, mỗi con kiến dựa vào mùi của các vị trí trong mỗi bộ.