В этой статье мы пошагово рассмотрим, как решить транспортную задачу посредством функций MS Excel. Задачи данного типа изучаются студентами на таких дисциплинах, как исследование операций и методы оптимальных решений.
Условие
Есть некие предприятия и склады с грузом. Каждое предприятие, нуждается в определённом объёме нашего груза. Каждый склад доставляет тонну груза по собственному тарифу. Таким образом, нужно составить маршрут, по которому мы развезём объём груза, удовлетворяющий каждое предприятие, и при этом затратим меньше всего средств.
Так транспортная задача выглядит в своём наиболее общем и типовом виде.
С – это цена за тонну. X – это то, сколько мы привезём тонн со склада на предприятие. Например, если мы примем X11 равным 5, это будет значить, что со склада А1 к потребителю B1 мы повезём 5 тонн по цене C11. Вот нам и нужно как-то распределить всё так, чтобы потратить меньше всего денег.
Варианты решения
Транспортную задачу можно решить «вручную». Существует несколько подходов к её решению на бумаге. Среди них:
- Метод опорного плана;
- Метод минимального элемента;
- Метод Фогеля.
Как правило, решая задачу одним из этих способов, вы получаете решение, находите потенциалы для него и понимаете, что в числе потенциалов есть положительные значения. Соответственно, это говорит о том, что вы нашли неверное решение. Далее вам нужно действовать, что называется, наугад. Вы переставляете различные цифры в таблице, пробуете разные варианты, словом, ищите решение методом «научного тыка». Далее снова пересчитываете потенциалы, и снова ничего не срастается.
Однозначного алгоритма, работающего безотказно в любых условиях, к сожалению, пока не придумали.
Однако для решения транспортной задачи или проверки полученного нами на бумаге результата, мы можем воспользоваться функционалом MS Excel.
Транспортная задача в Экселе
Для решения нам потребуется надстройка «Поиск решения». Возможно, она не будет активирована в вашем редакторе по умолчанию, поэтому, проделываем следующую очередность действий:
- Жмём «Файл»;
- В появившемся меню нажимаем по предпоследней кнопке «Параметры»;
- Вновь находим предпоследний пункт «Надстройки» и переходим в «Управление»:
- Ставим галочку в появившемся окне рядом с пунктов «Поиск решения» и жмём «ОК».
Поиск решения активирован. Далее он будет нами использован.
Пример задачи
На складах A1 — A4 есть суммарно 100 тонн зерна, и их нужно развести по текущим расценкам в пункты B1 – B3, потратив как можно меньше средств на доставку. Тарифы на доставку указаны в центре таблицы.
Шаг 1
Дублируем нашу таблицу в Excel.
Шаг 2
Рисуем другую таблицу.
Диапазон ячеек D12 – F15 заполняем единицами. Эти значения мы впоследствии будем изменять, чтобы найти самый дешёвый вариант перевозки. В диапазоне H12 – H15 должна быть сумма трёх единиц таблицы в строке D12 – F12, а в D17 – F17 – сумма четырёх единиц в столбце. Так напротив каждой строки и каждого столбца
Шаг 3
Рисуем третью таблицу, которая перемножит соответствующие ячейки первых двух таблиц.
Для этого выделяем диапазон 3 на 4 клетки, жмём на кнопку « = », выделяем диапазон D3-F6, жмём на клавиатуре « * », выделяем D12 – F15 и зажимаем сочетание клавиш Ctrl + Shift + Enter. Всё, вы перемножили значения.
Шаг 4
Теперь суммируем все значения последней таблицы. Для этого просто выберите произвольную свободную ячейку в MS Excel. Введите в неё « =СУММ( » и выделите третью таблицу. Нажмите Enter.
Шаг 5
Переходим во вкладку «Данные» и находим там «Поиск решения».
Щелкаем по данной кнопке. Далее всё делаем, как представлено на рисунке.
Описываю сверху вниз всё окно. Выберите целевую ячейку ту, которую мы сделали в 4-ом шаге нашего решения. Далее выберите минимум. В поле «Изменяя ячейки переменных» выберите диапазон, где мы проставили единицы. Выставляем ограничения. Значения, которые будут находиться вместо единиц, должны быть больше нуля и целыми, а потребности не должны превысить запасов. Жмём «Найти решение».
Получаем следующий результат.
Если вы всё сделали правильно, то у вас должно быть всё точно так же.
Заключение
По второй таблице сверху вы видите, сколько тонн и куда мы повезём. В третьей таблице вы видите, сколько это будет стоить. Например, мы повезём 30 тонн в B1 со склада A1 и 10 тонн со склада A3, так как спрос у пункта B1 равен 40. Аналогично и с другими пунктами.