Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
482,61 KB
Nội dung
GVGD: Trng Phc Hi Phng pháp quy hoch đng (dynamic programming) 2 Trng Phc Hi Ni dung 1. Nguyên lý quy hoch đng 3. Phng pháp quy hoch đng 4. Mt s bài toán ng dng 2. Công thc truy hi 3 Trng Phc Hi Nguyên lý quy hoch đng Chia đ tr là phng pháp ch đo trong vic thit k các thut toán có tính cht đ quy Chia đ tr phân nh bài toán và gii quyt đc lp tng phn mt cách đ quy T tng đ quy d hiu và d cài đt nhng tiêu tn nhiu b nh (stack lu tr các li gi) 4 Trng Phc Hi Nguyên lý quy hoch đng Xét bài toán Tìm phn t th N ca dãy Fibonacci Dãy đc đnh ngha F N = F N-1 + F N-2 vi F 0 = F 1 = 1 Gii bng phng pháp chia đ tr Chia: F n đc chia thành F N-1 và F N-2 Tr: tính F N-1 và F N-2 mt cách đ quy Gp: tính tng F N-1 + F N-2 đ đc F N 5 Trng Phc Hi Nguyên lý quy hoch đng Gii thut chia đ tr cho bài toán F(N) If (N = 0) Or (N = 1) Then Return 1 End If Return F(N - 1) + F(N - 2) End F 6 Trng Phc Hi Nguyên lý quy hoch đng Minh ha s đ gii bài toán tính F(5) F(5) 3 8 F(4) F(3) 5 F(3) F(2) F(1) F(2) F(2) F(1) F(1) F(0) F(1) F(0) F(1) F(0) 3 2 2 1 1 1 1 1 1 2 1 1 7 Trng Phc Hi Nguyên lý quy hoch đng phc tp ca gii thut chia đ tr áp dng cho bài toán Fibonacci T(N): thi gian tính F(N) Phng trình đ quy biu din thi gian tính T(N) T(N) = T(N-1) + T(N-2) Gii phng trình đ quy trên ta đc 8 Trng Phc Hi Nguyên lý quy hoch đng Xây dng li gii ca mt bài toán thông qua li gii ca các bài toán con Các bài con tip tc đc chia nh đ gii quyt nhng không s dng k thut đ quy S dng bng tra cu đ lu li kt qu đã tính đc và tính dn đn nghim ca bài toán bng mt công thc xác đnh 9 Trng Phc Hi Ni dung 1. Nguyên lý quy hoch đng 3. Phng pháp quy hoch đng 4. Mt s bài toán ng dng 2. Công thc truy hi 10 Trng Phc Hi Công thc truy hi Trong quá trình quay lui, đ quy s gi li nhiu ln các bài toán con đã đc gi các bc trc Gây tiêu tn thi gian thc hin lp li và tài nguyên b nh Lu tr nghim ca tt c bài toán con và kt hp chúng theo mt công thc xác đnh đ tìm nghim cho bài toán ban đu Công thc kt hp nghim ca các bài toán con đ tìm nghim ca bài toán ln hn gi là công thc truy hi [...]... max{L[i][j-1], L[i-1][j], L[i-1][j-1] + k} k = 1, A[i-1] = B[j-1] tính k = 0, A[i-1] B[j-1] tính 0) 0) quy L[i][0] = 0 i [1 M] L[0][j] = 0 j [1 N] 30 2 1 các 2 và N M + 1 dòng, N + 1 làm các bài toán con án quy Dòng 0 và và dãy M 2 dãy A và B 0 Các dòng i, j theo dài dãy A có i dài chung dãy dài dãy chung và B có j 31 Minh tìm dãy con chung dài 2 9 16 12 17 8 21 2 9 4 48 12 0 1 2 3 4 5 6 7 0 0 0 0 0 0... Max(L[i-1][j],L[i][j-1]); } 34 Truy ô M, N lên So sánh A và B nhau thì vào khác nhau thì theo giá cho max max khi L[i][j-1] L[i-1][j] dãy 35 truy tìm Trace(L[][], A[], M, B[], N, T[], P) P = L[M][N]; i = M; j = N; k = P; While (i >= 0 AND j >= 0) If (A[i-1] = B[j-1]) Then T[k 1] = A[i-1] k = k 1; i = i 1; j = j 1 Else If (L[i][j] = L[i][j 1]) Then j = j 1 Else i = i - 1 End If End While End Trace 37 ... If (A[i-1] L[i][j] Else L[i][j] End If End For End Process 0 M; i++) . đnh ngha F N = F N-1 + F N-2 vi F 0 = F 1 = 1 Gii bng phng pháp chia đ tr Chia: F n đc chia thành F N-1 và F N-2 Tr: tính F N-1 và F N-2 mt cách đ quy . C[i][0] = 1, i (vì ) Công thc truy hi C[i][j] = C[i-1][j] + C[i-1][j-1], i [1 N], j [1 k] 17 Trng Phc Hi Công thc truy hi Minh ha quá trình xây dng. F N-1 + F N-2 đ đc F N 5 Trng Phc Hi Nguyên lý quy hoch đng Gii thut chia đ tr cho bài toán F(N) If (N = 0) Or (N = 1) Then Return 1 End If Return F(N - 1)