Lập trình quy hoạch động Dynamic programing
Số trang: 15
Loại file: pptx
Dung lượng: 306.47 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Để giải quyết một bài toán lớn, ta chia nó thành nhiều bài toán con cùng dạng với nó để có thể giải quyết độc lập. Khi không biết cần phải giải bài những toán con nào, ta sẽ đi giải quyết tất cả các bài toán con và lưu trữ những lời giải hay đáp số của chúng với mục đích sử dụng lại theo một sự phối hợp nào đó để giải quyết những bài toán tổng quát hơn
Nội dung trích xuất từ tài liệu:
Lập trình quy hoạch động Dynamic programingLập trình quy hoạch độngdynamic programingNội dung Giới thiệu. Phương pháp thực hiện. Ví dụ minh họaBÀI TOÁNĐỆ QUY int F(int i) int main() { { if (i Lưu lại lời giải của bước trước và được sử dụng để tìm lời giải của bài toán mức khó hơn ? int main() { F[1]=1; F[2]=1; for (int i=3;iLập trình qui hoạch độngLập trình quy hoạch động (dynamic programming) giải cácbài toán bằng cách kết hợp các lời giải của các bài toáncon của bài toán đang xét.Phương pháp này khả dụng khi các bài toán con không độclập đối với nhau, tức là khi các bài toán con có dùng chungnhững “bài toán con nhỏ hơn” (subsubproblem).Lập trình qui hoạch động giải các “bài toán con nhỏ hơn”dùng chung này một lần và lưu lời giải của chúng trongmột bảng và sau đó khỏi phải tính lại khi gặp lại các bàitoán đó đó. 6Quy hoạch động Giải quyết bài toán tối ưu có tính chất đệ quy Xuất phát từ bài toán con xác định đã được giải để giải quyết bài toán lớn hơn dựa vào kết quả bài toán con.Phạm vi áp dụng Các bài toán có thể phân rã thành các bài toán con xác định. Có đủ không gian vật lý. Hữu hạn các bước giải.Các bước của qui hoạch độngSự xây dựng một giải thuật qui hoạch động có thể được chia làm bốn bước: Đặc tả cấu trúc của lời giải tối ưu.1. Mô tả lời giải tối ưu theo cách đệ quy.2. Tính trị lời giải tối ưu theo kiểu bottom-up.3. Xây dựng lời giải tối ưu từ những thông tin đã được4. tính toán. 9Một số bài toán qhđ Tìm dãy con chung dài nhất. Bố trí phòng họp. Cho thuê máy.Xâu con chung dài nhấtSequence 1: presidentSequence 2: providence president providence 0 if i = 0 or j = 0, c[i, j ] = c[i − 1, j − 1] + 1 if i, j > 0 and xi = y j , max( c[i − 1, j ], c[i, j − 1]) if i, j > 0 and x ≠ y . i j 1 2 3 4 5 6 7 8 9 10i j 0 p r o v i d e n c e0 0 0 0 0 0 0 0 0 0 0 01 p 0 1 1 1 1 1 1 1 1 1 12 r 0 1 2 2 2 2 2 2 2 2 23 e 0 1 2 2 2 2 2 3 3 3 34 s 0 1 2 2 2 2 2 3 3 3 35 i 0 1 2 2 2 3 3 3 3 3 36 d 0 1 2 2 2 3 4 4 4 4 47 e 0 1 2 2 2 3 4 5 5 5 58 n 0 1 2 2 2 3 4 5 6 6 69 t 0 1 2 2 2 3 4 5 6 6 6The backtracing algorithmprocedure Output-LCS(A, prev, i, j)1 if i = 0 or j = 0 then return Output − LCS ( A, prev, i − 1, j − 1)2 if prev(i, j)=” “ then print ai3 else if prev(i, j)=” “ then Output-LCS(A, prev, i-1, j)4 else Output-LCS(A, prev, i, j-1) 1 2 3 4 5 6 7 8 9 10i j 0 p r o v i d e n c e0 0 0 0 0 0 0 0 0 0 0 01 p 0 1 1 1 1 1 1 1 1 1 12 r 0 1 2 2 2 2 2 2 2 2 23 e 0 1 2 2 2 2 2 3 3 3 34 s 0 1 2 2 2 2 2 3 3 3 35 i 0 1 2 2 2 3 3 3 3 3 36 d 0 1 2 2 2 3 4 4 4 4 47 e 0 1 2 2 2 3 4 5 5 5 58 n 0 1 2 2 2 3 4 5 6 6 69 t 0 1 2 2 2 3 4 5 6 6 6 Output: priden
Nội dung trích xuất từ tài liệu:
Lập trình quy hoạch động Dynamic programingLập trình quy hoạch độngdynamic programingNội dung Giới thiệu. Phương pháp thực hiện. Ví dụ minh họaBÀI TOÁNĐỆ QUY int F(int i) int main() { { if (i Lưu lại lời giải của bước trước và được sử dụng để tìm lời giải của bài toán mức khó hơn ? int main() { F[1]=1; F[2]=1; for (int i=3;iLập trình qui hoạch độngLập trình quy hoạch động (dynamic programming) giải cácbài toán bằng cách kết hợp các lời giải của các bài toáncon của bài toán đang xét.Phương pháp này khả dụng khi các bài toán con không độclập đối với nhau, tức là khi các bài toán con có dùng chungnhững “bài toán con nhỏ hơn” (subsubproblem).Lập trình qui hoạch động giải các “bài toán con nhỏ hơn”dùng chung này một lần và lưu lời giải của chúng trongmột bảng và sau đó khỏi phải tính lại khi gặp lại các bàitoán đó đó. 6Quy hoạch động Giải quyết bài toán tối ưu có tính chất đệ quy Xuất phát từ bài toán con xác định đã được giải để giải quyết bài toán lớn hơn dựa vào kết quả bài toán con.Phạm vi áp dụng Các bài toán có thể phân rã thành các bài toán con xác định. Có đủ không gian vật lý. Hữu hạn các bước giải.Các bước của qui hoạch độngSự xây dựng một giải thuật qui hoạch động có thể được chia làm bốn bước: Đặc tả cấu trúc của lời giải tối ưu.1. Mô tả lời giải tối ưu theo cách đệ quy.2. Tính trị lời giải tối ưu theo kiểu bottom-up.3. Xây dựng lời giải tối ưu từ những thông tin đã được4. tính toán. 9Một số bài toán qhđ Tìm dãy con chung dài nhất. Bố trí phòng họp. Cho thuê máy.Xâu con chung dài nhấtSequence 1: presidentSequence 2: providence president providence 0 if i = 0 or j = 0, c[i, j ] = c[i − 1, j − 1] + 1 if i, j > 0 and xi = y j , max( c[i − 1, j ], c[i, j − 1]) if i, j > 0 and x ≠ y . i j 1 2 3 4 5 6 7 8 9 10i j 0 p r o v i d e n c e0 0 0 0 0 0 0 0 0 0 0 01 p 0 1 1 1 1 1 1 1 1 1 12 r 0 1 2 2 2 2 2 2 2 2 23 e 0 1 2 2 2 2 2 3 3 3 34 s 0 1 2 2 2 2 2 3 3 3 35 i 0 1 2 2 2 3 3 3 3 3 36 d 0 1 2 2 2 3 4 4 4 4 47 e 0 1 2 2 2 3 4 5 5 5 58 n 0 1 2 2 2 3 4 5 6 6 69 t 0 1 2 2 2 3 4 5 6 6 6The backtracing algorithmprocedure Output-LCS(A, prev, i, j)1 if i = 0 or j = 0 then return Output − LCS ( A, prev, i − 1, j − 1)2 if prev(i, j)=” “ then print ai3 else if prev(i, j)=” “ then Output-LCS(A, prev, i-1, j)4 else Output-LCS(A, prev, i, j-1) 1 2 3 4 5 6 7 8 9 10i j 0 p r o v i d e n c e0 0 0 0 0 0 0 0 0 0 0 01 p 0 1 1 1 1 1 1 1 1 1 12 r 0 1 2 2 2 2 2 2 2 2 23 e 0 1 2 2 2 2 2 3 3 3 34 s 0 1 2 2 2 2 2 3 3 3 35 i 0 1 2 2 2 3 3 3 3 3 36 d 0 1 2 2 2 3 4 4 4 4 47 e 0 1 2 2 2 3 4 5 5 5 58 n 0 1 2 2 2 3 4 5 6 6 69 t 0 1 2 2 2 3 4 5 6 6 6 Output: priden
Tìm kiếm theo từ khóa liên quan:
Dynamic programing lập trình quy hoạch động phương pháp thực hiện phương pháp đệ quy phạm vi ứng dụngGợi ý tài liệu liên quan:
-
Giáo trình Toán rời rạc: Phần 1 - Đỗ Đức Giáo
238 trang 217 0 0 -
Tiểu luận ngành Khoa học máy tính: Thiết kế và phân tích thuật toán
36 trang 121 0 0 -
Cơ sở Toán trong kỹ thuật lập trình: Phần 2
175 trang 29 0 0 -
Cơ sở Toán trong kỹ thuật lập trình: Phần 1
183 trang 28 0 0 -
26 trang 25 0 0
-
Ứng dụng trong tin học Toán rời rạc
410 trang 25 0 0 -
17 trang 17 0 0
-
Học phần An toàn điện: Bảo vệ dây trung tính
29 trang 14 0 0 -
TÌM HIỂU VỀ PHYTOSTEROL TRONG DẦU THỰC VẬT
25 trang 13 0 0 -
PHƯƠNG PHÁP KHỬ ĐỆ QUY ĐẶC BIỆT
6 trang 11 0 0