Решение задач квадратичного программирования методом Баранкина-Дорфмана.

Задачей КП называется следующая задача:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

В матричном виде: пусть Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru векторы-столбцы:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru матрица квадратичной формы, которая должна быть симметрична и положительно-полуопределена.

Метод Баранкина-Дорфмана непосредственно основан на применении теоремы Куна-Такера, поэтому условие Куна-Такера в матричной форме для КП выглядит следующим образом:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Тогда условие Куна-Такера можно записать в следующем виде:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Неизвестными являются Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru .

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru система линейных уравнений относительно неизвестных; решить её, значит найти решение за­дачи ЛП. Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru нелинейное условие, и поэтому задача сводится к нахождению точки в допустимой облас­ти, чтобы выполнилось Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru . Введём новый вектор Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru и Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru .

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Окончательно условие Куна-Такера будет выглядеть так:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Метод Баранкина-Дорфа заключается в следующем: находится допустимый вектор Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , удовлетворяющая выражению (1) и проверяется условие (2). Далее выбирается новое базисное решение, причём оно выбирается так, чтобы величина Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru всё время уменьшалась. Для этого используется модифицированная симплекс-таблица, в которой генеральный элемент находится минимизацией выпуклой функции Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru :

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

т. е. мы решаем задачи (1) и (3), а не (1) и (2). В симплекс-таблице записывается в качестве базисных переменных, все переменные. Запишем строку базисных переменных:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

где Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru и Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru свободные переменные.

Если строка соответствует свободным переменным, то в строке одна единица и остальные нули. Для выбора генерального элемента используются следующие элементы, которые записываются в дополнительные строки:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Можно показать, что новое значение Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru : По определению Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , поэтому Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru должно быть меньше нуля, так как хотим, что бы оно было меньше Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru . Рассмотрим величину Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru : величина Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru вторая производная функции Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , которая выпукла вниз, и поэтому Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , значит, надо выбрать тот столбец для которого Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , а строку надо выбрать ту, для которой вычисляется величина Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru .

Пример:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Запишем все матрицы, которые нам нужны:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Запишем условие Куна-Такера, определяемое выражением (1):

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Чтобы записать симплекс-таблицу надо выделить базис. Для получения первого базисного решения используется любой метод, например, метод Гаусса. Можно использовать метод, который использует симплекс-процедуры. Для любых задач можно и подобрать первое базисное решение. Мы подберём такое, чтобы сразу получить опорное решение:

Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru

Запишем симплекс-таблицу по методу Баранкина-Дорфмана – таблица 1.

Симплекс преобразования: строку умножаем на Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , а столбец на Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru . Порядок строк нарушать нельзя.

Недостаток метода: иногда встречаются задачи, когда все Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru . Значит мы будем переходить в новую вершину и значение будет увеличиваться, т .е. в соседних вершинах значение больше (мы идём по соседним вершинам в симплекс-методе). В этом случае идём на временное ухудшение Решение задач квадратичного программирования методом Баранкина-Дорфмана. - student2.ru , т .е. идём через «мёртвую зону». В алгоритме Франца-Вольфа это учтено.

Наши рекомендации