Programming là phương pháp để giải quyết một lớp lớn các bài toán tối ưu thỏa theo nguyên lý tối ưu Bellman.. Giới thiệu[r]
(1)CƠ SỞ LẬP TRÌNH NÂNG CAO
Biên soạn: Ths.Tôn Quang Toại TonQuangToai@yahoo.com
TPHCM, NĂM 2013
(2)PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN
− QUY HOẠCH ĐỘNG −
(3)Nội dung
• Giới thiệu
• Quy hoạch động Chia để trị
• Quy hoạch động Bài tốn tối ưu • Ngun lý tối ưu Bellman
(4)(5)Giới thiệu
• Quy hoạch động – Dynamic
Programming nhà toán học người Mĩ Richard
Bellman (1920 – 1984) phát minh vào năm 1957
• Quy hoạch động – Dynamic
(6)Giới thiệu
• Dựa phương pháp Quy hoạch động,
nhiều thuật toán tiếng đời: Một số thuật toán tiếng dựa phương pháp Quy hoạch động
– Thuật toán Dijkstra
– Thuật toán Ford – Bellman
– Thuật toán Floyd
– Thuật toán Viterbi
– Thuật toán huấn luyện Adaptive Critic
– Thuật toán Cocke – Younger – Kasami
(7)Quy hoạch động Chia để trị
Bài toán trùng lắp
(8)Phương pháp
• Phương pháp Quy hoạch động gần giống
với phương pháp Chia để trị
• Cả hai phương pháp dùng để giải
(9)Phương pháp
• Phương pháp Chia để trị: Là phương
pháp từ xuống (top – down) với ý tưởng:
– [Divide] Chia toán lớn thành
toán nhỏ độc lập
– [Solve] Giải toán nhỏ
– [Combine] Kết hợp lời giải toán nhỏ
(10)Phương pháp
• Hạn chế phương pháp Chia để trị:
– Khi dùng phương pháp chia để trị để chia
bài toán lớn thành toán con, toán lại chia nhỏ thành nhiều toán nhỏ nữa, …
Đơi tốn yêu cầu
giải nhiều lần