Mô tả thuật toán ACO tổng quát

Một phần của tài liệu Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ) (Trang 42)

Sử dụng điều kiện kết thúc (có thể theo số bước lặp hoặc/và giới hạn thời gian chạy), 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 𝑢0 ∈ 𝐶0 làm thành phần khởi tạo 𝑥0 = 𝑢0 x0 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.

33

Thủ tục bước ngẫu nhiên:

Giả sử 𝑥𝑘 =< 𝑢0, . . 𝑢𝑘 > 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 𝑢𝑘+1 ∈ 𝐽(𝑥𝑘) thì 𝑥𝑘+1 = < 𝑢0, … , 𝑢𝑘, 𝑢𝑘+1 > là mở rộng được. Đỉnh 𝑗 = 𝑢𝑘+1 để mở rộng, được chọn với xác suất 𝑃(𝑗)như sau:

𝑃(𝑗) = { [𝜏𝑖𝑗]𝛼[ℎ𝑖𝑗]𝛽 ∑ 𝑙𝜖𝐽(𝑥𝑘)[𝜏𝑖𝑗]∝[ℎ𝑖𝑗]𝛽 𝑗 𝜖 𝐽(𝑥𝑘) 0 𝑗 𝜖 ̅𝐽(𝑥𝑘) (2.1)

Quá trình mở rộng tiếp tục cho tới khi kiến 𝑟 tìm được lời giải chấp nhận được 𝑥𝑟 trong 𝑋∗ và do đó 𝑆𝑟 = 𝜑 (𝑥𝑟) ∈ 𝑆.

Do giả thiết 2) và iii) ở trên, về sau ta sẽ xem 𝑥𝑟và 𝑠𝑟 như nhau và không phân biệt 𝑋∗ với 𝑆 để tiện trình bày.

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 cậ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 cập nhật mùi đa số đều có dạng:

𝜏𝑖,𝑗 ← (1 − 𝜌)𝜏𝑖,𝑗 + ∆)𝑖, 𝑗) (2.2)

đối với các cạnh được cập nhật, trong đó 𝜌 là hằng số thuộc khoảng (0,1) là tỷ lệ lượng mùi bị bay hơi.

34

Các bước thực hiện của các thuật toán ACO được mô tả trong Hình 2.4.

Hình 2.4. Thuật toán ACO

Nhận xét chung về các thuật toán ACO

Nhờ kết hợp thông tin heuristic, thông tin học tăng cường và mô phỏng hoạt động của đàn kiến, các thuật toán ACO 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 đã có. Do đó, cho ta lời giải tốt hơn và có thể tìm được lời giải tối ưu.

2) Học tăng cường thông qua 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, do đó nâng cao chất lượng thuật toán.

Chú ý. Khi áp dụng phương pháp ACO cho các bài toán cụ thể, ba yếu tố

sau có ảnh hưởng quyết định đến hiệu quả thuật toán:

Procedure Thuật toán ACO;

Begin

Khởi tạo tham số, ma trận mùi, khởi tạo con kiến;

repeat

for to do

Kiến xây dựng lời giải; end-for

Cập nhật mùi;

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;

35 (adsbygoogle = window.adsbygoogle || []).push({});

1) Xây dựng đồ thị cấu trúc thích hợp. Trong mục 1.2.2.1 đã chỉ ra rằng việc xây dựng đồ thị cấu trúc để tìm được lời giải cho bài toán theo thủ tục tuần tự không khó, 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 ta 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. Cách xử lý bài toán lựa chọn Tag SNP ở chương 2 minh họa cho điều này.

2) 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ại là yếu tố phổ dụng và thường dùng để đặt tên cho thuật toán. Có nhiều quy tắc cập nhật mùi đã được đề xuất, luận án này sẽ tìm quy tắc thích hợp cho hai loại bài toán, tùy theo thông tin heuristic ảnh hưởng nhiều hay ít tới thủ tục tìm kiếm lời giải.

2.2.3. Đánh giá ảnh hưởng của các tham số trong thuật toán ACOa/ Thông tin heuristic a/ Thông tin heuristic

