Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2_0

.pdf
Скачиваний:
45
Добавлен:
23.02.2016
Размер:
1.63 Mб
Скачать

Рис. 2.2.9

Нажать кнопку «Добавить» и аналогично ввести остальные ограниче- ния. Если при вводе ограничений задачи возникает необходимость изменить или удалить ограничения, то для этого используются кнопки «Изменить» и «Удалить» соответственно.

Диалоговое окно надстройки «Поиск решения» после ввода данных имеет следующий вид (рис. 2.2.10)

Рис. 2.2.10

Для обеспечения выполнения условия неотрицательности переменных, а также установления конкретных параметров решения задачи оптимизации используется кнопка «Параметры» (рис. 2.2.11)

Рис. 2.2.11

30

Установка флажка «Линейная модель» обеспечивает ускорение про- цесса решения линейной задачи, а установление флажка «Неотрицательные значения» − неотрицательность переменных.

Подтверждаются установленные параметры нажатием кнопки «ОК».

Решение задачи

Для решения задачи необходимо в диалоговом окне «Поиск решения» нажать кнопку «Выполнить», после чего на экране появится окно «Резуль- тат поиска решения». В случае успешного решения сообщение имеет вид: «Решение найдено. Все ограничения и условия оптимальности выполнены»

(рис. 2.2.12)

Рис. 2.2.12

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

В окне «Результат поиска решения» приведены типы отчета: «Ре-

зультаты», «Устойчивость», «Пределы», которые используются для анали-

за чувствительности. Чтобы получить отчет, необходимо выбрать соответст- вующий тип и нажать кнопку «ОК». Результаты каждого отчета будут выве- дены на отдельных листах рабочей книги с названиями: «Отчет по результа- там 1», «Отчет по устойчивости 1», «Отчет по пределам 1» (рис. 2.2.13)

Рис. 2.2.13

Если необходимо получить только решение задачи, достаточно нажать кнопку «ОК» в диалоговом окне «Результат поиска решения» (рис. 2.2.12),

31

после чего на экране в соответствующих ячейках появятся значения пере- менных и целевой функции. В нашем примере значения переменных нахо- дятся в ячейках В2:C2, а значение целевой функции в ячейке E2 (рис. 2.2.14).

Рис. 2.2.14

Итак, решение задачи найдено: х1 = 40; х2 = 80, Zmax = 52 000 . Заметим, что надстройка «Поиск решения» позволяет получать реше-

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

Дополнения вносятся на этапе ввода ограничений. К имеющимся в зада- че ограничениям необходимо добавить условие целочисленности перемен- ных. Для этого в диалоговом окне «Поиска решения» надо выбрать кнопку «Добавить», в поле «Ссылка на ячейку» ввести адрес ячеек, содержащих значения переменных (в примере это ячейки В2:С2), а в поле ввода знака ог- раничения выбрать целое (цел). (рис. 2.2.15)

Рис. 2.2.15

Подтверждается ввод условия целочисленности нажатием кнопки «ОК». Если задача имеет альтернативное решение, то с помощью компьюте- ра получаем только одно решение.

Чтобы провести анализ чувствительности, необходимо в диалоговом окне «Результаты поиска решения» выделить с помощью мыши требуемый тип отчета: «Результаты», «Устойчивость», «Пределы» (рис. 2.2.16) и на-

жать кнопку «ОК».

32

Рис. 2.2.16

Результаты каждого отчета будут выданы на отдельных листах рабочей книги (рис. 2.2.17; 2.2.18; 2.2.19).

В таблице «Отчет по результатам» приведена информация о значени- ях переменных, целевой функции, а также статусе ограничений (рис. 2.2.17).

Рис. 2.2.17. Отчёт по результатам (первая таблица)

В первой таблице указано оптимальное значение целевой функции. Ре- зультат: 52 000.

Вторая таблица позволяет найти значения переменных принятия реше- ния (результат: x1 = 40, x2 = 80 ).

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

«Отчет по устойчивости» состоит из двух таблиц (рис. 2.2.18).

Впервой таблице приведена информация о переменных.

1. Результат решения, то есть значения переменных.

33

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

3.Коэффициенты целевой функции при соответствующих переменных.

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

ницы устойчивости коэффициента целевой функции составляют (250 ; 500) , поскольку максимальное увеличение коэффициента возможно на 200, а уменьшение на 50. Другими словами, текущее оптимальное решение не изменится, пока цена за единицу первого вида продукции будет находиться в пределах от 250 до 500 грн.

Рис. 2.2.18. Отчёт по устойчивости (вторая таблица)

Вторая таблица содержит данные об ограничениях.

1.В столбце «Результ. значение» указано значение левой части огра- ничений.

