9. ОБЩИЕ ПРИНЦИПЫ ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ ПРИ СОСТАВЛЕНИИ
УЧЕБНЫХ ПЛАНОВ
Получить действительно лучшее решение задачи можно
только перебрав все возможные варианты ее решения, что
ставит задачу в ряд задач комбинаторики. Но полный перебор
невозможно из-за огромного количества вариантов. Поэтому
при решении таких задач используются эвристические
алгоритмы. В частности, в данной диссертации алгоритм
построен на методе динамического программирования.
Динамическим программированием называют особый
математический метод оптимизации решения, когда задача
решается пошагово, часто в реальном масштабе времени.
Особенностью динамического программирования является то,
что после каждого шага построения решения необходимо
определить, какие пути дальнейшего построения решения
будут перспективными, а какие - нет. Эту последовательность
принятия решений называют стратегией.
Цель оптимального планирования - выбрать стратегию,
обеспечивающую получение оптимального результата с точки
зрения выбранного критерия.
Еще одной важной особенностью динамического
программирования является независимость принимаемого
решения от предыстории, т.е. от того, каким образом процесс
достиг текущего состояния. Но при этом нельзя не учитывать
последствия принятого решения, т.е. каким образом решение
на данном шаге повлияет на дальнейшее планирование. Таким
образом, динамическое программирование - это планирование
с учетом перспективы. Иногда бывает более правильно
получить меньшую выгоду на текущем шаге, но принять такое
решение, которое в совокупности для всей задачи было бы
более выгодным. Исключение составляет последний шаг, на
котором принимается наиболее выгодное решение для данного
шага.