Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
21-3. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕСовременная наука и техника все чаще сталкиваются с задачами отыскания оптимальных процессов и решений. В одних областях, как-то: планирование производства, планирование перевозок и др., прежде всего выступают проблемы нахождения оптимальных решений и процессов. В других областях, к которым относятся и области применения игровых систем, требуется автоматическое оптимальное управление. Математика давно располагает методами нахождения значений переменных или функций, соответствующих экстремуму функции или функционала (оператора). Это прежде всего способ отыскания экстремума функции одной или нескольких переменных при дополнительных условиях (ограничениях) в виде произвольного числа алгебраических или трансцендентных уравнений и классический метод вариационного исчисления. Одной из типичных классических задач вариационного исчисления является нахождение функции (процесса)
где
при
задача приводится к отысканию функции, соответствующей максимуму (экстремаль) функционала:
при заданных граничных значениях
Решение задачи дается вариационным исчислением в виде решения соответствующего дифференциального уравнения Эйлера порядка
Рис. 21-7. Пример функции одной переменной, иллюстрирующий недостаточность классических методов для решения проблем оптимальности. Аналогично решается задача определения экстремума функционала
при более общих условиях типа системы дифференциальных уравнений
Классические методы вариационного исчисления и методы определения экстремума функции недостаточны для эффективного решения задач оптимальности в проблемах автоматического управления, рационального планирования и других проблемах. Применение классических методов вариационного исчисления наталкивается на большие трудности при ограничениях переменных в виде неравенств. Число элементарных арифметических операций, необходимых для достаточно точного численного решения уравнения Эйлера с заданными условиями частично в начале и частично в конце (граничные условия), во многих практических задачах чрезмерно велико. Классический методы позволяют определить лишь те значения (рис. 21-7) функционала или функции, которым соответствует двусторонний экстремум 2, 5 (вариации первого порядка малости обращаются в нуль). В практических задачах часто необходимо найти просто положение наибольшего 1 или наименьшего 4 значения функции или функционала на границе области переменных, определяемой ограничениями типа неравенств. Кроме того, могут встретиться двусторонние экстремумы неаналитического типа 3 (рис. 21-7), отыскание которых требует в лучшем случае видоизменения классических приемов. Все это вызвало в последнее время, с одной стороны, развитие вариационного исчисления в направлении решения неклассических задач, а с другой — разработку приближенного общего метода, называемого динамическим программированием. Понтрягиным и его учениками создан важный метод решения задач оптимального управления, получивший название принципа максимума [Л. 21-6]. Метод динамического программирования развит Беллманом [Л. 21-5]. Что касается определения экстремума функции многих переменных три ограничении типа неравенств, то для решения частного вида этой задачи широко попользуется способ линейного программирования. Хотя оба последних метода разработаны как чисто вычислительные, мы изложим основные идеи этих методов для выяснения целесообразного вида алгоритмов игровых систем автоматического управления.
Рис. 21-8. К пояснению основной идеи метода динамического программирования. а) Динамическое программированиеВесьма часто процессы и решения по своей природе являются многоэтапными или многошаговыми. Оптимизация многоэтапных в том или ином смысле процессов и решений и составляет предмет динамического программирования. Для пояснения основной идеи динамического программирования рассмотрим одну простую иллюстрацию. Пусть состояние некоторой системы характеризуется координатами х, у, принимающими функций выгоды Требуется перевести систему из положения Решение поставленной задачи можно, конечно, попытаться получить методом слепого поиска или перебором всех возможных траекторий. Однако такой подход возможен только в очень простых случаях. В более или менее сложных случаях, для которых и разработан собственно метод динамического программирования, слепой поиск оптимальных решений требует непомерной вычислительной работы. В основе метода динамического программирования лежит интуитивный принцип оптимальности, который позволяет решать задачи оптимизации многоэтапных процессов последовательно путем построения рекуррентных соотношений. Для применения принципа оптимальности в рассматриваемом примере разделим траекторию изображающей точки на два участка: от начала до некоторого промежуточного этапа В соответствии с принципом оптимальности каков бы ни был начальный участок траектории и какое бы значение функции выгоды ни накопилось к этапу
где
Вместе с определением определяется и траектория, от
и
где
Поступая далее аналогичным образом, можно шаг за шагом для любого промежуточного этапа В табл. рис. 21-9 приведен числовой пример для до Перейдем к более общей математической формулировке метода, динамического программирования. Пусть имеется система, состояние которой характеризуется вектором
где При заданном векторе состояния системы
При оптимальной программе
Индексы оптимальной программы В соответствии с принципом оптимальности, каково бы ни было начальное состояние Для одного этапа, как уже указывалось, имеем:
Согласно (21-9) состояние системы на втором этапе двухэтапного процесса равно:
По условию каковы бы ни были
Суммарная функция выгоды двухэтапного процесса
Соответственно максимальное значение функции, выгоды для двухэтапного процесса
Рассуждая аналогичным образом, для трехэтапного процесса будем
и, наконец, для
Рис. 21-9. Иллюстрация задачи, решаемой методом динамического программирования. Рекуррентное сотношение (21-13) позволяет последовательно вычислить искомое значение
Поскольку после определения
Таким же образом определяются остальные члены оптимальной программы:
Метод динамического программирования разработан не только для дискретных, но и для непрерывных процессов или задач [Л. 21-5]. С другой стороны, непрерывные задачи оптимизации путем разбиения на этапы могут быть приблйженно решены методом динамического программирования в дискретной форме. Пусть, например, требуется найти функцию
при условии
Для приближенного решения задачи разбиваем интервал
В рассматриваемой задаче
играет роль функции преобразования
Отыскивая последовательно максимумы функций
и соответственно далее:
Итак, задача нахождения экстремума функционала при динамическом программировании свелась к задаче последовательного определения экстремумов функций. Это, естественно, упрощает [решение задачи, особенно при использовании цифровой вычислительной машины. Наличие ограничений, выраженных в виде неравенств, не только не усложняет, а, напротив, упрощает решение задачи методом динамического программирования, так как сужает область изменения переменных, в которой отыскивается максимум. Максимум функции в каждом этапе при небольшом числе аргументов — компонент вектора параметра — можно находить по способу «слепого» поиска. Так, например, в приведенной одномерной задаче поиск по у в каждом этапе может осуществляться путем придания у дискретных значений и сравнения соответствующих значений функции выгоды. При большом числе измерений этот способ, однако, оказывается неприменимым. В этих задачах необходимо применять методы поиска, основанные на использовании той или иной начальной информации об экстремальной функции. Например, если
Рис. 21-10. Геометрическая интерпретация задач линейного программирования. б) Линейное программированиеПрежде чем формулировать задачу линейного программирования в общем виде, рассмотрим простой пример. Пусть требуется найти наибольшее значение линейной функции двух переменных
при ограничениях в виде неравенств
Здесь Легко указать геометрическую интерпретацию сформулированной задачи. Ограничения (21-16) определяют область на плоскости переменных
Таким образом, область возможных значений в данном случае представляет собой четырехугольник на плоскости Требуется найти наибольшее значение функции выгоды Очевидно, что обычный способ отыскания экстремума функции двух переменных здесь неприменим. Действительно, частные производные линейной функции есть постоянные Функция Очевидно, что в рассматриваемом частном случае наибольшее значение функции выгоды того или иного способа линейного программирования. Сформулируем задачу линейного программирования 1 в общем виде. Линейное программирование заключается в отыскании наибольшего значения линейной функции
при ограничениях в виде системы линейных неравенств
Следует заметить, что если первые Необходимо также отметить, что на число Можно дать формальную интерпретацию многомерной задачи линейного программирования, подобную рассмотренной геометрической интерпретации двухмерной задачи. А именно: задача линейного программирования заключается в отыскании наибольшего значения линейной функции переменных Для решения задач линейного программирования разработано несколько методов. Давно применяется метод транспортирования, получивший свое название в задачах оптимального планирования перевозок. Более общим является симплексный метод. Мы не будем здесь останавливаться на этих вычислительных методах, довольно громоздкое описание которых можно найти. в специальной литературе [Л. 21-3 и 21-4]. Кратко остановимся на специальной форме метода градиента, применимой для решения задач линейного программирования. Достоинство этого способа — его прозрачное геометрическое содержание. Как указывалось, мтод градиента в обычной форме неприменим для линейного программирования, так как, двигаясь вдоль вектора градиента линейной функции, мы выходим за пределы области ограничения аргументов. Однако видоизменение метода градиента с учетом ограничений позволяет решать задачи линейного программирования. Метод заключается в следующем. Первое перемещение точки
т. е. по прямой
Увеличивая т. е. двигаясь вдоль указанного первого вектора градиента, следим одновременно за условиями (21-18) нахождения в многограннике ограничений
которые в данном случае принимают вид:
Пусть при достижении некоторого значения
Следует заметить, что одновременное обращение в равенства двух или большего числа неравенств (21-19) является особым случаем, благоприятным, кстати сказать, для решения задачи линейного программирования. Излагаемая методика легко обобщается на этот особый случай, но для краткости мы не будем на нем останавливаться. Выполнение равенства (21-20) при некотором означает, что мы, двигаясь вдоль первого вектора градиента, достигли
Дальнейшее движение для отыскания наибольшего значения функции выгоды Для того чтобы получить вектор градиента функции
можно исключить один из аргументов, напимер
В соответствии с этим компоненты второго вектора градиента равны:
Движение вдоль второго вектор» градиента начинается от точки
Поэтому координаты на втором участке поиска максимума
Здесь При некотором значении
Отсюда определяется значение
при условии
и аналогично предыдущему определяется третий участок поиска и т. д. Процесс поиска заканчивается тогда, когда движение по вектору градиента в следующем этапе приводит в начальной точке к нарушению ограничений (21-18). Для двухмерной задачи линейного программирования (рис. 21-10) изложенная методика сводится к движению по первому вектору градиента Пример. Требуется решить задачу линейного программирования функции
для условий
Координаты первого участка поиска равны:
Подставляя эти выражения в неравенства ограничений
убеждаемся, что при возрастании
Для второго участка поиска исключаем переменную
Тогда
Таким образом, на втором участке поиска
Подставляя эти выражения во второе неравенство, находим
Получанные координаты конца второго участка поиска являются решением задачи линейного программирования, т. е. соответствуют наибольшему Для того чтобы убедиться в этом, согласно общей методике определим направление третьего участка поиска. Исключая
получаем:
Таким образом, координаты третьего участка будут равны:
Подставляя это выражение в неравенство находим Алгоритм рассмотренного метода линейного программирования может быть достаточно просто реализован в любой цифровой вычислительной машине. Из существа рассмотренного метода поиска наибольшего значения линейной функции можно установить, что при некоторых видоизменениях процесс поиска может выполняться и машинами непрерывного действия (электронными интеграторами).
|
1 |
Оглавление
|