Постановка задачи и ее математическая модель
В m пунктах отправления
(поставщики) имеется однородный груз в определенных количествах. Этот груз
необходимо доставить в n пунктов
назначения (потребители) в определенных количествах. Требуется составить план
перевозок груза так, чтобы максимально удовлетворить всех потребителей, вывезти
груз от поставщиков и чтобы общие затраты на перевозки были минимальными.
Введем обозначения.
i - номер пункта отправления , ;
j - номер пункта назначения, ;
bi- наличие груза в i-м пункте отправления;
aj -потребность в грузе j-го пункта назначения;
cij- стоимость перевозки
единицы груза из i-го пункта отправления в j-й пункт назначения;
xij - количество груза, которое
нужно перевезти из i-го
пункта отправления в j-й
пункт назначения.
Все
данные располагают в таблице, которую называют распределительной таблицей:
Потребители Поставщики |
1 |
2 |
… |
n |
|
a1 |
a2 |
… |
an |
||
1 |
b1 |
c11 x11 |
c12 x12 |
… |
c1n x1n |
2 |
b2 |
c21 x21 |
c22 x22 |
… |
c2n x2n |
… |
… |
… |
… |
… |
… |
m |
bm |
cm1 xm1 |
cm2 xm2 |
… |
cmn xmn |
Определение 1. Если , то транспортная задача называется задачей закрытого типа, в
противном случае, т.е.
, - открытого типа.
Рассмотрим случай
.
Найдем затраты на перевозки
груза.
с11 х11 - затраты на перевозку х11 единиц груза из первого пункта отправления в первый
пункт назначения.
с12 х12 - затраты на перевозку х12 единиц груза из первого пункта отправления во второй
пункт назначения и т.д.
Тогда общие затраты на
транспортировку груза составят:
c11x11 + c12x12 +…+c1nx1n
+ c21x21 + c22x22 +…+c2nx2n
+cm1xm1 +
+ cm2xm2 +…+cmnxmn =.
Целевая функция имеет вид
.
Составим ограничения по
запасам груза. Из первого пункта отправления груз доставляется в пункты
потребления соответственно в количествах х11,
х12, …, х1n,
а всего можно вывезти b1 единиц груза,
следовательно, х11 + х12+…+ х1n=b1. Аналогично можно записать ограничения по остальным
пунктам отправления. Получим систему уравнений
Ограничения по потребностям:
в первый пункт потребления доставляют груз из пунктов отправления
соответственно в количестве х11
+ х12 +…+ хm1, а потребность этого пункта
равна а1, получим
уравнение х11, х12, …, хm1=а1.
Аналогично составляем
ограничения по остальным пунктам назначения. Получим
Так как
хij - количество перевозимого груза,
следовательно, хij³0.
Математическая модель закрытой транспортной задачи: найти наименьшее
значение функции
при ограничениях:
Система ограничений
транспортной задачи состоит из m+n
уравнений с m× n
неизвестными.
Теорема 1. Ранг матрицы
системы ограничений транспортной задачи на единицу меньше числа уравнений, т.е.
r = m+n-1.
Теорема 2. Для того чтобы система ограничений транспортной
задачи была совместной, необходимо и
достаточно, чтобы выполнялось равенство
Доказательство.
Необходимость. Дано, что система ограничений транспортной задачи совместна. Пусть .
Подставим это решение в
уравнения системы:
Просуммируем первое
уравнение по i, а второе по j:
.
Левые части этих равенств
равны, следовательно, равны и правые части, т.е.
.
Достаточность. Предположим, что
.
Возьмем числа
и покажем, что они удовлетворяют
системе ограничений транспортной задачи. Для этого подставим эти числа в
уравнения
и
Получим
,
и так как xij ³0, следовательно,
совокупность чисел xij, взятых таким образом,
является допустимым решением системы
ограничений транспортной задачи.
Область допустимых
решений транспортной задачи ограниченная, так как
.
Тогда на основании теоремы об экстремуме целевой функции можно
утверждать, что транспортная задача с закрытой моделью имеет оптимальное
решение, совпадающее хотя бы с одним из опорных решений.
Транспортную задачу можно
решить симплексным методом, но существуют более простые методы решения
транспортных задач, которые являются модификацией симплексного метода. В них
применяется тот же прием последовательного улучшения решений, который состоит
из трех этапов:
1) находится исходное опорное решение;
2) оценка решения на
оптимальности;
3)
переход к другому, лучшему опорному решению путем
однократного замещения одной базисной переменной
на свободную.
Нахождение исходного
опорного решения
Транспортная
задача задана в виде распределительной таблицы:
aj bi |
1 |
2 |
… |
n |
|
a1 |
a2 |
… |
an |
||
1 |
b1 |
c11 |
c12 |
… |
c1n |
2 |
b2 |
c21 |
c22 |
… |
c2n |
… |
… |
… |
… |
… |
… |
m |
bm |
cm1 |
cm2 |
… |
cmn |
Пусть
. В каждой конкретной задаче математическая модель не
составляется, а достаточно иметь распределительную таблицу. Процесс решения
задачи также оформляется в таблицах.
Правило
"северо-западного угла".
По правилу
"северо-западного угла" начинают распределение поставок с
северо-западной клетки. Берут .
Затем ,
затем и т.д.
Теорема 3. Решение, найденное по правилу
"северо-западного угла", является опорным
решением системы ограничений транспортной задачи.
Пример
1. Транспортная задача задана распределительной
таблицей:
aj bi |
1 |
2 |
3 |
4 |
5 |
|
100 |
70 |
80 |
150 |
100 |
||
1 |
200 |
7 |
5 |
2 |
3 |
4 |
2 |
250 |
6 |
4 |
5 |
2 |
7 |
3 |
50 |
5 |
8 |
3 |
5 |
9 |
,
,
.
Найдем исходное опорное
решение по правилу "северо-западного угла".
;
;
;
;
;
;
.
Нашли
исходное опорное решение, которое записывается в таблицу:
aj bi |
1 |
2 |
3 |
4 |
5 |
|
100 |
70 |
80 |
150 |
100 |
||
1 |
200 |
7 100 |
5 70 |
2 30 |
3 |
4 |
2 |
250 |
6 |
4 |
5 50 |
2 150 |
7 50 |
3 |
50 |
5 |
8 |
3 |
5 |
9 50 |
Заполненные
клетки в таблице соответствуют базисным переменным, а свободные клетки -
свободным переменным. Число занятых клеток должно равняться рангу системы ограничений,
т.е. r = m+n-1=3+8-1=7.
Найдем затраты на поставки
груза по найденному плану:
Нахождение опорного решения
по правилу
"минимального элемента"
При нахождении исходного опорного решения по правилу
"северо-западного угла" совершенно не учитываются затраты сij. По правилу
"минимального элемента" в первую очередь заполняются клетки с
наименьшим тарифом.
Найдем опорное решение в задаче по правилу
"минимального элемента". Начинаем заполнять таблицу с клетки, имеющей
наименьший тариф с13=2.
Пусть
;
;
;
;
;
;
.
aj bi |
1 |
2 |
3 |
4 |
5 |
|
100 |
70 |
80 |
150 |
100 |
||
1 |
200 |
7 |
5 |
2 80 |
3 120 |
4 |
2 |
250 |
6 100 |
4 70 |
5 |
2 30 |
7 50 |
3 |
50 |
5 |
8 |
3 |
5 |
9 50 |
Найдем
<
.
Замечание. При нахождении исходного
опорного решения может оказаться, что число
занятых клеток меньше ранга, т.е. решение вырожденное. В этом случае в
свободные клетки ставят 0, чтобы число занятых клеток равнялось рангу,
или находят опорное решение другим методом.
Критерий
оптимальности решения транспортной задачи
Дана транспортная задача. Составим двойственную задачу, для этого каждому уравнению
исходной задачи поставим в соответствие двойственные переменные:
,
xij ³0, .
,
ui + vj £ cij , .
ui
, vj свободны по знаку.
.
Пусть - оптимальное решение
исходной задачи, тогда, по второй теореме
двойственности, если xij >0, то соответствующее ему
ограничение двойственной задачи выполняется как равенство ui + vj = cij , остальные ограничения
выполняются как неравенство ui + vj < cij или ui + vj - cij<0.
Обозначим ui + vj - cij=Dij и
назовем оценкой свободной клетки. Получили критерий оптимальности решения
транспортной задачи. Если ui и vj удовлетворяют условиям ui + vj = cij для занятых клеток и все
оценки свободных клеток Dij <0, то найденное решение оптимально.
Метод потенциалов
Переменные ui и vj являются оценками единицы
груза bi и aj . Их называют потенциалами.
Метод потенциалов был предложен в
Пусть транспортная задача имеет закрытую модель.
Алгоритм решения транспортной задачи
методом потенциалов
1. Найти исходное опорное решение.
2. Найти потенциалы из системы
уравнений ui + vj = cij, справедливых для занятых клеток.
Так как занятых клеток m+n-1, то система будет
состоять из m+n-1 уравнений с m+n неизвестными. Эта система
имеет бесконечное множество решений. Для того чтобы найти частное решение
системы, придадим одному из неизвестных любое числовое значение, например u1=0, и найдем значения
остальных.
Потенциалы
ui и vj записываем в столбце и в
строке, которые добавляем к таблице.
3. Для всех свободных клеток
найти оценки Dij= ui + vj - cij.
4. Проверка решения на
оптимальность.
Если
все Dij£0, то найденное решение оптимально.
Если
среди оценок есть хотя бы одно положительное число, то найденное решение не
оптимально и его надо улучшить.
5. Выбирается клетка с
наибольшей положительной оценкой, и соответствующую переменную вводят в базис,
для этого строят цикл для этой клетки. Даем поставку в эту клетку l. Тогда нарушится баланс и в строке, и в
столбце, следовательно, нужно отнимать l от одной из поставок
данного столбца и строки до тех пор, пока цикл не замкнется.
Свойства
цикла:
1) в цикле
всего одна свободная клетка, в которую пишем +l;
2) если строка или столбец
участвует в цикле, то двумя клетками +l и -l;
3) число клеток цикла четно.
Можно
доказать, что для любой свободной клетки можно построить единственный цикл.
6. Определяется l так, чтобы одна из занятых клеток
освободилась и чтобы оставшиеся поставки xij ³0, т.е. l=min íxijý для четных клеток цикла.
7. Строится новая
распределительная таблица, в которой изменяются только клетки цикла, остальные
переписываются без изменения.
8. Переход в п. 2.
Пример 2. Возьмем пример 1, в котором
исходное опорное решение найдено по методу "наименьшего тарифа", и
оценим это решение на оптимальность.
aj bi |
1 |
2 |
3 |
4 |
5 |
ui |
|
100 |
70 |
80 |
150 |
100 |
|||
1 |
200 |
7 |
5 |
2 80 |
3 120-l |
4 +l |
u1=0 |
2 |
250 |
6 100 |
4 70 |
5 |
2 30+l |
7 50-l |
u2=-1 |
3 |
50 |
5 |
8 |
3 |
5 |
9 50 |
u3=1 |
vj |
v1=7 |
v2=5 |
v3=2 |
v4=3 |
v5=8 |
|
u1 + v3 = 2, Получим 7 уравнений и 8 неизвестных.
u1 + v4 = 3, Если u1
= 0, то v3 = 2, v4 = 3, u2 = – 1, v1 = 7, v2
= 5, v5 = 8, u3 = 1
u2 + v1 = 6, Находим оценки свободных клеток по формуле Dij = ui + vj – cij.:
u2 + v2 = 4, D11=0+7-7=0, D12=0+5-5=0, D15=0+8-4= 4,
u2 + v4 = 2, D23=-1+2-5=-4, D31=1+7-5=3, D32=1+5-8=-2,
u2 + v5
= 7, D33=1+2-3=0, D34=1+3-5=-1.
u3 + v5 = 9.
решение не оптимально, так
как D15=4>0 и D31=3>0.
Построим цикл для клетки
(1;5). В таблице в клетку (1;5) даем поставку = l, тогда нарушится баланс в
первой строке и в пятом столбце. Это же количество поставок l вычтем из поставок клеток (1;4) и (2;5) и
прибавим к (2;4)
Цикл построен.
120-l --------- +l
| |
| |
30+l ------ 50-l
Определим l=min í120;50ý=50.
Построим вторую таблицу, в
которой изменятся только клетки цикла:
aj bi |
1 |
2 |
3 |
4 |
5 |
ui |
|
100 |
70 |
80 |
150 |
100 |
|||
1 |
200 |
7 |
5 |
2 80 |
3 70-l |
4 50+l |
u1=0 |
2 |
250 |
6 100-l |
4 70 |
5 |
2 80+l |
7 |
u2=-1 |
3 |
50 |
5 +l |
8 |
3 |
5 |
9 50-l |
u3=5 |
vj |
v1=7 |
v2=5 |
v3=2 |
v4=3 |
v5=4 |
|
Составим
систему уравнений и, полагая u1=0, найдем значения всех
остальных потенциалов:
u1 + v3 = 2, Þ v3 = 2,
u1 + v4 = 3, Þ v4 = 3,
u1 + v5 = 4, Þ v5 = 4, Находим
оценки свободных клеток:
u2 + v1 = 6, Þ v1 = 7, D11=0+7-7=0,
D12=0+5-5=0, D23=-1+2-5= -4,
u2 + v2
= 4, Þ v2 = 5, D25=-1+4-7=-4,
D31=5+7-5=7,
D32=5+5-8=2,
u2 + v4 = 2, Þ u2 =-1, D33=5+2-3=4, D34=5+3-5=3.
u3 + v5 = 9. Þ u3 = 5.
Решение не оптимально,
возьмем свободную клетку с наибольшей положительной оценкой D31=7 и построим для нее цикл.
Определим l=min í100;70;50ý=50.
Строим
третью таблицу:
aj bi |
1 |
2 |
3 |
4 |
5 |
ui |
|
100 |
70 |
80 |
150 |
100 |
|||
1 |
200 |
7 |
5 |
2 80 |
3 20 |
4 100 |
u1=0 |
2 |
250 |
6 50 |
4 70 |
5 |
2 130 |
7 |
u2=-1 |
3 |
50 |
5 50 |
8 |
3 |
5 |
9 |
u3=-2 |
vj |
v1=7 |
v2=5 |
v3=2 |
v4=3 |
v5=4 |
|
Для
определения потенциалов u1 и vj составим систему из семи
уравнений с восемью неизвестными. Полагая u1=0, найдем значения
остальных потенциалов.
u1 + v3 = 2, Þ v3 = 2,
u1 + v4 = 3, Þ v4 = 3,
u1 + v5 = 4, Þ v5 = 4, Находим
оценки свободных клеток:
u2 + v1
= 6, Þ v1 = 7, D11=0+7-7=0, D12=0+5-5=0, D23=-1+2-5= -4,
u2 + v2
= 4, Þ v2 = 5, D25=-1+4-7=-4, D32=-2+5-8=-5, D33=-2+2-3=-3,
u2 + v4 = 2, Þ u2 =-1,
D34=-2+3-5=-4, D35=-2+4-9=-7.
u3 + v1 = 5. Þ u3 = -2.
Так как все Dij£0, следовательно, найденное
решение оптимально, его можно записать в виде матрицы
Альтернативный оптимум в транспортных задачах
Если найденное решение
оптимально, но среди оценок свободных клеток имеется хотя бы одна оценка, равная нулю, то задача имеет альтернативный оптимум. Чтобы найти второе оптимальное
решение, нужно ввести в базис переменную, соответствующую свободной клетке с
нулевой оценкой. Значение целевой функции при этом не изменится.
В предыдущей задаче D11=0 и D12=0, следовательно, задача
имеет альтернативный оптимум. Возьмем клетку (1;1) и построим для нее цикл
+l -------- 20-l
| |
| |
50-l ------ 130+l
l=min í50;20ý=20.
Получим второе оптимальное решение:
.
Если взять клетку (1;2) и
построить для нее цикл, то получим третье оптимальное решение:
+l -------- 20-l
| |
| |
70-l ------ 130+l
l=min í70;20ý=20.
.
Тогда
где
Открытая модель транспортной задачи
Если в транспортной задаче
,
то задача имеет открытую модель.
Если
,
то после распределения
поставок все потребители будут удовлетворены, а у поставщиков остается часть
груза в количестве
.
Следовательно, ограничения
по потребителям не изменятся, а по поставщикам изменятся, а именно
Математическая модель задачи
примет вид: найти наименьшее значение функции
при ограничениях:
Если
,
то все потребители не могут
быть удовлетворены. Ограниченные задачи примут вид
Открытая модель транспортной
задачи имеет неканонический вид.
Приведем их к каноническому виду: найти наименьшее значение
функции
при ограничениях:
Найти наименьшее значение
функции
при ограничениях:
Балансовые переменные x1,n+1,
x2,n+1,
…, xm,n+1
образуют дополнительный столбец в транспортной задаче, назовем его фиктивным потребителем,
потребности которого
.
Балансовые переменные x m+1,1,
x m+1,2,
…, x m+1,n образуют
дополнительную строку в распределительной таблице, что будет соответствовать
фиктивному поставщику, поставки которого
.
Таким образом, введя
фиктивного поставщика или потребителя с нулевыми тарифами, получим закрытую
модель.
Пример
3.
aj bi |
1 |
2 |
3 |
4 |
5 |
|
75 |
80 |
120 |
100 |
75 |
||
1 |
100 |
5 |
9 |
4 |
7 |
3 |
2 |
150 |
4 |
2 |
6 |
5 |
6 |
3 |
130 |
7 |
5 |
7 |
3 |
2 |
Так как
,
то введем фиктивного
поставщика с нулевыми тарифами, запасы груза которого равны
.
Найдем исходное опорное
решение методом минимального тарифа.
aj bi |
1 |
2 |
3 |
4 |
5 |
ui |
|
75 |
80 |
120 |
100 |
75 |
|||
1 |
100 |
5 |
9 |
4 100-l |
7 |
3 +l |
u1=0 |
2 |
150 |
4 25+l |
2 80 |
6 |
5 45-l |
6 |
u2=0 |
3 |
130 |
7 |
5 |
7 |
3 55+l |
2 75-l |
u3=-2 |
4 |
70 |
0 50-l |
0 |
0 20+l |
0 |
0 |
u4=-4 |
vj |
v1=4 |
v2=2 |
v3=4 |
v4=5 |
v5=4 |
|
Оценим
найденное решение на оптимальность, для этого по занятым клеткам таблицы
подберем потенциалы:
u1 + v3 = 4,
u2 + v1 = 4, Если u1=0, то v3=4, v4=-4, v1=4, u2=0, v2=2,
u2 + v2 = 2, v4=5, u3=-2, v5=4.
u2 + v4 = 5, Находим
оценки свободных клеток:
u3
+ v4 = 3, D11=0+4-5=-1, D12=0+2-9=-7, D14=0+5-7=-2,
u2 + v5 = 2, D15=0+4-3=1, D23=0+4-6= -2, D25=0+4-6= -2,
u4
+ v1 = 0, D31=-2+4-7=-5,
D32=-2+2-5=-5,
D33=-2+4-7=-5,
u4 + v3 = 0. D42=-4+2-0=-2, D44=-4+5-0=1, D45=-4+4-0=0.
Найденное решение не
оптимально, так как D15>0 и D44>0.
Построим цикл для клетки
(1;5).
.
Построим вторую
распределительную таблицу:
aj bi |
1 |
2 |
3 |
4 |
5 |
ui |
|
75 |
80 |
120 |
100 |
75 |
|||
1 |
100 |
5 |
9 |
4 55 |
7 |
3 45 |
u1=0 |
2 |
150 |
4 70 |
2 80 |
6 |
5 |
6 |
u2=0 |
3 |
130 |
7 |
5 |
7 |
3 100 |
2 30 |
u3=-1 |
4 |
70 |
0 5 |
0 |
0 65 |
0 |
0 |
u4=-4 |
vj |
v1=4 |
v2=2 |
v3=4 |
v4=4 |
v5=3 |
|
Оценим второе решение на
оптимальность.
Найдем потенциалы:
u1 + v3 = 4,
u1 + v5 = 3, Если
u1=0, то v3=4, v5=3, u3=-1, v4=4, u4=-4,
u2 + v1 = 4, v1=4, u2=0, v2=0.
u2 + v2 = 2, Находим
оценки свободных клеток:
u3 + v4 = 3, D11=0+4-5=-1, D12=0+2-9=-7, D14=0+4-7=-3,
u3 + v5 = 2, D23=0+4-6= -2, D24=0+4-5=-1, D25=0+3-6= -3,
u4 + v1 = 0, D31=-1+4-7=-4,
D32=-1+2-5=-4,
D33=-1+4-7=-4,
u4 + v3 = 0. D42=-4+2-0=-2, D44=-4+4-0=0, D45=-4+3-0=-1.
Среди оценок нет
положительных чисел, следовательно, найденное решение оптимально.
.