Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Исследование операций. Лабораторный практикум
.pdf
332
411
123
ijс
Потребности
Запасы
В1
В2
В3
100
250
200
А1
150 3 2 1 А2
100 1 1 4 А3
300 2 3
3
Потребности
Запасы
В1
В2
В3
100
250
200
А1
150
100 3
50 2
– 1
А2
100
– 1
100 1
– 4
А3
300
– 2
100 3
200 3
Найти оптимальный план доставки этих грузов.
Для решения задачи необходимо выполнение следующего
условия: суммарные запасы продукции у поставщиков должны
равняться суммарной потребности потребителей.
Запасы поставщиков = 150 + 100 + 300 = 550
Потребность потребителей = 100 + 250 + 200 = 550
Следовательно, задача сбалансирована.
Вначале найдем опорный план с помощью диагонального
способа без учета тарифов. Для решения задачи составляется
таблица перевозок (табл. 1).
Таблица 1
Таблица перевозок
Правила заполнения таблицы несложные. Заполнение начинают с левой верхней клетки, в которую записывают грузопоставку исходя из наличия груза и потребности в нем. Наличие
груза у поставщика А1 составляет 150 ед. а потребность потребителя В1 в грузе равна 100 ед. Запишем этот груз полностью,
а остаток 50 ед. запишем следующему потребителю, третью
ячейку вычеркнем, так как весь груз у первого поставщика изъят, подобные действия произведем со вторым и третьим поставщиком. Получим таблицу перевозок (табл. 2):
Таблица 2
Таблица перевозок Итерация 1
51

Как видим, при распределении грузов тарифы не учиты-
Потребности
Запасы
В1
В2
В3
100
250
200
А1
150 3 2
1
А2
100 1 1
4
А3
300 2 3
3
Потребности
Запасы
В1
В2
В3
100
250
200
А1
150
– 3
– 2
150 1
А2
100 1 1
4
А3
300 2 3
3
Потребности
Запасы
В1
В2
В3
100
250
200
вались. Расходы на доставку грузов составляют:
f = 3 ∙ 100 + 2 ∙ 50 + 1 ∙ 100 + 3 ∙ 100 + 3 ∙ 200 = 1400 ед.
Найдем опорный план методом минимального элемента с
учетом тарифов перевозок и сравним решения. Составим такую же таблицу перевозок, но вот порядок заполнения будет
отличен от предыдущего случая (табл. 3):
Таблица 3
Таблица перевозок
Грузопоставки начнем вписывать в клетку, которая имеет
наименьший тариф. Если таких клеток несколько, то начинать
записывать можно в любую из них. Минимальный тариф в
таблице равен единице, а так как таких клеток три, то выберем первой, например, ячейку А1В3. Размер грузопоставки
определяется исходя из наличия груза у поставщика и потребности потребителя. Наличие груза у первого поставщика
равно 150 ед., потребность равна 200 ед. Мы забираем весь
груз у А1 и записываем (табл. 4):
Таблица 4
Итерация 2
це, оставшиеся клетки с одинаковым тарифом последовательно
заполняем (табл. 5):
Заполняем следующую клетку с тарифом, равным едини-
Таблица 5
Итерация 3
52

А1
150
– 3
– 2
150 1
А2
100
100 1
– 1
– 4
А3
300
– 2
250 3
50 3
Потребности
Запасы
В1
В2
В3
αi
100
250
200
А1
150
100 3
50 2
– 1
α1 = 0
А2
100
– 1
100 1
– 4
α2 = 1
А3
300
– 2
100 3
200 3
α3 = –1
βj
β1 = 3
β2 = 2
β3 = 2
Вычислим транспортные расходы:
f = 1 ∙ 100 + 3 ∙ 50 + 1 ∙ 150 + 3 ∙ 250 = 1150 ед.
Как видим, опорный план, полученный методом минимального элемента, дает лучший результат, чем диагональный способ.
После того как получено допустимое решение, его надо
проверить на оптимальность с помощью метода потенциалов.
Перед проверкой убеждаемся, что число заполненных клеток
равно соотношению m + n – 1. В нашей таблице их 3 + 3 – 1 = 5.
Признак оптимальности: решение оптимально, если во всех
свободных клетках выполняется неравенство: αi + cij ≥ βj, где αi
и βj – потенциалы, cij – тарифы перевозок. Вычислим αi и βj с
помощью выше указанного неравенства (табл. 6):
Таблица 6
Итерация 4
Принято считать, что α1 всегда равно 0. Если не сделать
это допущение, то задача не будет иметь решения. Вычисления остальных значений потенциалов производят по базовым
(заполненным) клеткам:
α
= 0
1
β
= 3 + 0 = 3
1
β
= 2 + 0 = 2
2
α
= 2 – 1 = 1
2
α
= 2 – 3 = –1
3
β
= –1 + 3 = 2
3
Проверку на оптимальность делают по свободным
клеткам с помощью этого же неравенства:
А1В3: 0 + 1 ≥ 2 – нет
А2В1: 1 + 1 ≥ 3 – нет
53

