Giải thuật qui hoạch động (Dynamic Programming)
Giải thuật Qui hoạch động (Dynamic Programming) là gì?
Giải thuật Qui hoạch động (Dynamic Programming) giống như giải thuật chia để trị (Divide and Conquer) trong việc chia nhỏ bài toán thành các bài toán con nhỏ hơn và sau đó thành các bài toán con nhỏ hơn nữa có thể. Nhưng không giống chia để trị, các bài toán con này không được giải một cách độc lập. Thay vào đó, kết quả của các bài toán con này được lưu lại và được sử dụng cho các bài toán con tương tự hoặc các bài toán con gối nhau (Overlapping Sub-problems).
Chúng ta sử dụng Qui hoạch động (Dynamic Programming) khi chúng ta có các bài toán mà có thể được chia thành các bài toán con tương tự nhau, để mà các kết quả của chúng có thể được tái sử dụng. Thường thì các giải thuật này được sử dụng cho tối ưu hóa. Trước khi giải bài toán con, giải thuật Qui hoạch động sẽ cố gắng kiểm tra kết quả của các bài toán con đã được giải trước đó. Các lời giải của các bài toán con sẽ được kết hợp lại để thu được lời giải tối ưu.
Do đó, chúng ta có thể nói rằng:
Bài toán ban đầu nên có thể được phân chia thành các bài toán con gối nhau nhỏ hơn.
Lời giải tối ưu của bài toán có thể thu được bởi sử dụng lời giải tối ưu của các bài toán con.
Giải thuật Qui hoạch động sử dụng phương pháp lưu trữ (Memoization) – tức là chúng ta lưu trữ lời giải của các bài toán con đã giải, và nếu sau này chúng ta cần giải lại chính bài toán đó thì chúng ta có thể lấy và sử dụng kết quả đã được tính toán.
So sánh
Giải thuật tham lam và giải thuật qui hoạch động
Giải thuật tham lam (Greedy Algorithms) là giải thuật tìm kiếm, lựa chọn giải pháp tối ưu địa phương ở mỗi bước với hi vọng tìm được giải pháp tối ưu toàn cục.
Giải thuật Qui hoạch động tối ưu hóa các bài toán con gối nhau.
Giải thuật chia để trị và giải thuật Qui hoạch động:
Giải thuật chia để trị (Divide and Conquer) là kết hợp lời giải của các bài toán con để tìm ra lời giải của bài toán ban đầu.
Giải thuật Qui hoạch động sử dụng kết quả của bài toán con và sau đó cố gắng tối ưu bài toán lớn hơn. Giải thuật Qui hoạch động sử dụng phương pháp lưu trữ (Memoization) để ghi nhớ kết quả của các bài toán con đã được giải.
Ví dụ giải thuật Qui hoạch động
Dưới đây là một số bài toán có thể được giải bởi sử dụng giải thuật Qui hoạch động:
Dãy Fibonacci
Bài toán tháp Hà Nội (Tower of Hanoi)
Bài toán ba lô
Giải thuật Qui hoạch động có thể được sử dụng trong cả hai phương pháp Phân tích (Top-down) và Qui nạp (Bottom-up). Và tất nhiên là nếu dựa vào vòng đời làm việc của CPU thì việc tham chiếu tới kết quả của lời giải trước đó là ít tốn kém hơn việc giải lại bài toán.
Theo Tutorialspoint
Bài trước: Giải thuật chia để trị (divide and conquer)
Bài tiếp: Giải thuật Định lý thợ (Master Theorem)
Bạn nên đọc
-
Công thức tính diện tích hình chóp
-
Công thức tính thể tích hình chóp cụt, diện tích xung quanh và toàn phần của hình chóp cụt
-
Công thức tính diện tích xung quanh hình nón cụt, diện tích toàn phần hình nón cụt, thể tích hình nón cụt
-
Công thức tính diện tích xung quanh hình nón, diện tích toàn phần hình nón, thể tích hình nón, V nón
-
Công thức tính Diện tích hình vuông, tính Chu vi hình vuông
-
Công thức tính diện tích hình lập phương, thể tích khối lập phương
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
-
Code NgầuThích · Phản hồi · 0 · 17/08/20
Cũ vẫn chất
-

Stt thả thính thời tiết nắng, nóng, lạnh, mưa… hay
2 ngày -

Tổng hợp lệnh CCNA Cisco
2 ngày -

Cách kiểm tra lịch sử giao dịch VietinBank
2 ngày -

C01 là khối gì? C01 gồm những môn nào, ngành nào, trường nào?
2 ngày -

Lời chúc sinh nhật cho bản thân, stt viết cho ngày sinh nhật của mình
2 ngày -

Hàm TRIM: Hàm bỏ khoảng trắng thừa trong Excel
2 ngày 1 -

Cách sửa lỗi máy tính Windows tự restart khi nhấn nút shutdown
2 ngày -

Cách kiểm tra nguồn điện của cổng USB
2 ngày -

Văn khấn bao sái ban thờ thần Tài
2 ngày -

Hướng dẫn đổi hình nền trên Windows 11
2 ngày
Học IT
Lập trình
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy