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

Автор работы: Пользователь скрыл имя, 08 Декабря 2013 в 15:14, курсовая работа

Краткое описание

В данной работе рассмотрены различные классы задач математического программирования и методы их решения:
- первая группа – задачи нелинейного программирования, решаемые различными методами (методом Куна-Таккера, методом наискорейшего спуска, методами Ньютона и Нелдера-Мида);
- ко второй группе задач относятся – транспортная задача на сети, метод Дворника-Стеклоочистителя.

Содержание

ВВЕДЕНИЕ 4
1 Методы нелинейного программирования 5
1.1 Конусы возможных направлений в угловых точках допустимого множества задачи ЛП 5
5
1.2 Конусы, сопряженные к конусам возможных направлений в угловых точках допустимого множества задачи ЛП 6
1.3 Проверка условия оптимальности Куна – Таккера в угловых точках допустимого множества задачи ЛП 6
1.4 Найти точку безусловного экстремума (минимума) методом наискорейшего спуска и методом Ньютона 7
1.5 Метод Нелдера-Мида 11
ОБЩИЙ ВЫВОД 18
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19

Прикрепленные файлы: 1 файл

Курсовой проект.docx

— 270.40 Кб (Скачать документ)

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ 4

1 Методы нелинейного программирования 5

1.1 Конусы возможных направлений в угловых точках допустимого множества задачи ЛП 5

5

1.2 Конусы, сопряженные к конусам возможных направлений в угловых точках допустимого множества задачи ЛП 6

1.3 Проверка условия оптимальности Куна – Таккера в угловых точках допустимого множества задачи ЛП 6

1.4 Найти точку безусловного экстремума (минимума) методом наискорейшего спуска и методом Ньютона 7

1.5 Метод Нелдера-Мида 11

ОБЩИЙ ВЫВОД 18

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

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

- первая группа – задачи нелинейного программирования, решаемые различными методами (методом Куна-Таккера, методом наискорейшего спуска, методами Ньютона и Нелдера-Мида);

- ко второй группе задач  относятся – транспортная задача на сети, метод Дворника-Стеклоочистителя.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Методы нелинейного программирования

Расход определенных видов сырья и ресурсов происходит не линейно, а скачкообразно (в зависимости от объема производства). Попытки учесть эти факторы приводят к формулировке более общих и сложных оптимизационных задач. Изучение методов их решения составляет предмет научной области, получившей названия нелинейного программирования.