Ta biết rằng thuật toán ACO mà không sử dụng tìm kiếm cục bộ, 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 này, giúp kiến có thể xây dựng được các hành

36

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 cục bộ, 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.

b/ Số lượng kiến

Nếu không sử dụng tìm kiếm cục bộ 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à như vậy, 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. Khi có sử dụng tìm kiếm cục bộ hoặc thông tin heuristic mạnh, sử dụng nhiều kiến là lãng phí.

c/ Tham 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 cục bộ 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ỏ.

Kết luận về ACO

Phương pháp ACO là một phương pháp metaheuristic được sử dụng rộng rãi để giải các bài toán TƯTH khó, hiệu quả nổi trội của nó đã được chứng tỏ bằng thực nghiệm. Phương pháp này mô phỏng cách tìm đường đi của kiến tự

37

nhiên, trong đó lời giải chấp nhận được của bài toán được các con kiến xây dựng nhờ thủ tục bước ngẫu nhiên trên đồ thị cấu trúc. Việc tìm kiếm đỉnh mới của đường đi dựa trên kết hợp thông tin heuristic và thông tin học tăng cường biểu thị bởi vết mùi.

Khi áp dụng phương pháp này, ba yếu tố sau đây có vai trò quan trọng: 1) Xây dựng đồ thị cấu trúc;

2) Xác định thông tin heuristic; 3) Chọn quy tắc cập nhật mùi.

trong đó hai yếu tố đầu phụ thuộc vào từng bài toán cụ thể, còn yếu tố thứ ba có nhiều đề xuất và nghiên cứu cải tiến, nhưng vẫn còn có thể được nghiên cứu sâu hơn nhằm đưa ra các cải tiến hiệu quả.

2.3. Bài toán lựa chọn tag SNPs

Cho một tập haplotype H = {h1,h2,…,hm) , mỗi haplotype chứa n SNPs (ℎ𝑖 ∈ {0,1}𝑛). Bài toán Tag SNPs là bài toán tìm tập con nhỏ nhất của tập {1,2,…,n} để có thể dự đoán được tất cả SNPs trong tập H.

Đê thuận tiện, không mất tính tổng quát, ta giả sử haplotype đầu tiên h1 = {0,0,…,0} và nếu SNP ở cùng cột j ở hi giống với SNP ở h1 thì hij = 0, ngược lại , hij = 1.

38

Trong ví dụ này, SNP2 và SNP3 là đủ để xác định được 4 haplotype.

Một hàm R : {0,1}𝑘 → {0,1}𝑛 là một hàm giúp ta xây dựng lại toàn bộ các haplotype từ tập TagSNPs .

Tất các các SNP có thể được xây dựng lại từ tập SNP : s1,s2,…,sk nếu như tất cả các giá trị của kết hợp s1,s2,…,sk trên cùng một hàng là duy nhất .

Ta có thể phải biểu lại bài toán như sau :

Cho một ma trận haplotype H = {h1,h2…,hm} , tìm tập TagSNP nhỏ nhất S = {s1,s2,…,sk} và hàm R : {0,1}𝑘 → {0,1}𝑛 sao cho :

R(hi(s1),hi(s2),…,hi(sk)) = hi với mọi ℎ𝑖 ∈ 𝐻

2.4. Phương pháp giải bài toán lựa chọn SNPs bằng thuật toán tối ưu hóa đàn kiến- Thuật toán MACA đàn kiến- Thuật toán MACA

2.4.1. Thuật toán đàn kiến (adsbygoogle = window.adsbygoogle || []).push({});

Trong bài toán này, đầu tiên ta tập hợp t (2𝑡 ≈ 𝑚 , m là số lượng haplotype) SNPs thành một đỉnh, và t SNPs có thể là kề nhau hoặc tạo ngẫu nhiên (kết quả thực nghiệm cho thấy sự khác nhau giữa việc chọn kề nhau hoặc ngẫu nhiên là không nhiều ). Một SNP không thể thuộc nhiều đỉnh khác nhau. Sau khi thuật toán tìm được lời giải tốt nhất của các đỉnh với t SNPs, ta giảm t xuống một nửa và tiếp tục sử dụng thuật toán, và cứ tiếp tục như thế đến khi t = 1.

