Bài toán PSA và cách giải quyết bằng kỹ thuật quy hoạch động

Một phần của tài liệu Các kỹ thuật toán học cho bài toán so sánh đa trình tự (Trang 35 - 36)

4- NGÀY HOÀN THÀNH NHI ỆM VỤ :

3.2.Bài toán PSA và cách giải quyết bằng kỹ thuật quy hoạch động

Progressive Algorithm sử dụng heuristic dựa trên quy hoạch động để giải bài toán.

3.1. Gii thiu v Dynamic Programming

Dynamic Programming [7] là phương pháp giải bài toán bằng cách kết hợp các lời giải của các bài toán con. Đặc điểm của giải thuật dynamic programming:

ƒ Các bài toán con không độc lập với nhau: chúng có chung các bài toán con nhỏ hơn.

ƒ Giải mỗi bài toán con chỉ một lần, và ghi nhớ lời giải đó trong một bảng để truy cập khi cần đến.

Một giải thuật dynamic programming được xây dựng qua bốn bước: 1. Xác định cấu trúc của một lời giải tối ưu.

2. Định nghĩa đệ quy cho giá trị của một lời giải tối ưu.

3. Tính giá trị của một lời giải tối ưu từ dưới lên (“bottom-up”). 4. Xây dựng lời giải tối ưu từ các thông tin đã tính.

Trong phần này, xin được trình bày tổng quan cách tiếp cận bằng kỹ thuật dynamic programming cho vấn đề so sánh trình tự, từ bài toán so sánh 2 trình tự PSA đến bài toán so sánh nhiều trình tự MSA [25], [27], [30]. Phần trình bày này chỉ xét đối với phép toán Global Alignment.

Vì bài toán PSA chính là nền tảng cho kỹ thuật dynamic programming giúp giải quyết bài toán MSA, nên trong phần đầu tôi sẽ trình bày về bài toán cơ bản PSA.

3.2. Bài toán PSA và cách gii quyết bng k thut quy hoch động hoch động

Phần 2.1.3 đã giới thiệu về bài toán PSA. Phần này sẽ giới thiệu hướng giải quyết bài toán này bằng quy hoạch động.

Kỹ thuật này sẽ cho phép chúng ta xây dựng một phép alignment tối ưu.

Xét 2 chuỗi trình tự S1S2, |S1|=n, |S2|=m, mục đích của chúng ta là tìm kiếm một phép alignment tối ưu cho S1S2.

Một phần của tài liệu Các kỹ thuật toán học cho bài toán so sánh đa trình tự (Trang 35 - 36)