Рассмотрим пример графического и аналитического решения задачи НПР.
Пусть дана целевая функция (ЦФ):
Z = (х1-7)2 + (х2-4)2, (4.1)
а также ограничения:
х1+х2 ≤ 10,
2х1+х2 ≥ 12,
х1-х2 ≥ 2,
х1-х2 ≤ 4
х1≥ 0, х2≥ 0
Требуется максимизировать ЦФ.
Чтобы найти решение графически, вначале следует изобразить многоугольник (полигон) допустимых решений. Построение области допустимых решений (ОДР) осуществляется так же, как в задачах линейного программирования [1].
Для построения ОДР вначале следует записать уравнение х1 + х2 = 10. Оно получается из первого неравенства заменой знака «≤» на знак «=». Для построения прямой линии х1 + х2 = 10 достаточно иметь две точки. Первую точку удобно взять при х1 = 0, а вторую точку при х2 = 0. Используя остальные ограничения, аналогично строят другие прямые линии.
Нетрудно заметить, что прямые х1 = 0 и х2 = 0 (пятое и шестое ограничения) являются осями координат х1 и х2.
Затем следует отметить стрелками полуплоскости, которые удовлетворяют заданным неравенствам. Направление стрелок определяют знаки неравенств [1]. Область, удовлетворяющая всем четырем неравенствам, будет областью допустимых решений (трапеция ABCD). На рис. 4. 1 ОДР выделена серым цветом.
|
|
.
Рисунок 4.1- Полигон допустимых решений
Теперь необходимо построить график ЦФ. Для этого с помощью уравнения (4.1) следует отметить центр окружности. В данном примере х1 = 7 и х2 = 4. Затем с помощью циркуля нужно построить несколько окружностей, увеличивая радиус до тех пор, пока окружность не коснется какой либо точки ОДР. В этой точке будет минимум ЦФ. За тем с помощью циркуля следует найти наиболее удаленную от центра окружности точку ОДР. В этой точке будет максимум ЦФ.
Из рисунка 4.1 видно, что минимум ЦФ находится в точке F, а максимум – в точке D. Определим приблизительно координаты точки F: х1 = 6,5, х2 = 3,5. Значение целевой функции в этой точке Z = 0,5. Приблизительные значения координат точки D: х1 = 5,3, х2 = 1,4. Приблизительное значение ЦФ в этой точке Z = 9,65.
На основании приближенного графического решения задачи НПР найдём аналитически точный ответ. Для этого, из уравнения целевой функции Z = (х1-7)2+(х2-4)2 найдем производные по х1 и х2
Производная по х1:
Z| = 2(х1-7) + 2(х2-4)2* х2| =0 (1)
Z| =0
Выразим из уравнения (1) производную х2|
х2| = -(х1-7/ х2-4)
Определим тангенс угла наклона (производную) для прямой х1+ х2 = 10
х2| = -1
-(х1-7/ х2-4) = - 1
х1-7 = х2-4
Решим систему уравнений
-х1+ х2 = 3
х1+ х2 = 10
2 х1= 13,
х1= 6,5
х2 = 3,5
Полученные значения х1 и х2 подставляем в ЦФ
Z = (х1-7)2+(х2-4)2
Таким образом, максимальное значение ЦФ Z=0,5.
4.2 Методические указания к лабораторной работе № 2
Пример решения задачи НПР с помощью системы Mathcad
|
|
Пусть дана целевая функция (ЦФ)
Z = х12 - 20х1 - 20х2 + x22,
а также ограничения:
х1 + х2 = 11
х1 ≥ 0, х2 ≥ 0
Требуется минимизировать ЦФ.
Чтобы найти решение методом множителей Лагранжа, вначале следует сформировать функцию Лагранжа:
F(х1, х2, λ) = х12 - 20х1-20х2 + x22+λ (11- х1 - х2 )
Затем найдем производные по х1, х2, λ:
dF/ dх1=2х1-20
dF/ dх2=2х2-20
dF/ dλ =11- х1 - х2
Далее найденные производные следует приравнять к нулю и решить полученную систему линейных алгебраических уравнений.
2х1-20 = 2х2-20
2х1-2х2= 0
Решим систему уравнений
х1-х2= 0
х1 + х2 = 11
х1= 5.5
х2= 5.5
В ответ записываем значения х1 = 5.5, х2 = 5.5
4.3 Методические указания к лабораторной работе № 3
Задачи математического программирования можно решать с помощью системы Mathcad. Ниже приведен текст программы с комментариями (полужирный шрифт).
Зададим ЦФ:
Z(x1, x2):= (х1-7)2+ (х2-4)2
Зададим произвольные начальные значения переменным:
x1:= 0
x2:= 0
Начало блока вычислений
Given
Опишем ограничения:
х1+х2 ≤ 10
2х1+х2 ≥ 12
х1-х2 ≥ 2
х1-х2 ≤ 4
х1≥ 0
х2≥ 0
Выполним операцию минимизации:
P: = Minimize (Z, x1, x2)
Выведем на экран значения найденных переменных:
Вычислим целевую функцию:
Z (P0, P1) = 0.5
Итак, оптимальные значения переменных:
х1 = 6,5, х2 = 3,5. Значение ЦФ Z = 0,5
4.4 Методические указания к заданию 4
Задачи математического программирования можно решать с помощью системы Mathcad. Ниже приведен пример программы с комментариями (полужирный шрифт).
Зададим ЦФ:
Z(x1,x2, x3):= 3x1 + 4 х22 + 2x3
Зададим произвольные начальные значения переменным:
x1:= 0
x2:= 0
x3:= 0
Начало блока вычислений
Given
Опишем ограничения:
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
15 х12 + 16 х22-17 x3 ≤ 120
18 х12 - 19 х22+20 x3 ≤ 130
-21 х12 + 22 х22+23 x3 ≤ 140
Выполним операцию максимизации:
P: = Maximize(Z,x1,x2,x3)
Выведем на экран значения найденных переменных:
Вычислим целевую функцию:
Z(P0, P1,P2) = 14.25
Итак, оптимальные значения переменных: х1 = 0.835, х2 = 0, x3 = 5,873. Максимальное значение ЦФ Z = 14.25
Построим трехмерный график, который показывает ограничения и оптимальное положение целевой функции.
Присвоим значение ЦФ переменной R:
R:= Z(P0, P1,P2)
Создадим циклы для изменения переменных х1 и х2:
x1:=0..P0 + 5
x2:=0..P1 + 5
Выразим переменную х3 из трех ограничений и целевой функции:
Графическая иллюстрация полученного решения
Рисунок 4.2 - Трехмерный график
4.5 Методические указания к заданию 5
Пример решения двухмерной задачи градиентным методом
Требуется методом градиента найти минимум функции
при ограничениях
Построим ограничения, выберем область допустимых значений. Возьмем в допустимой области произвольную точку, например . Она действительно принадлежит заданной области, т.к. подставив координаты точки в ограничения, получим, что знак неравенства сохраняется
=
=
Находим частные производные функции по переменным , , т.е.
, . Составим градиент заданной функции в заданной точке
Поскольку = 0, то не является точкой экстремума.
Вычислим координаты новой точки. Для определения координат точки
необходимо определить значение параметра
= = = 0
При = 0,5 изменение значения функции достигает наибольшей величины. Получающаяся при этом точка
= = =
Точка принадлежит допустимой области
=
=
В точке антиградиент .
Значит никакими перемещениями из точки функцию уменьшить нельзя и - искомая точка минимума.
Ответ: , ,
Заключение
В данной работе разработано пять лабораторных работ по нелинейному программированию (НПР):
1) Решение двухмерных задач нелинейного программирования графическим и аналитическим методами.
2) Решение двухмерных задач НПР с помощью системы Mathcad.
3) Решение двухмерных задач НПР методом множителей Лагранжа.
4) Решение трехмерных задач НПР с помощью системы Mathcad.
5) Решение задач НПР градиентным методом.
|
|
В каждой лабораторной работе разработано по тридцать два варианта, приведен пример решения с подробным описанием, построен трехмерный график. Каждый из разработанных вариантов проверен, выполнен расчет и подготовлены ответы для преподавателей, которые будут проводить занятия.
При решении задач нелинейного программирования в разработанном цикле лабораторных работ используются разные методы. Ни один из рассмотренных методов нелинейного программирования не является универсальным. При выполнении разработанных лабораторных работ студенты получают прочные навыки в решении задач математического программирования.
Расчёт сравнительной экономической эффективности разработки лабораторных работ показывает высокие экономические показатели.
Материалы данного дипломного проекта предполагается в ближайшее время опубликовать в виде методических указаний на выполнение лабораторных работ.