информатика / транспортная_задача(легкая)
.doc-
Постановка задачи
Предположим, что компания, где вы работаете, имеет два складских помещения, откуда товар поступает в пять ваших магазинов, разбросанных по всей Москве.
Каждый магазин в состоянии реализовать определенное, известное нам количество товара. Каждый из складов имеет ограниченную вместимость. Задача состоит в том, чтобы рационально выбрать – с какого склада в какие магазины нужно доставлять товар, чтобы минимизировать общие транспортные расходы.
-
Решение
В математике подобные задачи выбора оптимального маршрута по нескольким точкам относят к классу так называемых «транспортных задач» (Vehicle Routing Problems, VRP). И, конечно же, давно разработаны способы их решения. Excel предоставляет пользователю один из них – с помощью мощной надстройки Поиск решения (Solver) в меню Сервис (Tools).
Если в меню Сервис вашего Excel такой команды нет – ничего страшного - значит надстройка просто еще не подключена. Для ее подключения откройте меню Сервис – Надстройки (Tools – Add-Ins), в появившемся окне установите флажок Поиск решения (Solver) и нажмите ОК. Excel активирует выбранную надстройку и в меню Сервис (Tools) появится новая команда – Поиск решения (Solver). В Excel 2007 нужно нажать кнопку Офис, далее выбрать Параметры Excel – Надстройки – Перейти.
Перед началом оптимизации необходимо будет составить несложную таблицу на листе Excel – нашу математическую модель, описывающую ситуацию:
ХУИТА Подразумевается, что:
-
Серая таблица (B3:G5) описывает стоимость доставки единицы от каждого склада до каждого магазина.
-
Лиловые ячейки (C14:G14) описывают необходимое для каждого магазина количество товаров на реализацию.
-
Красные ячейки (J10:J11) отображают емкость каждого склада – предельное количество товара, которое склад может вместить.
-
Желтые (C12:G12) и синие (H10:H11) ячейки – соответственно, суммы по строке и столбцу для зеленых ячеек.
-
Общая стоимость доставки (E17) вычисляется как сумма произведений количества товаров на соответствующие им стоимости доставки.
Таким образом, наша задача сводится к подбору оптимальных значений зеленых ячеек. Причем так, чтобы общая сумма по строке (синие ячейки) не превышала вместимости склада (красные ячейки), и при этом каждый магазин получил необходимое ему количество товаров на реализацию (сумма по каждому магазину в желтых ячейках должна быть как можно ближе к требованиям – лиловым ячейкам).
Чтобы выполнить такую оптимизацию откроем меню Сервис (Tools) и выберем команду Поиск решения (Solver). В Excel 2007 это будет кнопка Поиск решения (Solver) на вкладке Данные (Data). Откроется вот такое окно:
В этом окне нужно задать следующие настройки:
-
Целевая ячейка (Target cell) – тут необходимо указать конечную главную цель нашей оптимизации, т.е. розовую ячейку с общей стоимостью доставки (E17). Целевую ячейку можно минимизировать (если это расходы, как в нашем случае), максимизировать (если это, например, прибыль) или попытаться привести к заданной константе.
-
Изменяемые ячейки (By changing cells) – здесь укажем зеленые ячейки (C10:G11), варьируя значения которых мы хотим добиться нашего результата – минимальных затрат на доставку.
-
О граничения (Subject to the Constraints) – список ограничений, которые надо учитывать при проведении оптимизации. В нашем случае это ограничения на вместимость складов и потребности магазинов. Для добавления ограничений в список нужно нажать кнопку Добавить (Add) и ввести условие в появившееся окно:
Кроме очевидных ограничений, связанных с физическими факторами (вместимость складов и средств перевозки, ограничения бюджета и сроков и т.д.) иногда приходится добавлять ограничения «специально для Excel». В нашем случае, например, нужно будет добавить вот такое ограничение:
Оно дополнительно уточнит, что объем перевозимого товара (зеленые ячейки) не может быть отрицательным – для человека такое само собой очевидно, но для компьютера это надо прописать явным образом.
После настройки всех необходимых параметров окно должно выглядеть следующим образом:
Теперь, когда данные для расчета введены, нажмем кнопку Выполнить (Solve), чтобы начать оптимизацию. В тяжелых случаях с большим количеством изменяемых ячеек и ограничений нахождение решения может занять продолжительное время.Мы получим следующие результаты:
Обратите внимание на то, как распределились объемы поставок по магазинам, не превысив при этом емкости наших складов и удовлетворив все запросы по требуемому количеству товаров для каждого магазина.