
Задача:
Имеется 3 склада содержащие некоторое количество единиц однотипной продукции (см.таблицу 1), имеется также 5 потребителей нуждающихся в определенном количестве данной продукции (см.таблицу 2). При перевозке одной единицы продукции со склада i потребителю j возникают издержкиPij. Величины издержек приведены в таблице 3. При перевозке K единиц продукции со склада i потребителю j суммарные затраты на перевозку составляют K*Pij. Требуется найти такой план перевозок при котором общие затраты на перевозку всей продукции, по всем потребителям, будут минимальны.
Таблица 1
|
Таблица 2
|
Таблица 3 Издержки на перевозку единицы продукции со склада i потребителю j
|
Потребители |
||||
Склад № |
1 |
2 |
3 |
4 |
5 |
1 |
5 |
8 |
7 |
10 |
3 |
2 |
4 |
2 |
2 |
5 |
6 |
3 |
7 |
3 |
5 |
9 |
2 |
Шаг:1 Проверка на сбалансированность
Общее число запасов на складах : |
900 |
; Общая потребность : |
900 |
Задача являетя сбалансированной (закрытой). Шаг:2 Отыскание начального решения. Метод северо-западного угла
Запишем настоящую задачу в виде транспортной таблицы. В верхней строке перечислим потребности потребителей по порядку номеров. В левом столбце перечислим имеющиеся запасы на складах. На пересечении j-го столбца и i-й строки будем записывать количество продукции, поставляемое с i-го склада j-му потребителю. Пока начальное решение не найдено, оставим эти клетки пустыми.
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
Введем вспомогательные строку и столбец, в которых будем отмечать оставшиеся нераспределенные запасы и соответственно потребности (остатки). Изначально их содержимое равно исходным запасам и потребностям , так как еще ничего не распределялось. На рисунке они представлены желтым цветом. Выберем клетку в которую будем распределять продкуцию на следующей итерации, это левая верхняя клетка (севрозападный угол). На рисунке как сама клетка так и соответсвующие ей остатки отображаются красным шрифтом.
|
|
|
|
|
|
|
||||||||||
|
X |
|
|
|
|
200 |
||||||||||
|
|
|
|
|
|
450 |
||||||||||
|
|
|
|
|
|
250 |
||||||||||
|
100 |
125 |
325 |
250 |
100 |
|
Итерация: 1 Заполним клетку a1,b1. Сравним значения остатков для производителя a1 и потребителя b1.
Нераспределенных остатков по потребностям для b1 меньше (см. таблицу выше, красный шрифт), запишем меньшее число в клетку a1,b1 одновременно вычитая его из обеих клеток остатков (см. таблицу ниже). При этом клетка остатков по потребностям обнулится указывая, что все потребности для b1удовлетворены (см. таблицу ниже). Поэтому исключим столбец b1 из дальнейшего рассмотрения (серый фон). Ненулевое значение остатка по запасам для a1 показывает, сколько единиц продукции у него осталось не потребленной.
|
|
|
|
|
|
|
||||||||||
|
100 |
X |
|
|
|
100 |
||||||||||
|
|
|
|
|
|
450 |
||||||||||
|
|
|
|
|
|
250 |
||||||||||
|
0 |
125 |
325 |
250 |
100 |
|
Итерация: 2 Заполним клетку a1,b2. Сравним значения остатков для производителя a1 и потребителя b2.
Нераспределенных остатков по запасам для a1 меньше (см. таблицу выше, красный шрифт), запишем меньшее число в клетку a1,b2 одновременно вычитая его из обеих клеток остатков (см. таблицу ниже). При этом клетка остатков по запасам обнулится указывая, что все запасы производителя a1использованы (см. таблицу ниже). Поэтому исключим строку a1 из дальнейшего рассмотрения (серый фон). Ненулевое значение остатка по потребностям для b2 показывает, сколько единиц продукции ему еще требуется.
|
|
|
|
|
|
|
||||||||||
|
100 |
100 |
|
|
|
0 |
||||||||||
|
|
X |
|
|
|
450 |
||||||||||
|
|
|
|
|
|
250 |
||||||||||
|
0 |
25 |
325 |
250 |
100 |
|