Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная_МПУР.docx
Скачиваний:
45
Добавлен:
08.03.2015
Размер:
324.36 Кб
Скачать

Таким образом, необходимо выпустить 6 шт. Изделий а1, 4 шт. Изделий а2, чтобы получить прибыль 24 ден.Ед.

2. Симплексный метод решения задачи линейного программирования. Двойственная задача

Для решения ЗЛП существует универсальный метод – метод последовательного улучшения плана или симплекс-метод, который состоит из двух вычислительных процедур: симплекс-метода с естественным базисом и симплекс-метода с искусственным базисом (М-метод).

Выбор конкретной вычислительной процедуры осуществляется после приведения исходной ЗЛП к каноническому виду.

Для применения симплекс-метода с естественным базисом ЗЛП должна содержать единичную подматрицу размером mxm – в этом случае очевиден начальный опорный план.

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

Базис

Сб

Р0

с1

с2

...

сm

cm+1

...

cn

Р1

Р2

...

Рm

Рm+1

...

Рn

Р1

с1

b1

1

0

...

0

a1m+1

...

a1n

Р2

с2

b2

0

1

...

0

a2m+1

...

a2n

...

...

...

...

...

...

...

...

Рm

сm

bm

0

0

...

1

amm+1

...

amn

F0

0

0

0

Δm+1

Δn

В первом столбце таблицы "Базис" записывают базисные векторы данного опорного плана. Во втором столбце - коэффициенты целевой функции (с1, с2,…, сm) при базисных переменных (напомним, что в базис входят только векторы, образующую единичную подматрицу). В третьем столбце Р0- правая часть ограничений задачи (базисные компоненты плана). Таким образом, перемножая элементы второго столбца таблицы со столбцом Р0, и суммируя эти произведения, мы получаем значение целевой функции (F01*b1+ с2*b2+…+ сm*bm).

Первая строка симплексной таблицы содержит коэффициенты целевой функции нашей задачи и остается неизменной на протяжении всего решения (с1, с2,…, сm).

В центральной части таблицы записывают коэффициенты при неизвестных в ограничениях исходной задачи. При этом следует заметить, что коэффициенты при базисных переменных в ограничениях задачи составляют единичную подматрицу. Последнюю оценочную строку рассчитывают по формуле .

После заполнения таблицы исходный опорный план проверяют на оптимальность. Для этого просматривают элементы последней (оценочной) строки. Возможны три варианта:

  1. Все оценки , значит на основании признака оптимальности получен оптимальный план.

  2. для некоторогоj, и все соответствующие этому индексу величины, значит целевая функция не ограничена сверху на множестве планов.

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

Переход от одного опорного плана к другому осуществляется исключением из исходного базиса какого-нибудь из векторов и введением в него нового вектора. В качестве вводимого в базис вектора берётся один из векторов, для которых . Пусть это будет векторРk.

Для определения вектора, подлежащего исключению из базиса находят . Тогда выполняется условие неотрицательности значений опорного плана. Пусть этот минимум достигается приi=r. Тогда из базиса исключают векторРr, а числоназываютразрешающимэлементом.

Элементы новой симплекс-таблицы получают методом Жордана-Гаусса по формулам:

дляi = r;

.

Значения нового опорного плана рассчитываются по формулам:

дляi = r;

.

Процесс решения продолжают либо до получения оптимального плана, либо до установления неограниченности целевой функции. Если среди оценок оптимального плана нулевые только оценки, соответствующие базисным векторам, то это говорит о единственности оптимального плана. Если же нулевая оценка соответствует вектору, не входящему в базис, то в общем случае это означает, что оптимальный план не единственный.

Если единичной подматрицы не обнаруживается, то либо придется перебирать все подсистемы m уравнений с m неизвестными в надежде обнаружить неотрицательные решения, либо прибегнуть к методу искусственного базиса.

Метод искусственного базиса заключается в том, что для получения единичной подматрицы коэффициентов мы вводим в исходную задачу неотрицательные так называемые искусственные переменные и включаем их в целевую функцию с коэффициентом +М для задачи минимизации и с коэффициентом –М для задачи максимизации, где М>0 – сколь угодно большое число. Полученная задача называется расширенной по отношению к исходной. Искусственные переменные образуют начальное базисное решение. Применив симплекс-метод, необходимо вывести из базиса все искусственные переменные. Если удается доказать (или показать), что искусственные переменные полностью вывести из базиса невозможно, то это означает, что задача не имеет решения, то есть ее ограничения противоречивы.

Если на текущей итерации из базиса выводится искусственная переменная, то в следующей симплекс-таблице соответствующий ей столбец можно удалить, в дальнейших итерациях он не будет участвовать.

Двойственность в задачах линейного программирования

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

Исходная задача

Двойственная задача

Две приведенные задачи образуют двойственную пару.

Двойственная задача по отношению к исходной составляется согласно следующим правилам:

1) целевая функция исходной задачи формулируется на максимум, а целевая функция двойственной задачи — на минимум, при этом в задаче на максимум все неравенства в функциональных ограничениях имеют вид "£", в задаче на минимум — вид "³";

2) матрица А, составленная из коэффициентов при неизвестных в системе ограничений исходной задачи и аналогичная матрица Атв двойственной задаче получаются друг из друга транспонированием;

3) число переменных в двойственной задаче равно числу функциональных ограничений исходной задачи, а число ограничений в системе двойственной задачи — числу переменных в исходной задаче;

