Thuật toỏn FASTAN

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số thuật toán dóng hàng các mạng protein luận án TS máy tính 94801 (Trang 86 - 91)

2.2.4 .Thủ tục tỡm kiếm cục bộ

3.2. Thuật toỏn FASTAN

Mục này chỳng tụi giới thiệu một thuật toỏn dúng hàng nhanh để giải bài toỏn dúng hàng mạng tương tỏc protein. Mục tiờu đặt ra là xõy dựng một thuật toỏn dúng hàng hai mạng tương tỏc protein - protein cú thời gian chạy nhanh với chất lượng lời giải đủ tốt so với cỏc thuật toỏn dúng hàng đó cú, mục tiờu này nhằm đảm bảo thuật toỏn cú thể thớch hợp với cỏc bộ dữ liệu cú số lượng dữ liệu tương tỏc protein lớn với thời gian chạy ngắn.

Với mục tiờu như trờn, thuật toỏn được xõy dựng gồm 2 giai đoạn:

 Giai đoạn đầu xõy dựng nhanh một dúng hàng thụ ban đầu dựa trờn chiến lược tham lam kết hợp với lựa chọn ngẫu nhiờn cỏc đỉnh được dúng hàng. Việc lựa chọn ngẫu nhiờn làm tăng tớnh đa dạng của lời giải.

 Giai đoạn thứ 2 sử dụng thủ tục rebuild để tăng chất lượng lời giải của dúng hàng đó xõy dựng ở giai đoạn 1. í tưởng của thủ tục này là giữ lại một số cặp đỉnh đó được dúng hàng tốt trước đú làm tập hạt giống, sau đú tiếp tục dúng hàng lại cho cỏc đỉnh cũn lại. Nếu lời giải mới cho chất lượng tốt hơn sẽ cập nhật lại lời giải tốt nhất theo lời giải này.

Việc sử dụng chiến lược tham lam để xõy dựng thuật toỏn nờn thời gian chạy thuật toỏn nhanh, do đú thuật toỏn này được đặt tờn là FASTAN. Chi tiết hơn về thuật toỏn sẽ được trỡnh bày trong cỏc phần dưới đõy.

Để dễ theo dừi cỏc thuật toỏn đó đề xuất, hệ thống cỏc ký hiệu và cỏch trỡnh bày cỏc thuật toỏn trong luận ỏn cú một số thay đổi nhỏ so với cỏch trỡnh bày trong cỏc bài bỏo.

Thuật toỏn FASTAN gồm hai giai đoạn: giai đoạn thứ nhất xõy dựng dúng hàng ban đầu và giai đoạn sau cải tiến nú nhờ thủ tục tối ưu cục bộ

Rebuild.

3.2.1. Xõy dựng dúng hàng ban đầu

Cho cỏc đồ thị G1, G2; tham sốα và cỏc độ tương tự của cỏc cặp đỉnh

<i,j> tương ứng của V1, V2 là similar(i, j). Ký hiệu Vi là tập cỏc đỉnh đó được dúng hàng của đồ thị Gi và RVi = Vi –Vi là tập cỏc đỉnh chưa được dúng hàng

của đồ thị Gi. Gọi A12= (V12, E12) là kết quả của phộp dúng hàng đồ thị G1 với đồ thị G2, trong đú:   12 , ( ) : 1, ( ) 2 V  i f i  i V f iV ;   12 ( , ( ) , , ( ) ) : ( , ) 1, ( ( ), ( )) 2 E  u f u  v f vu vE f u f vE . Thủ tục FASTAN được thực hiện như sau:

Bước 1. Xỏc định cặp đỉnh i ∈ V1 và j ∈ V2 cú độ tương tự similar(i, j) lớn nhất.

Gỏn f(i):=j; Khởi tạoV1= {i};V2= {j};

Bước 2. Thực hiện lặp với k= 2 tới |𝑉1|

2.1. Tỡm nỳt i  RV1 cú số cạnh nối với cỏc đỉnh trong 𝑉1 lớn nhất (Thủ tục này gọi là find_next_node).

2.2. Tỡm f(i) = j RV2 mà khi dúng hàng j với i thỡ cụng thức 𝛼|𝑓(𝐸1∗)| + (1 − 𝛼)(∑𝑢∈𝑉1𝑠𝑖𝑚𝑖𝑙𝑎𝑟(𝑢, 𝑓(𝑢)) + 𝑠𝑖𝑚𝑖𝑙𝑎𝑟(𝑖, 𝑗)) đạt giỏ trị lớn nhất. Trong đú 𝐸1∗ là cỏc cạnh của đồ thị G1 cú cỏc đỉnh thuộc tập

𝑉1∪ 𝑖. (Thủ tục này gọi là choose_best_matched_node).

2.3. Lần lượt thờm i,j vào cỏc tập đỉnh đó được dúng hàng V1, V2.

Bước 3. Thực hiện lặp cải tiến 𝐴12 nhờ thủ tục Rebuild.

Chỳ ý rằng ở cỏc bước 2.1 và 2.2 cú thể tỡm được nhiều đỉnh tốt nhất, khi đú sẽ chọn ngẫu nhiờn một đỉnh trong số đú để tạo ra sự đa dạng về lời giải trong cỏc lần chạy khỏc nhau.

Thuật toỏn 3.1: Thuật toỏn FASTAN Input: Cặp đồ thị: 𝐺1 = (𝑉1, 𝐸1); 𝐺2 = (𝑉2, 𝐸2); Độ tương đồng giữa cỏc cặp đỉnh 𝑠𝑖𝑚𝑖𝑙𝑎𝑟; Hệ số α Output: Dúng hàng mạng 𝐴12 = (𝑉12, 𝐸12) begin

