Квадратичное программирование
Квадратичное программирование позволяет проводить оптимизационные исследования в задачах, в которых целевая функция составлена из линейных и квадратичных слагаемых, а ограничения являются линейными функциями. Задача квадратичного программирования представляет собой случай общей задачи нелинейного программирования.
Модель задачи квадратичного программирования имеет следующую структуру:
найти максимальное (минимальное) значение функции
при ограничениях
Второе слагаемое в выражении (*) называется квадратичной формой переменных х1, х2, …, хn и представляются в виде:
Матрицакоэффициентов квадратичной формы предполагается симметричной(dkj = djk). Диагональные элементы dkk этой матрицы являются коэффициентами при , а недиагональные элементы(dkj = djk) равны половине коэффициента при xkxj
Можно использовать следующий порядок нахождения решения решения задачи квадратичного программирования:
Составляется функция Логранжа.
Записываются условия для ограничений.
Используется метод искусственного базиса с применением математической модели.
Находится оптимальное решение при выполнении условий п. (2).
Расчетная часть
ЗАДАЧА 1
Целевая функция F(x)=2x1 + 4x2 max;
при ограничениях :
Для приведения к положительным правым частям умножаем необходимые ограничения на (-1) и записываем в виде:
Приведём ограничения к расширенной форме, при этом если знак неравенства , то базисная переменная входит в уравнение с положительным знаком. Если знак неравенства, то переменная входит в уравнение с отрицательным знаком:
Неравенства ограничений приведем к равенствам, используя дополнительные переменные x 3 , x 4 и x 5 :
х1, х2 – свободные переменные.
х3, х4, х5 – базисные переменные.
Выразим систему ограничений относительно базисных переменных и приравняем полученные уравнения к нулю:
где x 1, x 2, x 3, x 4, x 5 >0
переменные x 3 , x 4 и x 5 примем в качестве базисных и выразим через свободные x 1 и x 2
Прямые, соответствующие граничным значениям переменных x3 = x4 = x5= 0 представлены на рис. 2. Заштрихованная область будет областью допустимых решений.
Рис.2
Максимального значения целевая функция достигает в крайней точке A области допустимых решений. Координаты точки A будут оптимальным решением задачи:
ЗАДАЧА 2
Решить задачу методом симплекс - таблиц.
Целевая функция F(x)= – 2x1+2x2 min;
Уравнения ограничения
Так как целевую функцию необходимо исследовать на минимум, то для удобства умножим ее на –1, и она будет выглядеть следующим образом:
F(x)= 2x1–2x2 max
Запишем уравнения ограничения в расширенной форме:
4x1 + 7x2 + x3 = 28 ,
x1 + x2 +x4 = 6 ,
–3x1 + 2x2 x5 +x6 = 3 ,
x1 , x2 0 .
Целевая функция примет вид: F(x)= 2x1–2x2 +0x3 +0x4 +0x5 Mx6 max , где M.
Обозначим векторы условий задачи через A1 A6 . Векторы A3 , A4 , A6 образуют единичную матрицу, которую примем за базис. В результате начальное базисное допустимое решение будет иметь вид X(0,0,28,6,0,3).
Составим исходную симплекс-таблицу (табл.6), в которой рассчитаем элементы строки S.
Таблица 6
C |
|
|
c1 2 |
c2 –2 |
c3 0 |
c4 0 |
c5 0 |
c6 M |
|
ХP |
B |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
c3 0 |
x3 |
28 |
4 |
7 |
1 |
0 |
0 |
0 |
c4 0 |
x5 |
6 |
1 |
1 |
0 |
1 |
0 |
0 |
c6 M |
x6 |
3 |
–3 |
2 |
0 |
0 |
1 |
1 |
S |
|
3M |
23M |
–2+M |
0 |
0 |
–M |
0 |
В индексной строке табл.6 имеются Sj > 0, что позволяет улучшить решение задачи.
Вводим в новый базис вектор A2, которому соответствует наибольшее значение S2 = 2 + M, а в новое базисное решение переменную x2. Столбец, содержащий вектор A2 будет направляющим.
Составим отношения вида , по которым определим направляющую строку. Для этого находим:
Таким образом направляющая строка вторая, направляющий элемент a22 (в таблице заключен в прямоугольник). Из базиса выводится вектор A6 , а из базисного решения переменная x6 .
Рассчитаем и заполним новую таблицу соответствующую новому базисному решению.
Таблица 7
C |
|
|
c1 2 |
c2 –2 |
c3 0 |
c4 0 |
c5 0 |
c6 M |
|
ХP |
B |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
c3 0 |
x3 |
35/2 |
29/2 |
0 |
1 |
0 |
7/2 |
-7/2 |
c4 0 |
x5 |
9/2 |
5/2 |
0 |
0 |
1 |
1/2 |
-1/2 |
с2 2 |
х2 |
3/2 |
–3/2 |
1 |
0 |
0 |
1/2 |
1/2 |
S |
|
3 |
23M |
0 |
0 |
0 |
–1 |
1– M |
В таблице все Sj 0. Поэтому полученное решение является оптимальным:
ЗАДАЧА 3
Решить транспортную задачу .
3 5
Целевая функция F = c ij xij;
i=1 j=1
Условия транспортной задачи представлены в табл. 8
Табл.8
ПП ПО |
В1 |
В2 |
В3 |
В4 |
В5 |
Запасы |
А1 |
5 |
2 |
10 |
10 |
6 |
80 |
А2 |
6 |
4 |
3 |
9 |
2 |
80 |
А3 |
8 |
9 |
7 |
8 |
4 |
40 |
Заявки |
40 |
30 |
30 |
40 |
60 |
|
Определим опорный план, используя правило “северо-западного угла”.
Результаты сведены в табл. 9.
Таблица 9
5 40 |
2 30 |
10 10 |
10 |
6 |
80 |
6 |
4 |
3 20 |
9 40 |
2 20 |
80 |
8 |
9 |
7 |
8 |
4 40 |
40 |
40
|
30 |
30 |
40 |
60 |
|
Таким образом опорный план имеет вид:
Полученное решение являетсяопорным (начальным базисным допустимым решением), в котором переменные имеют значения: х11=40; х12=30; х13=10; х23=20; х24=40; х25=20; х35= 40.
Стоимость полученного плана найдем, умножив каждую перевозку на соответствующую стоимость: F = 40*5 + 30*2 + 10*10 + 20*3 + 40*9 + 20*2 + 40*4 = = 980.
Находим значения потенциалов ui и vj , соответствующие базисным клеткам, принимая для удобства u1=0.
u1 + v1 =5; u1 = 0, v1 = 5;
u1 + v2 =2; v2 = 2;
u1 +v3 = 10; v3 = 10;
u2 + v3 = 3; u2 =7;
u2 + v4 = 9; v4 = 16;
u2 + v5 = 2; v5 = 9;
u3 +v5 = 4; u3 = -5.
Находим для небазисных клеток оценки с учетом значений потенциалов ui и vj:
Так как среди оценок имеются положительные, то план можно улучшить, осуществляя перевозки по замкнутому циклу. Начальная вершина цикла соответствует небазисной клетке с наибольшей положительной оценкой(). Таким образом перевозки осуществляем по следующему циклу x14 x24 x23 x13.
Полученные результаты представим в табл. 10.
Таблица10
ui\vj |
5 |
2 |
10 |
16 |
9 |
|
0 |
5 40 |
2 30 |
10 10 |
6 10 |
3 6 |
80 |
-7 |
-8 6 |
-9 4 |
3 20 |
9 40 |
2 20 |
80 |
-5 |
-8 8 |
-12 9 |
-2 7 |
3 8 |
4 40 |
40 |
|
40
|
30 |
30 |
40 |
60 |
bj\ai |
Новый опорный план:
Проверим на вырожденность опорный план m+n-1=6. Опорный план не вырожден.
Стоимость полученного плана найдем умножив каждую перевозку на соответствующую стоимость:
F = 40*5 + 30*2 + 10*10 + 30*3 + 30*9 + 20*2 + 40*4 = 920.
Находим значения потенциалов ui и vj , соответствующие базисным клеткам, принимая для удобства u1=0.
u1 + v1 =5; u1 = 0, v1 = 5;
u1 + v2 =2; v2 = 2;
u1 +v4 = 10; v4 = 10;
u2 + v3 = 3; v3 = 4;
u2 + v4 = 9; u2 = -1;
u2 + v5 = 2; v5 = 3;
u3 +v5 = 4; u3 = 1.
Находим для небазисных клеток оценки с учетом значений потенциалов ui и vj:
Так как среди оценок имеются положительные, то план можно улучшить осуществляя перевозки по замкнутому циклу. Начальная вершина цикла соответствует небазисной клетке с наибольшей положительной оценкой (). Таким образом перевозки осуществляем по следующему циклу x34 x35 x25 x24.
Полученные результаты представим в табл. 11.
Таблица 11
ui\vj |
5 |
2 |
4 |
10 |
3 |
|
0 |
5 40 |
2 30 |
-6 10
|
10 10 |
-3 6 |
80 |
-1 |
-2 6 |
-3 4 |
3 20 |
9 40 - |
2 20 + |
80 |
-1 |
-2 8 |
-7 9 |
-2 7 |
3 8 + |
4 40 - |
40 |
|
40
|
30 |
30 |
40 |
60 |
bj\ai |
Новый опорный план:
Стоимость полученного плана найдем, умножив каждую перевозку на соответствующую стоимость:
F = 40*5 + 30*2 + 10*10 + 30*3 + 50*2 + 30*8 + 10*4 = 830.
Находим значения потенциалов ui и vj, соответствующие базисным клеткам, принимая для удобства u1=0.
u1 + v1 =5; u1 = 0, v1 = 5;
u1 + v2 =2; v2 = 2;
u1 +v4 = 10; v4 = 10;
u2 + v3 = 3; v3 = 7;
u2 + v5 = 2; u2 = -4;
u3 + v4 = 8; u3 = -2;
u3 +v5 = 4; v5 = 6.
Находим для небазисных клеток оценки с учетом значений потенциалов ui и vj:
Так как все оценки для небазисных клеток отрицательны, то полученный план является оптимальным.
F* = 40*5 + 30*2 + 10*10 + 30*3 + 50*2 + 30*8 + 10*4 = 830.
ЗАДАЧА 4
Решить задачу квадратичного программирования графически. Привести задачу к задаче линейного программирования специального вида. Решить задачу модифицированным методом искусственного базиса.
при ограничениях:
2х1 + х2 4;
- х1 + х2 2;
х1, х2 0.
Приведем задачу к задаче линейного программирования специального вида и решим модифицированным методом искусственного базиса.
Составим матрицу D и рассмотрим ее определители:
D =; ∆1= -1 < 0
Составим функцию Лагранжа.
Запишем условие Куна - Таккера:
Систему линейных неравенств перепишем в виде:
2х1 – 2х2 + 21 - 2 2
4х2 – 2х1 + 1 + 2 2
2х1 + х2 4
- х1 + х1 2
Получим систему линейных неравенств, т.е. задача приведена к задаче линейного программирования. Используя дополнительные переменныеv1, v2, w1, w2 приведем неравенства к равенствам.
2х1 – 2х2 + 21 - 2 - v1 = 2;
4х2 – 2х1 + 1 + 2 – v2 = 2; (*)
2х1 + х2 + w1 = 4;
- х1 + х1 + w2 = 2;
Дополним равенства условиями, которые представим в виде:
v1x1 = 0; v2x2 = 0; w11 = 0; w22 = 0. (**)
Найдем базисное дополнительное решение системы (*) с учетом (**). Для этого воспользуемся методом искусственного базиса, вводя искусственные переменные z1 и z2.
Получим:
F(x) = -Mz1 -M z2
2х1 – 2х2 + 21 - 2 - v1 + z1 = 2;
4х2 – 2х1 + 1 + 2 – v2 + z2 = 2;
2х1 + х2 + w1 = 4;
- х1 + х1 + w2 = 2;
Решим задачу методом симплекс-таблиц. Результаты показаны в табл. 12 - 15
Таблица 12
С |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-M |
-M |
|
XP |
A0 |
Ax1 |
Ax2 |
A1 |
A2 |
Av1 |
Av2 |
Aw1 |
Aw2 |
Az1 |
Az2 |
-M |
z1 |
2 |
2 |
-2 |
2 |
-1 |
-1 |
0 |
0 |
0 |
1 |
0 |
-M |
z2 |
2 |
-2 |
4 |
1 |
1 |
0 |
-1 |
0 |
0 |
0 |
1 |
0 |
w1 |
4 |
2 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
w2 |
2 |
-1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
S |
|
-4M |
0 |
2M |
3M |
0 |
-M |
-M |
0 |
0 |
0 |
0 |
Таблица 13
С |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-M |
-M |
|
XP |
A0 |
Ax1 |
Ax2 |
A1 |
A2 |
Av1 |
Av2 |
Aw1 |
Aw2 |
Az1 |
Az2 |
0 |
1 |
1 |
1 |
-1 |
1 |
-1/2 |
-1/2 |
0 |
0 |
0 |
1/2 |
0 |
-M |
z2 |
1 |
-3 |
5 |
0 |
3/2 |
1/2 |
-1 |
0 |
0 |
-1/2 |
1 |
0 |
w1 |
4 |
2 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
w2 |
2 |
-1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
S |
|
-M |
-3M |
5M |
0 |
3/2M |
1/2M |
-M |
0 |
0 |
-3/2M |
0 |
Таблица 14
С |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-M |
-M |
|
XP |
A0 |
Ax1 |
Ax2 |
A1 |
A2 |
Av1 |
Av2 |
Aw1 |
Aw2 |
Az1 |
Az2 |
0 |
1 |
6/5 |
2/5 |
0 |
1 |
-1/5 |
-2/5 |
-1/5 |
0 |
0 |
9/10 |
1/5 |
0 |
X2 |
1/5 |
-3/5 |
1 |
0 |
3/10 |
1/10 |
-1/5 |
0 |
0 |
-1/10 |
1/10 |
0 |
W1 |
19/5 |
13/5 |
0 |
0 |
-3/10 |
-1/10 |
1/5 |
1 |
0 |
1/10 |
-1/5 |
0 |
W2 |
6/5 |
-2/5 |
0 |
0 |
-3/10 |
-1/10 |
1/5 |
0 |
1 |
1/10 |
-1/5 |
S |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-M |
-M |
В таблице 14 получено, предположительно оптимальное решение, но оно не отвечает условиям (**), следовательно, проделаем еще одну итерацию:
Табл. 15
С |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
-M |
-M |
|
XP |
A0 |
Ax1 |
Ax2 |
A1 |
A2 |
Av1 |
Av2 |
Aw1 |
Aw2 |
Az1 |
Az2 |
0 |
1 |
8/13 |
0 |
0 |
1 |
|
|
|
0 |
0 |
|
|
0 |
x2 |
14/13 |
0 |
1 |
0 |
|
|
|
3/13 |
0 |
|
|
0 |
x1 |
19/13 |
1 |
0 |
0 |
|
|
|
5/13 |
0 |
|
|
0 |
w2 |
64/65 |
0 |
0 |
0 |
|
|
|
2/13 |
1 |
|
|
S |
|
0 |
0 |
0 |
0 |
|
|
|
0 |
0 |
|
|
Таким образом, получаем оптимальное решения, удовлетворяющее заданным условиям:
Для нахождения решения графическим методом, построим линии уровня исходной функцииF(x1,x2) и линии ограничения (ОДР) (рис.3).
Рис.3
На рис.3 видно, что значения
ЗАКЛЮЧЕНИЕ
В ходе выполнения расчётно-графической работы было проведено оптимизационное исследование задач линейного программирования, транспортной задачи по критерию стоимости, а также задачи квадратичного программирования. Для нахождения оптимальных решений в задачах линейного программирования был использован метод симплекс-таблиц, а также графическая интерпретация задачи линейного программирования. Для нахождения оптимального решения транспортной задачи по критерию стоимости был использован метод потенциалов, а начальное базисное допустимое решение (опорный план) было найдено с помощью правила минимального элемента. Поиск оптимального решения задачи квадратичного программирования происходил с применением множителей Лагранжа.
Полученные результаты:
ЗАДАЧА 1:
ЗАДАЧА 2:
ЗАДАЧА 3:
, F* = 830.
ЗАДАЧА 4: