
- •2. Простейшие свойства транспортной задачи
- •3. Методы определения первоначального опорного плана
- •3.1. Построение исходного опорного плана (метод северо-западного угла)
- •3.2. Метод минимального (максимального) элемента
- •3.3. Метод аппроксимации Фогеля
- •4. Методы проверки опорного плана на оптимальность
- •4.1. Потенциалы. Критерий оптимальности плана
- •4.2. Дельта-метод
- •4.5. Алгоритм улучшения плана
- •6. Снятие вырожденности
- •6.1. Эпсилон-прием
Транспортная задача
Понятие транспортной задачи
Определение открытой и сбалансированной задачи
Причины неэффективности симплекс-метода при решении транспортной задачи
Алгоритм приведения открытой транспортной задачи к сбалансированной
для любой транспортной задачи существует план
транспортная задача всегда имеет оптимальный план
любой опорный план транспортной задачи имеет не более n+m-1 положительных компонент
оптимальный план содержит не более n+m-1 компонент
1. Постановка задачи
Имеется целый набор специфических задач, для которых разработаны особые методы решения задач линейного программирования . В качестве примера таких задач мы рассмотрим так называемую транспортную задачу.
Начнем с её содержательной формулировки.
Пусть имеется некоторый однородный
продукт, сосредоточенный на m пунктах
отправления (складах), так что на i-м
складе находится
единиц
этого продукта.
Этот продукт необходимо доставить в n
пунктов назначения (потребления), причем
на j-й пункт необходимо доставить
единиц
продукта. Запасы и потребности
сбалансированы, то есть
,
то есть наличие продукта равно потребности в нем.
Пусть стоимость перевозки единицы
продукта из i-го склада в j-й пункт
назначения равна
.
Пусть
есть
то количество продукта, которое
перевозится из i-го склада в j-й
пункт потребления.
Тогда общие транспортные расходы составят величину
.
Из каждого склада весь продукт должен быть вывезен. Это значит, что должно быть выполнено условие
.
С другой стороны, потребности j-го пункта назначения должны быть полностью удовлетворены. Это означает, что
.
Желание минимизировать транспортные расходы приводит нас к следующей задаче:
являющейся типичной задачей линейного программирования.
Определение 3.1. Транспортная задача называется открытой транспортной задачей, если условие баланса нарушаются; в случае выполнения условия баланса она называется сбалансированной транспортной задачей.
У этой задачи есть одна очень существенная особенность: в ограничениях перед неизвестными всегда стоит 1. И именно это позволяет разработать гораздо более эффективные и простые алгоритмы решения транспортной задачи, чем симплекс-метод.
Сам же симплекс-метод был бы не эффективен по двум причинам:
Большая размерность решаемой задачи. Общее число неизвестных величин равно mn , и даже при n =m = 10 размерность решаемой задачи уже будет равна 100. Даже ЭВМ будет решать такую задачу симплекс-методом достаточно долго.
Опорные планы в транспортной задаче очень часто бывают вырожденными, а наличие вырождения приводит к необходимости несколько модифицировать симплекс-метод.
Приведение открытой транспортной задачи к сбалансированной
Превышение запасов над потребностями.
В этом случае вводится “фиктивный”
потребитель
с потребностями равными абсолютной
величине разности между общим количеством
запасов и общим количеством требуемых
единиц. Стоимость по доставке будет для
потребителя
равна 0, т.к. поставки фактически нет.
Превышение потребностей над запасами.
Вводим “фиктивного”
производителя
(склад) с потребностями равными абсолютной
величине разности между общим количеством
запасов и общим количеством требуемых
единиц. Стоимость по доставке будет для
производителя
равна 0, т.к. поставки фактически нет.
2. Простейшие свойства транспортной задачи
Теорема 1. Для любой транспортной задачи существует план (то есть, для любой транспортной задачи допустимая область не пуста).
Доказательство.
Действительно,
по смыслу задачи,
.
Так как
,
то возьмем план
в виде
.
Величины
.
Далее
то есть ограничения выполняются. Поэтому составляют план.
Теорема 2. Транспортная задача всегда имеет оптимальный план.
Доказательство. Действительно,
допустимая область не пуста. Далее, так
как по смыслу
,
то для любого плана перевозок
.
В силу того, что значения целевой функции ограничены снизу, транспортная задача всегда имеет решение.
Теорема
3. Любой
опорный план имеет не более
положительных
компонент. (Ранг матрицы ограничений
равен
n+m-1
)
Доказательство Действительно,
исходная система содержит всего
ограничений
типа равенств:
,
то есть m ограничений;
то
есть n ограничений.
Однако в силу соотношения одно из этих ограничений является следствием всех остальных. Действительно, сложим все первые m ограничений
|
(1) |
а из второй группы сложим первые n 1 ограничение
|
(2) |
Вычитая теперь (2) из (1), получим:
,
и мы получили последнее, n-ое ограничение второй группы.
Таким образом, независимых ограничений всего не более . Поэтому каждый опорный план имеет не более компонент.
Следствие. Оптимальный план содержит не более, чем перевозку.
3. Методы определения первоначального опорного плана
3.1. Построение исходного опорного плана (метод северо-западного угла)
Для начала решения транспортной задачи необходимо иметь какой-то исходный опорный план, то есть оказаться в какой-то вершине допустимой области. Приведем конструктивный прием построения такого опорного плана, получивший название "метод северо-западного угла".
Итак,
пусть имеется m складов с запасами
и n пунктов потребления с потребностями
.
Пусть запасы и потребности сбалансированы,
то есть
.
Представим это в виде таблицы,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
где в столбце справа указаны запасы, в строке снизу потребности, а пустые клетки оставлены для будущего плана перевозок.
Начнем заполнение с клетки, расположенной
вверху слева, то есть с "северо-западного
угла". Вместо
впишем
число
.
Возможны два варианта.
, то есть
. Тогда, запланировав перевозку из первого склада в первый пункт потребления в объеме мы полностью опустошим первый склад и там ничего не останется. Поэтому все остальные перевозки из первого склада могут быть только нулевые.
Ну, а потребность в первом пункте
потребления останется в объеме
.
Наша таблица примет вид:
|
0 |
0 |
... |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
Обратите внимание на то, что оставшаяся незаполненной часть таблицы вновь по структуре та же, что и исходная таблица, только в ней на одну строку меньше.
, то есть
. Тогда, запланировав перевозку из первого склада в первый пункт потребления в объеме , мы полностью удовлетворим его потребности. Перевозить туда больше будет ничего не надо, поэтому остальные перевозки туда будут равны нулю. Ну, а в первом складе еще останется
запасов продукта. Наша таблица примет вид:
|
|
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
... |
|
|
Обратите внимание на то, что оставшаяся незаполненной часть таблицы вновь по структуре та же, что и исходная таблица, только в ней на один столбец меньше.
Ну, а дальше все можно повторить, продолжая заполнять оставшуюся часть таблицы перевозок начиная с левого верхнего, "северо-западного" угла, пока не будут исчерпаны запасы всех складов и не удовлетворены потребности всех пунктов потребления.
У нас всего в таблице m строк и n
столбцов. Каждый раз исчезает, как
минимум, либо строка, либо столбец (могут
исчезнуть сразу и строка, и столбец,
если запасы какого-то подмножества
складов полностью удовлетворят
потребности какого-то подмножества
пунктов потребления). Однако при последней
перевозке исчезает сразу и последняя
строка, и последний столбец. Поэтому
получающийся план перевозок содержит
не более
компонент.
Мы не будем доказывать, что план, полученный методом северо-западного угла, является опорным. Заметим лишь, что если получающийся план содержит ровно компоненту, то он называется невырожденным. Если число положительных компонент плана перевозок меньше , то он называется вырожденным.
Рассмотрим два примера. С целью экономии места, вся таблица не переписывается, а лишь приписываются последние строки и столбцы.
Пример 1
Пусть
3 |
3 |
0 |
0 |
6 |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
4 |
4 |
0 |
8 |
8 |
8 |
4 |
0 |
0 |
0 |
0 |
0 |
3 |
6 |
9 |
9 |
9 |
9 |
9 |
6 |
0 |
3 |
7 |
7 |
6 |
В данном случае число |
||||||
0 |
7 |
7 |
6 |
складов m =3, число пунктов |
||||||
0 |
4 |
7 |
6 |
потребления n =4, так что |
||||||
0 |
0 |
7 |
6 |
m+n-1=6. Получившийся |
||||||
0 |
0 |
3 |
6 |
опорный план содержит ровно |
||||||
0 |
0 |
0 |
6 |
6 компонент, и поэтому являет- |
||||||
0 |
0 |
0 |
0 |
ся невырожденным. |
Пример 2
Пусть
Аналогичная
процедура приводит к таблице, изображенной
ниже.
В этом случае получившийся опорный план имеет всего 5 компонент, то есть является вырожденным. Это
3 |
3 |
0 |
0 |
6 |
3 |
0 |
0 |
0 |
0 |
|
0 |
4 |
0 |
0 |
4 |
4 |
4 |
0 |
0 |
0 |
|
0 |
0 |
7 |
6 |
13 |
13 |
13 |
13 |
6 |
0 |
|
3 |
7 |
7 |
6 |
В данном случае число скла- |
||||||
0 |
7 |
7 |
6 |
дов m =3, число пунктов потре- |
||||||
0 |
4 |
7 |
6 |
бления n =4, так что m+n-1=6. |
||||||
0 |
0 |
7 |
6 |
Получившийся опорный план |
||||||
0 |
0 |
0 |
6 |
содержит 5 компонент, и поэтому |
||||||
0 |
0 |
0 |
0 |
является вырожденным. |
произошло потому, что запасы складов
и
полностью
удовлетворили потребности пунктов
потребления
и
и
поэтому в тот момент, когда эти
сбалансированные потребности
удовлетворились (
),
обнулились сразу и строка, и столбец.
Ниже вся теория будет строится для случая, когда все опорные планы невырожденные, то есть все они имеют компоненту. Как бороться с явлением вырождения, которое в транспортных задачах встречается достаточно часто будет рассказано в самом конце.