parsimony problems

66
Bài toán Hà tiện Giảng viên: TS. Đỗ Phan Thuận Sinh viên: Nguyễn Việt Hà Lê Ngọc Minh 1

Upload: minh-le

Post on 27-Jun-2015

575 views

Category:

Documents


0 download

DESCRIPTION

Sankoff (+demo) and Fitch algorithm for small parsimony problem.NP-hard prove for large parsimony problem and some basic algorithms.

TRANSCRIPT

Page 1: Parsimony problems

Bài toán Hà tiệnGiảng viên: TS. Đỗ Phan ThuậnSinh viên:

Nguyễn Việt HàLê Ngọc Minh

1

Page 2: Parsimony problems

Cây tiến hóa Bài toán Hà tiện nhỏ◦ Phương pháp giải của Fitch và Sankoff◦ Cài đặt Sankoff

Bài toán Hà tiện lớn◦ Bài toán Hà tiện lớn là NP-đầy đủ◦ Thuật toán nhánh cận◦ Các thuật toán tìm kiếm cục bộ

Bài toán Hà tiện

2

Page 3: Parsimony problems

Cây tiến hóa được dùng để mô hình hóa cơ chế tiến hóa giữa các loài.

Giúp giải thích được quan hệ họ hàng, tổ tiên giữa các loài.

Cây tiến hóa thường là cây nhị phân

Cây tiến hóa

3

Page 4: Parsimony problems

4

Page 5: Parsimony problems

Cây có gốc◦ Gốc = Loài tổ tiên xa nhất◦ Lá = Loài hiện tại◦ Nút trong = Loài tổ tiên giả thuyết◦ Đường đi gốc lá = Đường tiến hoá

Cây không gốc◦ Không quan tâm đến vị trí của loài tổ tiên chung trong cây

Cây tiến hóa

5

Page 6: Parsimony problems

Cây nhị phân có trọng số Cạnh có trọng số dương (cũng gọi là độ dài)

Trọng số trên cạnh (v, w) thể hiện: Số lượng biến dị từ v đến w Khoảng cách ước lượng về thời gian tiến hoá

Cây tiến hóa

6

Page 7: Parsimony problems

Có nhiều phương pháp xây dựng cây tiến hóa Một trong các phương pháp xây dựng cây là dựa vào

ma trận đặc tính loài.◦ Đầu vào là một ma trận đặc tính loài m x n.◦ Đầu ra: cây có số lá tương ứng với n loài hiện có và có đỉnh

tương ứng với loài tổ tiên◦Mục tiêu: Tìm chuỗi ký tự ở các nút bên trong cây sao cho

chuỗi ký tự này giải thích tốt nhất cho n loài quan sát. Khác biệt được tính bằng khoảng cách Hamming Giải quyết bằng bài toán Hà tiện

Xây dựng cây tiến hóa

7

Page 8: Parsimony problems

Bài toán Hà tiện là các bài toán xây dựng cây sao cho tối thiểu hóa điểm hà tiện.

Điểm hà tiện của cây T là tổng độ dài các cạnh của nó. Bài toán Hà tiện nhỏ Bài toán Hà tiện lớn

Bài toán Hà tiện

8

Page 9: Parsimony problems

Mục tiêu: Tìm cách gán nhãn tối thiểu cho các đỉnh trong của một cây tiến hóa.

Đầu vào: Cây T với mỗi lá đã được gán nhãn bởi xâu m ký tự.

Đầu ra: Phép gán nhãn các đỉnh trong của cây T sao cho tối thiểu hóa điểm hà tiện.

Hai phương pháp giải bài toán Hà tiện nhỏ đã giới thiệu là của Fitch và Sankoff đều có thời gian chạy O(nm).

Bài toán Hà tiện nhỏ

9

Page 10: Parsimony problems

Khởi tạo: gán st(v) theo luật sau:◦ st(v) = 0 nếu v được gán nhãn t

◦ st(v) = ∞ nếu ngược lại

Tính st(v) – điểm hà tiện nhỏ nhất của đỉnh v với ký tự t:

Với u,w là đỉnh con của v; 1≤i,j ≤ k là các ký tự. Sau khi tính được st(v) của các đỉnh, ta thực hiện gán