4) коэффициентами при неизвестных в целевой функции двойственной задачи являются свободные члены в системе ограничений исходной задачи, а правыми частями в ограничениях двойственной задачи — коэффициенты при неизвестных в целевой функции исходной задачи;

5) если переменная xjисходной задачи может принимать только положительные значения, тоj-ое условие в системе ограничений двойственной задачи является неравенством вида "≥". Если же переменная может принимать как положительные, так и отрицательные значения, тоj-ое условие представляет собой уравнение. И наоборот, еслиi-ое соотношение в системе ограничений исходной задачи является неравенством, тоi-ая переменная двойственной задачиyi. В противном случае переменнаяyiможет принимать как положительные, так и отрицательные значения.

В теории двойственности используются четыре пары двойственных задач (приведем их в матричной форме записи):

Исходная задача

Двойственная задача

Симметричные пары

1.

1.

2.

2.

Несимметричные пары

3.

3.

4.

4.

Первая теорема двойственности.

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

Если же целевая функция одной из пары двойственных задач не ограничена (для исходной – сверху, для двойственной – снизу), то другая задача вообще не имеет планов.

Вторая теорема двойственности.

План исходной задачи и пландвойственной задачи являются оптимальными планами этих задач тогда и только тогда, когда для любыхiиj выполняются равенства:

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

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

Пример.а) составить для данной задачи линейного программирования двойственную задачу; б) решить исходную задачу симплексным методом; в) по решению исходной найти решение двойственной задачи.

Решение

а) Число переменных в двойственной задаче равно числу уравнений в системе, т. е. 3. Коэффициентами в целевой функции двойственной задачи являются свободные члены системы уравнений, т. е. 6, 24, 30. Коэффициенты целевой функции исходной задачи являются свободными членами двойственной.

Целевая функция исходной задачи исследуется на максимум, а система условий содержит одно неравенство и два уравнения. Поэтому в двойственной задаче целевая функция исследуется на минимум, а переменные, которым соответствуют равенства, могут принимать любые значения. Так как все три переменные исходной задачи принимают только неотрицательные значения, то в системе условий двойственной задачи должны быть неравенства вида "≥". Следовательно, двойственная задача такова:

б) Приведем задачу к каноническому виду. Для этого в левую часть первого неравенства вводим дополнительную переменную с коэффициентом +1. В целевую функцию переменнаявходит с коэффициентом 0 (т. е. не входит). Получаем

Преобразованную систему уравнений запишем в векторной форме:

,

где ;;;;;;.

Поскольку среди векторов P1, P2, P3, P4, P5, P6имеются три единичных вектора, для данной задачи можно непосредственно записать опорный план. Таковым являетсяс единичным базисом.

Составим симплексную таблицу для Iитерации:

Б

9

5

4

3

2

0

0

6

1

-2

2

0

0

1

6

3

3

24

1

2

1

1

0

0

24

24

2

30

2

1

-4

0

1

0

15

-

F0=132

-2

3

-9

0

0

0

Вычислим оценки разложений векторов по базису опорного решения по формуле , гдеzj находится как скалярное произведение вектораPj (j=1,m)на векторСб=(с1, с2, ...,сm):

Оценки векторов, входящих в базис, всегда равны нулю.

Значение F0равно скалярному произведению вектораP0на векторСб:F0=6*0+24*3+30*2=132.

Начальное опорное решение не является оптимальным, так как оценки меньше нуля. Для оптимальности опорного решения в задаче на максимум требуется неотрицательность оценок для всех векторов условий.

Чтобы перейти к новому опорному решению, в базис можно ввести любой из векторов P1иP3. Для определения вектора, подлежащего выводу из базиса, находятдля всехaij>0.

Для вектора P1 получим, для вектораP3 получим(в таблице записаны в двух последних столбцах).

Определим, введение какого из двух векторов приведет к большему приращению целевой функции. Приращения целевой функции найдем по формуле :,. Следовательно, для наиболее быстрого нахождения оптимального решения необходимо ввести в базис опорного решения векторвместо вектора, так как минимум параметрадостигается в первой строке.

Далее выполним преобразование Жордана с элементом =2: 1) разделим всю 1-ю строку на 2 (на месте элементаполучим 1) и запишем её в новую симплексную таблицу; 2) остальные элементы столбца нужно «занулить», для этого полученную 1-ю строку сначала умножим на -1 и сложим со второй, результат запишем во вторую строку новой симплексной таблицы, а затем умножим на 4 и сложим с третьей строкой, результат запишем в третью строку новой симплексной таблицы.

Получим симплексную таблицу для IIитерации.

Б

9

5

4

3

2

0

4

3

1/2

-1

1

0

0

1/2

-

3

21

1/2

3

0

1

0

-1/2

7

2

42

4

-3

0

0

1

2

-

159

5/2

-6

0

0

0

9/2

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

Определим номер вектора, выводимого из базиса. Для этого вычислим параметр для второго столбца, он равен 7. Следовательно, из базиса выводим вектор. Выполним преобразование Жордана с элементом=3:

Б

9

5

4

3

2

0

4

10

2/3

0

1

1/3

0

1/3

5

7

1/6

1

0

1/3

0

-1/6

2

63

9/2

0

0

1

1

3/2

201

7/2

0

0

2

0

7/2

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

.

Ответ: при.

в) Оптимальное решение двойственной задачи находим по формуле:

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