
- •Е.Б. Грибанова Исследование операций и методы оптимизации Методические указания по выполнению лабораторных работ для студентов заочной формы обучения
- •Содержание
- •Минимизация функции одной переменной
- •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.
Алгоритм
Шаг 1. Задать исходные данные: начальный интервал неопределенности L0 [a0 , b0 ], точность l >0.
Шаг 2. Положить k =0.
Шаг 3. Вычислить
y0 a0 3
2
5
(b0
a0
); z0
a0
b0
y0
.
Шаг 4. Вычислить f ( yk ) , f ( zk ) .
Шаг 5. Сравнить f ( yk ) с f ( zk ) :
а) если f ( yk ) f (zk ) , то положить ak 1 ak , bk 1 zk и yk 1 ak 1 bk 1 yk , zk 1 yk . Перейти к шагу 6;
б) если f ( yk ) f (zk ) , положить ak 1 yk , bk 1 bk и yk 1 zk , zk 1 ak 1 bk 1 zk .
Шаг 6. Вычислить Lk | bk 1 ak 1 | и проверить условие окончания:
10
а) если Lk l , процесс поиска завершается и в качестве приближенного решения можно взять середину последнего интервала:
x* ak 1 bk 1 ;
2
б) если Lk l , положить k k 1 и перейти к шагу 4.
1.1.5. Метод Пауэлла
Суть
метода:
определить три точки в направлении
уменьшения функции и рассчитать
квадратичную аппроксимацию. Сравнить
значение функции в наилучшей из трех
точек и в точке квадратичной аппроксимации
и если условие останова не выполняется,
то выбирается наилучшая точка и две
точки по обе стороны от неё. Так на рис.
1.5 будет выбрана точка
x
и две точки по обе стороны (
x1
, x2
) .
y
x1 ˉx x2 x3 x
Рис.1.5 Определение точек методом Пауэлла
Алгоритм
Исходные данные: x1 - начальная точка; x - выбранная величина шага по оси x .
Шаг 1: Вычислить x2 x1 x .
Шаг 2: Вычислить f (x1) и f ( x2 ) .
11
Шаг 3: Если f (x1) f (x2 ) , положить x3 x1 2 x , если f (x1) f (x2 ) , то x3 x1 x . Если x3 x1, то перенумеровать точки в естественном порядке: x1 x3 , x2 x1 , x3 x2 .
Шаг 4: Вычислить f ( x3 ) и найти
Fmin min{ f1, f2 , f3} .
min равно точке xi , которая соответствует Fmin .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шаг 5: По трем точкам |
x1, x2 , x3 |
вычислить |
|
|
x , |
используя квадратичную |
||||||||||
аппроксимацию |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
af (x2 ) f (x1 ) , |
|
|
|
|
|
|
|
||||||
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 x1 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
|
f (x3 ) f (x1 ) |
|
f (x2 ) f (x1 ) |
|
|||||||||||
a2 |
|
|
|
|
|
|
|
|
|
|
|
, |
||||
xx |
|
xx |
|
x |
2 |
x |
|
|||||||||
3 |
2 |
3 |
1 |
|
|
|
1 |
|
|
|
|
|
|
|
x2 x1 |
|
a1 |
. |
|||||||
|
|
x |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
2 |
|
|
|
2a2 |
|||||||||
Шаг 6: Проверка на окончание поиска: |
|
|
|
|||||||||||
|
Fmin f ( |
|
) |
|
; |
|
|
|||||||
|
|
|
|
|
||||||||||
а) является ли разность |
x |
|
|
|||||||||||
|
X min |
|
|
, |
|
|
|
|||||||
б) является ли разность |
x |
|
|
|
|
где 0 и 0 - заданные точности.
Если
условия а) и б) выполняются одновременно,
то закончить поиск (в качестве результата
взять точку
x
). Иначе переход на Шаг 7.
Шаг 7: Выбрать "наилучшую" точку ( X min или x ) и две точки по обе стороны от нее. Обозначить эти точки в естественном порядке и перейти на Шаг 4.
Замечание: после пятого шага необходимо провести дополнительную проверку, т.к. точка x может находиться за интервалом ( x1 , x3 ). В этом случае точка x1 заменяется x и осуществляется переход к шагу 1.
12
1.1.6. Метод Монте-Карло
Суть метода: на интервале [ a 0 , b0 ] случайным образом генерируются точки, в каждой точке вычисляется значение функции. Выбирается точка, в которой значение функции минимально (рис.1.6).
y
a0 x1 x2 b0 x
Рис.1.6 Метод Монте-Карло (точки x1 и x2 сгенерированы случайным образом)