А2В3: 1 + 4 ≥ 2 – да
Потребности
Запасы
В1
В2
В3
αi
100
250
200
А1
150
100 3
50 + 2
– 1
α1 = 0
А2
100
– 1
100 1
– 4
α2 = 1
А3
300
– + 2
100 – 3
200 3
α3 = –1
βj
β1 = 3
β2 = 2
β3 = 2
Потребности
Запасы
В1
В2
В3
100
250
200
А1
150
– 3
150 2
– 1
А2
100
– 1
100 1
– 4
А3
300
100 2
– 3
200 3
А3В1: –1 + 2 ≥ 3 – нет.
в результате проверки мы выявили три недостаточные клетки.
Находим цикл пересчета (табл. 7):
Цикл пересчета – это ход ладьи по базовым клеткам с
чередованием знаков «+» и «–», начиная с недостаточной
клетки и замыкаясь в ней же.
Таблица 7
Итерация 5
В клетках с минусовыми отметками выбирают минимальное число. В нашем случае это число равно 100. Пересчет
делают следующим образом: там, где стоит знак «–», это число отнимают, а где «+», то прибавляют. Значения, не входящие в цикл пересчета, переписывают без изменений. Получает
таблицу, в которой соотношение m + n – 1 не выполняется,
и поэтому выбираем клетку с минимальным тарифом и, проставляя в ней ноль, считаем ее условно базовой (табл. 8).
Таблица 8
Итерация 6
Вначале транспортные расходы составляли 1400 ед. Считаем сейчас:
f2 = 2 ∙ 100 + 2 ∙ 150 + 1 ∙ 100 + 3 ∙ 200 = 1200 ед.
Уменьшение этого показателя говорит о том, что мы на
верном пути. Полученное решение снова проверяем на оптимальность (табл. 9):
54

Таблица 9
Потребности
Запасы
В1
В2
В3
αi
100
250
200
А1
150
– 3
150 – 2
– + 1
α1=0
А2
100
– 1
100 1
– 4
α2=1
А3
300
100 2
– + 3
200 – 3
α3=-2
βj
β1=0
β2=2
β3=1
Потребности
Запасы
В1
В2
В3
αi
100
250
200
А1
150
– 3
– 2
150 1
α1 = 0
А2
100
– 1
100 1
– 4
α2 = 0
А3
300
100 2
150 3
50 3
α3 = –2
βj
β1 = 0
β2 = 1
β3 = 1
50150100
100
150
X
Итерация 7
Проверка выявляет одну недостаточную клетку, для которой находим цикл пересчета:
А1В1: 0 + 3 ≥ 0 – да
А1В3: 1 + 0 ≥ 1 – да
А2В1: 1 + 1 ≥ 0 – да
А3В2: -2 + 3 ≥ 2 – нет
В отрицательных клетках из двух значений выбираем
число 150, которое отнимаем, где знак «–» и прибавляем где
знак «+» (табл. 10):
Таблица 10
Итерация 8
Транспортные расходы:
f3 = 2 ∙ 100 + 3 ∙ 150 + 1 ∙100 + 1 ∙ 150 + 3 ∙ 50 = 1050 ед.
Проверяем снова на оптимальность и убеждаемся, что
найден оптимальный план:
А1В1: 0 + 3 ≥ 0 – да
А1В2: 0 + 2 ≥ 1 – да
А2В1: 0 + 1 ≥ 0 – да
А2В3: 0 + 4 ≥ 1 – да
Ответ: f = 1050 ед.,
55

Задание 2. Решить транспортную задачу
Потребности
Запасы
В1
В2
В3
В4
В5
50
60
50
40
70
А1
90 9 1 1 5
6
А2
70 6 4 6 8
5
А3
110 2 9 3 5
3
Потребности
Запасы
В1
В2
В3
В4
150
130
150
140
А1
200 7 8 1 2
А2
180 4 5 9 8
А3
190 9 2 3 6
Задание 3. Решить транспортную задачу
Контрольные вопросы
1. Алгоритм метода наименьшего (наибольшего) элемента.
2. Метод потенциалов и его алгоритм.
3. Какой план транспортной задачи называется опорным?
4. Какой критерий оптимальности плана транспортной за-
дачи?
Литература: 1–5.
Интернет-ресурсы: 1–3.
56

7. ТРАНСПОРТНАЯ ЗАДАЧА. ФИКТИВНЫЙ
ПОСТАВЩИК
Цель работы – научится решать транспортные задачи.
Формируемые компетенции или их части: ПК-18 –
способность использовать соответствующий математический
аппарат и инструментальные средства для обработки, анализа
и систематизации информации по теме исследования.
Теоретическая часть
Транспортная задача называется открытой, если не соблюдается баланс между объемом спроса и объемом предложения.
Например, если запасы на всех складах меньше или больше
потребностей всех магазинов-потребителей, то имеем дело с
открытой транспортной моделью
Для того чтобы применить к задаче метод потенциалов,
необходимо привести открытую транспортную задачу к закрытой модели. Т. е. необходимо выполнить преобразования, при
которых «то, что есть, станет равным, тому, что надо».
Все очень просто. Если не хватает товара, чтобы удовлетворить потребности магазинов, нужно добавить мнимого
(фиктивного) поставщика. Если предложение превышает спрос,
добавим мнимого (фиктивного) потребителя.
В открытой транспортной задаче это реализуется добавлением строки или столбца, в зависимости от того, чего не хватает. Так как в реальности фиктивный поставщик (потребитель) не существует, то стоимость доставки до него от любого пункта равна нулю.
Чтобы привести открытую транспортную задачу к закрытому (замкнутому) виду, добавляем столбец (строку) с нулевыми стоимостями.
Если превышают запасы, добавляем фиктивного потребителя (столбец).
Если превышает спрос, добавляем фиктивного поставщика
(строку).
Оборудование и материалы (перечень используемого
оборудования) – соответствующее программное обеспечение.
57

Задание 1. Решить транспортную задачу с фиктивным
Поставщик
Потребитель
Запас
B1
B2
B3
B4
A1 8 3 5 2
10
A2 4 1 6 7
15
A3 1 9 4 3
25
Потребность
5
10
20
25
поставщиком.
Требуется составить план перевозок, при котором общая
стоимость доставки продукции будет наименьшей.
Таблица 1
Условие задачи
Решение
Для решения задачи необходимо выполнение следующего
условия: суммарные запасы продукции у поставщиков должны
равняться суммарной потребности потребителей.
Проверим.
Запасы поставщиков: 10 + 15 + 25 = 50 единиц продукции.
Потребность потребителей: 5 + 10 + 20 + 25 = 60 единиц
продукции.
Разница в 10 единиц продукции. Введем в рассмотрение
фиктивного поставщика A4, с запасом продукции, равным 10
единицам. Стоимость доставки единицы продукции от поставщика A4 ко всем потребителям примем равной нулю (табл. 2).
Теперь суммарные запасы продукции у поставщиков равны
суммарной потребности потребителей.
Для решения задачи необходимо выполнение следующего
условия:
количество задействованных маршрутов =
= количество поставщиков +
+ количество потребителей – 1
Поэтому, если возникнет ситуация, в которой будет необходимо исключить столбец и строку одновременно, мы исключим что-то одно.
Начинаем заполнять таблицу от левого верхнего угла и
постепенно «двигаемся» к правому нижнему. От северо-запада
к юго-востоку (табл. 3).
58

