оптимизации в тех случаях, когда в силу разного рода объективно-математических причин (дискретность ограничений, нелинейности, нарушение свойства выпуклости и т.п.) аппарат линейного программирования неработоспособен. Вполне понятно, что он тоже не изучался и не изучается в большинстве вузовских курсов СССР и России на специальностях, в которых владение им придает квалификации специалистов КАЧЕСТВЕННО более высокий уровень.
Метод динамического программирования, как алгоритмическое выражение достаточно общей теории управления
В изложении существа метода динамического программирования мы опираемся на книгу “Курс теории автоматического управления” (Палю де Ла Барьер: французское издание 1966 г., русское издание — “Машиностроение”, 1973 г.), хотя и не повторяем его изложения. Отдельные положения взяты из упоминавшегося ранее курса “Исследование операций” Ю.П.Зайченко.
Метод динамического программирования работоспособен, если формальная интерпретация реальной задачи позволяет выполнить следующие условия:
1. Рассматриваемая задача может быть представлена как
2. Структура задачи не должна изменяться при изменении расчетного количества шагов
3. Размерность пространства параметров, которыми описывается состояние системы, не должна изменяться в зависимости от количества шагов
4. Выбор управления на любом из шагов не должен отрицать выбора управления на предыдущих шагах. Иными словами оптимальный выбор управления в любом из возможных состояний должен определяться параметрами рассматриваемого состояния, а не параметрами процесса в ходе которого система пришла в рассматриваемое состояние.
Чисто формально, если одному состоянию соответствуют разные предистории его возникновения, влияющие на последующий выбор оптимального управления, то метод позволяет включить описания предысторий в вектор состояния, что ведет к увеличению размерности вектора состояния системы. После этой операции, то что до неё описывалось как одно состояние, становится множеством состояний, отличающихся одно от других компонентами вектора состояния, описывающими предисторию процесса.
5. Критерий оптимального выбора последовательности шаговых управлений
Критерий
С индексом
Теперь обратимся к рис. 8?1 — рис. 8?3, повторяющие взаимно связанные рис. 40, 41, 42 из курса теории автоматического управления П. де Ла Барьера.
На рис. 8?1 показаны начальное состояние системы «0» и множества её возможных последующих состояний «1», «2», «3», а также возможные переходы из каждого возможного состояния в другие возможные состояния. И всё это вместе похоже на карту настольной детской игры, по которой перемещаются фишки: каждому переходу-шагу соответствует свой шаговый выигрыш, а в завершающем процесс третьем множестве — каждому из состояний системы придана его оценка, помещенная в прямоугольнике. Принципиальное отличие от игры в том, что гадание о выборе пути, употребляемое в детской игре, на основе бросания костей или вращения волчка и т.п., в реальном управлении недопустимо, поскольку это — передача целесообразного управления тем силам, которые способны управлять выпадением костей, вращением волчка и т.п.
Если выбирать оптимальное управление на первом шаге, то необходимо предвидеть все его последствия на последующих шагах. Поэтому описание алгоритма метода динамического программирования часто начинают с описания выбора управления на последнем шаге, ведущем в одно из завершающих процесс состояний. При этом ссылаются на «педагогическую практику», которая свидетельствует, что аргументация при описании алгоритма от завершающего состояния к начальному состоянию легче воспринимается, поскольку опирается на как бы уже сложившиеся к началу рассматриваемого шага условия, в то время как возможные завершения процесса также определены.
Рис. 8-1. К существу метода динамического программирования
В соответствии с этим на рис. 8?2 анализируются возможные переходы в завершающее множество состояний «3» из каждого возможного состояния в ему предшествующем множестве состояний «2», будто бы весь предшествующий путь уже пройден и осталось последним выбором оптимального шагового управления завершить весь процесс. При этом для каждого из состояний в множестве «2» определяются