Основы вычислительного метода динамического программирования. Характерной особенностью динамического программирования является последовательное исследование переменных. Главное заключается в том, что создается такая вычислительная схема, когда предпочтительнее большое количество задач с малым числом переменных, а не одна задача с множеством переменных. В результате процесс вычисления представляется не таким объемным. Но следует отметить, что для этого необходимо соблюдение двух условий: когда критерий оптимальности аддитивен или когда оптимальные решения отдельных шагов создают общее оптимальное решение; когда будущие результаты не предполагают использование предыстории того положения системы, при котором принимается решение. Такие условия производны от принципа оптимальности Беллмана, на котором базируется теория динамического программирования. На принципе Беллмана основывается также главный метод - определение правил доминирования. Это, в свою очередь, подразумевает осуществление сравнения примеров будущего развития на каждом этапе, при этом бесперспективные варианты сразу же исключаются. Решающие правила - это правила в виде формул, которые выделяют один из других элементы последовательности. Представленный метод может быть использован для двух видов задач: задача планирования деятельности экономического объекта в соответствии с трансформацией во времени потребности в выпускаемой продукции; наиболее приемлемый способ распределения ресурсов между различными направлениями во времени. Например, задача оптимального распределения ежегодного урожая зерна на продукцию и семена с целью получения большего количества хлеба. Динамическое программирование в значительной мере полезно в случае нахождения решения задачи, которая изначально предполагает наличие определенных этапов. Из представленного материала ясно, что динамическое программирование - это метод оптимизации решений, который предполагает использование многошагового процесса. Допустим, что рассматриваемый процесс существует, изменяется во времени и полностью делится на определенное количество этапов. Такое деление может быть: естественное - например, хозяйственный год при реализации планирования хозяйственной деятельности ряда предприятий; искусственное - например, пошаговый вывод ракеты на космическую орбиту. Многоэтапный процесс можно регулировать. Это значит, что каждый этап требует принятие определенного решения, которое влияет на результат деятельности конкретного шага и процесса в целом. Соответственно, регулирование всем процессом реализуется посредством уравнения отдельных этапов. Среди наиболее простых задач, решение которых предполагает применение метода динамического программирования, можно назвать задачу об оптимальном режиме набора высоты и скорости летательным аппаратом. Далее будут обозначены приемы динамического программирования на основе решения данной задачи. Пусть летательному аппарату, который находится на высоте Hs со скоростью Vs , следует подняться на определенную высоту Hf. Скорость аппарата достигает заданного значения и составляет Vf. Известны дискретные показатели расхода горючего, необходимого для набора высоты и увеличения скорости полета по горизонтали. Необходимо определить такой режим набора высоты и скорости, который предполагает минимальную трату горючего. Представим исходные данные в виде матрицы, в каждой ячейке которой имеются две цифры: верхняя цифра - показатели траты топлива в относительных единицах на подъем; нижняя цифра – на набор необходимой скорости. Важным представляется определить из всех существующих траекторий наилучшую, то есть ту, которая предполагает минимальный расход горючего. Для того, чтобы сделать верный выбор можно рассмотреть все траектории, но их количество слишком большое, поэтому более простое решение задачи предполагает использование метода динамического программирования. Необходимо осуществить оптимизацию каждого шага, начиная с последнего.   Мы знаем конечное состояние самолета, это точка Sкон. Ясно, что траектория В2- Sкон предпочтительнее В1- Sкон на 3 единицы расхода топлива. Для того, чтобы определить в каждой узловой точке наиболее правильное управление, необходимо изучить два образующихся из этой точки пути - горизонтальный и вертикальный. Для каждой траектории представляется важным нахождение суммы траты топлива на данном этапе и минимального расхода горючего на оптимальном продолжении пути, уже определенном для дальнейшей точки, по заданному направлению. Из двух траекторий выберем оптимальную, а значит ту, которая предполагает меньшую сумму. Если данные показатели эквивалентны, то выбор траектории не является принципиальным.  Окончательное решение будет иметь вид, представленный на рисунке – оптимальная траектория обозначена стрелками.  Представленный пример задачи является наиболее распространенным в раскрытии сущности метода динамического программирования. Так, каждый этап предполагает определение только по двум параметрам - высота, скорость. Это и делает решение задачи очень простым и конечным. Тем не менее, следует отметить, что такая задача является скорее теоретической, нежели практической. Так, в реальной обстановке самолет способен одновременно увеличивать высоту и скорость В этом случае работать придется с кусочно-линейной аппроксимацией траектории. Очевидно, что определение системы координат для решения задачи и метод деления действия на этапы имеют множество вариаций. В данном случае такой метод решения задачи используется для наглядности геометрической интерпретации. |