Читать книгу Талантливое мышление. ТРИЗ - Владимир Петров - Страница 12
Глава 2. Системный подход
2.6. Динамическое программирование
ОглавлениеСистемный подход особенно важен для решения создания сложных (больших) систем, например таких как исследование космоса, разработка сложных государственных и межгосударственных программ и т. п.
Решение сложных задач зачастую невозможно «в лоб», поэтому задачу разбивают на подзадачи. Это используется в динамическом программировании.
Динамическое программирование в математике и теории вычислительных систем – способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить4.
Рис. 2.16. Графическое изображение динамического программирования
Рассмотрим пример на динамическое программирование.
Пример 2.20. Утро Бэтмена
Как Бэтмену одеться?
Рис. 2.17. Утро Бэтмена
Можно предложить два пути (рис. 2.18).
Рис. 2.18. Два разных способа одевания утром5
4
Динамическое программирование – материал из Википедии.