Использование метода для решения задачи
Обоснование и выбор метода решения Данная задача принадлежит к типу задач квадратичного программирования. Это частный случай задачи нелинейного программирования. Вообще, основной недостаток методов нелинейного программирования заключается в том, что с их помощью не удается найти глобальный экстремум при наличии нескольких локальных экстремумов. Поэтому метод считается теоретически разработанным, если найдены соотношения, являющиеся необходимыми и достаточными условиями оптимума, и алгоритмы поиска экстремума с доказательством их сходимости. Этим требованиям удовлетворяют только методы, рассматриваемые в разделе квадратичного программирования, частично методы решения задач с сепарабельными функциями и в значительно меньшей степени прямые методы. Задача нелинейного программирования. Рассмотрим задачу математического программирования:
, (1а) (2а) (3а) , , (4а)
здесь F(x) - целевая функция, выражение (2) - ограничения равенства, выражение (3) - ограничения неравенства, x - вектор переменных, Dj - некоторые множества. Если хотя бы одна из функций F(x), φi(x) - нелинейная, то это модель задачи нелинейного программирования. Решение подобных задач возможно только для некоторых классов функций F(x), φi(x), и когда Dj - множество действительных чисел Задача квадратичного программирования = частный случай задачи нелинейного программирования, в которой целевая функция = сумма линейной и квадратичной функции, а все ограничения линейны:
, (5а) , (6а) (7а)
или в матричном виде (P,x,B - векторы-столбцы):
, (8а) , (9а) (10а)
В выражении (8а) матрица С должна быть симметричной и положительно полуопределенной - это гарантирует выпуклость целевой функции (5а). Известно, что для задачи выпуклого нелинейного программирования справедлива теорема Куна-Таккера, выражающая необходимые условия того, что точка x0 является решением задачи нелинейного программирования:
(11а)
(12а)
где Ф=Ф(x,λ) - функция Лагранжа. Теоретически наиболее широко и детально в нелинейном программировании разработан раздел выпуклого программирования, называемый квадратичным. Методы квадратичного программирования можно разделить на три группы: - Алгоритмы, использующие симплекс-метод; - Градиентные методы; Прочие специальные методы. К первой группе можно отнести метод Баранкина и Дорфмана. Для поиска опорного решения в нашей задаче мы будем использовать именно его, т.к. данная целевая функция представляет собой сумму линейной и квадратичной функции, а все ограничения линейные. Метод Баранкина-Дорфмана Задача формулируется следующим образом (в матричном виде):
P’x+x’Cx -> min,£ b, x ³ 0
Исходя из теоремы Куна-Таккера, обозначим:
В данном случае условия Куна - Таккера запишутся в виде:
Ax + y = b; (1) Cx - v + A’l = -p; (2) x ³ 0, Y ³ 0, V ³ 0, l ³ 0; (3)+ Yl = 0. (4)
Отметим, что последнее равенство (4) может выполняться только для допустимого базисного решения системы, которое характеризуется той особенностью, что из (n + m) ограниченных по знаку переменных x, V, Y, l самое большое N переменных, где N = n + m - число равенств в этой системе, отличны от нуля. Идея метода Баранкина и Дорфмана заключается в том, что процедура последовательного отыскания решения начинается с базисного решения системы (1)-(3), которое не обязательно удовлетворяет условию (4). Затем с использованием симплекс-метода добиваются равенства нулю выпуклой функции xv + yl. а) алгоритм: Для удобства изложения все переменные представим в виде 2N - мерного вектора = ||x,y,v, l||.
Можно поставить в соответствии каждому вектору z вектор z’, определяемый соотношением ’ = ||v, l,x,y||,
такой, что
z’I=zi+N, z’I+N=zi, = 1,2,..,N, xV+Yl = 1/2zz’.
С помощью этих векторов, условия (1) - (4) запишутся в виде:
(5)(z) = zz’ = 0, z ³ 0.
Исходя из некоторого допустимого базисного решения системы (5), совершим последовательность симплекс преобразований, с помощью которых будем уменьшать выпуклую функцию T(z) = zz’, пока не достигнем значения T = 0. Допустим, имеется некоторое допустимое базисное решение системы (5). Симплекс - таблица в данном случае должна задавать входящие в базис переменные zg как функцию от N небазисных переменных zvh=th, не входящих в базис:
, g=1,2,..,2N. (6)
эту запись можно использовать и для небазисных переменных из числа zg. Для этого симплекс-таблица дополняется строками, все элементы которой (кроме одного, равного единице) равны нулю. В этих строках для небазисной переменной zg = tj будет dgh = 0, h =j, a dgj = 1. функциональную зависимость (6) можно записать в векторном виде:
. (7)
При небазисных переменных th = 0 формула (7) перепишется в виде
= d0 ≥ 0, T=d0d’0.
Далее tj=θ>0 и z = d0+ θdj. Увеличиваем переменную tj пока некоторая j-ая из базисных переменных не обратится в нуль. Она определяется из условия:
при dgi<0. Тогда новое базисное решение: z’ = d0 + θidj, а величина T соответственно j = T + θjkj,
где Kj=2αj+ θjβj, где αj=djd’0 и βj=djd’j.
Очевидно, что kj<0. Если таких несколько, то выбирается то, которому соответствует наименьшее отрицательное произведение θjkj. б) вычислительная схема После определения допустимого базисного решения строят симплексную и дополнительную таблицы в виде табл.1.
Таблица 1.
В отличие от стандартной симплекс-таблицы здесь добавлена таблица для дополнительных переменных α 0, α j, βj, θj, kj, которые вычисляются по следующим формулам:
α 0 = T = d0d’0=2∑di0di+N,0
При α 0 = 0 сразу получаем оптимальное решение. В противном случае дополнительно находим:
α j = ∑(dijdi+N,0 + di+N,jdi,0), j = 1,…,N.
Далее для j, для которых α j < 0, определяются:
βj = 2∑dijdi+N,j; при dgj < 0. Для определения элемента j вычисляются: j = 2 α j + βjθj.
В качестве заменяющего столбца выбирается такой, для которого отрицательное произведение θj Kj наименьшее. Элемент dgj, по которому определено θj, становится опорным, и из базиса удаляется соответствующая ему g-я переменная, которая встает на место переменной заменяющего столбца. Затем все его элементы делятся на опорный, который при этом становится равным единице. Тем самым получаем заменяющий столбец с новыми элементами. Для получения остальных столбцов новой таблицы, из соответствующих столбцов старой вычитаем уже построенный заменяющий столбец, умноженный на элемент, стоящий на пересечении преобразуемого столбца старой таблицы и заменяющей строки. Использование метода для решения задачи
В настоящее время подобные задачи легко решаются при помощи современных ЭВМ. Для решения данной задачи воспользуемся пакетом программ Gino. Но прежде решим ее вручную.
Решение задачи. Поиск решения задачи начинается с приведения составленной целевой функции к минимуму:
L’ = 1.5p12 -8500p1 + 2.1p22 - 7900p2 + 0.67p32 - 13200p3-> min
)-1.5p1+9500 £ 4900; )-2.1p2+7900 £ 5100; )-0.67p3+13200 £ 11300; )-1.5p1-2.1p2-0.67p3+29600 £ 15000; )p1 ³ 0; )p2 ³ 0; )p3 ³ 0; )V1 ³ 0; 9)V2 ³ 0; )V3 ³ 0. Составим следующие матрицы:
n = 3, m = 4, N = 7, 2N = 14. Матрица С выполняет требования, т.к. является симметричной и положительно полуопределенной, что гарантирует выпуклость целевой функции. Для нашей задачи из выражения (5) (см. выше) получим:
Откуда можно получить следующие уравнения:
-1.5*p1 + Y1 = -3600; *p2 + Y2 = -2800; *p3 +Y3 = -1900; *p1 -2.1*p2 - 0.67*p3 + Y4 = -14600; (8) *p1 - V1 -1.5* λ1 -1.5* λ4 = 8500; *p2 - V2 - 2.1*λ2 - 2.1*λ4 = 7900; *p3 - V3 - 0.67*λ3 - 0.67*λ4 = 13200.
Для получения допустимого базисного решения (опорного решения) можно использовать любой метод отыскания опорного решения задачи ЛП. Для системы (8) достаточно выбрать p1,p2,p3,Y1,Y2,Y3,Y4 базисными, тогда:
Значит P1 = 8500/3, P2 = 7900/4.2, P3 = 13200/1.34, Y1 = 650, Y2 = 1150, Y3 = 4800, Y4 = 200- опорное решение. Составим симплекс-таблицу, учтя, что знаки коэффициентов при свободных переменных (в отличии от симплекс-таблицы задачи ЛП) не меняются. Пустые клетки соответствуют нулевым коэффициентам.
Таблица 2
Т.к. α0=0, то сразу получаем оптимальное решение: P1 = 2833.33;= 1880.95;= 9850.746;=650, Y2=1150,Y3=4800,Y4=200; =0, V2=0,V3=0; λ1=0, λ2=0, λ3=0, λ4=0.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|