Исходные данные задачи могут быть представлены также в виде вектора
запасов поставщиков А=(, вектора запросов потребителей
В=() и матрицы стоимостей .
В транспортных задачах под поставщиками и потребителями понимаются
различные промышленные и сельскохозяйственные предприятия, заводы, фабрики,
слады, магазины и т.д. Однородными считаются грузы, которые могут быть
перевезены одним видом транспорта. Под стоимостью перевозок понимаются тарифы,
расстояния, время, расход топлива и т.п.
.2 Математическая модель транспортной задачи
Переменными (неизвестными) транспортной задачи являются i=1,2,…,m, j=1,2,…,n - объемы перевозок от каждого i-го поставщика каждому j-му потребителю. Эти переменные можно записать в виде матрицы
перевозок
.
Так как произведение определяет затраты на перевозку груза от i-го поставщика j-му потребителю, то суммарные затраты
на перевозку всех грузов равны . По условию задачи требуется обеспечить минимум суммарных
затрат. Следовательно, целевая функция имеет вид
.
Система ограничений задачи состоит из двух групп уравнений. Первая группа
из m уравнений описывает тот факт, что
запасы всех m поставщиков вывозятся полностью:
, i=1,2,…,m.
Вторая группа из n
уравнений выражает требование полностью удовлетворить запросы всех n потребителей:
, j=1, 2, … , n.
Учитывая условие неотрицательности объемов перевозок, математическую
модель задачи можно записать так:
, (1)
, i=1,2,…,m , (2)
, j=1, 2, … , n, (3)
, i=1,2,,…,m, j=1,2,…,n (4)
В рассмотренной модели транспортной задачи предполагается, что суммарные
запасы поставщиков равны суммарным запросам потребителей, т.е. .
Математическая формулировка транспортной задачи такова: найти переменные
задачи , i=1,2,…,m, j=1,2,…,n, удовлетворяющие системе ограничений (2), (3), условиям
неотрицательности (4) и обеспечивающие минимум целевой функции (1).
Математическая модель транспортной задачи может быть записана в векторном
виде. Для этого рассмотрим матрицу А системы уравнений-ограничений задачи (2),
(3):
А =
Сверху над каждым столбцом матрицы указана переменная задачи,
коэффициентами при которой являются элементы соответствующего столбца в
уравнениях системы ограничений. Каждый столбец матрицы А, соответствующий
переменной , является вектором-условием задачи и обозначается через . Каждый вектор имеет всего m+n координат, и только две из них, отличные от нуля, равны
единице. Первая единица вектора стоит на i-м
месте, а вторая - на (m+j)-м месте, т.е.
Обозначим через вектор ограничений (правых частей уравнений (2), (3)) и
представим систему ограничений задачи в векторном виде. Тогда математическая
модель транспортной задачи запишется следующим образом:
, (7)
=, (8)
, i=1,2,,…,m, j=1,2,…,n
(9)
2. Графы: определение, виды и их применение
Теория графов - один из фундаментальных разделов дискретной математики.
Сведения из этого раздела традиционно включались в курсы кибернетики, а затем и
информатики, поскольку графы оказались очень продуктивным средством
информационного (математического) моделирования структур систем и процессов,
представления задач информационного характера. Графы нашли применение
практически во всех отраслях научных знаний: физике, биологии, химии, математике,
истории, лингвистике, социальных науках, технике и т.п. Наибольшей
популярностью теоретико-графовые модели используются при исследовании
коммуникационных сетей, информационных систем, химических и генетических
структур, электрических цепей и других систем сетевой структуры. Обычно теорию
графов относят к топологии (потому что во многих случаях рассматриваются лишь
топологические свойства графов), однако она пересекается со многими разделами
теории множеств, комбинаторной математики, алгебры, геометрии, теории матриц,
теории игр, математической логики и многих других математических дисциплин.
Геометрическое представление графа - это схемы, состоящие из точек и
соединяющих эти точки отрезков прямых или кривых.
На рисунке 1 точки А, Б, В, Г, Д называются вершинами графа, а отрезки
линий, соединяющие эти точки - ребрами графа. При изображении графов на
рисунках или схемах отрезки могут быть прямолинейными или криволинейными. Длины
отрезков и расположение точек произвольны.
a) Нулевой граф с 5 вершинами
b) Неполный граф с 5 вершинами
Рис 1.
Маршрут графа - это чередующаяся последовательность вершин и ребер. Эта
последовательность начинается и кончается вершиной, в которой каждое ребро
инцидентно двум вершинам. В графах можно выделить различные маршруты. Маршрут
является замкнутым (циклом), если его начальная и конечная вершины совпадают.
Если все ребра различны, то маршрут называется цепью.
Определение.
Графом G называется пара (V (G), E(G)), где V (G) - непустое конечное
множество элементов, называемых вершинами, а E(G) - конечное семейство
неупорядоченных пар элементов из V (G) (необязательно различных), называемых ребрами. Употребление слова "семейство"
говорит о том, что допускаются кратные ребра. Будем называть V (G) множеством
вершин, а E(G) - семейством ребер графа G. О каждом ребре вида {v, w} говорят,
что оно соединяет вершины v и w. Каждая петля {v, v} соединяет вершину v саму с
собой. При изображении графов на рисунках или схемах отрезки могут быть прямолинейными
или криволинейными; длины отрезков и расположение точек произвольны.
Ориентированный граф (или сокращенно орграф) - граф, в котором связи изображены
дугами. Дуга представима в виде упорядоченной пары вершин (v, w), где вершина v
называется началом, а w - концом дуги. На рисунке 2 показан орграф с четырьмя
вершинами и пятью дугами.
Рис 2.
Ориентированные графы являются основным объектом исследований в прикладной теории
графов, поскольку большинство исследуемых граф-моделей сложных систем
представляют орграфами. Например, орграфы моделируют поток информации через
граф-модель, используя импульсную модель, согласно которой через входную
вершину граф-модели в систему поступает некоторое количество информации в виде импульса,
который генерирует импульсы в соседних с
входной вершинах. При этом дуги интерпретируются как операторы, воздействующие
на пересылаемые по ним импульсы. Обработка информации завершена, если процесс
перемещения импульсов прекращается и на выходе системы появляется требуемая
информация. Для орграфов цепь называется путем, а цикл - контуром. Путем
(маршрутом) в орграфе называется конечная чередующаяся последовательность
смежных вершин и дуг, соединяющих эти вершины. Путь называется циклом, если его
начальная вершина совпадает с конечной, простым циклом, если это не выполняется
для других вершин. В случае ориентированного графа, если путь проходит в
направлении дуг, он называется ориентированным. Аналогично определяется
ориентированный цикл. Путь (маршрут) называется открытым, если его начальная и
конечная вершины различны, в противном случае он называется замкнутым. Орграф
называется сильно связным, если каждая пара вершин в орграфе соединена путем (маршрутом). Компонентой сильной связности
ориентированного графа называется максимальное множество вершин, в котором
существуют пути (маршруты) из любой вершины в любую другую. Орграф называется
слабо связным, если любые две вершины в орграфе соединены цепью.
a)
сильно связный
b)
слабо связный
Маршрут называется цепью, если все его дуги различны. Сеть - связный
ориентированный граф. Сетью называется граф, в котором некоторые вершины
выделены; эти вершины называют полюсами. Маршрутизация - выбор маршрута в сети.
Неориентированный граф G(V, E) состоит из конечного множества вершин V и множества
ребер E. В отличие от ориентированного графа, здесь ребро (v, w) соответствует
неупорядоченной паре вершин: если (v, w)- неориентированное
ребро, то (v, w) = (w, v). Неориентированный граф без петель называется полным,
если каждая его вершина смежна со всеми остальными вершинами. Многое из
терминологии ориентированных графов применимо
к неориентированным графам.
Неориентированный граф G=(V, X), v1 - висячая вершина, v5 - висячая вершина
Неориентированный граф G называется связным, если каждая пара
вершин vi и vj в графе связана цепью. Любой максимальный связный
подграф (то есть не содержащийся в других связных подграфах) графа G называется
компонентой связности. Несвязный граф имеет, по крайней мере, две компоненты
связности.
Так, например, граф на рисунке 3 распадается на три компоненты связности:
(1, 6), (2, 7, 5, 4), (3).
Рис 3.
Если граф имеет простой цикл, содержащий все вершины графа (по одному
разу), то такой цикл называется гамильтоновым циклом. Гамильтонова цепь (путь,
цикл, контур) - простая цепь (путь, цикл, контур), проходящая через все
вершины. Если граф имеет цикл (не обязательно простой), содержащий все ребра
графа по одному разу, то такой цикл называется Эйлеровым циклом. Эйлерова
цепь (путь, цикл, кон-тур) - цепь (путь, цикл, контур), содержащая все
ребра (дуги) графа по одному разу.
Двудольные графы - это графы, у которых множество вершин можно разбить на два
множества V1, и V2 , и так что каждое ребро графа соединяет только некоторую
вершину из V1 с некоторой вершиной из V2 -все вершины подмножества графа не
являются смежными (см. рисунок 4). Отметим, что в двудольном графе каждое ребро
соединяет вершины из разных подмножеств. Для двудольности графа необходимо и
достаточно, чтобы он не содержал циклов нечетной длины. Каждый граф можно
представить на плоскости множеством точек, соответствующих вершинам, которые
соединены линиями, соответствующими ребрами и дугами. При решении задач
используются различные способы описания графа: матрица смежности, перечень
списков смежных вершин и др.
Рис 4.
Теоретико-графовый подход используется также в быстро развивающихся
разделах линейного программирования и исследования операций при изучении
потоков в сетях. Вершинам графов соответствуют пункты размещения (или выгрузки)
товара; ориентированное ребро, идущее из одной вершины в другую, указывает на
возможность транспортировки товара из пункта, соответствующего первой вершине,
в пункт, соответствующий
второй вершине. Каждому
ребру приписывается некоторое положительное число - максимальная пропускная
способность ребра. Она показывает, какое максимальное количество товаров может
быть выгружено в единицу времени в соответствующем пункте.
2.1 Решение с помощью теории графов
Рассматривается двудольный граф, в котором пункты производства находятся
в верхней доле, а пункты потребления - в нижней. Пункты производства и потребления
попарно соединяются рёбрами бесконечной пропускной способности и цены за
единицу потока Cij. К верхней
доле искусственно присоединяется исток. Пропускная способность рёбер из истока
в каждый пункт производства равна запасу продукта в этом пункте. Цена за
единицу потока у этих рёбер равна 0. Аналогично к нижней доле
присоединяется сток. Пропускная способность рёбер из каждого пункта потребления
в сток равна потребности в продукте в этом пункте. Цена за единицу потока у
этих рёбер тоже равна 0. Дальше решается задача нахождения
максимального потока минимальной стоимости. Её решение аналогично нахождению
максимального потока в алгоритме Форда - Фалкерсона. Только вместо кратчайшего
дополняющего потока ищется самый дешёвый. Соответственно, в этой подзадаче
используется не поиск в ширину, а алгоритм Беллмана - Форда. При возврате
потока стоимость считается отрицательной. Алгоритм можно запускать и
сразу - без нахождения опорного плана. Но в этом случае процесс решения будет
несколько более долгим. Выполнение алгоритма происходит не более чем за O(v2e2) операций. (e - количество рёбер, v - количество вершин.)
При случайно подобранных данных обычно требуется гораздо меньше - порядка O(ve)
операций. При решении несбалансированной транспортной задачи
применяют приём, позволяющий сделать ее сбалансированной. Для этого вводят
фиктивные пункты назначения или отправления. Выполнение баланса транспортной
задачи необходимо для того, чтобы иметь возможность применить алгоритм решения,
построенный на использовании транспортных таблиц.
3. Решение задач
3.1 Задача с неразличимыми поставщиками и потребителями
При постановке транспортной задачи присутствуют поставщики и потребители
продукции. При этом подразумевается, что продукция перемещается от поставщика к
потребителю. Вместе с тем возможны и другие маршруты перемещения продукции.
Например, продукция от одного поставщика может перемещаться к другому
поставщику, от потребителя к потребителю. Таким образом, при таком перемещении
продукции поставщик и потребитель выступают сразу в двух ролях, то есть нет
различий между поставщиками и потребителями. Для моделирования такой схемы
перемещения вводится понятие буфера В. Буфер - это количество всей перевозимой
продукции. Так, например, если имеются три поставщика А, B, C, которые
поставляют продукцию в количестве соответственно 100 ед., 300 ед., 400 ед., то
величина буфера должна быть равна B = 100 ед. + 300 ед. + +400 ед. = 800 ед.
Такой же буфер должен присутствовать и у потребителя. При наличии двух
потребителей D и E с объёмами потребления соответственно
250 ед. и 550 ед. B = 250 ед. + 550 ед. = 800 ед. Для отражения затрат на
перемещение единицы продукции между всеми участниками
транспортной схемы вводятся так называемые тарифы на перемещение. В данной
рассматриваемой задаче естественно положить тариф на перемещение внутри каждого
узла, равным нулю. Таким образом, при заданных условиях начальная транспортная
таблица будет иметь вид:
Решение это транспортной задачи с изменёнными тарифами приводит к следующему оптимальному плану перемещения продукции:
Результаты расчёта представим в виде графа:
Из графа видно, что поставщик B поставляет продукцию потребителю E транзитом через поставщика C. В данном случае поставщик C
выступает в роли потребителя. 3.2. Транспортная модель с промежуточными
пунктами
Используя понятие буфера, рассмотренное выше, можно моделировать большое количество транспортных схем перевозки продукции. На
практике во многих случаях продукция от поставщика попадает к потребителю через
транзитные пункты. Такая схема доставки продукции является более общей, чем
непосредственная транспортировка продукции от поставщика потребителю.
Разработка схемы перевозки с промежуточными пунктами для различных практических
случаев осуществляется на основе однообразных логических построений. Для
иллюстрации метода решения таких задач рассмотрим конкретный пример
транспортной задачи с двумя пунктами производства, одним транзитным пунктом и
тремя пунктами потребления. Исходные данные для задачи представим в виде графа:
В рассматриваемой задаче имеются: пять пунктов отправления продукции (A,
B, C, D, F), четыре пункта назначении (C, D, F, E) и три транзитных пункта (C,
D, F), через которые проходит транзитом продукция в объёме (100 + 200) = 300 ед. Поэтому в пункте D может
присутствовать (300 + 50) = 350 ед., в пункте F (300
+ 100) = 400 ед. Значения тарифов перемещения продукции изображены над дугами,
соединяющими пункты транспортной сети. Для моделирования невозможности
перемещения между пунктами, не соединёнными дугами, тарифы перевозок для них
принимаются на несколько порядков больше, чем остальные тарифы. В этом примере
их можно принять равными 100. Тариф перевозки внутри самого пункта принимается
равным нулю. Метод решение этой задачи ничем не отличается от ранее
рассмотренных задач.
Оптимальный опорный план имеет следующий вид:
Это решение представим в виде графа:
Из графа видно, что вся продукция (300 ед.) из транзитного пункта C
поступает в пункт потребления D, в котором остаётся потребляемое количество 50
ед. Остаток в объёме 250 ед. поступает в пункт F, из которого 100 ед. остаются,
оставшиеся 150 ед. идут на потребление в пункт E. Таким образом, используя
понятия транзитного пункта и буфера, а также варьируя значениями тарифов
перевозки, можно смоделировать и решить многочисленные транспортные задачи.
3.3 Задача из школьного курса информатики
Целью решения транспортной задачи является нахождение плана
грузоперевозок, чтобы общие затраты по перевозкам были минимальными. Пусть дана
классическая транспортная задача с тремя поставщиками и пятью потребителями.
Поставщики
|
Мощность поставщиков
|
Потребители и их спрос
|
|
|
1
|
2
|
3
|
5
|
|
|
190
|
100
|
120
|
110
|
130
|
1
|
200
|
28
|
27
|
18
|
27
|
24
|
2
|
250
|
18
|
26
|
27
|
32
|
21
|
3
|
200
|
27
|
33
|
23
|
31
|
34
|
Для решения данной задачи построим ее математическую модель. Неизвестными
в данной задаче являются объемы перевозок. Пустьij - объем перевозок, а сij - стоимость перевозки единицы
продукции с i-й фабрики на j-й склад соответственно. Функция цели - это
суммарные транспортные расходы, которые следует минимизировать, т.е.:
Þ min.
(1)
Неизвестные Xij должны удовлетворять ограничениям. Так как модель сбалансирована, то вся
продукция должна быть вывезена с фабрик
j Î [1, 3], (2)
а потребности всех центров распределения должны быть полностью удовлетворены:
i Î [1, 5]. (3)
Объемы перевозок не должны быть отрицательными:
xij iÎ [1, 3], j Î [1, 5]. (4)
Здесь аi - объем
производства на i-й фабрике, bj - спрос в j-м центре распределения.
Рабочий лист Excel с введенными
исходными данными для решения транспортной задачи:
Выберем команду Сервис/Надстройки, в появившемся диалоговом окне
Надстройки установим флажок Поиск решения и щелкнем на кнопке ОК.
Таким образом, мы нашли решение рассматриваемой транспортной задачи.
Общая стоимость перевозок будет минимальной и равна 15730 ден. ед.
транспортный задача симплекс граф
Заключение
Решение данной задачи позволяет разработать наиболее рациональные пути и
способы транспортирования товаров, устранить чрезмерно дальние, встречные,
повторные перевозки. Все это сокращает время продвижения товаров, уменьшает
затраты предприятий и фирм, связанные с осуществлением процессов снабжения
сырьем, материалами, топливом, оборудованием и т.д.
В работе было рассмотрено понятие транспортной задачи, ее формулировка,
представлена математическая модель, а также приведены примеры решения с
использованием графов и Microsoft Excel.
Список литературы
1. Золотарева М. А. Использование теории графов в
разработке программных систем.
. Орлов А.И. Основы теории принятия
решений,-Москва,2002.
. Менеджмент/Информационные технологии- Основные
понятия теории графов/[электронный ресурс]
. Семериков А.В. Решение транспортных задач,-уч.пособие
УГТУ,2013.