Таблица 2
Поставщик
Потребитель
Запас
B1
B2
B3
B4
A1 8 3 5 2
10
A2 4 1 6 7
15
A3 1 9 4 3
25
A4 0 0 0 0
10
Потребность
5
10
20
25
Поставщик
Потребитель
Запас
B1
B2
B3
B4
A1
5 8
5 3 5 2
10
A2 4 5 1
10 6
7
15
A3 1 9
10 4
15 3
25
A4 0 0
0
10 0
10
Потребность
5
10
20
25
A1B1 :
v1 + u1 = 8
v1 = 8 – 0 = 8
A1B2 :
v2 + u1 = 3
v2 = 3 – 0 = 3
A2B2 :
v2 + u2 = 1
u2 = 1 – 3 = –2
A2B3 :
v3 + u2 = 6
v3 = 6 – (–2) = 8
A3B3 :
v3 + u3 = 4
u3 = 4 – 8 = –4
A3B4 :
v4 + u3 = 3
v4 = 3 – (–4) = 7
A4B4 :
v4 + u4 = 0
u4 = 0 – 7 = –7
Итерация 1
Таблица 3. Итерация 2
Стоимость доставки продукции для начального решения
несложно посчитать.
5 ∙8+5∙3+5∙1+10∙6+10∙4+15∙3+10∙0 = 205 ден. ед.
Проверим, оптимально ли данное решение.
Каждому поставщику Ai ставим в соответствие некоторое
число ui, называемое потенциалом поставщика. Каждому потребителю Bj ставим в соответствие некоторое число vj, называемое потенциалом потребителя.
Для задействованного маршрута, сумма потенциалов поставщика и потребителя равна тарифу задействованного маршрута.
Значение одного потенциала необходимо задать. Пусть u1 = 0.
Последовательно найдем значения потенциалов (табл. 4).
59

Таблица 4
Поставщик
Потребитель
U
B1
B2
B3
B4
A1
5 8
5 3 5 2
u1 = 0
A2 4 5 1
10 6
7
u2 = –2
A3 1 9
10 4
15 3
u3 = –4
A4 0 0
0
10 0
u4 = –7
V
v1 = 8
v2 = 3
v3 = 8
v4 = 7
A1B3 :
Δ13 = c13 – (u1 + v3) = 5 – (0 + 8) = –3
A1B4 :
Δ14 = c14 – (u1 + v4) = 2 – (0 + 7) = –5
A2B1 :
Δ21 = c21 – (u2 + v1) = 4 – (–2 + 8) = –2
A2B4 :
Δ24 = c24 – (u2 + v4) = 7 – (–2 + 7) = 2
A3B1 :
Δ31 = c31 – (u3 + v1) = 1 – (–4 + 8) = –3
A3B2 :
Δ32 = c32 – (u3 + v2) = 9 – (–4 + 3) = 10
A4B1 :
Δ41 = c41 – (u4 + v1) = 0 – (–7 + 8) = –1
A4B2 :
Δ42 = c42 – (u4 + v2) = 0 – (–7 + 3) = 4
A4B3 :
Δ43 = c43 – (u
4
+ v3) = 0 – (–7 + 8) = –1
Поставщик
Потребитель
Запас
B1
B2
B3
B4
A1
5 8
5 – 3
5
–5 2
10
A2 4 5 1
10 6
7
15
A3 1 9
10 4
15 3
25
A4 0 0
0
10 0
10
Потребность
5
10
20
25
Итерация 3
Найдем оценки незадействованных маршрутов.
Есть отрицательные оценки, следовательно, возможно получить новое решение, как минимум, не хуже имеющегося.
ШАГ 1. Выберем ячейку A1B4, ее оценка отрицательная. По-
ставьте курсор в выбранную ячейку A1B4. Используя горизонтальные и вертикальные перемещения курсора, соедините непрерывной линией заполненные ячейки так, чтобы вернуться в исходную ячейку. Ячейки, расположенные в вершинах построенной
ломаной линии, образуют цикл для выбранной ячейки. Он единственный. Направление обхода не имеет значения (табл. 5).
Таблица 5
Итерация 4
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
