Загрузил akira16342002

Анализ транспортной задачи

реклама
АНАЛИЗ ТРАНСПОРТНОЙ ЗАДАЧИ ЗАКРЫТОГО ТИПА
Радченко Н.Д.
Белорусский государственный университет информатики и радиоэлектроники1
г. Минск, Республика Беларусь
Касабуцкий А.Ф. – доцент
Транспортная задача линейного программирования получила широкое распространение в практическом применении на транспорте.
Целью данной задачи является разработка рациональных путей и способов транспортировки товаров, устранение некорректных
или повторных перевозок.
Целью работы является анализ транспортных задач закрытого типа и их реализация при
решении практической задачи. Среди задач линейного программирования особо выделяется
транспортная задача. Смысл заключается в отыскании такого плана перевозок продукции с m складов
в пункт назначения n который потребовал бы минимальных затрат. Через 𝑐𝑖𝑗 обозначим стоимость
перевозки одной единицы груза из 𝑖-го склада к 𝑗-му потребителю. При этом 𝑎𝑖 означает запас груза
у 𝑖-го склада, а 𝑏𝑗 – потребность соответствующего потребителя. Общая стоимость перевозки
вычисляется как сумма всех затрат на перевозку товара от каждого склада к каждому потребителю.
Если выражаться на языке формул, то постановка выглядит так:
𝑚
𝑛
∑ ∑ 𝑐𝑖𝑗 𝑥𝑖𝑗 (𝑚𝑖𝑛)
𝑖=1 𝑗=1
(1)
при следующих ограничениях:
𝑛
∑ 𝑥𝑖𝑗 = 𝑎𝑖 ,
𝑗=1
𝑚
∑ 𝑥𝑖𝑗 = 𝑏𝑖 ,
𝑖=1
𝑥𝑖𝑗 ≥ 0, 𝑐𝑖𝑗 ≥ 0, 𝑎𝑖 ≥ 0, 𝑏𝑖 ≥ 0,
{ 𝑖 = 1, 2, … , 𝑚; 𝑗 = 1, 2, … , 𝑛.
(2)
В условии (1) числа 𝑐𝑖𝑗 обозначают тарифы перевозок единицы груза от 𝑖-го поставщика к 𝑗-му
потребителю, 𝑥𝑖𝑗 – объемы перевозок от 𝑖-го поставщика к 𝑗-му потребителю. Первое равенство
условия (2) означает, что все запасы грузов вывезены. Второе равенство условия (2) означает, что
все потребности потребителей удовлетворены.
Существует две разновидности транспортной задачи – открытая и закрытая. Закрытая задача
характеризуется тем, что суммарная потребность всех потребителей равна суммарным запасам всех
складов. То есть, весь товар на всех складах будет реализован полностью. Формула:
𝑚
𝑛
∑ 𝑎𝑖 = ∑ 𝑏𝑖
𝑖=1
𝑗=1
(3)
В открытой задаче суммарная потребность и суммарные запасы не совпадают. Формула выше
подходит только для транспортных задач закрытого типа.
Данные задачи удобно записывать в виде распределительной таблицы, или таблицы поставок.
Пункты
отправления
𝐴1
𝐵1
𝑐11
𝑥11
…
…
Пункты назначения
…
…
𝐵𝑗
…
…
𝑐1𝑗
…
…
𝑥1𝑗
…
…
…
𝐴𝑖
…
…
𝐴𝑚
…
𝑥𝑚𝑗
…
𝑏1
𝑐𝑖𝑛
…
…
…
𝑐𝑚𝑛
𝑥𝑚𝑛
…
𝑏𝑗
𝑎𝑖
𝑥𝑖𝑛
…
…
𝑐𝑚𝑗
…
…
…
…
…
𝑥𝑚1
Потребности
…
…
…
𝑐𝑚1
…
𝑥𝑖𝑗
…
…
𝑎1
𝑥1𝑛
…
…
𝑐𝑖𝑗
…
𝑥𝑖1
𝑐1𝑛
…
…
…
𝑐𝑖1
…
…
Запасы
𝐵𝑛
𝑎𝑚
𝑏𝑛
Решение транспортной задачи начинается с нахождения опорного плана. Для этого существуют
различные способы. Например, способ северо-западного угла, метод минимального элемента,
метод аппроксимации Фогеля, метод потенциалов, метод дифференциальных рент. Рассмотрим, так
называемый способ северо-западного угла. Сущность его состоит в следующем. Будем распределять
груз в таблице, начиная с загрузки левой верхней, условно называемой «северо-западной», клетки
(1,1), двигаясь затем от нее по строке вправо или по столбцу вниз. В клетку (1,1) занесем меньшее из
чисел a1, b1 то есть 𝑥11 = min(𝑎1 , 𝑏1 ). Если a1> b1, то x11= b1 и первый потребитель B1 будет полностью
удовлетворен. В дальнейшем 1-й столбец таблицы в расчет не принимается: в нем переменные xi1 для
𝑖 = ̅̅̅̅̅̅
2, 𝑚 . Двигаясь вправо по первой строке таблицы, заносим в соседнюю клетку (1,2) меньшее из
чисел (𝑎1 − 𝑏1) и 𝑏2 , то есть 𝑥12 = min(𝑎1 − 𝑏1 , 𝑏2 ). Если (𝑎1 − 𝑏1 ) < 𝑏2 , то запасы первого поставщика
исчерпаны и первая строка таблицы в дальнейшем в расчет не принимается. Переходим к
аналогичному распределению запаса груза второго поставщика.
Если 𝑏1 > 𝑎1 , то 𝑥11 = min(𝑎1 , 𝑏1 ) = 𝑎1 . При этом запас первого поставщика будет исчерпан, а
̅̅̅̅̅
потому 𝑥1𝑘 = 0 для 𝑘 = 2,
𝑛. Первая строка из дальнейшего рассмотрения исключается. Переходим к
распределению запасов второго поставщика. В клетку (2,1) заносим наименьшее из чисел (𝑎2 , 𝑏1 − 𝑎1 ).
Заполнив таким образом клетку (1,2) или (2,1), переходим к загрузке следующей клетки по второй
строке либо по второму столбцу. Процесс распределения по второй, третьей и последующим строкам
(столбцам) производится аналогично распределению по первой строке или по первому столбцу до тех
пор, пока не исчерпаются ресурсы. Последней заполняется клетка (𝑚, 𝑛).
Пример:
B1
A1
B2
10
18
5
6
9
𝒂𝒊
48
8
6
5
30
7
27
8
20
B3
8
27
B4
3
A2
6
7
A3
8
7
10
9
A4
7
B5
5
8
12
4
6
6
20
𝒃𝒋
18
27
42
12
26
Список использованных источников:
1. Е. Г. Гольштейн, Д. Б. Юдин «Задачи линейного программирования транспортного типа», Москва, 1993.
2. И. Л. Акулич, В. Ф. Стрельчонок «Математические методы и компьютерные технологии решения
оптимизационных задач», Рига, 2000.
3. Моисеев Н.Н., Иванов Ю.П., Столярова Е.М. Методы оптимизации. - М.; Наука, 1978г.
4. Бронштейн И.Н., Семендяев К.А. Справочник по математике. - М.; Наука, 1986г.
Скачать