МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО

ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра МиБИ

КОНТРОЛЬНЫЕ РАБОТЫ

ПО МЕТОДАМ ОПТИМИЗАЦИИ

Издательство “Самарский университет”

Содержание

1.  ЛАБОРАТОРНАЯ РАБОТА № 1 «Алгоритм поиска промежутка локализации

точки оптимума функции »………………………………………………………………… 3

2.  ЛАБОРАТОРНАЯ РАБОТА № 2 «Методы первого порядка: алгоритм деления отрезка пополам»………………………………………………………………………………............ 4

3.  ЛАБОРАТОРНАЯ РАБОТА№ 3 «Методы многомерной оптимизации. Методы покоординатного поиска»………………………………………………………… 4

4.  ЛАБОРАТОРНАЯ РАБОТА № 4 «Задача линейного программирования. Отыскание базисных решений и опорных планов в задаче линейного программирования»………………………………………………………………………… 6

5.  ЛАБОРАТОРНАЯ РАБОТА № 5 «Решение задачи ЛП симплекс - методом искусственного базиса»……………………………………………………………………. 12

ЛАБОРАТОРНАЯ РАБОТА № 1

Алгоритм поиска промежутка локализации точки оптимума функции

Начальные данные: , , где - начальный шаг, х – начальная точка, m - коэффициент увеличения шага.

1 шаг: Вычисляем значение функции в двух точках и .

2 шаг: Если , то переход на шаг 3, иначе переход на шаг 4.

3 шаг: Меняем направление поиска промежутка локализации, т. е. и возвращаем на 1 шаг.

4 шаг: Если , переход на шаг 5, иначе переход на шаг 6:

5 шаг: Проводим вычисления:

5.1 Вычисляем значение функции в старой точке ; ;

НЕ нашли? Не то? Что вы ищете?

5.2. Пересчитываем промежуток: ;

5.3. Вычисляем значение функции в точке , ;

5.4. Переход на шаг 4.

6 шаг: Если , то переход на шаг 7, иначе переход на шаг 8.

7 шаг: Концы промежутка локализации вычисляем по формуле:

; .

8 шаг: Концы промежутка локализации вычисляем по формуле:

;.

В результате работы алгоритма получаем интервал [a, b], содержащую точку оптимума и точку x Î[a, b].

Задание

Определите промежуток локализации минимума функции j(x) = (x – d) ( x – 1)3. В качестве начальных данных взять x = 1, Dx = 1, m =2

Варианты заданий

№ варианта

1

2

3

4

5

6

7

8

9

10

11

12

13

d

5

7

8

8

1

3

3

1

2

-5

-7

-8

-8

l

6

8

9

10

4

5

4

3

4

-6

-8

-9

-10

№ варианта

14

15

16

17

18

19

20

21

22

23

24

25

d

-1

-3

-3

-1

-2

0

0

2

-2

-4

3

4

l

-4

-5

-4

-3

-4

-5

5

6

-6

0

6

9

Результаты расчетов поместить в таблицу, имеющую вид:

x

Fx

Dx

y

Fy

Значения a и b получены в результате алгоритма выписываются ниже таблицы.

ЛАБОРАТОРНАЯ РАБОТА № 2

Методы первого порядка: алгоритм деления отрезка пополам

1 шаг: Вычисляем значение производной в левой границе начального промежутка .

2 шаг: Если то переход на шаг 7, иначе переход на шаг 3.

3 шаг: Вычисляем значение производной в правой границе начального промежутка .

4 шаг: Если переход на шаг 7, иначе переход на шаг 5.

5 шаг: Если переход на шаг 6, иначе переход на шаг 7.

6 шаг:

6.1. Вычисляем середину отрезка :

6.2. Вычисляем производную в середине отрезка.

6.3. Если , то переход на шаг 6;

6.4. Если , то ;

6.5. Если , то ;

7 шаг: .

