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

Исследование операций. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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. Какой критерий оптимальности плана транспортной за-
дачи?
Литература: 15.
Интернет-ресурсы: 13.
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+53+51+106+104+153+100 = 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]