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

Задание 6.

Дана задача линейного программирования,

max f = 3x1 - 6x2 + 2x3

в которой x1, x2, x3  0

Задачи, которые необходимо решить в данном задании.

  1. Записать задачу в канонической и стандартной формах;

  2. Записать каноническую и стандартную задачи в матричном виде;

  3. Решить задачу линейного программирования симплекс-методом;

  4. Составить двойственную задачу к первоначальной задаче и найти ее решение.

Решение:

  1. Записать задачу в канонической и стандартной формах;

Каноническая форма ЗЛП:

Для приведения задачи к канонической форме, где все ограничения имеют вид равенств, вводят дополнительные переменные xn+1, xn+2,…,xn+p , которые тоже считаются неотрицательными и записывают исходную задачу в виде

c1x1+c2x2+…+cnxn+0*xn+1+0*xn+2+…+0*xn+p => min

Введем дополнительные переменные x3, x4, x5. Переводя мах в min, запишем задачу в виде:

3*x1 – 6*x2 + 2*x3 + 0*x4 + 0*x5 + 0*x6 =>min

xi =

Стандартная форма ЗЛП:

Если целевая функция в задаче линейного программирования задана в виде:

c1x1 + c2x2 +…+cnxn =>max

то, умножая её на (- 1), приведем её к виду:

(-c1)x1 +(- c2 )x2 +…+(-cn )xn =>min

Таким образом, получаем:

min f = -3x1 + 6x2 - 2x3

  1. Записать каноническую и стандартную задачи в матричном виде;

Запись канонической задачи в матричном виде:

Найти минимальное значение функции f(x) = CX, при условиях ,

где C = (3; -6; 2; 0; 0; 0) – вектор – строка коэффициентов при переменных.

X = (x1, x2, x3, x4, x5,x6 ), Х ≥ 0

A = (aij)m*n матрица размерности m*n, столбцами которой являются вектор-столбцы Aj

A = ;B =

Запись стандартной задачи в матричном виде:

Найти максимальное значение функции f(x) = CX,

при условиях AX ≤ B ,

где C = (-3; 6; -2), X = (x1, x2, x3), Х≥0,

A = ; B = ;

  1. Решить ЗЛП симплекс-методом;

Определим максимальное значение целевой функции:

max f = 3x1 - 6x2 + 2x3

при следующих условиях-ограничений:

xi 0,i = 1,…,6

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

xi 0, i = 1,…,6

max f = 3x1 - 6x2 + 2x3

Введем искусственные переменные x: в 2-м равенстве вводим переменную x7; в 3-м равенстве вводим переменную x8;

Для постановки задачи на максимум целевая функция :

F(X) = 3x1-6x2+2x3 - Mx7 - Mx8 → max

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

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

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

Из уравнений выражаем искусственные переменные:

x7 = 8-x1-4x2-8x3+x5

x8 = 2-x3+x6

которые подставим в целевую функцию:

F(X) = 3x1-6x2 + 2x3 - M(8-x1-4x2-8x3+x5) - M(2-x3+x6) → max

или

F(X) = (3+M)x1+(-6+4M)x2+(2+9M)x3+(-M)x5+(-M)x6+(-10M) → max

Матрица коэффициентов A = aij этой системы уравнений имеет вид:

A =

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

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

Решим систему уравнений относительно базисных переменных: x4, x7, x8

Полагая, что свободные переменные равны 0, получим первый опорный план:

X1 = (0,0,0,6,0,0,8,2)

Базисное решение называется допустимым, если оно неотрицательно.

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x4

6

3

3

2

1

0

0

0

0

x7

8

1

4

8

0

-1

0

1

0

x8

2

0

0

1

0

0

-1

0

1

f(x0)

10M

-3 - M

6 – 4M

-2-9M

0

M

M

0

0

Алгоритм симплекс-метода:

Итерация №0.

Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.

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

Вычислим значения Di по строкам как частное от деления: bi / ai3 и из них выберем наименьшее:

min (6 / 2 , 8 / 8 , 2 / 1 ) = 1

Следовательно, 2-ая строка является ведущей.3

Разрешающий элемент равен (8) и находится на пересечении ведущего столбца и ведущей строки.

Пересчет симплекс-таблицы:

Формируем следующую часть симплексной таблицы. Вместо переменной x7 в план 1 войдет переменная x3. Строка, соответствующая переменной x3 в плане 1, получена в результате деления всех элементов строки x7 плана 0 на разрешающий элемент РЭ=8. На месте разрешающего элемента в плане 1 получаем 1.