В результате работы алгоритма получим значения y и Fy, являющиеся приближениями решения задачи.

ЛАБОРАТОРНАЯ РАБОТА № 3

Методы многомерной оптимизации.

Методы покоординатного поиска

Рассматривается задача поиска безусловного минимума функции f(x), зависящей от нескольких переменных, т. е. поиск такой точки x* Rn , что

Метод простого покоординатного поиска заключается в следующем. Берем начальную точку x0 и вектор λ величин шагов по каждому направлению, и полагаем x*=x0. Из точки x* пытаемся перейти в точку x’ изменением только первой координаты на величину λ[1]. Если эта попытка удачная, т. е. f(x’)<f(x*), то увеличиваем величину шага λ[1] в α > 1 раз, λ[1]:= λ[1]*α и переходим в точку x’, полагая x*=x’. Если попытка неудачная, т. е. f(x’)≥f(x*), то изменяем величину и направление шага λ[1], полагая λ[1]:= λ[1]*β, где -1<β<0. Затем переходим к следующему координатному направлению, т. е. начинаем двигаться по следующей координате. По окончании спуска по всем n координатным направлениям оцениваем │x0-x*│ и │ λ │. Если эти величины меньше заданного числа ε, то процесс прекращаем, иначе полагаем x0= x’. и процесс начинаем сначала. Эта процедура вполне оправдывает название метода. С ее помощью мы построим последовательность точек, которой соответствует монотонно-убывающая последовательность значений функции. Обрывая ее на некотором шаге можно приближенно принять  значение функции за ее наименьшее значение в рассматриваемой области.

Отметим, что данный метод сводит задачу поиска наименьшего значения функции нескольких переменных к многократному решению одномерных задач оптимизации.

Алгоритм простого покоординатного поиска

Шаг 1. Задать начальную точку x0, число ε > 0 для остановки алгоритма, начальную величину шагов по первому координатн6ому направлению λ[1] , ускоряющий множитель α > 1 и коэффициент -1<β<0. Положить x*=x0.

Шаг 2. Для k:=1 до n выполнить

Начало 2

s:=ek (здесь далее ek – k-ый орт, т. е. k-ое координатное направление);

x’:=x*+ λ[k]*s;

F(x’):=φ(x’);

Если F(x’)<F(x*) (т. е. шаг удачный) , то

Начало 3

x*:=x’; F(x*):=F(x’) (т. е. осуществляем переход в новую точку); λ[k]:= λ[k]*α (увеличиваем величину шага);

Конец 3;

Иначе λ[k]:= λ[k]*β.

Конец 2.

Шаг 3. Проверить условия окончания:

a)  если (│x0-x*│>ε) и (│λ│≥ε), то x0:=x*; F(x0):=F(x*); перейти к шагу 2.

b)  Если (│λ│<ε), то xmin:=x*, min f(x):= φ(x*).

Конец алгоритма.

Алгоритм исчерпывающего покоординатного поиска

Ставится задача поиска безусловного минимума функции f(x), зависящей от нескольких переменных, т. е. поиск такой точки x* Rn , что

Этот метод во многом похож на метод простого покоординатного поиска. В нем также происходит движение каждый раз по одной из координат. Отличие состоит в том, что при удачном переходе из точки x* в x’ осуществляется дальнейший спуск по этому координатному направлению до тех пор, пока шаг не станет неудачным. Тогда осуществляется переход к следующему координатному направлению. При этом шаг уменьшается в β раз.

Шаг 1. Задать начальную точку x0, число ε > 0 для остановки алгоритма, начальную величину шагов по первому координатн6ому направлению λ[1] , ускоряющий множитель

α > 1 и коэффициент -1<β<0. Положить x*=x0.

Шаг 2. Для k:=1 до n выполнить

Начало 2

s:=ek ;

x’:=x*+ λ[k]*s;

F(x’):=φ(x’);

