Tải bản đầy đủ (.pptx) (66 trang)

Thuyết trình bài toán hà tiện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.89 MB, 66 trang )

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

1


Bài toán Hà tiện
 Cây tiến hóa
 Bài toán Hà tiện nhỏ




Phương pháp giải của Fitch và Sankof
Cài đặt Sankof

 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ộ

2


Cây tiến hóa


 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

3


4


Cây tiến hóa
 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

5



Cây tiến hóa


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á

6


Xây dựng cây tiến hóa
 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

7


Bài toán Hà tiện
 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

8


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





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à Sankof đều có thời gian
chạy O(nm).

9


Giải thuật của Sankof
 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.

10


Phương pháp gán nhãn của Fitch
 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.

11


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





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.

12


Cài đặt giải thuật của Sankof
 VD: Với ma trận k x k (δi,j):


δ

A

T

G

C

A

0

3

4

9

T

3

0

2

4


G

4

2

0

4

C

9

4

4

0

13


14


δ

A


T

G

C

A

0

3

4

9

T

3

0

2

4

G

4


2

0

4

C

9

4

4

0

A



3





A








9

15


δ

A

T

G

C

A

0

3

4

9


T

3

0

2

4

G

4

2

0

4

C

9

4

4

0


C

9







C





4



16


δ

A

T

G


C

A

0

3

4

9

T

3

0

2

4

G

4

2

0


4

C

9

4

4

0

T

15

4

8

8

T

7

5

6


17

17


 Điểm hà tiện S(T) = 9
18


Bài toán Hà tiện lớn
 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.

19


Bài toán Hà tiện lớn (LPP)
 Đầ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.

20


Số cấu trúc cây cần duyệt qua
 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á:

21


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

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

22


Bài toán Hà tiện lớn (LPP)
ở dạng quyết định
 Đầ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à

.

S(T) =


∑ | {j : v

(u,v)∈E(T)

j

≠ u j} | ≤ B?
23


Hướng chứng minh NP-đầy đủ
 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

24


Hướng chứng minh NP-đầy đủ
 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).


25


×