.1 Mơ hình q trình thực hiện giải thuật PSA

Một phần của tài liệu Luận van cao học tin (Trang 54 - 59)

Xét 2 chuỗi A, B có chiều dài m, n(1≤m,1≤n) A(a1a2…am ),B(b1b2…bn). Ta đưa ra một số qui ước sau:

i*

j*

Ai là chuỗi con của A bắt đầu từ phần tử đầu tiên đến phần tử thứ i, Ai(a1 a2…ai).

T i

A : là phần sau của chuỗi A từ vị trí thứ i+1. AiT (ai+1…am)

rev(A)m: chuỗi ngược của chuỗi A( amam-1…a1). rev(A)m-i: chuỗi ngược của chuỗi ai+1ai+2…am.

Chúng ta gọi PSA là tối ưu nếu giá trị hàm đánh giá của nó là lớn nhất.

Giải thuật sẽ tìm kiếm điểm M*(i*,j*) (i j*, * [0, ]∈ n ) trên ma trận sao cho M* nằm trên con đường sinh ra PSA tối ưu(đồng nghĩa với M* chia ma trận thành 2 vùng mà cách chia của nó là tối ưu), với M* ta có thể thực hiện q trình chia nhỏ phục vụ cho q trình gọi đệ quy. M* có thể thuộc 1 trong 2 hình thức:

ƒ M* là điểm kết thúc của một alignment của Ai* với Bj* và là điểm bắt đầu

của 1 alignment của T

i

A*với *

T j

B (1).

ƒ M* là điểm kết thúc của một alignment của Ai* với Bj* kết thúc bằng gap,

và là điểm bắt đầu của 1 alignment của T

i

A*với BTj*, bắt đầu với 1 gap (2).

Định lý 4.1 Gọi SP là giá trị của phép alignment bất kỳ của A và B. M(i,j)

(i j, ∈[0, ]n )là một điểm nằm trên con đường sinh ra alignment này. Khi đó, SP bằng tổng giá trị alignment tối ưu của Ai với Bj và giá trị alignment tối ưu của AiT với T

j B : ( , ) ( T, T) i j i j SP=score A B +score A B (3) Chứng minh: Thật vậy ta có = ( , )= ( T , T ) i i j j SP score A B score A A B B (1’)

Do M(i,j) thuộc con đường sinh ra phép alignment tối ưu nên ta có thể tách thành 2 bài toán con hay ( T , T )= ( , )+ ( T, T)

i i j j i j i j

score A A B B score A B score A B (2’) Từ (1’), (2’) ta có điều phải chứng minh

Để tìm M*, phương pháp được sử dụng là cố định i* và tìm j*.

Ta chọn i* = [m/2]. Chúng ta sẽ tìm j* [0, ]∈ n thỏa mãn yêu cầu đặt ra. Xét 1 giá trị j bất kỳ j∈[0, ]n .

Gọi SS(j) là giá trị của phép alignment tối ưu của Ai* và Bj , DD(j) là giá trị của phép alignment tối ưu của Ai* với Bj mà kết thúc bằng một gap.

Gọi RR(j) là giá trị của phép alignment tối ưu của rev(A)m-i* với rev(B)j, và CC(j)

SS, DD, RR, CC là các vector gồm n phần tử.

Định lý 4.2 Giá trị j* cần tìm sẽ thỏa đẳng thức sau:

j*=max j∈[0,n] {max (SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) }

Chứng minh:

Thật vậy: Do rev(rev(A)m-i* )= T* i

A và rev(rev(B)n-j )= BTj nên ta có:

RR(n-j) là giá trị của alignment tối ưu của T* i

A với BTj

CC(n-j) là giá trị của alignment tối ưu của T* i

A với BTj bắt đầu với một gap

Như vậy theo định l ý 4.1, ứng với mỗi giá trị j, giá trị của toàn bộ alignment

ứng với kiểu (1): SP=SS(j) +RR(n-j). Giá trị của toàn bộ alignment ứng với kiểu (2) là

SP=DD(j)+CC(n-j)+q.

