Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Матем. програмирование.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.44 Mб
Скачать

В. 22 Идея двойственного симплексного метода (дсм).

P: c*х → min

A*x=b

x≥0,

D: b*u → max

АТ*u≤c (естественное).

Надо решить АТ*u≤c. Для этого вспомним симплексный метод.

с1

сn

Базис

БДР

x1

xn

cb

xb

b

A

z

0

1

n

, АТ*u≤c - ограничение двойственной задачи.

.

Ограничение двойственной задачи соответствует критерию оптимальности в прямой задаче. Это означает, если решение в двойственной задаче допустимо, но не обязательно оптимально, то в прямой задаче оно будет оптимальным, но не обязательно допустимым.

Идея двойственного симплексного метода заключается в том, что мы начинаем решать прямую задачу с оптимального, но не допустимого решения, постепенно делаем его допустимым, но поскольку двойственная задача остаётся допустимой в прямой задаче решение до конца остаётся оптимальным.

Двойственный симплексный метод применяется для решения задачи линейной оптимизации вида:

c*х → min

A*x≥b

x≥0.

Чтобы привести к каноническому виду:

c*х → min

A*x-Е*у=b

x≥0, у≥0, где Е – единичная матрица.

Домножим на «-1».

c*х → min

-A*x+Е*у=-b

x≥0, у≥0, где Е*у – базис.

Вектор правой части (b) стал отрицательным, поэтому сначала решение будет недопустимым, но оптимальным. Если cj≥0, то min достигается, если х=0. Задача двойственного симплексного метода сделать это решение допустимым.

В. 23 Алгоритм двойного симплексного метода.

Двойственный симплексный метод предназначен для решения задачи линейной оптимизации вида: сх → min, Ах ≥ b, x ≥ 0

Пусть выполнены следующие условия:

1. задача ЛП имеет стандартный вид на минимум;

2. вектор коэффициентов целевой функции (с) неотрицателен;

3. ограничения должны быть типа «≥»;

4. ограничения на переменные должны быть типа «≥», (xj≥0)

Тогда можно построить начальную симплексную таблицу:

с1

c2

сn

Базис

БДР

x1

x2

xn

y1

y2

ym

Θ

y

-b

-A

E

z

0

1

2

n

n+1

n+2

 

n+m

Оценки Δj для переменных xj будут, очевидно, равны - сj. Значение целевой функции Δ0=0.

Алгоритм двойственного симплексного метода:

Шаг 0. Построить начальную симплексную таблицу. Перейти на шаг 1.

Шаг 1. Проверить значения базисных переменных в столбце «БДР». Если все значения неотрицательны, то найдено оптимальное решение перейти на шаг 7. Если хотя бы одно значение отрицательно, перейти на шаг 2.

Шаг 2. Среди отрицательных значений переменных столбца «БДР» выбрать максималь­ное по модулю значение (если их несколько, выбрать любое из них) и соответству­ющую строку объявить ведущей (r). Перейти на шаг 3.

Шаг 3. Проверить коэффициенты матрицы ограничения (аrj, j=1,...,n) ведущей строки. Если все arj ≥0, то задача не имеет решения, перейти на шаг 7. Иначе перейти на шаг 4.

Шаг 4. Для отрицательных элементов ведущей строки рассчитать отношение соответству­ющих элементов строки оценок к элементам ведущей строки. Среди полученных отношений выбрать минимальное (если их несколько - любое). Столбец, соответ­ствующий минимальному отношению, объявить ведущим столбцом (s). Перейти на шаг 5.

Шаг 5. Элемент ars, стоящий на пересечении ведущей строки и ведущего столбца объявить ведущим элементом. Перейти на шаг 6.

Шаг 6. Нарисовать новую симплексную таблицу. В столбце "Базис" вместо переменной хг записать переменную xs. Применяя преобразование Жордана-Гаусса относи­тельно ars, рассчитать значения элементов новой симплексной таблицы. Перейти на шаг 1.

Шаг 7. Конец алгоритма.

Пример в распечатке!

В. 24 Определение выпуклого множества.

Опр1. Множество Х называется выпуклым, если вместе с двумя любыми точками ему принадлежит весь отрезок, соединяющий эти точки.

Опр2. Множество Х называется выпуклым, если для любых x’и x” из Х, и для любых α12  R (множество всех действительных чисел) таких, что α12=1, α1, α2 ≥0, точка α1х’+ α2х” X. Выпуклое множество:

1) α1=1, α2=0

Невыпуклое множество:

