К постановкам задач

5.П.2. Простая транспортная задача

Постановка задачи

Минимизируйте суммарные транспортные издержки для задачи, приведенной в таблице. Знак вопроса означает, что клиент недоступен для источника.
источники\клиентыК01К02К03К04К05К06К07К08К09К10ресурсы
И114651217141411?1217
И2131031514981641723
И3151311?9267141710
И4121741214611791824
И51812114817?11895
заказ611113121283211

Решение задачи

Модель MO5P2

Параметры задачи приведены в таблице в постановке задачи.
Для решения задачи можно использовать следующую модель.
Ресурсы источников (тип "Приобретение") и Заказ клиентов (тип "Приобретение") поступают в Распределение (тип "Производство"), где происходит распределение источников по заказчикам.
В Распределении используется по одному процессу на каждое возможное распределение, т.е. создается процесс для каждой пары (клиент, источник). Название процесса образуется соединением обозначения клиента и обозначения источника, например, К05И2 для пары клиент = К05, источник = И2. Это может показаться неудобным и громоздким, но данные по каждой паре все равно куда-то должны вводиться. Если построить модель с меньшим количеством процессов, в ней все равно где-то будет список со всеми парами и соответствующими им данными. Поэтому, эта громоздкость - только кажущаяся, неизбежная. Для каждого процесса задается его цена - издержки из параметров задачи.
При реальной практической работе с полнофункциональной версией GEM все данные извлекались бы из внешней базы данных, а имена процессов создавались бы автоматически. В данном примере мы делаем это вручную.
Для пар, для которых в таблице стоит вопросительный знак, можно было бы не создавать процесс. Но в дальнейшем ситуация может измениться, вместо вопросительного знака появится число. Чтобы не менять модель, процесс создается, но его цена делается очень высокой, настолько, что процесс не может войти в решение. Для дополнительной уверенности для этого процесса задается Мах(ед) = 0.

Вставим в модель объект типа "Приобретение" с именем "Ресурсы", объект типа "Приобретение" с именем "Заказ", объект типа "Производство" с именем "Распределение". Проведем связи-потоки из Ресурсов в Распределение и из Заказа в Распределение.
В Ресурсах, в таблице закупок, введем материалы - источники И1,...,И5. Зададим для них Мах кол-во из параметров задачи.
В Заказе, в таблице закупок, введем 10 материалов - клиентов К01,...,К10. Зададим для них Min кол-во = Мах кол-во = заказу из параметров задачи.
В Распределение, в процессах, добавим 50 процессов-пар: KiИj, где i=01,...,10, j=1,...,5. Во входящих материалах для каждого из процессов-пар введем пару материалов - начало пары и конец пары (т.е. для К03И4 материалы К03 и И4), потребление = 1.
Решим модель. Общие затраты = 605. Для удобства просмотра какой источник какому клиенту сколько отправил, в модель добавлена панель данных, с которой пользователю предлагается познакомиться самостоятельно.

К постановкам задач