nhãn bằng phương pháp quay lui.

Giải thuật của Sankoff

10

Page 11: Parsimony problems

Phương pháp này gán tập ký tự Sv cho mỗi đỉnh theo cách sau:◦ Nếu v là lá, Sv chứa 1 ký tự là nhãn của lá đó.

◦ Nếu v là cạnh trong với đỉnh con u,w, Sv được tạo thành như sau:

Sv được gán theo thứ tự duyệt sau từ lá đến gốc.

Phương pháp gán nhãn của Fitch

11

Page 12: Parsimony problems

Sau khi có các tập Sv ta chọn một ký tự đế gán nhãn cho mỗi đỉnh bằng cách:

Gán ký tự bất kỳ thuộc Sr cho gốc. Duyệt cây theo thứ tự trước từ gốc đến lá. Cho mỗi đỉnh trong v, ◦ gán nhãn giống của cha cho đỉnh đó nếu nhãn của cha thuộc

Sv.

◦ Nếu không thì gán nhãn bất kì từ tập Sv.

Phương pháp gán nhãn của Fitch

12

Page 13: Parsimony problems

VD: Với ma trận k x k (δi,j):

Cài đặt giải thuật của Sankoff

δ A T G CA 0 3 4 9T 3 0 2 4G 4 2 0 4C 9 4 4 0

13

Page 14: Parsimony problems

14

Page 15: Parsimony problems

δ A T G CA 0 3 4 9T 3 0 2 4G 4 2 0 4C 9 4 4 0

A ∞ 3 ∞ ∞ A ∞ ∞ ∞ 9

15

Page 16: Parsimony problems

δ A T G CA 0 3 4 9T 3 0 2 4G 4 2 0 4C 9 4 4 0

C 9 ∞ ∞ ∞ C ∞ ∞ 4 ∞

16

Page 17: Parsimony problems

δ A T G CA 0 3 4 9T 3 0 2 4G 4 2 0 4C 9 4 4 0

T 15 4 8 8 T 7 5 6 17

17

Page 18: Parsimony problems

Điểm hà tiện S(T) = 918

Page 19: Parsimony problems

Bài toán Hà tiện lớn sẽ giải quyết vấn đề xây dựng cấu trúc cây mà bài toán Hà tiện nhỏ chưa giải quyết.

Bài toán Hà tiện lớn

19

Page 20: Parsimony problems

Đầu vào: Ma trận M(n × m) biểu diễn n loài, mỗi loài bằng một chuỗi m ký tự.

Đầu ra: Một cây T có n lá được gán nhãn bằng n hàng của ma trận M và một cách gán nhãn các đỉnh trong của cây đó sao cho điểm hà tiện là nhỏ nhất.

Bài toán Hà tiện lớn (LPP)

20

Page 21: Parsimony problems

Nếu định duyệt qua tất cả các cấu trúc cây, ta cần xem xét số lượng cấu trúc cần duyệt.

Theo Cayley số cây không gốc có gán nhãn khác nhau với n đỉnh: nn-2

Nếu như coi cây tiến hóa là cây nhị phân đầy đủ: (2n-3)!!

Trường hợp coi cây tiến hóa là cây có gốc thông thường với N đỉnh trong đó có n lá:

Số cấu trúc cây cần duyệt qua

21

Page 22: Parsimony problems

Thực tế bài toán Hà tiện lớn là NP-đầy đủ

Bài toán Hà tiện lớn (LPP)Khó như thế nào?

22

Page 23: Parsimony problems

Đầu vào:Cho n nút lá, mỗi nút biểu diễn một chuỗi đặc tính hoặc thứ tự DNA. Xây dựng một cây có gốc T bằng cách gán nhãn cho các nút lá của nó các chuỗi đầu vào và gán nhãn cho các đỉnh trong các xâu tương ứng sao cho có cây với điểm hà tiện tối thiểu. Gọi S(T) là điểm hà tiện của cây T.

Đầu ra:Cho một hằng số BϵR+, có cây T nào mà

.

Bài toán Hà tiện lớn (LPP) ở dạng quyết định