39

2.4.2. Kiến quyết định và cập nhật mùi

Trong thuật toán kiến , yếu tố quan trọng có ảnh hưởng đến việc kiến đưa ra quyết định là mùi , khi một SNP được chọn bời nhiều kiến hơn , thì nồng độ mùi được tích lũy trên SNP này sẽ lớn hơn , do đó , xác xuất SNP này được chọn sẽ cao hơn .

Trong bài toán này , mùi sẽ được lưu tại đỉnh chứ không phải trên cạnh . Xác suất để kiến k chọn đỉnh i là : 𝑃𝑖𝑘(𝑡) = { [𝜏𝑖]𝛼∗[𝜂𝑖]𝛽 ∑𝑖 ∈𝑅[𝜏𝑖]𝛼∗[𝜂𝑖]𝛽 𝑖 ∈ 𝑅 0 𝑁𝑔ượ𝑐 𝑙ạ𝑖 (2.3)

R là tập hợp các đỉnh để lựa chọn , α và β là 2 tham số để kiểm soát tỷ lệ giữa thông tin mùi và heuristic . Giá trị heuristic 𝜂𝑖 được mô tả chi tiết ở phần 3

Sau khi tất cả các kiến hoàn thành việc xây dựng các lời giải , mùi bốc hơi trên tât cả các cạnh và mỗi kiến k để lại một lượng mùi ∆𝜏𝑖(𝑡) trên mỗi đỉnh

∆𝜏𝑘𝑖(𝑡) = {

𝑄

𝐿𝑘(𝑡) 𝑖 ∈ 𝑇𝑘(𝑡)

0 𝑁𝑔ượ𝑐 𝑙ạ𝑖 (2.4) 𝑇𝑘(𝑡) là lời giải mà kiến k xây dựng được ở vòng lặp t , 𝐿𝑘(𝑡) là số lượng đỉnh của 𝑇𝑘(𝑡) và Q là số lượng đỉnh của đồ thị.

Việc cập nhật mùi bởi kiến được thực hiện theo quy tắc sau :

𝜏𝑖(𝑡) = (1 − 𝜌)𝜏𝑖(𝑡−1)+ ∆𝜏𝑖(𝑡) (2.5) Trong đó: ∆𝜏𝑖(𝑡) = ∑𝑚𝑘=1∆𝜏𝑘𝑖(𝑡) (2.6)

40

, m là số lượng kiến trong một vòng lặp (trong luận văn này, m = 8 [16]) và 𝜌 ∈ (0,1) là hệ số bay hơi. Để cải thiện khả năng tìm kiếm tốc độ bay hơi của mùi sẽ được thay đổi tùy thuộc vào sự thay đổi của lời giải tốt nhất. Nếu ta không tìm được lời giải tốt hơn tại vòng lặp t, 𝜌 sẽ thay đổi theo công thức sau:

𝜌(𝑡) = {𝑟𝑎𝑛𝑑 ∗ 𝜌(𝑡 − 1) 𝑛ế𝑢 𝑟𝑎𝑛𝑑 ∗ 𝜌(𝑡 − 1) > 𝜌𝑚𝑖𝑛

𝜌𝑚𝑖𝑛 𝑛𝑔ượ𝑐 𝑙ạ𝑖 (2.7) Trong đó 𝑟𝑎𝑛𝑑 là một giá trị ngẫu nhiên giữa 0 và 1, và 𝜌𝑚𝑖𝑛 được lấy giá trị 0.2 như trong nghiên cứu của Bo Liao và đồng nghiệp [16]

2.4.3. Hiệu chỉnh quy tắc cập nhật mùi – áp dụng quy tắc SMMAS

Theo nghiên cứu của Dror cùng đồng nghiệp [22] và J.F.Gibrat cùng đồng nghiệp [23], cũng như đề xuất trong [21] sử dụng quy tắc cập nhật mùi mới- SMMAS, như sau:

𝜏𝑖(𝑡) = (1 − 𝜌)𝜏𝑖(𝑡−1)+ ∆𝜏𝑖(𝑡) (2.8)

Với:

∆𝜏𝑖(𝑡) = { 𝜌𝜏𝑚𝑖𝑛 𝑛ế𝑢 𝑖 ∉ 𝑇(𝑡)

𝜌𝜏𝑚𝑎𝑥 𝑛ế𝑢 𝑖 ∈ 𝑇(𝑡) (2.9) 𝑇(𝑡) là lời giải tốt nhất kiến tìm được tại vòng lặp t;

Trong luận văn, chúng tôi sẽ tiến hành các so sánh thực nghiệm để đánh giá hiệu quả của 2 quy tắc cập nhật mùi kể trên – so sánh (2.6) và (2.9).

41

2.4.4. Heuristic

Trong quá trình kiến quyết định, giá trị heuristic dựa trên thông tin có sẵn có hiểu quả giúp kiến đưa ra quyết định đỉnh nào sẽ được chọn. Để thuận tiện, ta có một số định nghĩa sau :

Định nghĩa 1:

Tập hợp t SNPs được ký hiệu là vi (vi = {s1,s2,…,st}) , ta chia các SNPs thành ht = |h| / t đỉnh ( kích thước của đỉnh cuối cùng có thể nhỏ hơn t), tập các đỉnh này được ký hiệu là V = {v1,v2,…,vht}.

Tập các haplotype được phủ bởi vi gọi là C(vi) là các haplotype đã có thể xác định nếu chỉ tính các SNPs thuộc vi . (adsbygoogle = window.adsbygoogle || []).push({});

Tập các đỉnh đã được lựa chọn , là một phần lời giải được xây dựng bởi kiến k tại thời điểm t được gọi là PartSk(t)

Định nghĩa 2:

|C(vi)| được gọi là c , là độ phủ của vi

|𝐶(𝑣𝑖) ∩ 𝐶(𝑃𝑎𝑟𝑡𝑆𝑘(𝑡))| được gọi là r , là độ lặp giữa 𝑣𝑖 và 𝑃𝑎𝑟𝑡𝑆𝑘(𝑡) |𝐶(𝑣𝑖 ∪ 𝑃𝑎𝑟𝑡𝑆𝑘(𝑡)) − (𝐶(𝑣𝑖) ∪ 𝐶(𝑃𝑎𝑟𝑡𝑆𝑘(𝑡)))| được gọi là m là chênh lêch khi thêm 𝑣𝑖 vào 𝑃𝑎𝑟𝑡𝑆𝑘(𝑡)

Khi đó hàm heuristic là : 𝜂𝑖(𝑟, 𝑐, 𝑚) = 𝑐

𝑟 + 𝑤 ∗ 𝑚 𝜂𝑖 là thông tin heuristic của đỉnh vi .

42

2.4.5. Thuật giải MACA

Algorithm1 : MACA Procedure MACA() Begin Sol = all SNPs; For t, t = t / 2, t >= 1 Tạo tập đỉnh V từ Sol ; Lời giải = ACA(V); End for;

End

Algorithm2 : ACA

Procedure ACA(V) Begin

Khởi tạo thông tin mùi và các tham số. Nc = Nc_max, Re = Re_max;

While (Nc > 0 và Re > 0)

43

While chưa thể xác định được hết tất cả haploype bằng các đỉnh đã chọn

Tính 𝜂𝑖;

Chọn đỉnh trong tập V theo công thức (1) ; End while

Cập nhật lời giải tốt nhất; If (lời giải tốt nhất không đổi )

Re--; Else Re = Re_max; End for Cập nhật mùi ; Nc--; End While

Return Lời giải tốt nhất; End

44

Bảng 2.1. (a) 8 haplotype và 9 SNP. (b) Biểu diễn nhị phân được tạo ra từ (a)

45

CHƯƠNG 3.

CHƯƠNG TRÌNH THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

3.1. Mô tả thực nghiệm

Thuật giải miêu tả trong mục 2.4.4 được triển khai thực hiện bằng ngôn ngữ C++. Sau đó, nhằm kiểm tra hiệu quả của quy tắc cập nhật mùi SMMAS và so sánh với quy tắc cập nhật mùi cũ của thuật toán MACA, các thực nghiệm được tiến hành đều với bộ dữ liệu mô phỏng được sinh ra bằng cách sử dụng thuật toán MS của Hudson [13] (tạo ra bộ dữ liệu dưới dạng chuỗi nhị phân), một thuật toán tạo haplotype nổi tiếng dựa trên mô hình hợp nhất của chuỗi SNP tiến hóa. (adsbygoogle = window.adsbygoogle || []).push({});

Hai yếu tố gây ảnh hưởng lớn tới kết quả của bài toán là: số lượng haplotype và số lượng SNP. Do đó các thực nghiệm sẽ được tiến hành trên máy tính với cấu hình CPU: Intel Core i7-4790-3.60 GHz, Ram: 4 GB, Hệ điều hành: Windows 10 64bit, trong hai trường hợp:

(1)Khi số lượng haplotype cố định và số lượng SNP thay đổi:

Tiến hành thực nghiệm với bộ dữ liệu gồm 13 mẫu haplotype và số SNP thay đổi từ 20 đến 200

(2)Khi số lượng SNP cố định và số lượng haplotype thay đổi :

Tiến hành thực nghiệm với bộ dữ liệu gồm 200 SNP và số mẫu haplotype từ 10 đến 80

46

Số lượng thẻ SNP được lựa chọn và thời gian chạy được dùng để kiểm tra hiệu quả của 2 quy tắc cập nhật mùi. Mỗi một sự thay đổi số SNP (trường hợp thứ nhất) hay sự thay đổi số haplotype (trong trường hợp thứ hai), thuật toán được chạy 10 lần, và qua đó 4 thông số: kết quả tốt nhất, kết quả trung bình, độ lệch chuẩn trong 10 lần chạy và thời gian thực hiện trung bình được đem ra so sánh.

3.2. Kết quả thực nghiệm và đánh giá

Trường hợp thứ nhất:

Số lượng haplotype cố định và số lượng SNP thay đổi

Số SNP

Kết quả tốt nhất Kết quả trung bình Độ lệch chuẩn MACA MACA với

SMMAS

MACA

MACA với SMMAS

MACA MACA với

SMMAS 20 8 8 8.9 8.5 2.21359 1.58114 40 8 9 10.1 9.6 3.30151 2.09762 60 7 7 8.1 8 2.21359 2 80 7 7 7 7 0 0 100 6 6 7 6.2 3.74166 1.26491 120 7 7 8.5 8.2 2.12132 2.75681 140 8 8 8.2 8.3 1.26491 1.44914 160 8 8 9.2 8.7 1.89737 1.44914 180 8 9 8.9 9 0.948683 0 200 8 7 9 9 2 2.44949

47

Bảng 3.1.Kết quả trên những test có 13 mẫu là số lượng SNP từ 20 đến 200 (mỗi test chạy 10 lần)

Số SNP MACA MACA với

SMMAS 20 2.3688 2.3087 40 5.5574 3.8213 60 4.5384 3.7713 80 5.6906 6.431 100 10.0347 8.928 120 20.5355 15.5077 140 21.2011 14.403 160 69.3126 42.7998 180 35.8554 22.5386 200 37.4718 44.9568

Bảng 3.2.Thời gian chạy trên những test có 13 mẫu là số lượng SNP từ 20 đến 200 (mỗi test chạy 10 lần)

48

Trường hợp thứ hai:

Số lượng SNP cố định và số lượng haplotype thay đổi

Số Haplotype

Kết quả tốt nhất Kết quả trung bình Độ lệch chuẩn MACA MACA với SMMAS MACA MACA với SMMAS

MACA MACA với

SMMAS

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Lựa chọn tag SNP dựa vào phương pháp tối ưu đàn kiến (LV thạc sĩ) (Trang 42)