Окружность - не выпуклое множество, круг – выпуклое.

2) α1= α2=1/2; 1/2x’+1/2x”=x

α1=1, α2=0

Мы можем воспринимать значение α 1, α2 как силу притяжения к полюсам x’ и x”.

В. 25 Определение угловой (крайней) точки выпуклого множества.

Опр1. Угловая (крайняя) точки выпуклого множества Х – это такая точка хХ, представление которой в виде х=α1х’+α2х” (для x’, x”Х, α12≥0) возможно только в одном единственном случае, когда полюса x’ и x” совпадают (x’= x”).

Квадрат - выпуклое множество:

Угловая точка – это та, которая не может быть серединой отрезка, помещенного во множество:

Круг – любая точка является угловой.

Опр 2. Выпуклая комбинация х1, х2, …, хк с коэффициентами α1, α2,…, αк, это выражение вида: , при условии, что , α1≥0.

Опр 3. Угловая (крайняя) точка выпуклого множества X – это такая точка х из Х, которую нельзя представить в виде выпуклой комбинации других точек из этого множества, когда коэффициенты α >0 (строго).

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

В. 26 Определение линии уровня целевой функции.

Целевая функция:

Опр1. Линией уровня целевой функции называется такая линия, в точках которой целевая функция принимает одно и то же значение.

L-линия: для любых A,B L, Z(A)=Z(B)

Z(x)=с1х12х2=const – данное уравнение описывает прямую линию.

- двизаем линию.

В. 27 Определение градиента функции.

Рассмотрим произвольную функцию из n переменных f(x1, x2, …, xn).

Градиентом этой функции называется вектор её частных производных по всем элементам: grad f=(∂f/∂x1,∂f/∂x2,…,∂f/∂xn).

Антиградиент – градиент со знаком минус.

Пример: f(x1, x2)=2x13+3x2, grad f(x1, x2)=(6x12, 3); grad f(2,3)=(24,3).

Градиент показывает направление максимального возрастания функции.

Градиент всегда перпендикулярен линиям уровня.

f(x1,x2)=c1x1+c2x2 – целевая функция задачи ЛП с 2мя переменными. Grad f=(c1,c2).

В. 28. Алгоритм графического метода решения задачи ЛП с двумя переменными.

Шаг 1. По ограничениям задачи построить область допустимых значений (ОДЗ). Каждому неравенству на плоскости соответствует полуплоскость, каждому уравнению соответствует прямая, ОДЗ будет пересечением построенных полуплоскостей и пря­мых. Возможны несколько вариантов ОДЗ (замкнутая область, неограниченная область, луч, отрезок, точка, пустое множество). Если ОДЗ - пустое множество, то задача не имеет решения. Если ОДЗ не пусто, то перейти на шаг 2.

Шаг 2. Построить вектор градиента, координаты начала вектора - (x1=0, x2=0,), координаты конца вектора - (x11, x22), где с1 и с2 - коэффициенты целевой функции. Перейти на шаг 3.

Шаг 3. Построить линию уровня целевой функции. Линия уровня целевой функции перпендикулярна вектору градиента и должна проходить по ОДЗ задачи. Перейти на шаг 4.

Шаг 4. Определить точки-кандидаты из ОДЗ для оптимального решения. Если целевая функция на максимум, то линию уровня целевой функции перемещать параллель­но самой себе в направлении градиента до последней точки ОДЗ. Если целевая функция на минимум, то линию уровня перемещаем в направлении антиградиен­та (противоположное градиенту направление). Перейти на шаг 5.

Шаг 5. (Точное определение координат оптимального решения). Если очевидно, что точка-кандидат является оптимальным решением, то подставляем ее значение в целевую функцию и записываем решение задачи ЛП в виде: оптимальное значение целевой функции, и соответствующие значения х1 и х2. Если точек-кандидатов несколько, то для каждой такой точки составляется система двух уравнений с двумя неиз­вестными, линии которых в пересечении дают данные точки. Для каждой точ­ки решается система уравнений. Полученные решения подставляются в целевую функцию. В качестве оптимальной выбирается та точка, для которой значение целевой функции лучше. Завершить алгоритм.

Замечание - возможны несколько вариантов решений: оптимальное решение единственно, оптимальных решений множество, целевая функция неограниченна.

Замечание - часто ОДЗ имеет достаточно простой вид и сразу известны коорди­наты угловых точек. В этом случае, если угловых точек не слишком много, можно найти ответ, перебирая все эти точки, не рисуя линию уровня.

Пример в распечатке!