Геометрическая интерпретация задач нелинейного программирования

Метод наискорейшего спуска, графическая интерпретация. Метод Ньютона-Рафсона, матрица Гессе. Экстремальные нелинейные задачи с ограничениями. Метод допустимых направлений Зойтендейка. Сущность метода линейных комбинаций. Условие теоремы Куна-Таккера.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 23.03.2011
Размер файла 483,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Нелинейное программирование

Построение ОДЗП. Выбор начальной точки

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

-5x1+2 x2+2 0

x1+2 x2-10 0

x1,2 0

Каждое из ограничивающих неравенств определяет полуплоскость лежащую по одну сторону от прямой. ОДЗП получается в результате пересечения этих полуплоскостей. Условие неотрицательности позволяют ограничиться рассмотрением положительного квадранта.

ОДЗП решаемой задачи:

Рис. 1 - ОДЗП задачи нелинейного программирования и начальная точка

В качестве начального приближения к точке экстремума выберем точку x0=[2,2], принадлежащую ОДЗП.

Экстремальные задачи без ограничений. Метод наискорейшего спуска. Метод Ньютона-Рафсона

Задача поиск безусловного экстремума функции многих переменных формулируется следующим образом: найти значения переменных x1, x2…xn, доставляющие экстремум скалярной целевой функции F(x1, x2…xn), если ограничения на переменные отсутствуют.

Функция цели решаемой задачи: F(x)=6x12+4x22+ x1x2 -3x1-6x2 (max)

Здесь x0=[2,2] Ї начальное приближение к точке экстремума, выбранное в предыдущем пункте.

Методы наискорейшего спуска и Ньютона-Раффсона относятся к градиентным методам решения задач безусловной оптимизации и основаны на использовании градиента целевой функции.

Градиент функции F(x) Ї вектор, составляющие которого равны частным производным функции F(x) по соответствующим переменным.

Градиент функции цели решаемой задачи:

Направление вектора градиента совпадает с направлением наискорейшего возрастания функции. Вектор противоположного знака - F(x), называется антиградиентом, его направление совпадает с направлением наискорейшего убывания функции.

Матрица вторых производных F(x) - это симметричная квадратная матрица порядка n вторых частных производных функции F(x). Эту матрицу называют матрицей Гессе.

Матрица Гессе решаемой задачи:

Для наличия в точке x* локального минимума (максимума) необходимо, чтобы градиент функции F(x*) в этой точке равнялся нулю, а матрица Гессе была положительно (отрицательно):

F(x*) =0, xT H(x)?0

В общем случае процедура поиска осуществляется по формуле:

x k+1= x k -H-1(x k)F(x k),

где xk Ї текущее приближение к решению x* на k-м шаге; Sk - направление движения в точке xk; бk - параметр, характеризующий величину шага.

Величина шага бk определяется из условия обеспечения экстремального значения функции цели F(x) в рассматриваемом направлении Sk.

Процедура поиска прекращается, когда норма вектора градиента:

¦F(x k)¦? е

где е - заранее заданная точность решения задачи (предположим, что е=0,05).

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

В методе наискорейшего спуска направление движения при поиске минимума функции цели F(x) задается вектором антиградиента -?F(x) функции F(x) в рассматриваемой точке. Очередная точка при поиске минимума функции вычисляетя по формуле:

x k+1= x k +б k F(x k)

Найдем составляющие вектора градиента:

Градиент функции в точке x0:

F(x 0)=[23; 12]

1-й шаг.

Движение осуществляется из точки x0 вдоль вектора -?F(x0) в новую точку x1:

Определим величину б0, из условия обеспечения экстремума функции в направлении -F(x0). Подставим координаты точки x1 в функцию F(x) получим:

В результате координаты точки x1 получатся равными:

Определим составляющие вектора градиента ?F(x1):

F(x 0)=[-1.072; 2.054]

Проверим точность решения задачи:

¦F(x k)¦=v (-1.072) 2 +(2.054) 2 =2.317 ?0.05

Следовательно, заданная точность решения задачи не достигнута. Переходим к следующему шагу.

2-й шаг.

Движение осуществляется из точки x1 вдоль вектора -F(x1) в новую точку x2:

Определим величину б1, из условия обеспечения экстремума функции в направлении -F(x1):

В результате координаты точки x2 получатся равными:

Определим составляющие вектора градиента ?F(x2):