Do đó việc tìm giá trị tối ưu của việc chuyển đổi từ A sang B sẽ là việc tìm j*

sao cho giá trị max (SS( j*) + RR(n − j*) , DD( j*) + CC(n − j*) + q) là lớn nhất:

j*=max j∈[0,n] {max (SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) }

M*(i*, j*) chính là cặp điểm giữa tối ưu cần tìm, định lý được chứng minh. Để ý rằng SS, DD có thể tính được bằng cách áp dụng giải thuật Gotoh cải tiến(xem 3.2.3) cho Ai* và B; RR, CC có thể tính được bằng cách áp dụng giải thuật Gotoh cải tiến cho rev(A)m-i* với rev(B). Như vậy quá trình tìm M*(i*, j*) được chia làm 2 phần:

ƒ Tìm SS(j), DD(j) bằng cách áp dụng giải thuật Gotoh cải tiến cho Ai* với B.(hướng tới).

ƒ Tìm RR, CC bằng cách áp dụng giải thuật Gotoh cải tiến cho

rev(A)m-i* với rev(B)(hướng lui).

Giá trị tối ưu của phép alignment có thể tìm được bằng cách gọi đệ qui để tìm giá trị tối ưu của Ai* với Bj* , đệ qui để tính giá trị tối ưu của T

i

A*với BTj* và kết nối 2 phần

này lại. Bài toán sẽ chia thành các bài tốn con nhỏ hơn(chia để trị) như hình trên(đường nối các điểm giữa trên hình biểu diễn tồn bộ con đường tính giá trị tối ưu).

Điều kiện dừng của giải thuật đệ quy là khi i* nhỏ hơn 1 giá trị iM. Khi đó chúng ta sẽ thực hiện giải thuật quy hoạch động với ma trận M gồm iM dòng và jM cột(jM là giá trị tương ứng của j khi i*=iM). Áp dụng kỹ thuật lưu vết trong quy hoạch động kết

hợp với việc sử dụng một cấu trúc dữ liệu lưu trữ kết quả alignment từ các ma trận M, ta sẽ dễ dàng tìm được kết quả alignment của 2 chuỗi A, B.

Giải thuật

shared vectors SS[0..m] , DD[0..m] , RR[0..n] , CC[0..n] procedure DIFF(A, B, m, n)

{ diff(A, B, m, n) }

recursive procedure diff(A, B, m, n){

if (n<=iM) {

Áp dụng kỹ thuật quy hoạch động cho A,B.

Tìm vết của giải thuật quy hoạch động. Lưu trữ kết quả. }

else{

i*← [m/ 2]

Tính SS và DD theo hướng tới: Linear(Ai*,B,SS,DD).

Tính RR và CC theo hướng lui: Linear(rev(A)m-i*,rev(B),RR,CC).

Tìm j*∈[0, n] maximize giá trị max(SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) Gọi đệ quy:

diff(Ai* , Bj* , i*, j*)

diff(AiT* , BTj* , m − i*, n − j*)

} }

Ví dụ: Xét 2 chuỗi “AGTAC” và “AAG”, m = 5, n = 3, i* = 2, hàm tính gap:

( )k q r k 2 0.5k

γ = − + ∗ = − − , σ(a,b)= -1 nếu a≠ b, σ(a,a) = 0. Ta sẽ có:

SS: -3.0 -2.5 -1.0 -2.5 DD: -3.0 -2.5 -5.0 -5.5 RR: -3.5 -4.0 -3.5 -2.0 CC: -3.5 -4.0 -3.5 -6.0

Có 8 khả năng cho 2 loại midpoint theo giá trị của j∈[0, n].

j = 0 j = 1 j = 2 j = 3

Kiểu midpoint 1: -5.0 -6.0 -5.0 -6.0 Kiểu midpoint 2:-7.0 -4.0 -7.0 -7.0

Giá trị được chọn là ứng với kiểu 2: j* = 1. Điểm (i*,j*)=(2,1) là điểm kết hợp của giá trị tối ưu của Ai* = “AG” với B1 =”A”, kết thúc bằng 1 gap(I) và giá trị tối ưu của T