2.В столбце «Теневая цена» находится решение двойственной задачи. Теневая цена показывает, на сколько изменится значение целевой функции, если правая часть ограничения увеличится на одну единицу. В приведенном примере третье ограничение не является связующим, то есть, третий вид сы- рья используется не полностью. Таким образом, можно закупать его меньше на соответствующую величину, то есть на 100 единиц. Это уменьшит затраты как на закупку сырья, так и на его хранение. Теневая цена первого ограниче- ния, равная 400, свидетельствует о том, что каждая дополнительная единица третьего вида сырья увеличит прибыль на 400 грн. Можно также утверждать, что это максимальная цена, которую можно заплатить за 1 единицу сырья первого вида.

34

3. В столбцах «Допустимое увеличение (уменьшение)» находятся предельные приращения правых частей ограничений, при которых текущий опорный план не изменится. В примере для первого вида сырья границы ус- тойчивости (75; 120) , так как допустимое уменьшение возможно на 25 ед., а увеличение на 20 Для второго вида сырья границы устойчивости составляют (100; 140), а для третьего – (200; +∞ ) (здесь 1Е+30 равносильна 1030 ). Это означает, что, до тех пор, пока количество сырья будет находиться в данных пределах, оптимальное решение задачи не изменится.

«Отчет по пределам» для рассматриваемой задачи имеет следующий вид (рис. 2.2.19):

Рис. 2.2.19. Отчёт по пределам (третья таблица)

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

Необходимо отметить, что при решении задачи с использованием над- стройки «Поиск решения» не важно, в какой форме записана задача линей- ного программирования и содержит ли система ограничений полный еди- ничный базис. Решение осуществляется так, как было описано выше.

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

При составлении двойственных задач будем пользоваться определени- ем. Если задача задана на max то ограничение вида «≤» будем называть со- гласованным или правильным, а «≥» – неправильным, несогласованным. Если задача задана на min, то ограничение « ≥ » – правильное, а « ≤ » – не- правильное.

Для написания двойственной задачи сформулируем соотношение меж- ду отдельными элементами прямой и двойственной задач:

1.Количество двойственных переменных равно количеству ограниче- ний исходной задачи (каждому ограничению ставится в соответствие двойст- венная переменная).

2.Целевая функция двойственной задачи имеет вид F = b1y1+ b2y2+…+

bmym.

35

3.Если Z max, то F min; если Z min, то F max (направление цели F противоположно направлению цели Z).

4.Количество ограничений двойственной задачи равно количеству пе- ременных исходной задачи. Каждой переменной исходной задачи ставится в соответствие ограничение двойственной задачи.

5.

Левая часть j-го ограничения двойственной задачи равна

 

 

 

 

=

(a1 j y1 + a2 j y2 + a3 j y3 + ... + amj ym ), а правая сj. Если x j 0 , то j-е

Y

Aj

ограничение в двойственной задаче правильное. Если x j 0 , то j-е ограниче-

ние неправильное, если x j имеет любой знак, то j-е ограничение является равенством.

6.Если i-е ограничение исходной задачи правильное, то yi 0 , если i-е ограничение исходной задачи неправильное, то yi 0 , если i-е ограничение исходной задачи « = », то yi может иметь любой знак.

7.Матрицы исходной и двойственной задач взаимно транспонирован-

ные.

Для задачи оптимального выпуска продукции прямая и двойствен- ная записываются в виде:

 

 

 

Прямая задача.

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

 

Z = c x

+ c x

+ + c x max,

F = b y

+ b y

+ + b y

m

min,

1 1

 

2 2

 

 

n n

 

 

1 1

2 2

 

 

 

 

m

 

a x + a x + + a x b ,

a y

+ a y

 

+ + a

y

m

c ,

11 1

 

12 2

 

 

 

1n n

1

11 1

 

21 2

 

 

m1

 

 

 

1

a x + a x + + a x b ,

a y

+ a y

 

+ + a

 

y

 

c ,

21 1

 

22 2

 

 

 

2n n

2

12 1

 

22

2

 

 

m2

 

 

m

 

 

2

................................................

 

 

 

 

+ + a x

,

................................................,

a x + a

x

 

b ,

a y

+ a y

+ + a y

c ,

m1 1

 

m2 2

 

 

mn n

m

1n 1

 

2n 2

 

 

mn m

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

j

0 (j = 1,n

) .

 

 

y 0 (i = 1,m) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим составление двойственной задачи к исходной в общем случае на примере. Написать двойственную задачу к заданной задаче.

 

 

 

Прямая задача

 

 

 

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

 

 

Z = 4x

x

+ 5x

max;

 

 

F = 12 y1 +

8 y2 9 y3

min;

 

 

 

 

1

3

4

 

 

 

 

y1 + 15 y

2 + 10 y3

4, ~ x1 0

 

x

3x

+ 5x

+ 2x

= 12, ~ y Люб. знак

 

1

2

3

4

 

1

 

 

-3 y

+ 9 y

 

0, ~ x

 

0

15x

+ 4x 9x 8, ~ y

 

0

 

3

2

 

2

 

1

 

 

 

 

 

1

 

3

4

 

 

5 y1 + 4 y2 7 y3

= − 1, ~ x3

 

 

 

+ 9x2

7x3 + 6x4 ≥ −9, ~ y3 0

 

Люб.знак