F(x 0)=[0.236; 0.195]

Проверим точность решения задачи:

¦F(x k)¦=v (0.236) 2 +(0.195) 2 =0.306 ?0.05

Следовательно, заданная точность решения задачи не достигнута. Переходим к следующему шагу.

3-й шаг.

Движение осуществляется из точки x3 вдоль вектора -F(x2) в новую точку x3:

Определим величину б2, из условия обеспечения экстремума функции в направлении -F(x2):

В результате координаты точки x2 получатся равными:

Определим составляющие вектора градиента ?F(x3):

F(x 3)=[-0.03; 0.037]

Проверим точность решения задачи:

¦F(x k)¦=v (-0.03) 2 +(0.037) 2 =0.048? 0.05

Заданная точность достигнута.

Рис. 2

Графическая интерпретация метода наискорейшего спуска рис. 2

Метод Ньютона-Рафсона:

Решим эту же задачу методом Ньютона-Рафсона. Каждая очередная точка поиска вычисляется в соответствии с выражением:

x k+1= x k -H-1(x k)F(x k)

где H-1(xk) - матрица, обратная по отношению к матрице Гессе (3.6), вычисленной в точке xk.

Важно, что метод Ньютона-Рафсона обеспечивает решение задачи за один шаг, если функция цели квадратичная, как в нашем случае (3).

Определим составляющие вектора градиента F(x0) в начальной точке:

Матрица Гессе решаемой задачи:

Матрица, обратная по отношению к матрице Гессе H(x) решаемой задачи вычисляется по следующей формуле:

где detH - определитель матрицы H; AdjH - присоединенная к матрице Н матрица (транспонированная матрица алгебраических дополнений).

Алгебраические дополнения элементов матрицы H:

11=8 12=-1

21=-1 22=12

Тогда: , определитель матрицы Гессе: det(H)=95

Искомая матрица, обратная матрице Гессе:

В результате координаты точки x1 получатся равными:

Определим составляющие вектора градиента F(x1):

F (x 1)=[12*0.189+0.726-3;4*0.726+0.189-6]=[0;0].

Соответственно, в точке x1=[0.189; 0.726] функция F(x) достигает минимального значения:

F(min)=-2.432

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

Using Toolbox Path Cache.

Type "help toolbox_path_cache" for more info.

To get started, select "MATLAB Help" from the Help menu.

>> F=inline('6*x(1)^2+4x(2)^2-x(1)*x(2)-3*x(1)+6*x(2)');

>> x0=[2,2];

>> [x,Fmin]=fminunc(F,x0)

Optimization terminated successfully:

x = 0.1891 0.7264

Fmin = -2.4320

Таким образом, задача решена правильно.

Экстремальные нелинейные задачи с ограничениями. Метод допустимых направлений Зойтендейка. Метод линейных комбинаций. Условие теоремы Куна-Таккера

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

Найти значения переменных x1, x2…xn, доставляющие экстремум скалярной целевой функции F(x1, x2…xn) при наличии ограничений вида gj(x) ?0, j=1…n, где по крайней мере одна из функций F(x) или g(x) является нелинейной.

Функция цели решаемой задачи:

нелинейный задача ограничение матрица

F(x)=6x12+4x22+x1x2-3x1 -6 x2 (min)

x0=[2,2] Ї начальное приближение к точке экстремума.

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

-5x1+2 x2+2 0

x1+2 x2-10 0

x1,2 0

Метод допустимых направлений Зойтендейка:

В общем случае процедура поиска осуществляется по формуле:

x k+1= x k +бkF(x k).

где xk - текущее приближение к решению x* на k-м шаге; Sk - направление движения в точке xk; бk - параметр, характеризующий величину шага.

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

Очередная точка x 1 должна принадлежать ОДЗП. Чтобы это условие выполнялось, должна выполняться система неравенств:

Находится значение б0, которое максимизирует функцию F- б0*.

Если , то б0= б0*, в этом случае очередная точка x 1 будет лежать внутри ОДЗП и очередной шаг нужно будет делать опять в направлении вектор-градиента. Если же , то выбирается б0= б0”, в этом случае очередная точкам x 1 будет находиться на границе ОДЗП.

1-й шаг.

Движение из начальной точки x0=(2,2) лежащей внутри ОДЗП осуществим вдоль вектора антиградиента -?F(x0). Определим составляющие вектора антиградиента в точке x0:

-F (x 0)=[-23; -12]

Тогда координаты очередной точки x1:

Определим величину б0 из условия принадлежности x1 к ОДЗП и обеспечения экстремума функции F(x) в заданном направлении:

Найдем интервал . Для этого подставим координаты точки x 1 в ограничения:

В результате координаты точки x1 получатся равными:

Так как , то точка x 1 лежит на границе ОДЗП. Тогда из точки x 1 в направлении вектора-градиента двигаться нельзя, так как градиент выходит за пределы области. Нужно найти то направление, по которому нужно двигаться.

Очередное направление Sk должно удовлетворять двум условиям:

Очередная точка должна принадлежать ОДЗП.

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

Координаты очередной точки записываются:

x k+1= x k -бk S k.

Точка x 1 лежит на линии -5x1+2x2=-2. Найдем направление S, используя выражение и условие нормализации ¦S¦=1, где -коэффициенты соответствующего неравенства.

Таким образом получаем:

В результате получаем:

Найдем очередную точку :

Найдем б1:

Найдем интервал допустимых значений :

Проанализируем полученный интервал:

В результате координаты точки будут равны:

Определим градиент в точке :

Так как , то в точке x 2 функция F(x) достигает экстремума.

Таким образом, min функции F(x) будет равен:

Рис. 3

Графическая интерпретация метода Зойтентейка рис. 3

Метод линейных комбинаций:

Метод линейных комбинаций ориентирован на решение задач, в которых функция цели нелинейная, а все ограничения линейны:

Функция цели решаемой задачи:

F(x)=6x12+4x22+x1x2-3x1 -6 x2 (min)

x0=[2,2] Ї начальное приближение к точке экстремума, выбранное в предыдущем пункте.

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

-5x1+2 x2+2 0

x1+2 x2-10 0

x1,2 0

В основе метода лежит замена нелинейной функции F(x) общего вида линейной функцией в окрестности точки xk:

Т.к. выражение [F(xk)-?F(xk)Txk], вычисленное в точке xk, есть некоторое число, то для нахождения вектора , доставляющего экстремум линейной функции цели, нужно решить следующую задачу ЛП:

Т.к. точка - оптимальное решение линеаризованной задачи, принадлежит вершине ОДЗП, а истинное решение исходной задачи может лежать внутри ОДЗП - необходимо произвести дополнительную корректировку :

Здесь Ї направление движения в точке xk; бk Ї параметр, характеризующий величину шага.

Величина шага бk должна обеспечивать экстремальное значение функции цели F(x) в рассматриваемом направлении. Для этого решают уравнение:

Определим выражение градиента:

2 итерация:

Определим составляющие вектора градиента в точке x0:

Осуществим линеаризацию функции F(x) относительно точки x0:

Составим задачу линейного программирования и для ее решения применим симплекс-метод:

Процедура решения задачи симплекс-методом:

Таблица 1

Базисные переменные

Свободные члены

Небазисные переменные

 x1

 x2

x3

-2

-5

2

x4

10

1

2

W0 

0

23

12

Таблица 2

Базисные переменные

Свободные члены

Небазисные переменные

 x3

 x2

x1

2/5

-1/5

-2/5

x4

48/5

1/5

12/5

W0 

-46/5

23/5

106/5

Таблица 2 соответствует оптимальному решению линеаризованной задачи.

Скорректируем найденное решение, используя формулу:

Таким образом получим:

Подставим эти значения в функцию F(x) и осуществим ее минимизацию по параметру :

Тогда:

Найдем координаты точки и значение функции в этой точке

2 итерация:

Определим составляющие вектора градиента в точке x1:

Осуществим линеаризацию функции F(x) относительно точки x1:

Составим задачу линейного программирования и для ее решения применим симплекс-метод:

Процедура решения задачи симплекс-методом:

Таблица 3

Базисные переменные

Свободные члены

Небазисные переменные

 x1

 x2

x3

-2

-5

2

x4

10

1

2

W0 

0

4.352

-3.482

Таблица 4

Базисные переменные

Свободные члены

Небазисные переменные

 x3

 x2

x1

0.4

-0.2

-0.4

x4

9.6

0.2

2.4

W0 

-1.741

0.87

-1.74

Таблица 5

Базисные переменные

Свободные члены

Небазисные переменные

 x3

 x4

x1

2

0.167

0.167

x2

4

0.083

0.417

W0 

5.22

1.015

