
- •Е.Б. Грибанова Исследование операций и методы оптимизации Методические указания по выполнению лабораторных работ для студентов заочной формы обучения
- •Содержание
- •Минимизация функции одной переменной
- •1.1 Методы прямого поиска
- •Алгоритм
- •Алгоритм
- •1.2 Методы, основанные на использовании производных.
- •Алгоритм
- •1.3. Простейшие формулы численного дифференцирования
- •1.4. Задание на лабораторную работу №1
- •Минимизация функции нескольких переменных
- •2.1. Основные понятия
- •2.2. Прямые методы
- •Алгоритм
- •2.3. Градиентные методы
- •Алгоритм
- •2.4. Задание
- •Условная оптимизация
- •3.1. Задача линейного программирования
- •3.2. Задание
- •Литература
- •Приложение б Варианты заданий к лабораторной работе №2 «Минимизация функции нескольких переменных»
- •Вариант 2 Задание
- •Вариант 3 Задание
- •Пример отчета по лабораторной работе №2
- •Минимизация функции нескольких переменных
- •Примеры отчетов по лабораторной работе №3
- •Условная оптимизация
- •Вариант 1
- •Решение
- •Решение
- •Решение
- •Приложение д. Надстройка Excel «Поиск решения»
- •Приложение ж. Решение оптимизационных задач в MathCad.
Минимизация функции нескольких переменных
2.1. Основные понятия
общем виде задача поиска минимума функции многих переменных может быть записана
(x)min ,
где f (x) - целевая функция многих переменных;
( x1 , x2 ,..., xn ) - n -мерный вектор оптимизируемых параметров;
- размерность задачи.
Методы многомерной оптимизации можно разделить на следующие группы:
Прямые методы, использующие значения функции в вычисленных точках.
Градиентные методы, использующие значения градиента.
2.2. Прямые методы
16
2.2.1. Метод Гаусса
Суть метода: последовательно осуществляется одномерная оптимизация по
каждой переменной.
Алгоритм
Шаг 1. Задается начальная точка x0 , точность 1 , 2 .
Шаг 2. Выполняется одномерная оптимизация по каждой переменной.
Шаг
3. Проверка условия
x
j
x
j
1
1
,
f
( x
j
) f
( x
j
1)
2
. Если условия выполняются, то осуществляется
завершение работы алгоритма, иначе –
переход на шаг 2.
2.2.2. Метод Хука-Дживса
Суть метода: нахождение в окрестности текущей точки наилучшей и движение в этом направлении. Если значение в окрестных точках больше чем в текущей, то происходит уменьшение шага.
Процедура Хука–Дживса представляет собой комбинацию двух поисков:
а) "Исследующий" поиск: с заданным шагом i происходит расчет функции в пробных точках вокруг некоторой исходной точки x 0 ( f (x0 j ) ) (рис.2.1). Если значение ЦФ в пробной точке меньше значения ЦФ в исходной точке, то шаг поиска успешный. В противном случае из исходной точки делается шаг в противоположном направлении. После перебора всех n координат исследующий поиск завершается. Полученная точка называется базовой.
x2
x1
Рис.2.1 Исследующий поиск
17
б) Ускоряющий поиск по образцу: осуществляется шаг из полученной базовой точки вдоль прямой, соединяющей эту точку с предыдущей базовой (рис.2.2). Новая точка образца определяется по формуле:
xkp 1 xk (xk xk 1) .
x2
x1
Рис.2.2 Поиск по образцу
Алгоритм
Введем следующие обозначения: x k – текущая базовая точка; x k 1 – предыдущая базовая точка; xkp 1 – точка, построенная при движении по образцу;
x k 1 – |
следующая (новая) базовая точка. |
|
|
|
||||||||
|
Критерий останова: |
|
|
|
x |
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|||||
Шаг |
1. Определить начальную точку x0 ; приращения (шаги) |
i , i |
|
; |
||||||||
1, n |
коэффициент уменьшения шага 1 ; параметр окончания поиска .
Шаг 2. Провести исследующий поиск.
Шаг 3. Был ли исследующий поиск удачным (найдена ли точка с меньшим значением ЦФ)?
Да: переход на Шаг 5. Нет: продолжить, т.е. переход на Шаг 4.
Шаг
4.
Проверка на окончание поиска. Выполняется
ли неравенство
x
? Да:
окончание поиска, т.е. текущая точка аппроксимирует точку экстремума x .
Нет: уменьшить приращение i / ; i 1, 2, ... , n . Переход на Шаг 2.
18
Шаг 5. Провести поиск по образцу: xkp 1 xk (xk xk 1) .
Шаг 6. Провести исследующий поиск, используя точку xkp 1 в качестве временной базовой точки. Пусть в результате получена точка xk 1 . Шаг 7. Выполняется ли неравенство: f (xk 1 ) f (xk ) ?
Да: положить x k 1 x k ; x k xk 1 . Переход на Шаг 5.
Нет: переход на Шаг 4.
2.2.3. Симплексный метод
Суть метода: приближение к минимальной точке с помощью изменения координат вершин симплекса (рис.2.3).
x2
x1
Рис.2.3 Движение симплекса
Шаг 1. Задается исходная вершина симплекса.
x0 (x0 |
,..., x0 ) |
|
|
|
|
|
1 |
n |
|
|
|
|
|
Задается коэффициент сжатия[0,1] и размер симплекса L . Строится симплекс |
||||||
|
|
|
x 0 |
... |
x0 |
|
|
|
|
1 |
|
n |
|
|
|
|
x1 |
... |
x1 |
|
|
|
|
1 |
|
n |
. |
|
( x j ) |
......... |
||||
|
i |
|
|
|
|
|
|
|
x n 1 |
... xn 1 |
|
||
|
|
|
1 |
|
n |
|
|
|
|
x n |
... |
xn |
|
|
|
|
1 |
|
n |
|
Здесь j-я строка – это координаты j-ой вершины V j . ( j 1,..., n 1 ), где n - |
||||||
размерность пространства (размерность вектора x ), i |
– номер координаты i 1,..., n . |
19
Определение координат xij , начиная со второй, производится по формуле
-
x j x 0
x j , ( j 1,..., n; i 1,..., n) ,
(2.1)
i
i
i
где xij - матрица размерности ( n 1) n
-
0
0
0 ...
p
q
q ...
n
n
n
( x j )q
p
q ...
i
n
n
n
... ... ... ...
q
q
q ...
n
n
n
где
p |
L |
|
|
( |
|
n 1) , |
q |
L |
|
|
( |
|
1) . |
|
|
n 1 |
n 1 |
||||||||||
|
|
|
|
|
|
||||||||
n |
n |
2 |
|
|
|
|
n |
n |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0
qn
...
Векторы соответствующие вершинам V1 ,...,Vn , определяемые формулой (2 .1),
составят одинаковые углы с координатными осями x1 ,..., xn . |
|
|||||||||||||||
Шаг 2. |
В вершинах симплекса вычисляется ЦФ f (x j ), j 0,..., n |
|||||||||||||||
Шаг 3. |
Проверяем условия: |
|
|
|
x j x j 1 |
|
|
|
|
, |
|
f ( x j ) f ( x j 1) |
|
|
2 |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
Если «да», то |
конец; если «нет», то переходим на Шаг 4. |
Шаг 4. Находится «наихудшая» вершина симплекса (при поиске минимума «наихудшая» вершина – та, в которой значение функции максимально).
f ( x p ) max f ( x j ), j 1, n 1
j
Шаг 5. Осуществляется расчет координат новой вершины (вершина отражения x p ):
-
2
n
x p
x j x p
x p .
n
j 0
Шаг 6. Если точка x p оказывается «хуже» всех остальных точек симплекса, то осуществляется возврат к исходному симплексу с последующим его сжатием относительно «лучшей» из вершин xk
20
( x k ) minj f ( x j ), j 1, n 1 x s x k (1 ) x s , s 0,1,..., n; s k ,
Переход на Шаг 2.
Если x p не является «худшей» в новом симплексе, то перейти на шаг 3.