Xỏc định cặp đỉnh (i,j) cú độ tương đồng similar(i,j) lớn nhất;

f(i)=j; V1= {i};V2= {j}; for 𝑘=2 to|𝑉1|do 𝑖 = find_next_node(𝐺1); 𝑓(𝑖) = choose_best_matched_node(𝑖, 𝐺1, 𝐺2); V1=V1{i}; V2=V2{j}; end for; Rebuild(𝐴12); end;

Sau khi xõy dựng được dúng hàng ban đầu FASTAN chuyển sang giai đoạn 2. Trong giai đoạn này, thủ tục Rebuild được thực hiện lặp để cải tiến dúng hàng đó cú.

3.2.2. Thủ tục Rebuild

Sau giai đoạn 1, đó xỏc định được dúng hàng thụ A12, để tăng chất lượng của lời giải, thuật toỏn sử dụng thủ tục tối ưu cục bộ rebuild. í tưởng của thủ tục này là sử dụng một tập giống gồm nkeep những cặp đỉnh đó được dúng hàng

tốt của A12, sau đú dúng hàng lại cỏc cặp đỉnh khỏc, nếu lời giải mới tốt hơn sẽ thay thế cho lời giải trước đú. Chi tiết thủ tục rebuild như dưới đõy.

Với 𝐴12 đó được xõy dựng trong giai đoạn 1 và số 𝑛𝑘𝑒𝑒𝑝 cho trước, thủ tục này được đặc tả trong thuật toỏn 3.2 và thực hiện như sau:

Bước 1. Xõy dựng SeedV12 gồm 𝑛𝑘𝑒𝑒𝑝đỉnh của V1 cú điểm tốt nhất theo tiờu

chớ cho bởi cụng thức 4.5:

𝑠𝑐𝑜𝑟𝑒(𝑢) = 𝛼. 𝑤(𝑢) + (1 − 𝛼). 𝑠𝑖𝑚𝑖𝑙𝑎𝑟(𝑢, 𝑓(𝑢)), (3.5) trong đú u𝑉1 và 𝑓(𝑢)𝑉2 được dúng hàng với u trong 𝐴12, w(u) là số lượng nỳt v thuộc V1 mà (u,v) thuộc E1 và (f(u),f(v)) thuộc E2

Bước 2. Thực hiện lặp như bước 2 của giai đoạn 1 với k = 𝑛𝑘𝑒𝑒𝑝 + 1 tới |𝑉1|

để xõy dựng lại A12

Sau mỗi lần thực hiện thủ tục Rebuild ta cú một dúng hàng mới làm input

𝐴12 cho lần lặp tiếp theo, quỏ trỡnh này lặp lại cho đến khi khụng cải tiến được

GNAS(A12) nữa.

Thuật toỏn 3.2: Thủ tục Rebuild Input: Dúng hàng 𝐴12; tham số 𝑛𝑘𝑒𝑒𝑝

Output: Dúng hàng 𝐴12 = (𝑉12, 𝐸12) mới tốt hơn

Begin

Giữ lại nkeep cặp đỉnh (i,f(i))đó được dúng hàng tốt trong V12

Giữ lại nkeep đỉnh đó dúng hàng tương ứng trong tập V1 và V2

for 𝑘=𝑛𝑘𝑒𝑒𝑝+1 to|𝑉1|do 𝑖 = find_next_node(𝐺1); 𝑓(𝑖) = choose_best_matched_node(𝑖, 𝐺1, 𝐺2); V1=V1{i}; V2=V2{j}; end for; End;

3.2.3. Độ phức tạp của thuật toỏn FASTAN so với SPINAL

Trong nghiờn cứu của Aladag và Erten [Aladag & Erten, 2013], bài toỏn dúng hàng toàn cục mạng tương tỏc protein đó được chứng minh là NP-khú. Cỏc tỏc giả cũng đó đề xuất thuật toỏn SPINAL cú độ phức tạp với thời gian đa thức là:

 

 . 1 . 2 . .1 2. 1. 2 

SPINALComplexityO k V V   log   , (3.6)

trong đú k là số lần lặp chớnh khi chạy thuật toỏn, theo [Aladag & Erten, 2013] thuật toỏn sẽ hội tụ sau 10 đến 15 lần lặp; ∆1, ∆2 lần lượt là bậc của đỉnh thuộc cỏc đồ thị G1 và G2 cú bậc lớn nhất.

Dễ dàng kiểm tra được độ phức tạp của giai đoạn 1 và mỗi bước lặp trong giai đoạn 2 của thuật toỏn FASTAN là:

O(|V1|.(E1|+|E2|)). (3.7)

Cỏc thực nghiệm được tiến hành với cỏc bộ dữ liệu thực nghiệm IsoBase cho thấy số lần lặp của giai đoạn 2 của thuật toỏn khụng vượt quỏ 20 lần.

Bởi vỡ |V1|.∆1 ≥ E1 nờn chỳ ý tới độ phức tạp của SPINAL trong cụng thức (3.6) ta cú:

|V1|.|V2|.∆1.∆2 ≥ E1. E2 > (|V1|.(E1|+|E2|)). (3.8)

Như vậy độ phức tạp của FastAn so với độ phức tạp của SPINAL thấp hơn nhiều.

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số thuật toán dóng hàng các mạng protein luận án TS máy tính 94801 (Trang 86 - 91)

Tải bản đầy đủ (PDF)

(132 trang)