B?|}uv:{j| =S(T)E(T)v)(u,

jj

23

Page 24: Parsimony problems

Thực hiện với một trường hợp cụ thể của LPP. ◦ Giả sử tổng số đỉnh của cây là đã biết, đặt là N, trong đó số

lượng nút lá là n. ◦ Ví dụ với trường hợp cụ thể là cây nhị phân đầy đủ có gốc, N =

(2n-1). Gọi trường hợp cụ thể của LPP là S-LPP

Hướng chứng minh NP-đầy đủ

24

Page 25: Parsimony problems

Chứng minh S-LPP là NP-đầy đủ bằng cách quy dẫn từ bài toán Minimum Energy Broadcast tree (MEB).

MEB đã được chứng minh là NP-đầy đủ qua phép quy dẫn từ bài toán Phủ tập (Set Cover Problem).

Hướng chứng minh NP-đầy đủ

25

Page 26: Parsimony problems

Đầu vào:Xem xét tập đỉnh V gồm N đỉnhs ϵ V: đỉnh nguồn, Tập trọng số các cạnh: Px là năng lượng cần thiết cho một nút x:

Đầu ra:Cho một hằng số BϵR+, có cây có gốc tại S nào mà

.

Bài toán Truyền thông tối thiểu năng lượng (MEB)

26

Page 27: Parsimony problems

S

X1

PS

Px1

27

Page 28: Parsimony problems

S

28

Page 29: Parsimony problems

S

29

Page 30: Parsimony problems

Xem xét bài toán Minimum Energy n-lá-xác-định Broadcast tree (MEnB):o Có 1 đỉnh nguồn đã biết, o n nút lá đã biết trong N-1 đỉnh đích. oĐầu ra cần xác định của bài toán là một cây có gốc là đỉnh

nguồn truyền tới N-1 đỉnh trong đó có đúng n nút lá đã được xác định sao cho tối thiểu hóa tổng năng lượng cần dùng.

Bài toán Truyền thông tối thiểu năng lượngvới n lá xác định (MEnB)

30

Page 31: Parsimony problems

MEnB là bài toán thuộc lớp NP do có Bằng chứng ngắn gọn dễ kiểm tra.

Giả sử ta tìm được cây MEnB với năng lượng tối thiểu. ◦ Loại bỏ n nút lá đã định nghĩa cùng các cạnh tương ứng trên

cây MEnB. Một cây có (N-n) đỉnh gọi là rMEnB. Tính được năng lượng

cần cho cây này đặt là Wr.

MEnB là NP-đầy đủ

31

Page 32: Parsimony problems

S

32

Page 33: Parsimony problems

SVới B=Wr

33

Page 34: Parsimony problems

MEnB đã trở thành bài toán MEB: có thể xây dựng cây MEB cho (N-n) đỉnh với mức năng lượng Wr hay không?

MEnB ít nhất cũng khó như việc tìm cây MEB trong (N-n) đỉnh còn lại trong đó có 1 đỉnh nguồn và (N-n-1) đỉnh đích. Vậy MEnB cũng là NP-đầy đủ.

MEnB là NP-đầy đủ

34

Page 35: Parsimony problems

S-LPP là bài toán thuộc lớp NP:◦ Cho một cấu trúc cây nhị phân có gốc có N đỉnh trong đó có n

nút lá đã được gán nhãn. ◦ Có thể kiểm tra điểm hà tiện của cây này có nhỏ hơn hằng số

B hay không bằng giải thuật của Fitch hoặc Sankoff, chạy trong thời gian đa thức.

Bài toán Hà tiện lớn (LPP) là NP-đầy đủ

35

Page 36: Parsimony problems

Tồn tại phép quy dẫn độ phức tạp đa thức từ MEnB sang S-LPP:◦ Với một đầu vào của MEnB, mục tiêu là xây dựng một cây nhị

phân có gốc tại đỉnh nguồn tới N-1 đỉnh đích trong đó có đúng n nút lá sao cho năng lượng cần dùng là tối thiểu.

◦ Đầu vào S-LPP tương đương với đầu vào MEnB này có thể được xây dựng như sau:

Bài toán Hà tiện lớn (LPP) là NP-đầy đủ

36

Page 37: Parsimony problems

Ánh xạ n lá của MEnB sang n lá của S-LPP tương ứng một-một.

Dựa trên liên hệ giữa khoảng cách Euclidean giữa các đỉnh của MEnB và khoảng cách Hamming của các chuỗi đầu đầu vào trong S-LPP.

Phép ánh xạ

Trong đó khoảng cách A,T,G,C được xác định theo khoảng cách Hamming

Phép quy dẫn

mCGTAR },,,{2

38

Page 38: Parsimony problems

Phép ánh xạ: ◦ Từ mỗi cấu trúc cây từ đầu vào MEnB, cho một giá trị năng

lượng cần dùng duy nhất. Cũng cấu trúc cây đó, từ giải thuật của Fitch hoặc Sankoff, ta có thể tính được duy nhất 1 giá trị điểm hà tiện của cây bằng cách gán lại nhãn cho cách đỉnh trong.

◦ Năng lượng cần cho một đỉnh để có thể truyền tin có thể được ánh xạ sang số đột biến xảy ra trên một đỉnh của S-LPP.

◦ Về cơ bản khi tìm ra cây MEnB thì có thể xác định được là có thể dựng được một cây N đỉnh có chính xác n nút lá được gán nhãn mà điểm hà tiện nhỏ hơn một số B (BϵR+) hay không.

Phép quy dẫn

39

Page 39: Parsimony problems

Do giải thuật của Fitch hay Sankoff có độ phức tạp O(nm).

Do đó, tồn tại phép quy dẫn ra đầu vào cho S-LPP từ đầu vào của MEnB trong thời gian đa thức.

MEnB là NP-đầy đủ S-LPP là NP-đầy đủ. S-LPP chỉ là một trường hợp riêng của LPP LPP cũng

là NP-đầy đủ.

Bài toán Hà tiện là NP-đầy đủ

41

Page 40: Parsimony problems

LPP đã được chứng minh là NP-đầy đủ qua phép quy dẫn từ bài toán MEB:

MEnB(MEB)S-LPP(LPP) Việc mong tìm một giải thuật giải được bài toán Hà

tiện lớn một cách vừa nhanh chóng vừa chính xác là vô vọng.

Bài toán Hà tiện là NP-đầy đủ

Page 41: Parsimony problems

Thuật toán nhánh cận

43

Page 42: Parsimony problems

Xét mảng [i3][i5][i7]...[i2n-5], với mỗi ik nhận giá trị 1...k Ban đầu cây có 3 chuỗi x1, x2, x3

Thêm chuỗi x4 vào cạnh có chỉ số lưu trong [i3]: có 3+2=5 cạnh

Thêm chuỗi x5 vào cạnh có chỉ số lưu trong [i5]: có 5+2=7 cạnh

... Thêm chuỗi xn để được cây hoàn chỉnh.

Biểu diễn cây

44

Page 43: Parsimony problems

Ví dụ: n=5, [i3][i5] = (1, 3)

Biểu diễn cây

45

Page 44: Parsimony problems

Tưởng tượng mảng [i3][i5][i7]...[i2n-5] là một chiếc công-tơ-mét

Công-tơ-mét chạy cho ta một phép duyệt tất cả cây n lá

Phép duyệt toàn bộ

46

Page 45: Parsimony problems

Để duyệt các cây ít hơn n lá, ta cho phép bộ đếm nhận giá trị 0

Ý nghĩa: xâu thứ k không được đưa vào cây

Không có giá trị khác không bên phải 0

Nếu có một dãy số 0 về bên phải, ta tăng cả dãy

Phép duyệt toàn bộ

47

Page 46: Parsimony problems

Thêm nút lá mới chỉ làm tăng điểm hà tiện của cây

Nếu cây đang xây dựng có điểm lớn hơn điểm tốt nhất hiện biết cắt nhánh

Tăng bộ đếm khác không bên phải nhất lên một

Cắt nhánh

48

Page 47: Parsimony problems

Cài đặt

49

Page 48: Parsimony problems

Kết quả thử nghiệm

4 5 6 7 8 9 100

20

40

60

80

100

120

140

160

Thời gian chạy phụ thuộc vào kích thước dữ liệu

số chuỗi

thời

gia

n (s

)

50

Page 49: Parsimony problems

Số lượng cây không gốc n lá:3.5.7...(2n-5) = (2n-5)!!

Khối lượng tính toán quá lớn Áp dụng các chiến lược tìm kiếm cục bộ

Kết quả thử nghiệm

51

Page 50: Parsimony problems

Các thuật toán tìm kiếm cục bộ

52

Page 51: Parsimony problems

Di chuyển trong không gian tất cả các cây bằng các phép biến đổi

Tại mỗi bước cố gắng làm giảm giá trị hàm mục tiêu Không đảm bảo tìm được giá trị tối ưu toàn cục Các phép biến đổi khác nhau cho hiệu quả khác nhau

Các thuật toán tìm kiếm cục bộ

53

Page 52: Parsimony problems

NNI (Nearest Neighbour Interchange) D. F. Robinson năm 1969 Đổi chỗ hai cây con ở hai phía của một cạnh trong Một cây n lá có (2n-6) cách biến đổi

Thay thế láng giềng gần nhất

54

Page 53: Parsimony problems

SPR (Subtree Pruning Regrating) Cắt một cạnh và ghép vào chỗ khác Một cây n lá có 2(n-3)(2n-7) cách biến đổi

Cắt tỉa và cấy ghép lại

55

Page 54: Parsimony problems

TBR (Tree-Bisection-Reconnection) Cắt đôi thành hai cây con và thêm cạnh nối ở vị trí khác

Chia đôi và kết nối lại

56

Page 55: Parsimony problems

NNI SPR TBR⊆ ⊆ Phép biến đổi nhỏ:◦ Dễ bị kẹt ở cực trị cục bộ

Phép biến đổi lớn:◦ Khối lượng tính toán lớn◦ Cấu trúc cây thay đổi nhiều nên khó tận dụng thông tin để tính

điểm hà tiện

Quan hệ giữa các phép biến đổi

57

Page 56: Parsimony problems

Parametric Progressive Neighborhood Adrien Goeffon et al. 2008 Cắt một cạnh và ghép lại ở vị trí cách nó không quá d

Láng giềng tăng tiến có tham số

58

Page 57: Parsimony problems

Với d=1, PPN trở thành NNI Với d=∞, PPN trở thành SPR

Láng giềng tăng tiến có tham số

59

Page 58: Parsimony problems

Ban đầu d nhận giá trị lớn, sau giảm dần về 1

Giả sử số bước lặp là M, d giảm tuyến tínhd = .

Láng giềng tăng tiến có tham số

60

Page 59: Parsimony problems

Nhiều bộ dữ liệu gồm cả ngẫu nhiên và thực tế Cho phép bước di chuyển không làm thay đổi giá trị

hàm mục tiêu Chọn bước di chuyển đầu tiên cải thiện kết quả Lời giải đầu được sinh bằng thuật toán ngẫu nhiên (R)

hoặc tham lam (G)

Kết quả thử nghiệm

61

Page 60: Parsimony problems

Φ0: điểm của cây ban đầu Φb : điểm của cây tốt nhất sau khi tìm kiếm kết thúc f: tần suất của nó Φa: điểm trung bình của các cây σ: độ lệch chuẩn của Φa và time: thời gian trung bình cho các lần lặp (s)

Kết quả thử nghiệm

62

Page 61: Parsimony problems

Bộ dữ liệu ngẫu nhiên nhỏ

Kết quả thử nghiệm

63

Page 62: Parsimony problems

Bộ dữ liệu ngẫu nhiên trung bình

Kết quả thử nghiệm

64

Page 63: Parsimony problems

Bộ dữ liệu ngẫu nhiên trung bình

Kết quả thử nghiệm

65

Page 64: Parsimony problems

TBR không hiệu quả về thời gian Nói chung SPR tốt hơn NNI PPN cho kết quả tốt nhất trong hầu hết trường hợp

Kết quả thử nghiệm

66

Page 65: Parsimony problems

Với ngành Sinh học ngày càng phát triển phát hiện thêm nhiều loài mới, phát hiện thêm nhiều đặc điểm, bằng chứng tiến hóa mới.

Việc xây dựng cây tiến hóa từ các chuỗi đặc tính là quan trọng.

Trên đây ta đã xem xét một phương pháp xây dựng cây tiến hóa là bài toán Hà tiện ở mức cơ bản nhất.

Kết luận

67

Page 66: Parsimony problems

Thank you!

68