0.725

Таблица 5 соответствует оптимальному решению линеаризованной задачи.

Скорректируем найденное решение, используя формулу:

Таким образом получим:

Подставим эти значения в функцию F(x) и осуществим ее минимизацию по параметру :

Тогда:

Найдем координаты точки и значение функции в этой точке

3 итерация:

Определим составляющие вектора градиента в точке x2:

Осуществим линеаризацию функции F(x) относительно точки x2:

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

Процедура решения задачи симплекс-методом:

Таблица 6

Базисные переменные

Свободные члены

Небазисные переменные

 x1

 x2

x3

-2

-5

2

x4

10

1

2

W0 

0

5.33

-1.995

Таблица 7

Базисные переменные

Свободные члены

Небазисные переменные

 x3

 x2

x1

0.4

-0.2

-0.4

x4

9.6

0.2

2.4

W0 

-2.132

1.066

0.137

Таблица 7 соответствует оптимальному решению линеаризованной задачи.

Скорректируем найденное решение, используя формулу:

Таким образом получим:

Подставим эти значения в функцию F(x) и осуществим ее минимизацию по параметру :

Тогда:

Найдем координаты точки и значение функции в этой точке

Графическая интерпретация метода линейных комбинаций:

Рис. 4

Графическая интерпретация метода линейных комбинаций рис. 4

Условие теоремы Куна-Таккера:

Теорема Куна-Таккера предназначена для отыскания условного экстремума функции многих переменных F(x1, x2, … xn) в задачах с ограничениями неравенствами вида gj(x)???j=1…m и ограничениями на знак переменных xi??i=1…n.

Функция цели решаемой задачи:

F(x)=6x12+4x22+x1x2-3x1 -6 x2 (min)

Здесь x0=[2,2] Ї начальное приближение к точке экстремума, выбранное в предыдущем пункте. Система ограничений решаемой задачи нелинейного программирования имеет следующий вид:

-5x1+2 x2+2 0

x1+2 x2-10 0

x1,2 0

Формулировка теоремы Куна-Таккера:

Пусть существует вектор x, такой, что xi???i=1…n и gj(x)???j=1…m. Тогда для того, чтобы вектор x* был оптимальным решением задачи (задача минимизации), необходимо и достаточно, чтобы существовал такой неотрицательный m-мерный вектор л, чтобы выполнялось условие:

для всех x???л?.

Здесь:

Ї функция Лагранжа, где gj(x) Ї левые части ограничений, приведенные к нулевой правой части; лi Ї неопределенные множители Лагранжа.

При этом, если F(x) и gj(x) являются дифференцируемыми функциями, то условие теоремы Куна-Таккера запишется следующим образом:

Экстремальная точка (x*, л*) с такими свойствами называется седловой точкой. Задача нахождения экстремума функции F(x) сводится к нахождению седловой точки для функции Лагранжа.

Процедура решения:

Поскольку решаемая задача на нахождении минимума функции F(x), то точкой экстремума является седловая точка с минимумом по x и максимумом по л. Следовательно, ограничения решаемой задачи необходимо привести к виду gj(x)?

Определим функцию Лагранжа решаемой задачи:

Условие теоремы Куна-Таккера примет следующий вид:

Приведем систему неравенства к системе уравнений, домножив первые два неравенства на -1 и введя дополнительные переменные V и W, получим:

Относительно данной системы уравнений применим симплекс-метод. В качестве базисных переменных выберем введенные дополнительные переменные - V1, V2, W1, W2. При этом строка для функции цели отсутствует.

Процедура решения иллюстрируется симплекс-таблицами 8 - 9:

Таблица 8

Базисные переменные

Свободные члены

Небазисные переменные

 x1

x2

л 1

 л 2

V1

-3

-12

-1

5

-1

V2 

-6

-8

-1

-2

-2

W1

-2

-5

2

0

0

W2 

10

1

2

0

0

Решение, соответствующее табл. 8, не является оптимальным. Перейдем к следующей таблице, выбирая в качестве ведущего элемент, стоящий на пересечении столбца x1 и строки V1:

Таблица 9

Базисные переменные

Свободные члены

Небазисные переменные

 V1

x2

л 1

 л 2

x1

0.25

-0.083

0.083

-0.416

0.833

V2 

-4

-0.66

-0.333

-5.333

-1.333

W1

-0.75

-0.416

2.416

-2.083

0.416

