1)Берем самую верхнюю левую пустую ячейку.
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
2)Фигачим туда максимально возможное число так, что бы не нарушить (1*) и (2*).
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Повторяем точно так же для всех остальных незаполненных верхних левых ячеек:
Фигачим 40 потому что на складе осталось именно 40 (60-20=40), а заказчику все равно надо больше.
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим ноль, потому что на складе больше нифига нет (60-20-40=0)
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим ноль, потому что на складе по прежнему нифига нет
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 0 потому что первый заказчик уже получил все что хотел (20=20)
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 70 т.к. заказчику нужно для полного счастья еще 70 единиц (70+40=110), и на складе эти 70 единиц как раз есть (120-0=120<70)
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигичим 40 т.к. заказчику нужно для полного счастья 40 единиц (0+40=40), и на складе эти 40 единиц как раз есть (120-0-70=50<40)
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 10 т.к. это все что осталось на втором складе, а заказчику все равно надо больше.
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 0 потому что первый заказчик уже получил все что хотел
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 0 потому что второй заказчик уже получил все что хотел
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 0 потому что третий заказчик уже получил все что хотел
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Фигачим 100 потому что заказчику надо 100, и на складе как раз есть 100 единиц
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
В итоге получаем таблицу:
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
При решении можно не писать все эти промежуточные таблицы, а написать сразу эту итоговую.
Расшифровка таблицы:
1-ый заказчик получает все 20 единиц с первого склада
2-ой заказчик получает 40 единиц с 1-го склада, 70 со второго.
3-ий заказчик получает 40 единиц со 2-го склада
4-ый заказчик получает 10 единиц со второго склада и 100 с третьего склада
С 1-го склада перевезли 20 единиц первому заказчику, 40 – второму заказчику
Со 2-го склада перевезли 70 ед. 2-му заказчику, 40 ед. 3-ему заказчику, 10 ед. 4-ому заказчику
С 3-го склада перевезли 100 ед. 4-ому заказчику
Общая стоимость всех перевозок:
(1*20+2*40+5*0+3*0)+(1*0+6*70+5*40+2*10)+(6*0+3*0+7*0+4*100) = 20+80+420+200+20+400=1140
Алгоритм «план минимума по строке»
1)Берем строку.
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
2)Ищем среди пустых ячеек этой строки ячейку с наименьшей стоимостью перевозки.
1<2<3<5
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
3)Так же, как и в прошлом алгоритме, фигачим туда максимально возможное число так, что бы не нарушить (1*) и (2*).
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Повторяем так, пока не кончится весь товар на соответствующем этой строке складе
Если в строке несколько пустых ячеек с одинаковым показателем перевозки, выбираем ту, что левее
2<3<5
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
3<5
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Затем переходим к следующей строке.
1<2<5<6
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
2<5<6
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
5<6
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
И последняя строка
3<4<6<7
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
4<6<7
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
6<7
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Общая стоимость всех перевозок:
(1*20+2*40)+(5*10+2*110)+(3*70+7*30) = 790
Алгоритм «план минимума по столбцу»
Алгоритм во многом аналогичен минимуму по строке:
1)Берем столбец
2) Ищем среди пустых ячеек этого столбца ячейку с наименьшей стоимостью перевозки. Если в столбце несколько пустых ячеек с одинаковыми стоимостями перевозок, берем ту ячейку, которая выше.
3) Фигачим туда максимально возможное число так, что бы не нарушить (1*) и (2*).
4) Повторяем так, пока полностью не удовлетворим требования заказчика.
5) Переходим к след. столбцу.
Итоговая таблица для данного алгоритма:
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Общая стоимость всех перевозок:
1*20+(2*40+3*70)+5*40+(2*80+4*30) = 790
Алгоритм «план минимального элемента»
1)Ищем среди всех пустых ячеек таблицы ячейку с наименьшей стоимостью. Если в таблице несколько пустых ячеек с одинаковой стоимостью перевозки, берем ту ячейку, которая находится выше и левее всех остальных
2)Фигачим туда максимально возможное число так, что бы не нарушить (1*) и (2*).
3)Повторить 1,2 пока не увезем весь товар со складов и не удовлетворим все требования заказчиков
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Итог:
Номер склада | Количество товара на складе | Потребность потребителя 1 | Потребность потребителя 2 | Потребность потребителя 3 | Потребность потребителя 4 | ||||
Общая стоимость всех перевозок:
1*20+2*40+2*110+3*70+5*10+7*30=790