По отношению к макроэкономической системе её “скоростные” параметры, прежде всего, определяются энергопотенциалом. Поэтому в макроэкономических интерпретациях задача «наведения оружия на цель» предстает как задача о темпах роста энергопотенциала и его разпределении: 1) на производство демографически обусловленного спектра потребностей и 2) на развитие и поддержание производственной базы всех отраслей.
Математически такое решение может быть получено, в частности, на основе алгоритмов, реализующих метод динамического программирования (он может изпользоваться и для решения задач линейного программирования). Обстоятельное его изложение и конкретные алгоритмические модели решения тех или иных прикладных задач можно найти в специальной литературе. Здесь же мы опишем его структуру и затронем некоторые с ним связанные мировоззренческие вопросы.
Алгоритм метода динамического программирования осуществляет формализованный выбор оптимальной в некотором смысле траектории в n-мерном пространстве. Термин «динамическое программирование», также как и термин «линейное программирование», о котором речь шла ранее, — прижившиеся в Русском языке подстрочники, мало что говорящие о существе самих методов выбора математически формализованных наилучших вариантов решения практических задач управления, планирования, проектирования.
Аппарат динамического программирования позволяет решать задачи многопараметрической оптимизации в тех случаях, когда в силу разного рода объективно-математических причин (дискретность ограничений, нелинейности математической модели, нарушение свойства выпуклости и т.п.) стандартные алгоритмы решения задач линейного программирования неработоспособны.
Вполне понятно, что метод динамического программирования, как и прочие математические методы оптимизации, не изучался и не изучается в большинстве вузовских курсов СССР и России на специальностях, в которых владение им придаёт квалификации специалистов КАЧЕСТВЕННО более высокий уровень. Тем более в литературе не обсуждаются и философско-мировоззренческие аспекты нашедшие в нём своё алгоритмическое выражение.
В изложении существа метода динамического программирования мы опираемся на книгу “Курс теории автоматического управления” (Палю де Ла Барьер: французское издание 1966 г., русское издание — “Машиностроение”, 1973 г.), хотя и не повторяем его изложения. Отдельные положения взяты из ранее упоминавшегося курса “Изследование операций” Ю.П.Зайченко (Киев, “Вища школа”, 1979)[43].
Метод динамического программирования работоспособен, если формальная интерпретация реальной задачи позволяет выполнить следующие условия:
1. Разсматриваемая задача может быть представлена как N‑шаговый процесс, описываемый соотношением:
Xn + 1 = f(Xn , Un , n), где n — номер одного из множества возможных состояний системы, в которое она переходит по завершенииn-ного шага;Xn — вектор состояния системы, принадлежащий упомянутому n-ному множеству; Un — управление, выработанное на шаге n (шаговое управление), переводящее систему из возможного её состояния вn-ном множестве в одно из состояний (n + 1)‑го множества. Чтобы это представить наглядно, следует обратиться к рис. 6, 7, 8, о которых речь пойдет далее.
2. Структура задачи не должна изменяться при изменении расчётного количества шагов N.
3. Размерность пространства параметров, которыми описывается состояние системы, не должна изменяться в зависимости от количества шагов N.
4. Выбор управления на любом из шагов не должен отрицать выбора управления на предыдущих шагах. Иными словами оптимальный выбор управления в любом из возможных состояний должен определяться параметрами разсматриваемого состояния, а не параметрами процесса, в ходе которого система пришла в разсматриваемое состояние.
Чисто формально, если одному состоянию соответствуют разные предистории его возникновения, влияющие на последующий выбор оптимального управления, то метод позволяет включить описания предисторий в вектор состояния, что ведёт к увеличению размерности вектора состояния системы. После этой операции, то, что до неё описывалось как одно состояние, становится множеством состояний, отличающихся одно от других компонентами вектора состояния, описывающими предисторию процесса.
43
Начало и конец описания метода динамического программирования отмечены абзацами, состоящими из звездочек. Изложение метода носит самостоятельный характер и приложимо к управлению любыми житейскими ситуациями, тем не менее, желающие могут его пропустить. Те же, кто, ознакомившись с ним, посчитают никчемным его изпользование в управлении житейскими обстоятельствами в повседневности — ошибаются: просто не надо его сводить до дурости, подразумевая, что обычный выход из дома на работу должен сопровождаться предварительными расчётами в столбик или на компьютере. В методе есть общежизненная суть, которая не сводится к формам прикладной арифметики.