W2 

9.75

0.083

1.916

0.416

-0.083

Решение, соответствующее табл. 9, не является оптимальным. Перейдем к следующей таблице, выбирая в качестве ведущего элемент, стоящий на пересечении столбца л 1 и строки W1

Таблица 10

Базисные переменные

Свободные члены

Небазисные переменные

 V1

x2

W1

 л 2

x1

0.4

3.09

-0.4

-0.2

-3.09

V2 

-2.08

0.4

-6.52

-2.56

-2.4

л 1

0.36

0.2

-1.16

-0.48

-0.2

W2 

9.6

-3.09

2.4

0.2

3.09

Решение, соответствующее табл. 9, не является оптимальным. Перейдем к следующей таблице, выбирая в качестве ведущего элемент, стоящий на пересечении столбца x2 и строки V2

Таблица 11

Базисные переменные

Свободные члены

Небазисные переменные

 V1

V2

W1

 л 2

x1

0.527

-0.02

-0.061

-0.04

0.147

x2 

0.319

-0.061

-0.153

0.392

0.368

л 1

0.73

0.128

-0.117

-0.02

0.226

W2 

8.834

0.147

0.368

-0.74

-0.883

Решение, соответствующее табл. 11, является допустимым:

=0.319

Кроме того выполняется условие:

Следовательно, =0.319 - оптимальное решение задачи и оптимальное значение функции цели:

Убедиться в правильности решения задачи можно, используя пакет прикладных программ системы Matlab. В частности подпрограмму quadprog, предназначенную для нелинейной оптимизации c ограничениями:

>> x0=[2 2];

>> H=[12 1; 1 8];

>> F=[23 12];

>> A=[-5 2; 1 2];

>> B=[-2 10];

>> VLB=zeros(2,1);

>> VUB=[];

>> x=quadprog(H,F,A,B,[],[],VLB,VUB)

Optimization terminated successfully.

x =

0.581

0.456

>> z=F*x+1/2*x'*H*x

z = -1.354

Размещено на Allbest.ru


Подобные документы

  • Формулировка общей задачи математического программирования. Классификация задач нелинейного программирования. Понятие о функции Лагранжа. Задача теоремы Куна-Таккера. Экономическая интерпретация множителей Лагранжа, формулирование условий оптимальности.

    презентация [669,1 K], добавлен 25.07.2014

  • Постановка задачи нелинейного программирования. Критерии оптимальности в задачах с ограничениями. Задачи с ограничением в виде равенств. Метод исключения переменных. Интерпретация условий Куна-Таккера. Функции нескольких переменных. Методы прямого поиска.

    реферат [330,0 K], добавлен 29.09.2008

  • Отделение действительных корней нелинейного уравнения. Метод хорд и касательных (Ньютона), геометрическая интерпретация. Графическая схема алгоритма. Описание реализации базовой модели в MathCAD. График сравнения числа итераций в зависимости от точности.

    курсовая работа [2,0 M], добавлен 16.05.2013

  • Минимизация квадратической функции на всей числовой оси методами Ньютона, наискорейшего спуска и сопряженных направлений. Нахождение градиента матрицы. Решение задачи линейного программирования в каноническом виде графическим способом и симплекс-методом.

    контрольная работа [473,1 K], добавлен 23.09.2010

  • Графоаналитический метод решения задач. Получение задачи линейного программирования в основном виде. Вычисление градиента и поиск экстремумов методом множителей Лагранжа. Параболоид вращения функции. Поиск решения на основе условий Куна-Таккера.

    контрольная работа [139,3 K], добавлен 13.09.2010

  • Одномерная оптимизация, метод "золотого сечения". Условная нелинейная оптимизация, применение теоремы Джона-Куна-Таккера. Исследование функции на выпуклость и овражность. Безусловная оптимизация неквадратичной функции, метод Дэвидона-Флетчера-Пауэлла.

    курсовая работа [2,1 M], добавлен 12.01.2013

  • Изучение методов решения нелинейных уравнений таких как: метод Ньютона, модифицированный метод Ньютона, метод Хорд, метод простых Итераций. Реализация программы для персонального компьютера, которая находит решение нелинейного уравнения разными способами.

    практическая работа [321,9 K], добавлен 24.06.2012

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

    дипломная работа [2,4 M], добавлен 20.01.2013

  • Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.

    задача [472,9 K], добавлен 01.06.2013

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.