Пока F(x’)<F(x*) (т. е. шаг удачный) , выполнить

Начало 3

x*:=x’; F(x*):=F(x’) (т. е. осуществляем переход в новую точку); λ[k]:= λ[k]*α (увеличиваем величину шага);

x’:=x*+ λ[k]*s;

F(x’):=φ(x’);

Конец 3;

λ[k]:= λ[k]*β;

Конец 2.

Шаг 3. Проверить условия окончания:

c)  если (│x0-x*│>ε) и (│λ│≥ε), то x0:=x*; F(x0):=F(x*); перейти к шагу 2.

d)  Если (│λ│<ε), то xmin:=x*, min f(x):= φ(x*).

Конец алгоритма.

Алгоритм экстремального покоординатного поиска

Ставится задача поиска безусловного минимума функции f(x), зависящей от нескольких переменных, т. е. поиск такой точки x* Rn , что

Этот метод также похож на метод простого покоординатного поиска. Отличие состоит в том, что по каждому направлению выбирается оптимальный шаг из условия:

Так как все координаты кроме одной фиксированы, то для выбора оптимального шага можно воспользоваться одним из методов одномерной оптимизации.

Шаг 1. Задать начальную точку x0, число ε > 0 для остановки алгоритма. Положить x*=x0.

Шаг 2. Для k:=1 до n выполнить

Начало 2

s:=ek ;

λ[k]=argmin (x*+ λ[k]*s);

λ

x’:=x*+ λ[k]*s;

x*:=x’;

Конец 2.

Шаг 3. Проверить условия окончания:

e)  если (│x0-x*│>ε) и (│λ│≥ε), то x0:=x*; F(x0):=F(x*); перейти к шагу 2. Условие (│λ│≥ε) можно не проверять, так как оно эквивалентно условию (│x0-x*│>ε).

f)  Если (│λ│<ε), то xmin:=x*, min f(x):= φ(x*).

Конец алгоритма.

Все методы многомерной оптимизации, использующие для поиска экстремума функции первые частные производные, называют методами первого порядка. Многие из них используют направление градиента функции и антиградиента функции. Поэтому их называют градиентными методами. К ним относятся: градиентный метод с постоянным шагом, градиентный метод с дроблением шага и метод наискорейшего спуска. Последний метод рассматривается в данной курсовой работе.

ЛАБОРАТОРНАЯ РАБОТА № 4

Задача линейного программирования. Отыскание базисных решений и опорных планов в задаче линейного программирования

Общая задача линейного программирования (ЛП) состоит в нахождении экстремального значения (максимума или минимума) линейной функции

от n вещественных переменных при наложенных ограничениях:

,

, где

aij, bij и cj – заданные постоянные величины.

Линейную функцию, для которой ищется экстремальное значение, принято называть целевой функцией.

В системе ограничений могут одновременно встречаться знаки меньше или равно, равно, больше или равно.

Общая задача имеет несколько форм записи.

Векторная форма записи задачи линейного программирования имеет следующий вид:

минимизировать (максимизировать) линейную функцию

при ограничениях

, , где

;

;

* – скалярное произведение.

Векторы

состоят соответственно из коэффициентов при неизвестных и свободных членов.

Матричная форма записи задачи линейного программирования предполагает нахождение минимального (максимального) значения линейной функции

при ограничениях

, ,где

– матрица-строка;

, – матрица-столбец;

– матрица коэффициентов системы ограничений.

Задание

Решить задачу линейного программирования по следующему алгоритму:

1.Привести задачу линейного программирования к каноническому виду.

2.Выбрать базис. Привести задачу к выбранному базису.

3. Среди базисных решений выбрать решение, не являющееся опорным планом.

Пример:

Приведем задачу к каноническому виду:

Запишем симплекс таблицу:

4

2

1

1

1

0

2

1

-1

-1

0

-1

Выберем в качестве базисных переменные , .

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3