В остальных клетках столбца x3 плана 1 записываем нули. Таким образом, в новом плане 1 заполнены строка x3 и столбец x3 Все остальные элементы нового плана 1, включая элементы индексной строки, определяются по правилу прямоугольника. Для этого выбираем из старого плана четыре числа, которые расположены в вершинах прямоугольника и всегда включают разрешающий элемент РЭ. НЭ = СTЭ - (А*В)/РЭ СТЭ - элемент старого плана, РЭ - разрешающий элемент (8), А и В - элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.

Получаем новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x4

4

2

2

0

1

0

-

0

x7

1

1

0

-

0

0

x8

1

-

-

0

0

-1

1

f(x0)

10M

-3 - M

6 – 4M

-2-9M

0

M

M

0

0

Итерация №1.

Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.

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

Вычислим значения Di по строкам как частное от деления: bi / ai5 и из них выберем наименьшее: min (4 / 1/4 , - , 1 / 1/8 ) = 8

Следовательно, 3-ая строка является ведущей. Разрешающий элемент равен (1/8) и находится на пересечении ведущего столбца и ведущей строки.

Формируем следующую часть симплексной таблицы.

Вместо переменной x8 в план 2 войдет переменная x5.

Строка, соответствующая переменной x5 в плане 2, получена в результате деления всех элементов строки x8 плана 1 на разрешающий элемент РЭ=1/8

На месте разрешающего элемента в плане 2 получаем 1. В остальных клетках столбца x5 плана 2 записываем нули.

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

Получаем новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x4

2

3

3

0

1

2

-

-2

x7

2

1

0

-

-1

1

x8

8

-

-

0

0

-8

8

f(x0)

4

-3

6

0

0

0

-2

M

2 + M

Итерация №2

Текущий опорный план не оптимален, так как в индексной строке находятся отрицательные коэффициенты.

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

Вычислим значения Di по строкам как частное от деления: bi / ai1 и из них выберем наименьшее: min (2 / 3 , - , - ) = 2/3 Следовательно, 1-ая строка является ведущей. Разрешающий элемент равен (3) и находится на пересечении ведущего столбца и ведущей строки.

Формируем следующую часть симплексной таблицы. Вместо переменной x4 в план 3 войдет переменная x1. Строка, соответствующая переменной x1 в плане 3, получена в результате деления всех элементов строки x4 плана 2 на разрешающий элемент РЭ=3. На месте разрешающего элемента в плане 3 получаем 1. В остальных клетках столбца x1 плана 3 записываем нули. Таким образом, в новом плане 3 заполнены строка x1 и столбец x1.

Все остальные элементы нового плана 3, включая элементы индексной строки, определяются по правилу прямоугольника.

Получаем новую симплекс-таблицу:

Базис

B

x1

x2

x3

x4

x5

x6

x7

x8

x4

1

1

0

x7

2

1

0

-

-1

1

x8

8

0

-3

0

-7

7

f(x0)

6

0

9

0

1

0

0

M

M

Среди значений индексной строки нет отрицательных. Поэтому эта таблица определяет оптимальный план задачи. Это окончательный вариант симплекс-таблицы.

Так как в оптимальном решении отсутствуют искусственные переменные (они равны нулю), то данное решение является допустимым.

Оптимальный план можно записать так:

xопт: x1 = 2/3, x2 = 0, x3 = 2;

fmax(X) = 3•2/3 -6•0 + 2•2 = 6;

  1. Составить двойственную задачу к первоначальной задаче и найти ее решение.

max f = 3x1 - 6x2 + 2x3

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

min f* = 6*y1 + 8*y2 + 2*y3

Строим ограничения, транспонируя матрицу коэффициентов в ограничениях:

A = ;AT = ;

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

y1 0; y2 0; y3 0;

Решение двойственной задачи найдем с помощью теорем двойственности.

По первой теореме двойственности:

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

fmax = f*min = 6;

Используем вторую теорему двойственности: так как в оптимальном решении исходной задачи х1 ≠0 и х2 ≠0, то на оптимальном решении двойственной задачи первое и второе ограничения двойственной задачи выполняется как равенство. Подставим хопт в ограничения исходной задачи, получим, что второе и третье ограничение выполняются как строгие неравенства, значит y2=0, . Получаем систему:

;;

Решение двойственной задачи: уопт=(1; 0; 0 )

min f* = 6*y1 + 8*y2 + 2*y3 = 6 *1 + 8*0 + 2*0 = 6

min f* = 6