Основные столбцы, количество равно
числу поставщиков
Решение задачи намного упрощается при применении симплексного метода с применением метода потенциалов.
Для решения задачи строится матрица симплексной таблицы 8.
В ней имеются:
- столбцы – «Потребители грузов» для обозначения потребителей;
– «Вспомогательный» для величин потенциалов строк (V) и потенциалов столбцов (U);
– основные столбцы поставщиков;
– «Потребность в грузе» потребителей;
- строки – основные строки потребителей грузов;
– «Наличие груза» у поставщиков.
Предварительный этап.
а) По исходным данным заполняется столбец потребности в грузе и строка наличия груза у поставщиков.
б) В правом верхнем углу каждой клетки на пересечении строк потребителей и столбцов поставщиков проставляется расстояние в километрах от каждого потребителя грузов (i) до каждого поставщика (j).
Этап 1 – производится первоначальное закрепление потребителей за поставщиками методом двойного предпочтения.
а) В каждой строке находим клетку с минимальным расстоянием и помечаем ее звездочкой (*) в правом верхнем углу.
б) В каждом столбце находим клетку с минимальным расстоянием и помечаем ее звездочкой (*) в правом верхнем углу.
в) На пересечении строки и столбца с минимальными расстояниями образуется клетка, помеченная двумя звездочками (**). В предлагаемом примере – это клетка А2 – Б2 с c22 = cmin = 7 км.
г) В клетку, помеченную **, перемещаем груз от соответствующего поставщика. В нашем случае это поставщик А2, имеющий в наличии 85 тонн груза. Но для покрытия потребности потребителя Б2 требуется только 80 тонн. Перемещаем их в клетку А2 – Б2. Потребитель Б2 полностью удовлетворен.
д) В этом же столбце ищем клетку со следующим минимальным расстоянием. В нашем случае это клетка А2 – Б1 с расстоянием c12 = 8 км. Перемещаем туда оставшиеся 5 тонн груза от поставщика А2.
е) Потребитель Б1, получив от поставщика 5 тонн груза, имеет неудовлетворенную потребность 40 – 5 = 35 тонн. Для покрытия ее ищем в строке Б1 клетку с минимальным расстоянием. В нашем случае это клетка А1 – Б1 с минимальным расстоянием c11 = 12 км. Перемещаем туда 15 тонн груза от поставщика А1. После этого неудовлетворенная потребность потребителя Б1 будет 40 – (15+5) = 20 тонн.
ж) Удовлетворяем потребность потребителя Б1 перемещением груза 20 тонн от поставщика Аj.
и) У поставщика Аj осталось 30 – 20 = 10 тонн груза. Перемещаем его в клетку столбца Аj с минимальным расстоянием. Это будет клетка Aj – Б2 с расстоянием aj2 = 10 км.
На этом предварительное распределение грузов закончено.
к) Проверяем объем транспортной работы тонно-километрах ( ). Он будет равен сумме произведений загрузки клеток на расстояния, проставленные в этих клетках
(12)
л) Пробуем оптимизировать закрепление потребителей за поставщиками с помощью перемещения загрузки клеток по горизонтали. Для этого перебираем все строки и в каждой из них ищем возможность перемещения груза в клетку с меньшим расстоянием. При этом должны быть соблюдены два условия:
- уменьшение груза в столбце должно быть компенсировано перемещением груза в другой строке;
- перемещение груза целесообразно, если сумма расстояний в клетках с уменьшающейся загрузкой больше, чем в клетках с увеличивающейся загрузкой.
Так для нашего примера:
строка Б1 – имеется возможность переместить 20 тонн груза из клетки Аj – Б1 в клетку А2 – Б1 и компенсировать это перемещением 20-ти тонн груза из клетки А2 – Б2 в клетку Аj – Б2. При этом сумма расстояний в клетках с уменьшающейся нагрузкой будет
c22 + cij = 7 + 23 = 30,
а сумма расстояний в клетках с увеличивающейся загрузкой
c12 + c2j = 8 + 10 = 18
Оба условия соблюдены. Перемещение целесообразно;
строка Б2 – возможно только обратное перемещение 20-ти тонн груза из клетки Аj – Б2 в клетку А2 – Б2 с компенсацией его перемещением 20-ти тонн из клетки А2 – Б1 в клетку Аj – Б1. Но при этом сумма расстояний в клетках с уменьшающейся загрузкой будет меньше, чем сумма расстояний в клетках с увеличивающейся загрузкой. Перемещение нецелесообразно.
cтрока Бi – имеется возможность перемещения 10 тонн груза из клетки Аj – Бi в клетку А2 – Бi и компенсировать его перемещением 10-ти тонн из клетки А2 – Б2 в клетку Аj – Б2. При этом сумма расстояний в клетках с уменьшающейся нагрузкой (c22 + cij = 7+20=27)
будет равна сумме расстояний в клетках с увеличивающейся загрузкой (сi2 + c2j = 17 + 10 = 27). Перемещение нецелесообразно.
м) Пробуем оптимизировать закрепление потребителей за поставщиками перемещением загрузки клеток по вертикали. Производится по правилам пункта г) этапа 1:
столбец А1– перемещение нецелесообразно, так как загруженная клетка А1 – Б1 имеет кратчайшее в столбце расстояние;
столбец А2– есть возможность перемещения 20-ти тонн груза из клетки А2 – Б1 в клетку А2 – Б2 и компенсировать его перемещением 20-ти тонн груза из клетки Аj – Б2 в клетку Аj – Б1. Однако суммарное расстояние в клетках с уменьшающейся загрузкой (с12 – с2j = 8 + 10 = 18) меньше, чем в клетках с увеличивающейся загрузкой (с22 – с1j = 7 + 23 = 30). Перемещение нецелесообразно;
Таблица 9 – Состояние системы на 1-м этапе
Потреби- тели, Бi | Вспо-мога- тель- ная | Поставщики, Аj | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | -1 | … | ||||
Б1 | c11=12 + 15 | c12=8 -25 | cij=23 | b1=40 | ||
Б2 | c21=14 | c22=7 60 + | c2j=10 - 20 | b2=80 | ||
…. | … | |||||
Бi | ci1=20 - | ci2=17 | cij=20 + 10 | bi=10 | ||
Наличие груза, т. | a1=15 | a2=85 | aj=30 |
столбец Аj –имеется возможность перемещения 10–ти тонн груза из клетки Аj – Бj в клетку Аj – Б2 и компенсировать его перемещением 10-ти тонн груза из клетки А2 – Б2 в клетку А2 – Бi. Но при этом суммарное расстояние в клетках с уменьшающейся загрузкой (с22 + сij = 7 + 20 = 27) равно суммарному расстоянию в клетках с увеличивающейся загрузкой (сi2 + c2j = 17 +10 = 27). Перемещение нецелесообразно;
н) Строим новую симплексную таблицу 9 состояния системы в 1-м этапе с учетом результатов действий этапа 1.
п) Проверяем объем транспортной работы по формуле (12) и сравниваем его с объемом транспортной работы при начальном состоянии системы.
Этап 2 – проверка на оптимальность закрепления потребителей за поставщиками:
а) Проверка производится с помощью специальных вспомогательных показателей, которые называются потенциалами.
Потенциалы бывают:
- для столбцов и обозначаются – «U»;
- для строк и обозначаются – «V».
Основное свойство потенциалов – разность между потенциалом строки и потенциалом столбца равна расстоянию, указанному в клетке
(13)
Следовательно
, (14)
(15)
Потенциалы определяются только через загруженные клетки.
б) Определяем столбец с нулевым потенциалом Uj = 0. Это будет столбец, содержащий загруженную клетку с наибольшим расстоянием сij. В нашем примере это будет столбец Аj, cодержащий клетку Aj – Бi с расстоянием сij = 20 км. Проставляем нулевой потенциал в таблице 9.
в) Зная потенциал столбца Аj = 0 и расстояния cij в загруженных клетках Аj – Б2 и Аj – Бj, по формуле (14) можем определить потенциалы строк Б2 и Бj
,
г) Зная потенциал строки Б2, по формуле (15) можем определить потенциал столбца А2
д) Зная потенциал столбца А2, по формуле (14) можем определить потенциал строки Б1
е) Зная потенциал строки Б1, можем определить потенциал столбца А1 по формуле (14)
Заносим потенциалы в таблицу 9;
ж) Необходимо помнить, что для нахождения всех численных значений потенциалов необходимо, чтобы число загруженных клеток (nз.к) в таблице – матрице было равно сумме основных столбцов (n) и строк (m) минус единица
(16)
Если , то необходимо искусственно загрузить недостающее число клеток, проставив в них нули (нулевую загрузку) и оперировать с ними как с загруженными. Нули ставятся в клетки, имеющие потенциал в строке или столбце.
и) Отыскиваем незагруженные клетки, у которых разность потенциалов больше расстояния, указанного в клетке
(17)
Наличие таких клеток указывает на не оптимальность имеющегося в таблице решения. В нашем примере это клетка А1 – Бi, у которой
к) Для этих клеток определяем число
(18)
Для нашего примера это клетка А1 – Бi, для которой
Вносим значения dij в кружке в верхний левый угол этих клеток.
Этап 3 – улучшение полученного результата с помощью построения контуров.
а) Находим клетку с максимальным положительным числом dij в кружке. В нашем примере это клетка А1 – Бi c di1=1.
б) Начиная с этой клетки строим контур, вершины которого должны лежать в загруженных клетках.
в) Всем вершинам контура присваиваем последовательно знаки «минус» и «плюс» начиная с вершины, с которой начато построение. В нашем примере – это вершина, находящаяся в клетке А1 – Бi.
г) Из всех вершин со знаком «плюс» выбираем вершину с наименьшей загрузкой. В нашем примере – это вершина, лежащая в клетке Б – Аj с загрузкой 10 тонн. Эту загрузку отнимаем от загрузки клеток с вершинами со знаком «плюс» и прибавляем к загрузкам клеток с вершинами со знаком «минус».
В нашем примере:
- клетка А1 – Б1 15 – 10 = 5 тонн;
- клетка А2 – Б1 25 + 10 = 35 тонн;
- клетка А2 – Б2 60 – 10 = 50 тонн;
- клетка Аj – Б2 20 + 10 = 30 тонн;
- клетка Аj – Бi 10 – 10 = 0 тонн;
- клетка А1 – Бi 0 + 10 = 10 тонн;
д) Строим новую таблицу–матрицу, в которую вносим пересчитанные загрузки клеток и не измененные загрузки клеток (таблица 10).
Этап 4 и последующие этапы
а) Повторяем действия пунктов и), к) этапа 1 и пунктов этапа 2 до тех пор, пока не исчезнут клетки с положительным числом «d». Таблица с таким результатом несет в себе окончательное решение с оптимальным закреплением потребителей за поставщиками.
б) Производим проверку объема транспортной работы и по разности ее с объемом при предварительном распределении оцениваем достигнутую степень оптимальности закрепления поставщиков за потребителями.
Таблица 10 – Состояние системы на 3 этапе
Потреби- тели | Вспо-мога- тель- ная | Поставщики | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | -1 | … | ||||
Б1 | c11=12 . 5 | c12=8 | cij=23 | b1=40 | ||
Б2 | c21=14 | c22=7 | c2j=10 | b2=80 | ||
…. | ||||||
Бi | ci1=20 | ci2=17 | cij=20 | bi=10 | ||
Наличие груза, т. | a1=15 | a2=85 | aj=30 |
1.5.4Задача на минимум времени поставки
Подобные задачи решаются при расчете перевозок скоропортящихся продуктов питания и строительных материалов, например, бетона.
Суть задачи.
а) Дано:
- в пунктах отправления А1, А2, …, Аj имеется груз в количестве a1, a2,…aj тонн;
- этот груз необходимо доставить от поставщиков к потребителям Б1, Б2, …, Бi в количестве соответственно b1, b2,…,bi тонн;
- время доставки груза от поставщиков к потребителям задано и равно соответственно .
б) Требуется найти вариант перевозок, обеспечивающий минимальное время доставки грузов при наличии достаточного количества автомобилей.
Данная задача аналогична предыдущей задаче по оптимальному закреплению грузополучателей за грузоотправителями и решается симплексным методом с применением метода потенциалов. Только в отличие от предыдущей задачи в правых углах основных клеток симплексной таблицы – матрицы проставляются вместо расстояний времена доставки грузов .
Таблица 11 – Первоначальная таблица – матрица
Потреби- тели | Вспо-мога- тель- ная | Поставщики | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | … | |||||
Б1 | * τ11=18 | * 12=20 | * ij=29 | b1=75 | ||
Б2 | * 21=10 | 22=75 | 2j=45 | b2=30 | ||
…. | ||||||
Бi | ** i1=5 | i2=31 | ij=60 | bi=35 | ||
Наличие груза, т. | a1=60 | a2=50 | aj=30 |
Для решения задачи составляем первоначальную симплексную таблицу – матрицу 11, проставляя в нее заданные значения и .
Этап 1.
а) Строим таблицу 12 первоначального закрепления потребителей за поставщиками по правилам этапа 1 предыдущей
Таблица 12 – Первоначальное закрепление потребителей
за поставщиками (1-й этап)
Потреби- тели | Вспо-мога- тель- ная | Поставщики | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | … | |||||
Б1 | * 11=15 | * 12=20 | … | * ij=29 | b1=75 | |
Б2 | * 21=10 25 | 22=75 | 2j=45 | b2=30 | ||
…. | ||||||
Бi | ** i1=5 | i2=31 | ij=60 | bi=35 | ||
Наличие груза, т. | a1=60 | a2=50 | aj=30 |
задачи.
б) Пробуем оптимизировать первоначальное закрепление с помощью перемещения загрузки клеток по горизонтали и вертикали по правилам пункта л) этапа 1 предыдущей задачи. Вариантов перемещения нет.
Этап 2 – проверяем оптимальность закрепления потребителей за поставщиками с помощью потенциалов по рекомендациям этапа 2 предыдущей задачи.
а) Находим незагруженную клетку с разностью потенциалов большей, чем время в клетке. Это клетка А1 – Б1 с числом d11 = 29 – 11 – 15 = 3. Оптимальность не достигнута. Вносим число d11 = 3 в угол этой клетки;
Таблица 13 – Состояние системы на 2-м этапе
Потреби- тели | Вспо-мога- тель- ная | Поставщики | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | … | |||||
Б1 | 11=15 – | 12=20 | =29 + 25 | b1=75 | ||
Б2 | 21=10 + 25 | 22=75 | 2j=45 – 5 | b2=30 | ||
…. | ||||||
Бi | i1=5 | i2=31 | ij=60 | bi=35 | ||
Наличие груза, т. | a1=60 | a2=50 | aj=30 |
Этап 3 – улучшаем закрепление потребителей за поставщиками с помощью построения контуров.
а) Строим контур через клетку А1 – Б1 по правилам этапа 3 предыдущей задачи.
в) Пересчитываем загрузки клеток вершин контура по правилам пункта г) этапа 3 предыдущей задачи.
- клетка А1 – Б1 0 + 25 = 25,
- клетка А1 – Б2 25 – 25 = 0,
- клетка Аj – Б2 5 + 25 = 30,
- клетка Аj – Б1 25 – 25 = 0
г) Строим новую таблицу состояния системы на 3-м этапе;
д) Определяем потенциалы по формулам (14) и (15) и заносим их в таблицу 14.
е) Находим незагруженные клетки с разностью потенциалов большей времени в клетке. Это клетка А1 – Б2. Помечаем ее « » и исключаем ее из рассмотрения.
ж) Находим клетки с положительными dij. Таковых нет.
Оптимальное решение, обеспечивающее минимум затрат автомобиле-часов на перевозку заданного количества грузов, получено. Оптимизировать его с помощью контуров нет смысла.
Таблица 14 – Состояние системы на 3-м этапе
Потреби- тели | Вспо-мога- тель- ная | Поставщики | Потреб- ность в грузе, т. | |||
А1 | А2 | … | Аj | |||
U V | … | |||||
Б1 | 11=15 | 12=20 | ij=29 | b1=75 | ||
Б2 | 21=10 ν | 22=75 Х | 2j=45 | b2=30 | ||
…. | ||||||
Бi | i1=5 | i2=31 | ij=60 Х | bi=35 | ||
Наличие груза, т. | a1=60 | a2=50 | aj=30 |
Но самый короткий срок доставки грузов потребителям не обеспечен. Для достижения этого переходим к 4-му этапу.
Этап 4 – достижение самого короткого срока доставки грузов.
а) Находим загруженную клетку с наибольшим временем доставки груза. В нашем примере это клетка Аj – Б2 с . Обводим это число кружком..
б) Перечеркиваем все незагруженные клетки (X), у которых время доставки груза больше . Они не будут участвовать в дальнейших расчетах.
в) Построим контур, в котором одна вершина лежит в незагруженной клетке с меньше , одна – в клетке с , остальные – в загруженных клетках. Обязательное условие: незагруженная клетка должна иметь знак «минус» – это начало контура; клетка с должна иметь знак «плюс». (Для нашего примера возможности построения контура нет).
г) Сравниваем загрузку клетки с с загрузкой клеток со знаком «плюс», входящих в контур. Если она является наименьшей, то эту загрузку вычитаем из загрузки клеток со знаком «плюс» и прибавляем к загрузке клеток со знаком «минус».
д) Строим новую таблицу распределения загрузок клеток с измененными данными.
е) Эти операции повторяются до тех пор, пока в таблице не исчезнут незагруженные клетки с меньшим сроком доставки, чем в загруженной клетке с .
1.5.5Надежность соблюдения графика поставки грузов
Одной из важнейших задач транспорта является доставка грузов «точно в срок». Такие задачи особенно характерны для перевозки строительных и торговых грузов. В первом случае – когда строительство ведется по монтажному графику, в котором для каждого дня указано, в какие часы какие строительные материалы должны быть завезены. И если строительство ведется без промежуточного складирования («с колес»), то автомобиль к данному моменту должен прибыть на стройку. Во втором случае (в торговле) – это перевозка скоропортящихся продуктов питания, для быстрой реализации которых продавцы назначают наиболее удобное время для их завоза. Эти задачи решаются с помощью разработки часовых графиков завозки грузов.
Суть задачи.
а) Дано:
- имеется i строек – Б1, Б2….,Бi (например, 5 пунктов), на которые автомобили должны доставить грузы от поставщика К;
- время простоя автомобилей по загрузкой – tп мин (например, 3 мин.);
- время простоя автомобилей по разгрузкой – tр мин. (например, 2 мин.);
- время оборота автомобилей по маршрутам «поставщик – стройка – поставщик» – toi для каждой стройки (пример на рисунке 12);
- число оборотов автомобилей по маршрутам «поставщик – стройка – поставщик» – noi для каждой стройки (пример на рисунке 12).
б) Требуется построить план перевозок по часовым графикам с условием обеспечения равномерности прибытия автомобилей к пункту погрузки.
Для решения задачи необходимо построить логистическую транспортную цепь (граф) перевозок, содержащий поставщика грузов, стройки (потребители грузов), маршруты перевозок (ребра графа). На каждом ребре графа проставляются соответствующие значения времени оборота автомобилей (toi) в минутах и заданное число оборотов автомобилей (noi) в соответствии с рисунком 12.
to2=21 no3=5
no2=6 to3=27
n04=2
to1=39 to4=45
no1=3 to5=33 no5=4
Рисунок 12 – Граф транспортной сети
Далее решение производится в следующем порядке.
а) Устанавливается условная единица времени, равная времени погрузки автомобилей (tп) в минутах и вычисляется время оборота автомобилей на каждом маршруте по формуле
(19)
б) Строится таблица значений времен оборота автомобилей ( ) и оборотов автомобилей (noi) для каждого потребителя (Бi).
Таблица 15 – Время оборота и число оборотов автомобилей
Показатели | Стройки | ||||
Б1 | Б2 | Б3 | Б4 | Б5 | |
=13 | =7 | =9 | =15 | =11 | |
=3 | =6 | =5 | =2 | =4 |
в) Определяется общее количество груженых ездок, которое будет равно сумме оборотов автомобилей для всех строек
(20)
Для нашего примера
г) Определяется количество автомобилей, необходимое для безпростойной работы поста погрузки у поставщиков по формуле
, (21)
где N – число постов погрузки;
to – средневзвешенная величина времени оборота автомобилей, мин.
, мин. (22)
– коэффициент неравномерности прибытия автомобилей на посты погрузки.
Учитывая, что
,
получим окончательно
(23)
Принимая N = 1 и = 1, для нашего примера получим
автомобилей.
Если получается дробное число, то его округляют до целого в сторону увеличения.
д) Подготавливается симплексная таблица – матрица в соответствии с рисунком 13. Количество основных строк определяется по формуле
(24)
Количество основных столбцов равно количеству автомобилей, необходимых для безпростойной работы постов погрузки
(25)
е) Задаем время начала погрузки 1-го автомобиля (tНП1). Например, tНП1=800 часов. Тогда время начала погрузки последующих
автомобилей (tнпi) будет равно времени погрузки предыдущего автомобиля (tнп(i – 1) плюс время простоя под погрузкой (tп)
tнпi = tнп(i – 1) + tп , мин. (26)
Для нашего примера при заданных выше значениях tнп1 и tп
1-й автомобиль начнет погрузку в 800,
2-й автомобиль начнет погрузку в 800 + 3 мин. = 803,
3-й автомобиль начнет погрузку в 803 + 3 мин. = 806, и так далее.
Этими значениями заполняется строка «Время начала погрузки автомобилей» симплексной таблицы. Значения этих времен соответствуют началу погрузки для первых ездок первого цикла погрузки), количество которых равно числу автомобилей (в нашем примере – 10).
ж) Заполняют первую основную строку таблицы.
Всю работу поста погрузки можно разбить на моменты погрузки, чередующиеся через время простоя автомобиля под
Основные строки, nстр = ne – A | Номер после-дую-щих момен-тов | Время после- дующ-их мо- ментов ч., мин. | Номер автомобиля (маршрута) – Аi | ||||||||
Время начала погрузки автомобилей | |||||||||||
800 | 803 | 806 | 809 | 812 | 815 | 818 | 821 | 824 | 827 | ||
830 | |||||||||||
833 | |||||||||||
836 | |||||||||||
839 | |||||||||||
842 | |||||||||||
16 | 845 | ||||||||||
848 | |||||||||||
851 | |||||||||||
854 | |||||||||||
857 | |||||||||||
Занятость автомобилей | |||||||||||
для последних ездок |
|