
Количественные методы анализа хозяйственной деятельности - Ричард Томас
.pdf284 ГЛАВА 8
значение находится на пересечении осевого ряда и осевой колонки, и оно показано жирным шрифтом.
В принципе, на этом этапе мы приводим осевое значение к 1. В нашем случае значение уже равно 1, поэтому вычисления не нужны.
И наконец, мы приводим другие значения в осевой колонке к нулю, от нимая кратные числа осевого ряда из каждого остающегося ряда. Эти вычисле ния приведены в таблице ниже. Обратите внимание, что базисная переменная (д:) осевого ряда получена из осевой колонки:
|
|
Ряд |
Базис |
Значение |
X |
У |
Z |
S, |
S, |
S, |
Я1 - |
ЗхЯЗ |
1 |
S, |
2250 |
0 |
2 |
2.5 |
1 |
0 |
- 3 |
R2 - |
50хЯЗ |
2 |
5з |
62500 |
0 |
60 |
40 |
0 |
1 |
- 5 0 |
Осевое значение |
3 |
X |
250 |
1 |
0 |
0 |
0 |
0 |
1 |
|
Д4 - |
70хДЗ |
4 |
-Р |
-17500 |
0 |
60 |
50 |
0 |
0 |
- 70 |
Оптимальное решение еще не получено, так как в нижнем ряду еще есть положительные значения. Новая осевая колонка определяется по максимально му значению в этом нижнем ряду, а для нахождения осевого ряда мы вычис ляем соотношение числа в колонке значений с числом в осевой колонке:
Ряд |
Базис |
Значение |
X |
У |
г |
S, |
S, |
Зз |
Значение/ось |
1 |
S, |
2250 |
0 |
2 |
2.5 |
1 |
0 |
- 3 |
1125 |
2 |
S, |
62500 |
0 |
60 |
40 |
0 |
1 |
- 5 0 |
1041.67 |
3 |
X |
250 |
1 |
0 |
0 |
0 |
0 |
1 |
- |
4 |
-Р |
-17500 |
0 |
60 |
50 |
0 |
0 |
1 |
- |
Ряд 2 — осевой ряд. Осевое значение 60 приводится к единице путем деления всех значений в этом ряду на 60. Этот скорректированный ряд 2 (ука зываемый как новый ряд 2 или NR2) используется для вычислений при при ведении всех других значений осевой колонки к нулю:
|
Ряд |
Базис |
Значение |
X |
У |
2 |
S, |
S, |
5з |
Я1 - 2хШ2 |
1 |
S, |
166.67 |
0 |
0 |
1.167 |
1 |
-0.333 |
-1.333 |
Я2/60 |
2 |
у |
1041.67 |
0 |
1 |
0.667 |
0 |
0.0167 |
-0.833 |
ЯЗ |
3 |
X |
250 |
1 |
0 |
0 |
0 |
0 |
1 |
Я4-60ХЛ/Я2 |
4 |
- Р |
-80000 0 |
0 |
0 |
10 |
0 |
- 1 |
- 20 |
И снова в нижнем ряду все еще есть положительные значения, и поэтому мы повторяем процесс. Колонка z есть осевая колонка, а осевой ряд находим путем деления значения на ось (см. таблицу ниже):
Осевой |
Ряд |
Базис |
Значение |
X |
1' |
Z |
S, |
S, |
S, |
Значение/ось |
1 |
|
166.67 |
0 |
0 |
1.167 |
1 |
-0.033 |
-1.333 |
142.86* |
|
ряд |
S, |
|||||||||
|
2 |
У |
1041.67 |
0 |
1 |
0.667 |
0 |
0,0167 |
-0.833 |
1562.5 |
|
3 |
X |
250 |
1 |
0 |
0 |
0 |
0 |
1 |
— |
|
4 |
-Р |
-80000 |
0 |
0 |
10 |
0 |
- 1 |
- 20 |
|
Осевое значение (1.167) приводится путем деления каждого значения в первом ряду (осевом ряду) на 1.167. Другие числа в осевой колонке приводятся к нулю путем вычитания кратного нового ряда (NR1) из каждого ряда (см. таблицу ниже):
|
|
|
|
|
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ |
2 8 5 |
||||
|
|
Рял |
Базис |
Значение |
X |
V |
Z |
S, |
S, |
S, |
Я1/1 |
167 |
1 |
Z |
142 86 |
0 |
0 |
1 |
0 857 |
-0 0286 |
-1 143 |
R2 - 0667xNR1 |
2 |
У |
946 43 |
0 |
1 |
0 |
-0 571 |
0 0358 |
-0 071 |
|
ЯЗ |
lOxNRI |
3 |
X |
250 |
1 |
0 |
0 |
0 |
0 |
1 |
4 - |
4 |
-Р |
-81428 |
0 |
0 |
0 |
-8 57 |
-0 714 |
-8 57 |
|
|
Теперь мы получили оптимальное решение, так как в нижнем ряду табли |
|||||||||
цы нет положительных чисел |
|
|
|
|
|
|
|
|||
|
Таким образом, максимальная прибыль Р = 81 428 долл. будет достигнута |
|||||||||
при производстве холодильников в следующих |
количествах: |
|
|
|||||||
|
X — количество |
моделей А470 = 250; |
|
|
|
|
|
|||
|
у — количество |
моделей А370 = 946; |
|
|
|
|
|
|||
|
Z — количество |
моделей |
В270 = |
142. |
|
|
|
|
|
|
|
Обратите внимание, что значения х, у и z округлены, и поэтому окончатель |
ное значение общей прибыли будет несколько отличаться от приведенною.
8.8.Симплексный метод: минимизация при ограничениях со знаком >
На предыдущих примерах мы рассмотрели симплексный метод решения задач по максимизации объективной функции при офаничениях со знаком «:<», например л: <. 250 и Зх + 2>' < 3000. В этом разделе мы рассмотрим задачу
.минимизации объективной функции при ограничениях со знаком «>.». Это при менимо в ситуациях, когда мы хотим минимизировать издержки производства за счет более жестких ограничений по использованию рабочего времени, люд ских и материальных ресурсов, а также машинного времени.
Примеры такого рода могут быть преобразованы в задачи максимизации с последующим применением методов, описанных в предьщущем разделе. Если имеется задача минимизации, тогда соответствующая задача максимизации называется двойственной. Процесс решения двойственной задачи показан на последующих примерах.
Пример 1
Рассмотрим производственные задачи компании «Стенлюкс». Компания должна принять решение по недельному объему выпуска двух моделей стираль ных машинстандарт и де-люкс. Затраты, связанные с производством этих сти ральных машин, таковы: стандарт: 80 долл.; де-люкс: ПО долл.
Количество человеко-часов, необходимое для производства единицы каж дого изделия, следующее: стандарт: 4 часа; де-люкс: 5 часов.
В стиральной машине модели «стандарт» устанавливается один приводной ремень, а на модели «де-люкс» — два для повышения надежности. Согласно долговременному соглашению с поставщиками, еженедельно поставляется не менее 700 приводных ремней.
При производстве стиральных машин требуется проведение сварочных ра бот, при этом на единицу изделия необходимо затратить: стандарт — 20 мин, де-люкс — 16 мин.
Автоматическое сварочное оборудование необходимо использовать не ме нее 130 часов в неделю, в противном случае существенно возрастают эксплуа тационные расходы.
2 8 6 ГЛАВА 8
Задача принимает следующий вид:
(i) X — количество производимых стиральных машин «стандарт»;
у— количество производимых cTnpajibHbix машин «де-люкс».
(ii)Мы хотим минимизировать объективную функцию: С = 80л: + ПО;'.
(iii)При наличии следующих ограничений:
а) |
количество |
человеко-часов: 4х + 5у >_ 2000; |
б) |
приводные |
ремни: 1х + 2>' > 700; |
в) продолжительность сварочных работ: 20х + \ву >_ 7800. (Обратите внимание, что 130 часов = 7800 минут.)
Для нахождения этой двойственной задачи мы взаимно переставим ряды и колонки и одновременно поменяем знаки < и >, то есть показатели х дадут нам двойственное условие АХ + 1У + 20Z < 80, а показатели у — второе условие: 5Х + 2Y + 16Z< 110. Мы хотим максимизировать с = 2000J+ 700Г+ 7800Z
|
Теперь мы можем применить симплексный метод для решения этой задачи. |
|||||||
Для |
этого: |
|
|
|
|
|
|
|
|
Этап 1. Вводим свободные переменные для преобразования уравнений, |
|||||||
как это показано ниже: |
|
|
|
|
|
|||
|
4А' = 1Г + |
20Z+ |
15, = 80; |
|
|
|
|
|
|
SX + 2Y+ |
16Z+ |
16-2 = |
ПО. |
|
|
|
|
|
Уравнение объективной функции |
можно записать в следующем виде: |
||||||
|
- с + 2000^ + 700 |
У + |
7800Z + |
05", + |
05^ = 0. |
|
|
|
|
Этапы 2 и 3. Уравнения можно свести в таблицу (здесь уже показаны осевая |
|||||||
колонка и вычисления по определению осевого ряда): |
|
|||||||
Ряд |
Базис |
Значение |
X |
У |
Z |
S, |
S, |
Значение/ось |
1 |
S, |
80 |
4 |
1 |
20 |
1 |
0 |
4«* |
2 |
S, |
110 |
5 |
2 |
16 |
0 |
1 |
6.875 |
3 |
—с |
0 |
2000 |
700 |
7800 |
0 |
0 |
|
Эти ряды трансформируются сначала путем приведения осевого значения к 1, а затем приведения остальных значений осевой колонки к О, как это показано в таблице ниже:
|
|
Ряд |
Базис Значение |
X |
У |
Z |
S, |
S, |
Значение/ось |
|
R1/20 |
|
1 |
Z |
4 |
0.2 |
0.05 |
1 |
0.05 |
О |
20** |
R2 - |
16xNR1 |
2 |
Sj |
46 |
1.8 |
1.2 |
О |
-0.8 |
1 |
25.556 |
R3 - |
7800xNR1 |
3 |
- с |
-31200 |
440 |
310 |
О |
-390 |
О |
|
* *
Эта же таблица показывает, откуда начинать повторно процесс определе ния новой осевой колонки и вычисления «значение/ось» с целью установления
осевого ряда. |
|
|
|
|
|
|
|
|
|
||
|
Колонка X — это осевая колонка с наибольшим положительным значени |
||||||||||
ем. |
Этот |
ряд делится |
на 0.2 для приведения осевого значения к 1, а другие |
||||||||
значения |
в других рядах приводятся к О, как это показано ниже: |
|
|||||||||
|
|
|
Ряд |
Базис Значение |
X |
У |
Z |
S, |
S, |
Значение/ось |
|
R1/0.2 |
|
1 |
X |
20 |
1 |
0.25 |
5 |
0.25 |
О |
80 |
|
R2-1,8xNR1 |
2 |
Sj |
10 |
О |
0.75 |
- 9 |
-1.25 |
1 |
13.333** |
||
R3 - |
440xNR1 |
3 |
- с |
-40000 |
О |
200 |
-2200 |
-500 |
О |
|
2 8 8 |
ГЛАВА 8 |
(ill) |
Имеется 4х + 2у + z < 400; |
Зх + 5у < 240; у + 2z < 200, ^> >' и ^ > О
Необходимо максимизировать: Р = 15д: + 10>' + Sz
2(D) Рассмотрим задачу принятия решения относительно вложения средств
вряд акций. Компания «Вили-Макен» консультирует клиента по этому вопросу Рассматриваются три наименования акций, которые имеют следуюшие теку щие цены за единицу:
«Хансон-Иквити»: 6 ф ст.;
«Фар-Ист»" 4 ф ст.;
«Максвелл Менеджд»: 5 ф. ст.
Всего имеется средств к вложению на сумму 30 000 ф ст Компания «ВилиМакен» оценила риски, связанные с вложением в эти наименования акций, по шкале от 1 до 10 баллов. 1 балл означает очень надежное, безрисковое вложе ние, а 10 баллов — крайне высокорискованное вложение. Клиент хочет, чтобы вложение было достаточно надежным, и он желает, чтобы средняя оценка инвестиционного портфеля не превышала 5 баллов Указанные акции оценива ются с точки зрения риска следующим образом: «Хансон-Иквити»' 3, «ФарИст» 8, «Максвелл-Менеджд»: 6.
По прогнозным расчетам прибыль от вложения на одну акцию за год со ставит «Хансон-Иквити»: 1.00 ф. ст. «Фар-Ист»: 2.00 ф ст , «Максвелл-Ме неджд»: 1 50 ф. ст. Далее, было решено, что акций «Фар-Ист» должно быть приобретено не более 2000 штук.
С помощью симплексного метода определите, какое количество акций каждого наименования должен приобрести клиент, чтобы максимизировать прогнозируемую прибыль от инвестиции за год.
8.10. Транспортная задача
Транспортные задачи обычно связаны с анализом доставки товаров от разных источников по различным направлениям. Так, у предприятия может иметься несколько складов, предназначенных для отправки товаров в различ ные точки страны. В этом случае необходимо принять решение относительно оптимального способа передвижения этих товаров, с тем чтобы минимизиро вать затраты, время на перевозку и задействованные при этом ресурсы. Такою рода задача относится к отдельному типу задач линейного программирования Мы имеем ряд ограничений, скажем, потребности точек назначения и наличие возможностей, и хотим минимизировать затраты. Поэтому мы можем сформу лировать транспортную задачу как задачу линейного программирования и далее применить для получения решения симплексный метод. Однако в том, что касается перевозок, ограничения даются в особой форме, и целесообразен упрощенный метод решения.
При решении транспортной задачи процесс нахождения решения идет по той же самой цепочке, что используется при симплексном методе. Первона чально находится некое «решение», которое затем проверяется на оптималь ность Если результат отрицательный, то мы ищем лучшее решение, что про должается до тех пор, пока не будет найдено оптимальное решение. Этот метод повтора показан на диафамме, представленной на рис. 8.17
|
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ |
289 |
Условия задачи |
|
|
'' |
|
|
Нахождение первого начального |
|
|
распределения |
|
|
|
Нахождение |
|
1 ' |
лучшего распределения |
|
|
|
|
Является ли это оптимальным |
;к |
|
распределением? |
|
|
Да |
Нет |
|
1 |
|
|
Решение получено |
|
Рис. 8.17. Транспортная задача
На последующих примерах мы рассмотрим решение такого рода задач.
Пример 1
Производственная компания располагает тремя производственными лини ями и двумя площадями первичного складирования. Изделия складируются партиями на площадях первичного складирования и далее отправляются поку пателям.
Ежедневно три производственные линии — А, Б и В вьщают соответствен но 20, 50 и 20 партий товара. Далее в таблице показано время, которое затра чивается для передвижения товаров с участков производства в зоны хранения. Вре.мя дано в минутах на партию.
Из таблицы видно, что для передвижения товаров от линии А в зону 1 требуется 7 минут. Точно так же для передвижения партии от линии Б в зону 1 требуется только 4 минуты.
Задача состоит в том, чтобы определить, какие складские помещения луч ше всего использовать при передвижении товаров из различных производствен ных зон, с тем чтобы минимизировать время доставки. Все это можно предста вить в виде задачи линейного программирования, как это показано ниже:
Время, затраченное на передвижение товаров (мин)
Зоны складирования |
|
Производственные |
линии |
|
А |
Б |
В |
1 |
7 |
4 |
6 |
2 |
4 |
3 |
5 |
Мы будем пользоваться следующими обозначениями: Хд, ~ количество партий, перемещаемых от линии А в зону 1. Офаничения таковы:
Хм + Л:Б, + Хв, < 60; ^А2 + Чг + -^В2 < 30; ^А1 + х^2 < 20;
х^, + Хп < 50;
^Б1 ^Б2
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ |
291 |
Следующий кратчайший маршрут пролегает из зоны В в зону 1 (6 минут), куда можно направить 20 партии И наконец, остающиеся 20 партий распреде ляются в последнюю клетку таблицы (из зоны А в зону 1) В таблице ниже показано первонача^тьное распределение
1 |
А |
|
Б |
|
В |
|
Всего |
23 |
, |
20 |
, |
20 |
, |
60 |
|
2 |
50 |
4 |
30 |
т |
|
5 |
30 |
Итого |
|
50 |
|
20 |
|
90 |
По этой таблице мы можем вычислить время, необходимое для передвиже ния всех партии, а именно
Общее время = 20 х 7+ 20 х 4 + 20 х 6 + 30 х 3 = 140 + 80 + 120 + 90 = 430 мин
Итак, с помощью этого подхода мы определили, что для перемещения всех партий в зоны сю1адирования потребуется всего 430 минут
Этап 2 Является ли это оптима^гьным распределением'^ Вполне возможно что первонача^пьное распределение не минимизирует
общие затраты (время) Для того чтобы проверить, является ли полученное распределение оптимальным, мы делаем следующее
Этап 2(a) определение скрытых затрат
Затраты на передвижение единицы продукции по каждому из направлений можно рассматривать как два отдельных вида затрат затраты (время) на пере мещение из данной производственной зоны (столбцовые затраты) и затраты (время) на принятие на конкретный ск,тад (рядные затраты) Каждые рядные и столбцовые затра1Ы называются скрытыми затратами
Скрытые затраты оцениваются с помощью только распределенных клеток Для этого необходимо разбить общие затраты в каждой из клеток на рядные и столбцо вые ззфаты Прежде чем начать делать это, необходимо сделать допущение о еди нице затрат Обычно в таких случаях делаются допущения о том, что затраты в первом ряду равны нулю, а другие затраты рассчитываются исходя из этого значе ния Нулевые скрытые заграгы в ряду 1 показаны в следующей таблице
|
А |
|
Б |
|
в |
|
Всего |
1 |
20 |
, |
20 |
, |
20 |
« |
60 0 |
2 |
~ ~ |
•> |
30 |
, |
|
"^ |
30 |
Итого |
20 |
|
50 |
|
20 |
|
90 |
С помощью распределенных KJTCTOK МЫ можем вычислить остающиеся скры |
|||||||
тые затраты Так, маршрут от А к 1 имеет общие «затраты» в 7 |
Они разбиты |
||||||
между рядными |
затратами |
в О и столбцовыми |
затратами в 7 То есть можно |
||||
посчитать, что затраты принятия |
на ск^тад |
1 равны О, а затраты |
перемещения |
из зоны А равны |
7 |
Аналогично, общие затраты для маршрута от Б к 1 состав |
||||||
ляют 4 Рядные затраты составляют О, а столбцовые — 4 |
Точно так же находим, |
|||||||
что столбцовые затраты по зоне В составтяют 8 |
|
|
||||||
Эти затраты |
приведены |
в стедуюшей |
табите |
|
|
|||
|
|
А |
|
Б |
|
в |
|
Всего |
1 |
|
20 |
, |
20 |
, |
20 |
, |
60 0 |
2 |
|
|
А |
30 |
т |
|
"^ |
30 |
Итого |
|
20 |
, |
50 4 |
20 |
, |
90 |
292 |
ГЛАВА 8 |
Аналогично, общие затраты по маршруту Б—2 составляют 3 минуты, стол бцовые затраты составляют 4, а рядные дотжны быть соответственно —1 (Об ратите внимание, что сумма рядных и столбцовых затрат должна равняться затратам в каждой из клеток ) Таким образом, мы можем вывести скрытые затраты в следующую таблицу
1 |
А |
Б |
В |
Всего |
20 , |
20 , |
20 е |
60 0 |
|
2 |
4 |
30 , |
5 |
30 „, |
Итого |
20 . |
50 . |
20. |
90 |
Этап 2(6) |
сравнение скрытых затрат с общими |
|
||
А теперь рассмотрим пустые (или нераспределенные) |
клетки в таблице В |
каждом случае найдем разницу между общими затратами и суммой двух связан ных скрытых затрат Так, на маршруте В — 2 общие затраты составляют 5 Скры тые затраты для этой клетки составляют —1 в ряду и 6 в колонке. То есть мы считаем следующим образом 5 ~ (—1 -ь 6) = 5 — 5 = О
Аналогичным образом мы можем провести вычисления для другой пустой клетки (А—2) Результаты этих вычислений показаны в таблице в верхнем левом
углу соответствующей |
клетки |
|
|
|
|
1 |
А |
Б |
В |
е |
Всего |
20 , |
20 , |
20 |
60 0 |
||
2 |
-2 |
30 3 |
0 |
5 |
30 _, |
4 |
20 |
||||
Итого |
20 . |
50 4 |
, |
90 |
Что касается пустых клеток, то если в них проставляются по результатам вычислении отрицательные значения, это означает, что распределение не яв ляется оптимальным Результаты вычислении приводятся в верхнем левом углу пустых клеток Так, маршрут А—2 дает в нашем случае отрицательное значение Следовательно, можно найти лучшее решение, обеспечивающее большее сни жение затрат
Этап 3 Получение лучшего распредетения Этап 3(a) введение X в клетку
Посмотрим на самое большое отрицательное значение в этих клетках, как они были рассчитаны на этапе 2(6) В этом примере имеется только один мар шрут (А—2), который дает отрицательное значение Следовательно, мы попро
буем поставить в эту клетку как можно больше других значений |
Поэтому вве |
|||||
дем X в эту клетку, как это |
показано |
в таблице |
ниже' |
|
||
1 |
А |
, |
Б |
В |
в |
Всего |
20 |
20 , |
20 |
60 0 |
|||
2 |
-^ +х , |
30 3 |
U |
5 |
30 _, |
|
Итого |
20 |
, |
50 , |
20 |
е |
90 |
Этап 3(6) подкорректируем другие распределенные клетки
Гели мы вводим X в маршрут А—2, то необходимо скорректировать другие маршруты, чтобы не изменились итоговые значения в рядах и колонках Мы должны добавить и вычесть X в других клетках, чтобы добиться этого Обратите внимание, что другие пустые клетки не должны использоваться для этой цели