- •Оптимизация химико-технологических процессов.
- •Аналитические методы – когда можно продифференцировать целевую функцию и искать экстремум из условия равенства 0 производных.
- •Численные методы – необходимо иметь алгоритм расчета целевой функции, т.Е. Можно по нему рассчитать значение критерия оптимальности при заданных значениях факторов.
- •Планирование эксперимента – когда функция не вычисляема – экспериментальная оптимизация.
- •II. Метод сканирования
- •III. Покоординатный спуск (метод Гаусса-Зайделя)
- •IV. Метод релаксаций.
- •V. Градиентный метод (рассмотрен в разделе планирования эксперимента)
- •VI. Методы линейного программирования.
- •Как найти вершины многоугольника.
- •Как организовать рациональный перебор решений.
- •VII. Динамическое программирование.
- •VIII. Симплексный метод оптимизации
II. Метод сканирования
Это
разновидность метода перебора, но
применяется к непрерывной функции.
Заданный диапазон изменения факторов
(x) разбивается на ряд мелких интервалов
с исчисляемым шагом
.
Для каждого интервала определяют F и в
конце получаем интервал неопределенности
,
в котором и будут находиться экстремум
функции. Положение max может быть в любом
месте внутри интервала неопределенности.
F
III. Покоординатный спуск (метод Гаусса-Зайделя)
Выбирают
координаты начальной точки поиска
(х10,х20,х30);
выбирают шаги приращения параметров
;
замораживают все значения параметров
и меняют х1
с учетом выбранного шага
,
вычисляя при этом значение функции F.
Движение продолжается до тех пор, пока
идет увеличение (уменьшение0 функции
F. Как только наступит перегиб, возвращаемся
в точку max (min)
(это локальный max, min).
Затем фиксируем в этом положении все
факторы кроме х2
и меняем его с шагом
до тех пор пока вычисленные значения
функции F с каждым шагом не пройдут через
max (min).
В точке max закрепляем все факторы кроме
х3
и меняем его с шагом
и т.д. до тех пор пока не получим F max
в
пределах заданной точности.
Δх2
Δх1
Х1 Δх2
Δх Δх1
Δх1
Δх1 Δх2
Δх2
Δх2
Δх1 Δх1
Х2
IV. Метод релаксаций.
Напоминает метод покоординатного спуска, отличается тем, что после выбора начальной у0 определяют фактор х1, х2, х3,…, вызывающий наиболее отклонение функции F и движение производят по данному фактору. Метод релаксаций позволяет сократить путь в область оптимальных значений.
X
1
F2
F3
F1
Y0
X2
V. Градиентный метод (рассмотрен в разделе планирования эксперимента)
Направление grad совпадает с направлением наиболее крутого возрастания F или «наискорейшего спуска». Отсюда и разновидности «крутое возрастание» и «наискорейший спуск». Выбирается начальная точка и движение одно по grad, затем новый центр и опять движение по градиенту и т.д. преимущество этого метода – более точное отыскание оптимума. Недостатком данного метода является сложный эксперимент по поиску grad F и поэтому метод более медленный, чем крутое восхождение.
Х1
U15
U14
U13
U12
U11
U10
X2
VI. Методы линейного программирования.
Линейное программирование изучает задачи оптимизации некоторой линейной функции F, выражающей заданный показатель качества при наличии ограничительных условий в виде линейных неравенств и равенств, налагаемых на возможные решения. Экстремум функции F ищется от нескольких независимых переменных, значения которых не отрицательны.
Основы этого метода были разработаны академиком Канторовичем Л. В. в 1939 году. Он единственный в СССР лауреат Нобелевской премии по экономике.
Рассмотрим геометрическую интерпретацию задачи линейного программирования
Найти max z=x1+3x2
Ограничения –x1+x2≤1
x1+x2≤2
x1≥0
x2≥0
x
2
-x1+x2≤1
2
C (0.5;1.5)
Линия
постоянного значения
1
B
f=5
0
A 1 2 D x1
f=3
x1+x2≤2
f=0
Заданные линейные неравенства позволяют выделить на плоскости область допустимых решений. Эта область имеет вид четырехугольника с вершинами ABCD.
Линии постоянного значения целевой функции описываются линейными уравнениями x1+3x2=c=const.
С уменьшением значения параметра С изолиния перемещается параллельно сомой себе.
В рассматриваемом примере решением задачи линейного программирования является точка с координатами х1=0,5; х2=1,5.
Она соответствует точке С, в этой точке z=5, в следующих изолиниях z=3 и z=0.
Max значение целевой функции соответствует одной из вершин многоугольника. Если бы задача состояла в минимизации, то ее решение было бы точкой, соответствующей началу координат.
При отсутствии ограничения х1+х2≤2 область допустимых значений неограниченна и целевая функция принимает сколь угодно большие значения.
При замене ограничения х1+х2≤2 на х1+х2≤-1 множества полученных значений пустые.
Итак, задача линейного программирования может иметь а). конечное решение; б). неограниченное множество конечных решений; в). Неограниченное решение; г). Не иметь решения.
Задачи
линейного программирования в стандартной
форме формулируются следующим образом:
найти точку х (х1,
х2,
х3,…,
хп),
в которой достигает своего минимума
функция
и выполняются условия
Условие неотрицательности обусловлено тем, что в подавляющем большинстве технических и экономических задач независимые переменные, имеющие конкретный физический смысл, не могут быть отрицательными.
Решение
задачи облегчается, если все ограничения
являются равенствами. Поэтому
ограничения-неравенства преобразуются
в ограничения-равенства путем введения
неотрицательных переменных хn+i≥0,
что
Знак + или – берется для неравенств > или <.
Если условия неотрицательности не выполняется, то оно представляется в виде разности неотрицательных переменных хj+ и xj-. Хj= хj+- xj-, где xj-≥0 и хj+≥0.
Целевая функция остается без изменения, решение задачи также не изменяется, а только увеличивается ее размерность.
Таким образом, условие неотрицательности позволяет упростить ход решения.
Решение задач линейного программирования осуществляется методом разрешающих множителей или симплекс-методом.
Чтобы решить задачу линейного программирования достаточно перебрать решения, соответствующие вершинам многоугольника, удовлетворяющего заданным ограничениям.