Общая задача нелинейного  программирования (ОЗНП) определяется как задача нахождения максимума (или минимума) целевой функции f(x{, х2,…, хп) на множестве D, определяемом системой ограничений где хотя бы одна из функций f  или gi является нелинейной.

Исходные данные к выполнению курсовой работы:

f=(x1-10)2+(x2-12)2+(x1-10)*(x2-12)→min

Начальная точка x(0) =(2;5)

Безусловный минимум х* =(10;12)

13x1+16x2≤208

x2≤10

x1≥0; x2≥0

    1. Конусы возможных направлений в угловых точках допустимого множества задачи ЛП

2


4

6

8

10

12

14

2

4

6

8

10

12

14

y1

у2

х2

х1


 

 

 

 

 

 

 

 

 

Рисунок 1.1.1

2


4

6

8

10

12

14

2

4

6

8

10

12

14

y1

у2

х2

х1

Конусы, сопряженные к  конусам возможных направлений  в угловых точках допустимого  множества задачи ЛП


 

 

 

 

 

 

 

 

 

 

Рисунок 1.1.2

    1. Проверка условия оптимальности Куна – Таккера в угловых точках допустимого множества задачи ЛП

Докажем, что существует такая точка λ≥0, при которой  в точке х* = (10;12) выполняется условие Куна – Таккера.

Экстремум ЦФ находится в точке (48/13;10), *1=-7,68, *2=1,124.

Условие Куна-Таккера

Проверяем точки: (0;0), (16;0), (0;10), (48/13;10), (2;5),(10;12).

Таблица 1.3.1

 

(0;0)

(0;10)

(16;0)

(48/13;10)

(2;5)

(10;12)

 

-

+

-

+

-

+

 

-

-

+

+

-

+

 

+

+

-

+

+

-

 

+

+

+

+

+

-


Условие Куна – Таккера выполняется в одной точке (48/13;10).

    1. Найти точку безусловного экстремума (минимума) методом наискорейшего спуска и методом Ньютона

Метод наискорейшего спуска

Таблица 1.4.1

Номер шага

Координаты

Значение функции

Решение

1

(2;5)

169

2

(3;6)

127

3

(5;8)

61

4

(9;12)

1

5

(17;20)

169


 

Оценим точность полученного  решения с помощью метода Золотого сечения.    Точка содержится на отрезке  заменяем на Точка а0 имеет координаты (3;6), b0 имеет координаты (17;20).

Шаг 1:

Для оптимального решения  задачи, * должна находится в интервалах 0≤*≤0,5 или 0,5<*≤1, но так как *=1,124, то:

Пусть *=0,6

Т.к. , то минимум функции находятся не на данном отрезке.

Шаг 2:

Т.к. , то минимум функции находятся не на данном отрезке.

 

Шаг 3:

Т.к. , то минимум функции находятся не на данном отрезке.

Шаг 4:

Т.к.  , то минимум функции находятся не на данном отрезке.

Шаг 5:

Т.к.    , то минимум функции находятся не на данном отрезке.

Шаг 6:

Т.к.    , то минимум функции находятся не на данном отрезке.

Шаг 7:

Т.к.    , то минимум функции находятся на данном отрезке.

Найдем точку безусловного экстремума (минимума) методом Ньютона.

Для решения берем вторые частные производные.

           

  

           

 

С помощью метода Ньютона мы получили точку (10;12), которая совпадает с точкой безусловного минимума.

    1. Метод Нелдера-Мида

Идея метода состоит в  сравнении значений функции в (n + 1) вершинах симплекса и перемещении  симплекса в направлении оптимальной  точки с помощью итерационной процедуры.

В методе симплекс перемещается с помощью трех основных операций: отражения, растяжения и сжатия.

Шаг 1: Найдем значения функции f1=f(x1),f2=f(x2) ... fn+1=f(хn+1) в вершинах симплекса.

Шаг 2: Найдем наибольшее значение функции fh, следующее за наибольшим значением функции fg наименьшее значение функции fl и соответствующие им точки xh, xg, xl.

Шаг 3: Найдем центр тяжести всех точек, за исключением точки хh. Пусть центром тяжести будет

 

и вычислим f(x0)=f0.

Шаг 4:  Удобнее всего начать перемещение от точки xh. Отразив точку xh относительно точки х0, получим точку хr и найдем f(xr) = fr.

 

Рисунок 1.5.1

Шаг 5: Сравним значения функций fr и fl.

а. Если fr < fl, то мы получили наименьшее значение функции. Направление из точки x0 в точку xr наиболее удобно для перемещения. Таким образом, мы производим растяжение в этом направлении и находим точку xe и значение функции fe = f(xe).

 

Рисунок 1.5.2

Если fe < fl, то заменяем точку xh на точку xe и проверяем (n + 1) -ую точку симплекса на сходимость к минимуму (см. шаг 8). Если сходимость достигнута, то процесс останавливается; в противном случае возвращаемся на шаг 2.

Если fe > fl, то отбрасываем точку xe. Очевидно, мы переместились слишком далеко от точки x0 к точке xr. Поэтому следует заменить точку xh на точку xr, в которой было получено улучшение (шаг 5, а), проверить сходимость и, если она не достигнута, вернуться на шаг 2.

б. Если fr > fl, но fr < fg, то xr является лучшей точкой по сравнению с другими двумя точками симплекса и мы заменяем точку xh на точку xr и, если сходимость не достигнута, возвращаемся на шаг 2, т.е. выполняем пункт описанный выше.

в. Если fr > fl и fr > fg, перейдем на шаг 6.

Коэффициенты в процедуре являются соответственно коэффициентами отражения, сжатия и растяжения.

Шаг 6: Сравним значения функций fr и fh.

а. Если fr > fh, то переходим непосредственно к шагу сжатия (ниже).

Если fr < fh, то заменяем точку xh на точку xr и значение функции fh на значение функции fr. Запоминаем значение fr > fg из шага 4,б, приведенного выше. Затем переходим на шаг 5,б.

б. В этом случае fr > fh, поэтому ясно, что мы переместились слишком далеко от точки xh к точке x0. Попытаемся исправить это, найдя точку xc (а затем fc ) с помощью шага сжатия, показанного на рисунке ниже. Если fr > fh, то сразу переходим к шагу сжатия и находим точку xc из соотношения

 

Рисунок 1.5.3

Если fr < fh, то сначала заменим точку xh на точку xr, а затем произведем сжатие. Тогда точку xc найдем из соотношения

 

Рисунок 1.5.4

Шаг 7: Сравним значения функций fc и fh.

а. Если fc < fh, то заменяем точку xh на точку xc и если сходимость не достигнута, то возвращаемся на шаг 2.

б. Если fc > fh, то очевидно, что все наши попытки найти значение меньшее fh закончились неудачей, поэтому мы переходим на шаг 3.

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

Таким образом, точка xj заменяется на точку

Затем вычисляем fi для i = 1, 2, ...,(n+1), проверяем сходимость и, если она не достигнута, возвращаемся на шаг 3.

8. Проверка сходимости  основана на том, чтобы стандартное  отклонение (n + 1) -го значения функции было меньше некоторого заданного малого значения е. В этом случае вычисляется

, где

Если , то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции xl. Исходя из этого, такой критерий сходимости является разумным.                  

Итерация 1

Шаг 1. В качестве вершины многогранника выбираем точки (0;10), (0;10), (16;0). Отражение α=1, сжатие β=0,5, растяжение γ=2.

Шаг 2. Считаем значение функции в выбранных точках и по значениям определяем «наилучшую», «наихудшею» и среднюю:

(0; 10) f(x1)=(0-10)2+(10-12)2+(0-10)(10-12)=124 – xg

(0; 0) f(x2)=(0-10)2+(0-12)2+(0-10)(0-12)=244 – xh

(16; 0) f(x3)=(16-10)2+(0-12)2+(16-10)(0-12)=108 – xl

Шаг 3. Определяем центр тяжести x0:

х0 =0,5(xl+xg)=0,5(x3+x1)=(8;5)

f(x0)=67

Шаг 4. Выполняем отражение xh:

xr= (1+α)x0-αxh=(16;10)

f(xr)= 28

Шаг 5. Т. к. f(xr)< f(xl), то выполняем растяжение

xe= =(24;15)

f(xe)=247, т.к. f(xe)≥f(xl), то xr=xh.

Дальнейшие вычисления будут занесены в таблицы 1.5.1 – 1.5.9

Таблица 1.5.1

 

Координаты

Значение функции

Итерация 2

f=

56,4

xh

(0;10)

124

sigma=

1335

xg

(16;0)

108

   

xl

(16;10)

28

   

х0=

(16;5)

43

   

хr=

(32;0)

364

   

xc=

(8;7,5)

33,25

   

Информация о работе Методы нелинейного программирования