10 x1

2 y1 9 y2

+ 6 y3 5, ~ x4 0

x1 0, x2

0,

x4 0.

 

 

 

 

 

y2

0, y3 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

36

Решение двойственной задачи можно получить, исследуя решение ис- ходной на основании первой и второй теорем двойственности.

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

Zmax = Fmin

(Zmin = Fmax ).

Если одна из пары двойственных задач не ограничена, то у второй не- совместна система ограничений.

Если одна из пары двойственных задач несовместна, то вторая несо- вместна или неограниченная.

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

Чтобы найти y1 надо:

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

вующий вектору Àk ;

2)в этом столбце взять число, которое находится в индексной строке последней симплексной таблицы, т.е. zk ck ;

3)к этому числу прибавить коэффициент целевой функции из этого

столбца. Это будет y1 , т.е. y1 = zk ck + ck = zk .

Аналогично по второй, третьей строке и т. д. первой симплексной таб- лицы и элементам индексной строки последней таблицы находятся y2 , y3 и т. д.

При нахождении решения двойственной ЗЛП надо пользоваться пра- вилом:

при умножении целевой функции на -1 двойственные переменные ме- няют знак.

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

при умножении i-го ограничения на -1 i-я двойственная переменная ме- няет знак.

Значения двойственных переменных можно выписать из значения те- невых цен.

4. Напишем двойственную задачу в примере 2.2.1.

F = 100y1 + 120y2 + 300y3 min,

 

0,5y

+ y

2

+ 3y 300,

 

1

 

3

 

+ y3 500,

y1 + y2

y1 0, y2 0, y3 0.

37

5. Находим значения двойственных переменных из табл. 2.2.5.

y = 400,

y = 100,

y = 0 .

1

2

3

Их можно выписать из теневых цен или из индексной строки последней симплекс-таблицы.

6. Определяем дефицитность ресурсов

На фирме цинк и медь и будет использовано полностью, а олово нет. Олова используется 200 кг, а остаётся 100 кг.

7. Найдём интервалы устойчивости по сырью и ценам

Чтобы план сохранял структуру, интервалы изменения ресурсов каж- дого в отдельности при неизменности других имеют вид

Сырьё

 

Ограничение

 

Допустимое

 

Допустимое

Интервалы

 

 

Правая часть

 

увеличение

 

уменьшение

устойчивости

 

 

 

 

 

 

 

 

 

Цинк

 

100

 

20

 

25

(75,120)

Медь

 

120

 

20

 

20

(100,140)

Олово

 

300

 

 

1E+30

 

100

(200, +∞ )

 

 

 

 

 

 

Продук-

Целевой коэф-

 

Допустимое

Допустимое

Интервалы

ция

фициент, цена

 

увеличение

уменьшение

устойчивости

Первая

300

 

 

200

 

50

(250,500)

Вторая

500

 

 

100

 

200

(300,600)

8. Целесообразность выпуска третьего изделия

Для проверки целесообразности выпуска третьего изделия по цене c3 = 400 400 грн. и затратами металла a23 = 1, a23 = 0,5 и a23 = 2,5 килограм- мов соответственно находим величину

3 = y1 a13 + y2 a23 + y3 a33 c3 = 400 1+ 100 0,5 + 0 2,5 400 = 50 .

Затраты на единицу продукцию больше её цены, поэтому её нецелесо- образно включать в план.

2.3. Симплекс-метод с искусственным базисом. Двойственный сим- плекс-метод

Задача 2.3.1. Решить задачу методом искусственного базиса и с помо- щью «Поиска решений», написать двойственную задачу и записать её ре- шение.

38

Z = 2x1 + x2 x3 max,

 

x

+

x

+ 2x

6,

 

1

 

2

3

 

x

+ 2x

+ 2x

= 4,

 

1

 

2

3

 

4x

2x

2x

6,

 

1

 

2

3

 

xj 0 (j = 1,3).

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

Z = 2x1 + x2 x3 + 0x4 + 0x5 max,

 

x

+

x

+ 2x

x

 

= 6,

 

1

 

2

3

4

 

 

x

+

2x

+ 2x

 

 

= 4,

 

1

 

2

3

 

 

 

4x

2x

2x

+

x

= 6,

 

1

 

2

3

 

5

 

xj 0 (j = 1,3).

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

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

В первое и второе уравнения прибавляем искусственные переменные х6 и х7 с коэффициентом равным единице. В целевую функцию их дописыва- ем с большим отрицательным коэффициентом (M ) . Получим расширен-

ную задачу с полным единичным базисом.

Z′ = 2x1 + x2 x3 + 0x4 + 0x5 M x6 M x7 max,

 

x

+ x

+ 2x

x

+ x

 

= 6,

 

1

 

2

3

4

6

 

 

x

+ 2x

+ 2x

 

+

x

= 4,

 

1

 

2

3

 

 

7

 

4x

2x

2x

+

x

 

= 6,

 

1

 

2

3

 

5

 

 

xj 0 (j = 1,3).

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

39

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]