i

A* = “TAC” và BTj* = “AG”, bắt đầu bằng 1 gap(II).

Kết hợp giá trị của 2 phần (I) và (II) : DD( j) + CC(n − j) + q =DD(1) + CC(2) + 2 = (-2.5)+(-3.5)+2= -4.

Bài toán lúc này trở thành tối ưu hóa việc chuyển đổi từ A1 = “AG” sang B1 =”A”, và tối ưu hóa việc chuyển đổi từ A2T = “TAC” sang B1T = “AG”. Tiếp tục thực hiện giải thuật cho 2 bài toán con này.

Giả sử điều kiện dừng của giải thuật là iM =2. Với lời giải cho A1 và B1 , m = 2, n=1, khi đó áp dụng giải thuật quy hoạch động dễ có :A1, B1

Với bài toán chuyển từ “TAC” sang “AG” thuật giải sẽ tiếp tục chia bài toán thành 2 bài tốn con ta tính được i*=2, j*=1 khi đó ta sẽ có 2 kết quả

Kết hợp các kết quả ta được phép alignment tối ưu của A, B:

Chúng ta quan tâm đến độ phức tạp về thời gian và về không gian nhớ khi thực hiện giải thuật.

Giải thuật cần Ο(n) không gian nhớ cho việc lưu trữ các vector SS, DD, RR, CC và Ο (lgm) cho [lg m]+1 lần gọi đệ quy.

Mỗi khi gặp điều kiện dừng giải thuật cần:

ƒ Ο( *iM jM) không gian nhớ cho việc cấp phát ma trận để thực hiện giải thuật quy hoạch động, ta có Ο(iM * jM)≤ Ο(iM * )m = Ο( )m . ƒ Ο(iM + jM) không gian nhớ để lưu trữ kết quả, ta có

( ) ( ) ( )

Ο iM + jM ≤ Ο iM +m = Ο m

Như vậy giải thuật sử dụng Ο( )n + Ο( )m + Ο( )m + Ο(lg )m = Ο + +(n m lg )m không gian nhớ.

Xét độ phức tạp về thời gian : Cần tối đaC = Ο(i nM ) thao tác cho các trường hợp đặc biệt và (1+1/2+1/4+…)Ο(mn) ≤2Ο(mn) thao tác cho các lần gọi đệ qui, suy ra độ phức tạp về thời gian Ο(i nM )+2Ο(mn). T A − Α C G A G A − A G T A C A − − Α G

Như đã đề cập ở phần trên, khi ma trận đánh giá được lựa chọn không phù hợp, dẫn đến việc sử dụng 1 ma trận đánh giá sẽ làm hạn chế kết quả của phép alignment.

Giải thuật được thiết kế sử dụng cùng lúc 3 ma trận BLOSUM: BLOSUM45, BLOSUM62 và BLOSUM100 phục vụ cho việc tính tốn. Việc tính tốn S(m, n) (theo giải thuật cải tiến khơng gian nhớ) được tính tốn song song cho cả 3 ma trận BLOSUM. Gọi giá trị tính tốn S(m,n) tương ứng với 3 ma trận BLOSUM lần lượt là SP45, SP62 và SP100. Gọi 3 ma trận tính tốn tương ứng với 3 ma trận BLOSUM lần lượt là S45, S62 và S100.

Chúng ta sẽ chọn ma trận BLOSUM cho giá trị hàm đánh giá S(m,n) lớn nhất.

45 62 100 45 62 100 { { , , } | ( , ) max( , , )} S = ∈s S S S s m n = SP SP SP 45 62 100 ( , ) max{ ( , ), ( , ), ( , )} S m n = S m n S m n S m n

Giải thuật quy hoạch động thiết kế ở trên sẽ sử dụng ma trận BLOSUM được chọn cho suốt q trình tính tốn.

Một phần của tài liệu Luận van cao học tin (Trang 54 - 59)

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

(100 trang)