- •ВВЕДЕНИЕ
- •1. ОСНОВНЫЕ ПОНЯТИЯ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
- •2. МЕТОДИКА ПРОВЕДЕНИЯ ИССЛЕДОВАНИЙ ОПЕРАЦИЙ
- •3. МЕТОДЫ ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
- •3.1. ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
- •3.1.1. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.1.2. ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И КОМБИНАТОРИКА
- •3.1.3. ТЕОРИЯ ГРАФОВ
- •3.1.5. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.1.4. ГЕОМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •3.1.6. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •3.1.7. ВАРИАЦИОННЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ
- •3.1.8. ОПТИМАЛЬНОЕ УПРАВЛЕНИЕ
- •3.2. СТОХАСТИЧЕСКИЕ МЕТОДЫ
- •3.2.1. СТОХАСТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •3.2.5. ТЕОРИЯ ПРИНЯТИЯ РЕШЕНИЙ
- •ЛАБОРАТОРНЫЕ РАБОТЫ
- •КУРСОВОЕ ПРОЕКТИРОВАНИЕ
- •ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ВОПРОСОВ К ЗАЧЁТУ И ЭКЗАМЕНУ
- •СПИСОК ЛИТЕРАТУРЫ
В этом случае из точки начального приближения осуществляется спуск любым методом вплоть до нарушения условия (3.17), после чего производится возврат на ограничения (3.16) по нормали к нему. Поиск прекращается, если расстояние между точками, лежащими на ограничениях, и которые происходит возврат после двух последующих нарушений условия (3.17) не превышает за-
данной погрешности.
б) Метод обобщенного критерия (метод «штрафов»). Вводится вспомо-
гательная функция вида:
m
R = f0 ( X ) + α∑[ fi ( X )]2 ,
i =1
где α – положительное число, величина которого должна быть достаточно большой.
Далее решается задача безусловной оптимизации для функции R.
Общая задача математического программирования. Рассмотрим задачу
условной оптимизации (3.14) с ограничениями (3.15) и (3.16). Для решения за-
дачи прежде всего ищется точка начального приближения х0, удовлетворяющая всем условиям (3.15), (3.16).
Далее строится комбинированная внутренне – внешняя функция штрафа
вида:
|
|
1 |
m |
q |
|
R = f0 |
( X ) − |
∑ln fi ( X ) + K |
∑[ fi ( X )]2 . |
||
|
|||||
|
|
K i −1 |
i =m+1 |
||
В данном случае для всех ограничений выбран один и тот же штраф K.
Экстремум функции R ищется любым методом безусловной оптимизации.
3.1.6. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Рассмотрим многостадийные процессы, которые характеризуются сле-
дующими особенностями [4, 7]:
−процесс дискретно распределён во времени или пространстве;
−отдельные стадии процесса обладают относительной независимостью,
т.е. вектор выходных координат любой стадии зависит только от вектора вход-
ных координат на эту стадию и управления на ней;
− критерий оптимальности (целевая функция) всего процесса является суммой критериев оптимальности каждой стадии.
39
Рис. 3.10. Многостадийный процесс
Схема многостадийного процесса приведена на рис. 3.10. На каждой i-й
стадии (i = 1, 2, …, n), xi – 1 – входная величина; xi – выходная величина; ui –
управление.
Пусть известна математическая модель каждой i-й стадии, позволяющая рассчитать выходную координату по значениям входной координаты и управ-
ления:
xi = ϕi (xi −1, ui ) .
Постановка задачи динамического программирования:
Найти управления на каждой стадии u1*, u2* , ..., u*n , u U , при которых
n
R= ∑ ri (xi−1, ui ) → min (max) ,
i=1
где U – допустимая область изменения управлений; ri – критерий оптимально-
сти (целевая функция) i-й стадии; R – критерий оптимальности всего процесса.
Ричард Беллман сформулировал принцип оптимальности для многоста-
дийных процессов: оптимальная стратегия обладает таким свойством, что, ка-
ково бы ни было начальное состояние и начальное решение, последующие ре-
шения должны приниматься, исходя из оптимальной стратегии относительно состояния, получаемого в результате первого решения.
Метод поиска оптимальных управлений, использующий принцип Белл-
мана, называется динамическим программированием.
Основная идея динамического программирования заключается в том, что если какой-либо поток изменяется на каждой стадии процесса, то, если на по-
следней стадии режим работы (независимо от режима работы на всех стадиях)
не будет оптимальным по отношению к поступающему на неё потоку, не будет оптимальным и режим всего многостадийного процесса в целом.
Применение метода динамического программирования состоит в опреде-
лении такого режима работы стадии, который минимизирует (максимизирует)
критерий на этой и всех последующих стадиях для любых возможных состоя-
ний поступающего на неё потока. Обычно рассмотрение начинается с послед-
40
ней стадии процесса. Оптимальный режим всего процесса определяется поста-
дийно.
Основным уравнением динамического программирования является функ-
циональное уравнение вида
|
n |
|
R = max r1(x0 , u1) + ∑ ri (xi −1 |
, ui ) . |
|
u1 U |
i =2 |
|
Здесь для определённости рассматривается максимизация целевой функ-
ции.
Процедура применения принципа оптимальности для оптимизации n-ста-
дийного процесса, очевидно, должна начинаться с последней стадии процесса,
для которой не существует последующих стадий, могущих повлиять (согласно принципу оптимальности) на выбор управления un на этой стадии. После того,
как оптимальное управление un найдено для всех возможных значений входа последней стадии, можно приступить к определению оптимального управления на предыдущей стадии и т.д.
Решение задач методом динамического программирования проводится в два этапа.
На первом этапе определяются оптимальные управления как функции входных параметров, при этом начало рассмотрения – последняя стадия про-
цесса:
R1 = max rn (xn −1, un ) .
un U
Предположим, что каким-либо методом найдено управление un* , достав-
ляющее максимум функции rn. Переходим ко второй стадии от конца, для кото-
рой оптимизируемая функция имеет вид
R2 = max {rn−1(xn−2 , un−1) + R1}.
un −1 U
На этой стадии ищется оптимальное значение управления un – 1.
Далее процедура повторяется до тех пор, пока не дойдём до первой стадии.
Второй этап решения представляет собой последовательный расчёт опти-
мальных управлений от первой стадии к последней.
Если значение входной координаты х0 известно, оптимальное управление на первой стадии вычисляется по соотношению:
41
u1* = u1 (x0 ) .
Зная u1* и математическую модель, описывающую первую стадию, можно определить выход первой стадии:
x1 = ϕ1 (x0 ,u1* ) .
Теперь можно определить оптимальное управление на второй стадии:
u2* = u2 ( x1 ) .
Вычисления продолжаются до тех пор, пока не получим значения опти-
мальных управлений на всех стадиях.
Если значение входной координаты х0 неизвестно, оно ищется на послед-
нем шаге первого этапа, т.е. находится не только u1* , но и x0* , максимизирую-
щие R. Дальнейшая процедура – та же самая, что и для случая, когда х0 задано.
Преимущество метода по сравнению с методом полного перебора – сни-
жение количества вычислений. Поясним это на примере. Рассмотрим n-ста-
дийный процесс, в котором на каждой i-й стадии управления ui представляют дискретные величины, принимающие k различных значений. Для каждого воз-
можного решения, принимаемого на i-й стадии, имеется k возможных значений,
принимаемых на (i – 1)- й стадии, и т.д. Таким образом, чтобы найти оптималь-
ное решение методом полного перебора, нужно проанализировать kn возмож-
ных путей решения. При использовании метода динамического программиро-
вания требуется проанализировать только kn комбинаций.
К недостаткам метода динамического программирования следует отнести отсутствие информации о том, как выполнить оптимизацию на каждой стадии,
а также сложность его применения в случае процессов с рециклами.
Пример. Использование метода динамического программирования для задачи трассировки трубопроводов. Пусть расположение цехов предприятия иллюстрируется схемой, показанной на рис. 3.11.
Требуется соединить цеха трубопроводами так, чтобы каждый цех имел выход на конечную точку K напрямую или через другие цеха, при этом сум-
марные затраты на трубопроводы должны быть минимальными.
Затраты на прокладку трубопроводов между цехами обозначены цифрами над каждым возможным трубопроводом. Всего в данном примере число воз-
можных труб равно 32. Проложив все 32 трубы все цеха будут гарантировано связаны с конечной точкой, однако такое решение не будет оптимальным с точки зрения выбранного критерия.
42
Рис. 3.11. Схема расположения цехов предприятия
Рис. 3.12. Оптимальная трассировка
Применим принцип оптимальности. Для последнего ряда цехов в пункт K
ведёт один путь. Значит, выбор трассировки труб из каждого цеха последнего ряда приводит к единственной возможности (она и оптимальна). Соответст-
вующие затраты обозначим цифрами внутри кружка на схеме рис. 3.11, а опти-
мальную трассировку – пунктирной линией.
В предпоследнем ряду для каждого цеха перебираем все трассировки.
Находим ту из них, для которой сумма затрат на прокладку трубопроводов до последнего ряда и от последнего ряда цехов до пункта K будет минимальна.
Так продолжается до точки «Н».
В результате получается трассировка, показанная на рис. 3.12.
Обратим внимание на тот факт, что если бы рассмотрение велось не от точки «K» к точке «Н», а наоборот, то на первом шаге была бы выбрана трасса,
43
