Содержание
- 2. Динамическое программирование – это процесс пошагового решения задач, когда на каждом шаге из множества допустимых решений
- 3. Динамическое программирование применимо для задач, обладающих следующими свойствами: Свойство оптимальности для подзадач. Наличие перекрывающихся подзадач.
- 4. Разбиение на подзадачи в методе ветвей и границ: Ω
- 5. Наличие перекрывающихся подзадач: Ω
- 6. При использовании динамического программирования каждая из подзадач решается только один раз и ее решение запоминается в
- 7. Принцип оптимальности для подзадач. Говорят, что для задачи выполнен принцип оптимальности для подзадач, если оптимальное решение
- 8. Задача о перемножении матриц. Дано n матриц M1, M2, …, Mn Матрица Mi имеет размеры pi-1
- 9. Пример: M1 10 x 100 M2 100 x 5 M3 5 x 50 ((M1 M2) M3)
- 10. Обозначим Mi...j = MiMi+1…Mj Mi...j = (Mi…Mk)*(Mk+1…Mj) для некоторого i fij – минимальное число операций для
- 11. Псевдокод алгоритма: for i = 1 to n do fii = 0 i = 1, j
- 12. Перемножение матриц: MULT (i, j) if j > i then X = MULT (i, gij) Y
- 13. Численный пример: n = 4
- 14. Разбиение на подзадачи: 1..4 1..1 2..4 1..2 3..4 1..3 4..4 2..2 3..4 2..3 4..4 1..1 2..2
- 16. Скачать презентацию