Bài toán sắp xếp trình tự là một trong những bài toán cơ bản của Sinh học, nhằm tìm sự giống nhau của hai trình tự axit amin. So sánh các axit amin có tầm quan trọng hàng đầu đối với con người, vì nó cung cấp thông tin quan trọng về sự tiến hóa và phát triển. Sau-lơ B. Needleman và Christian D. Wunsch đã nghĩ ra một thuật toán lập trình động cho vấn đề này và nó đã được xuất bản vào năm 1970. Kể từ đó, nhiều cải tiến đã được thực hiện để cải thiện độ phức tạp thời gian và độ phức tạp không gian, tuy nhiên những điều này nằm ngoài phạm vi thảo luận trong bài đăng này
Dung dịch. Chúng ta có thể sử dụng lập trình động để giải quyết vấn đề này. Giải pháp khả thi là đưa các khoảng trống vào các chuỗi để cân bằng độ dài. Vì có thể dễ dàng chứng minh rằng việc thêm các khoảng trống bổ sung sau khi cân bằng độ dài sẽ chỉ dẫn đến tăng hình phạt
Cấu trúc con tối ưu
Có thể quan sát thấy từ một giải pháp tối ưu, chẳng hạn như từ đầu vào mẫu đã cho, rằng giải pháp tối ưu thu hẹp chỉ còn ba ứng cử viên.
- và.
- và khoảng cách.
- khoảng cách và .
Bằng chứng về cấu trúc con tối ưu.
Ta dễ dàng chứng minh bằng phản chứng. Đặt
Bây giờ, nối thêm
Do đó, chứng minh.
Hãy để
Do đó, tổng số tiền phạt tối thiểu là,
Xây dựng lại giải pháp
Tái thiết,
- Dò lại bảng đã điền, bắt đầu
.- Khi
- nếu nó được điền bằng trường hợp 1, hãy chuyển đến
.- nếu nó được điền bằng trường hợp 2, hãy chuyển đến
.- nếu nó được điền bằng trường hợp 3, hãy chuyển đến
.- nếu i = 0 hoặc j = 0, khớp chuỗi con còn lại với các khoảng trống
Dưới đây là việc thực hiện các giải pháp trên.
C++
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA8
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA9
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA0
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA2 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA3
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA4
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA5 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA0Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA2Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA4
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA5
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA8Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA9
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA83Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA84
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA87Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA88
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA91
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA1 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA94
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA96
Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA6Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA98 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA994Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA911 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA451Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA8383Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA62Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA911 Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA998Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA8092Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA62Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA911Minimum Penalty in aligning the genes = 5 The aligned genes are : AGGGCT A_GGCA965