Постановка и основные свойства транспортной задачи
Постановка и основные свойства транспортной задачи
Транспортная задача (Т-задача) является одной из наиболее распространенных специальных задач ЛП. Частные постановки задачи рассмотрены рядом специалистов по транспорту, например О.Н. Толстым [18; 59].
Первая строгая постановка Т-задачи принадлежит Ф. Хичкоку, поэтому в зарубежной литературе ее называют проблемой Хичкока.
Первый точный метод решения Т-задачи разработан Л.В. Канторовичем и М.К. Гавуриным.
Постановка Т-задачи. Пусть в пунктах А>1>,…, A>m> производят некоторый однородный продукт, причем объем производства в пункте A>i> составляет a>i> единиц, i = 1,…, m. Допустим, что данный продукт потребляют в пунктах B>1>., B>n>, a объем потребления в пункте В>j> составляет b>j> одиниць j = 1., n. Предположим, что из каждого пункта производства возможно транспортировка продукта в любой пунктпотребления. Транспортные издержки по перевозке единицы продукции из пункта A>i> в пункт В>j> равны c>ij> (i = 1., m; j = 1., n). Задача состоит в определении такого плана перевозок, при котором запросы всех потребителей В>j> полностью удовлетворены, весь продукт из пунктов производства вывезен и суммарные транспортные издержки минимальны.
Условия Т-задачи удобно представить в виде табл. 1.1.
Таблица. 1.1.
Пункт потребления Пункт производства |
B>1> |
B>2> |
. |
B>n> |
B>j> a>i> |
A>1> |
C>11> |
C>12> |
. |
C>1n> |
a>1> |
A>2> |
C>21> |
C>22> |
. |
C>2n> |
a>2> |
A>m> |
C>m1> |
C>m2> |
. |
C>mn> |
a>m> |
A>i> b>j> |
b>1> |
b>2> |
. |
b>n> |
Объем производства Объем потребления |
Пусть
>
> количество
продукта, перевозимого из пункта A>i>
в пункт В>j>.
Требуется
определить множество переменных >
>,
i = 1., m, j = 1., n, удовлетворяющих условиям
>>
(1.1)
>>
(1.2)
и таких, что целевая функция
>>
(1.3)
достигает минимального значения.
Условие (1.1) гарантирует полный вывоз продукта из всех пунктов производства, а (1.2) означает полное удовлетворение спроса во всех пунктах потребления.
Таким
образом, Т-задача представляет собой
задачу ЛП с >
> числом
переменных, и (m + n) числом ограничений
равенств.
Переменные
>
> удобно
задавать в виде матрицы
>>
(1.4)
Матрицу
X,
удовлетворяющую условиям Т-задачи (1.1)
и (1.2) называют планом перевозок, а
переменные >
> –
перевозками. План >
>,
при котором целевая функция минимальна,
называется оптимальным, а матрица С=
>
> –
матрицей транспортных затрат.
Графический способ задания Т-задач показан на рис. 1
Рис. 1
Отрезок A>i>B>j> называют коммуникацией. На всех коммуникациях ставят величины перевозок x>ij>.
Вектор P>ij>, компоненты которого состоят из коэффициентов при переменных x>ij> в ограничениях (3.1.1) и (3.1.2), называют вектором коммуникаций:
>>
Вводят также вектор производства-потребления P>0>, где
>>.
Тогда ограничение (3.1.1) и (3.1.2) можно записать в векторной форме
>>,
(1.5)
Свойства транспортной задачи
1. Для разрешимости Т-задачи необходимо и достаточно, чтобы выполнялось условие баланса
>>,
(1.6)
то есть, чтобы суммарный объем производства равнялся объему потребления.
Доказательство.
Пусть переменные x>ij>,
i = 1., m; j = 1., n удовлетворяют условиям
(1.1), (1.2). Суммируя (1.1) по >
>,
а (1.2) по >
>,
получим:
>>.я
Отсюда
>
>,
что и доказывает необходимость условия
баланса Т-задачи.
Пусть
справедливо условие (1.6). Обозначим >
>,
где >
>.
Нетрудно доказать, что х>ij> составляет план задачи. Действительно
>>
Таким образом, доказана достаточность условия баланса для решения Т-задачи.
2.
Ранг системы ограничений (1.1), (1.2) равен
>
>
Доказательство.
Так как количество уравнений (1.1), (1.2)
равно >
>,
то ранг этой системы >
>.
Пусть, набор >
> удовлетворяет
всем уравнениям, кроме первых. Покажем,
что он удовлетворяет также и первому
уравнению.
Очевидно
>>
Так как
>,
>то
>> >
,
>отсюда
>>,
Учитывая условие баланса (1.6), получим
>>,
т.е. первое уравнение системы (1.1) тоже удовлетворяется.
Таким
образом, ранг системы уравнений (1.1),
(1.2) >
>.
Докажем,
что ранг системы уравнений (1.1), (1.2) равен
точно >
>.
Для этого составим матрицу из первых
(>
>)
компонентов векторов >
>
>>
Очевидно,
что эта матрица не вырождена. Поэтому
векторы {>>}
образуют базис. Так как базис системы
состоит из (>
>)
векторов, то и ранг системы (1.1), (1.2) >
>.
Двойственная
транспортная задача (>>
– задача).
Для Т-задачи, как и для любой задачи ЛП,
существует двойственная задача к ней
>
>-задача.
Переменные
>
>-задачи
обозначим v>1>,
v> 2>.,
v> n>,
– u>1>,
– u>2>.,
– u>m>…
Теорема
1. >
>-задача
имеет решение и если X>опт>
= >
>,
>> –
оптимальные решения T и
>
>-задачи
соответственно, то
>>.
(1.7)
Если учесть, что u>i> – стоимость единицы продукции в пункте А>і,> а v>j> – стоимость после перевозки в пункт B>j>, то смысл теоремы будет такой:
Суммарные транспортные расходы при оптимальном плане перевозок равны приращению суммарной стоимости продукции после ее перевозки в пункты потребления.
Переменные u>i> и v>j> называют потенциалами пунктов A>i> и B>j> для Т-задачи.
Таким образом, теорема 1. утверждает, что при оптимальных решениях значения целевой функции прямой и двойственной Т-задач равны между собой.
Справедливость теоремы 1. следует из основной теоремы двойственной ЛП (теорема 2.5).
Сформулируем необходимые и достаточные условия оптимальности плана Т-задачи.
Теорема 2. Для оптимальности плана Х>0> Т-задачи необходимо и достаточно существование таких чисел v>1>, v>2>., v>n>, – u>1>, – u>2>., – u>m>, что
v>j>
– u>i>
>
>c>ij>,
i = 1., m; j=1., n… (1.8)
При этом, если
>> это
v>j>
– u>i>
= c>ij>.
Cправедливость этой теоремы вытекает из общих идей теории двойственности линейного программирования (в частности, теоремы 2.5, 2.7).
Дадим экономическую интерпретацию условий теоремы 2.
Разность
между потенциалами пунктов B>j>
и
A>i>,
т.е. величину v>j>
– u>i>,
можно рассматривать как приращение
ценности единицы продукции при перевозке
из пункта A>i>
в пункт B>j>.
Поэтому, если v>j>
– u>i>
< c>ij>,
то перевозка по коммуникации A>i>
B>j>
нерентабельна, и >
>.
Если v>j>
– u>i>
= c>ij>,
то такая перевозка рентабельна, и >
> (см.
Теорему 2.7).
Транспортная задача с ограниченными пропускными способностями.
Важной в практическом отношении является Т>d >- задача, в которой существуют ограничения на пропускные способности коммуникаций.
Пусть
>
>-
пропускная способность коммуникации
A>i>
B>j>.
Тогда
>
>
(1.9)
Т-задача состоит в минимизации Ц.Ф. (1.3) при условиях (1.1), (1.2), (1.9). Даже в случае разрешимости Т-задачи, Т>d> – задача может оказаться неразрешимой, поскольку величины пропускных способностей будут недостаточны для полного вывоза продукта из п. А>і>, и полного ввоза продукта в п. В>j>. Поэтому для Т>d> – задачи вводят еще два условия:
>>
(1.10)
>>
(1.11)
Но и при добавочных условиях (1.10), (1.11) Т>d> – задача не всегда разрешима. Для установления совместимости всех условий делают попытку построить любой план Т-задачи. Если удается, то система уравнений (1.1), (1.2), (1.9) – (1.11) совместна. В противном случае Т>d> – задача неразрешима.
Теорема 3. Для оптимальности плана Х>0> Т>d> – задачи необходимо и достаточно существование таких чисел v>1>, v>2>., v>n>, – u>1>, – u>2>., – u>m>, при которых
>> если
>
>,
(1.12)
>> если
0 <>
>,
(1.13)
>> если>
>.
(1.14)
Смысл условий оптимальности (1.12) – (1.14) состоит в следующем:
если
приращение стоимости продукта v>j>
– u>j>
меньше транспортных расходов c>ij>,
то такая перевозка убыточна, а потому
>
>.
Если же приращение стоимости продукта
v>j>
– u>j>
больше транспортных расходов c>ij>
(3.1.14), то эта перевозка прибыльна, а
потому ее величина должна быть
максимальной, т.е. >
>.
Таким образом, теорема 3.3 по существу выражает принцип рентабельности для T>d> – задачи.
Открытые
транспортные модели.
Существует ряд практических задач, в
которых условие баланса >
>не
выполняется. Такие модели называются
открытыми. Возможные два случая:
1)>>
2)>>
В первом случае полное удовлетворение спроса невозможно.
Такую
задачу можно привести к обычной
транспортной задаче следующим образом.
Обозначим через >
>величину
штрафа из-за неудовлетворения запросов
на единицу продукта в пункте B>j>.
Тогда требуется минимизировать
>>
(1.15)
при условиях
>>
где
>
>-
неудовлетворенный спрос.
Задачу (3.1.15)
приводят к обычной Т-задаче введением
фиктивного пункта производства А>m+1>,
с объемом производства >
> и
транспортными издержками >
> В
таком случае Т-задача будет иметь вид
минимизировать
>
>
при условиях
>>
В
найденном решении х>опт>
полагаем все перевозки из фиктивного
пункта А>m+1>
равными нулю, т.е. >
>.
Рассмотрим
теперь второй случай. Введем фиктивный
пункт B>n+1>
с объемом спроса >
>.
Пусть >
>-
это убытки (штраф) в пункте А>і>
за единицу невывезенного продукта.
Обозначим через сии>,n+1>
= >
> удельные
транспортные издержки на перевозку
единицы продукта с А>і>
в В>n+1>.
Тогда соответствующая Т-задача запишется
так:
минимизировать
>
>
(1.16)
при условиях
>>
(1.17) – (1.18)
В найденном
решении >
> все
перевозки >
>в
фиктивный пункт В>n+1>
считают равными нулю.
Опорные планы Т-задачи
Опорным (базисным) планом Т-задачи называют любое ее допустимое, базисное решение. Понятие опорного плана имеет наглядную геометрическую интерпретацию.
Последовательность коммуникаций
>>
(1.19)
называют
маршрутом, соединяющим пункты >
> (рис. 2).
>
>
>
>
>
>
… >
>
|
|||
|
|||





Рис. 2
Используя
маршрут, составленный из коммуникаций,
можно осуществить перевозку продукта
из пункта >
> в
пункт >
>,
проходя через пункты >
>.
В процессе этого движения коммуникации, стоящие на четных местах в (1.19), будут пройдены в противоположном направлении.
Маршрут
(1.19), к которому добавлена коммуникация
>
> называется
замкнутым маршрутом или циклом.
Способ проверки произвольного плана Т-задачи на опорность, основан на следующих двух теоремах (прямой и обратной).
Теорема
4. Система,
составленная из векторов >
> Т-задачи,
является линейно независимой тогда и
только тогда, когда из коммуникаций,
соответствующих этим векторам, нельзя
составить замкнутый маршрут.
Доказательство.
Необходимость.
Пусть векторы >
> линейно
независимы. Если бы существовал замкнутый
маршрут из коммуникаций >
> и
>
>,
то, очевидно, начиная движение из пункта
>
> и
последовательно проходя все пункты
>
> по
последней коммуникации >
> мы
вернемся в начальный пункт >
>.
Тогда справедливое равенство
>>
(1.20)
которое указывает на линейную зависимость векторов
>>.
Полученное противоречие доказывает необходимость условий теоремы 4.
Достаточность.
Допустим, что из коммуникаций, отвечающих
векторам >
>системы
R, нельзя составить замкнутый маршрут.
Докажем, что в таком случае R – линейно
независимая система. Если предположить
противное, т.е. линейную зависимость
векторов системы R,
то существуют такие числа >
>,
среди которых не все нули, для которых
выполняется условие
>>.
(1.21)
Пусть,
например >
>.
Перенесем тогда соответствующий вектор
вправо и получим
>>,
(1.22)
где
Е>1>
образуется вычеркиванием в Е пары
индексов (>>).
Компонента с номером >
> в
правой части (3.1.22) не равна нулю.
Следовательно, это же относится и к левой части этого равенства, т.е. среди
векторов
>
>
найдется хотя бы один вектор вида >
> с
коэффициентом
>
>.
Перенеся его в правую чатсть равенства
(1.22), получим
>>,
(1.23)
где
>
>.
Но поскольку >
>,
компонента с номером >
>
правой части (1.23) отлична от нуля. Поэтому
среди векторов левой части (1.23) найдется
хотя бы один вектор вида >
>,
для которого >
>.
Перенося его в правую часть (1.23), находим
>>
(1.24)
где
>
>
Этот процесс переноса векторов в правую часть можно продолжить аналогичным образом и дальше. Допустим, что уже проведено (2k-1) шагов. Тогда имеет место соотношение
>>
(1.25)
где
>
>
Возможные два случая:
1)
>
> при
некотором >
>
2)
>
>.
В первом случае процесс переноса заканчивается, причем из векторов в правой части (1.25) можно образовать замкнутый маршрут. Таким маршрутом является
>>
Во
втором случае процесс переноса
продолжается, и поскольку >
>,
среди векторов Р>ij>,
где (i, j) >
> обязательно
найдется вектор >
>с
коэффициентом >
>.
Описанный процесс переноса не может длится бесконечно, так как все вектора, переносимые вправо, различны. Поэтому через конечное число шагов мы обязательно столкнемся со случаем 1, который, как показано выше, ведет к образованию замкнутого маршрута.
Итак,
допустив, что система векторов >
>линейно
зависима, мы пришли к противоречию с
условием теоремы, согласно которому из
коммуникаций >
> системы
R нельзя составить замкнутый маршрут.
Остается принять, что система R состоит
из линейно независимых векторов.
Достаточность условий теоремы доказана.
Назовем
коммуникацию >
> Т-задачи
основной коммуникацией плана Х,
если >
> Тогда,
используя теорему 3.4, можно сформулировать
следующий признак проверки произвольного
плана на опорность.
План
>
> Т-задачи
является опорным (базисным), если из его
основных коммуникаций нельзя составить
замкнутый маршрут.
Теорема
5. Вектор
>
> является
линейной комбинацией векторов системы
R
тогда и только тогда, когда из векторов
этой системы можно составить маршрут,
соединяющий пункты A>k>
и >
>.
Если этот маршрут имеет вид
>>
то
>>.
(1.26)
Доказательство
этой теоремы основано на теореме 3.4.
Пусть >
> выражен
в виде линейной комбинации векторов
системы R. Добавив к ней вектор >
>,
получим систему линейно зависимых
векторов. Тогда в силу теоремы 3.4
появляется замкнутый маршрут >
>.
Этот замкнутый маршрут должен содержать
коммуникацию >
> и,
следовательно, все остальные коммуникации
должны соединить >
> и
>
>.
Тогда
>>.
Перенеся >
> в
правую часть, получим выражение (1.26),
что и требовалось доказать.
1 |
2 |
3 |
4 |
5 |
6 |
i /j |
|
|
1 |
|
|
1 |
|||
|
1 |
2 |
|||||
X = |
|
|
3 |
||||
|
1 |
4 |
|||||
|
1 |
1 |
5 |
||||
Рис. 3.3. |
Рассмотрим
произвольную матрицу >
>.
Между позициями матрицы Х
и векторами >
> можно
установить следующее соответствие.
Вектор >
> соответствует
элементу >
> матрицы
Х.
Тогда можно задать систему из векторов
>
>,
выделив единицами соответствующие
элементы матрицы Х.
Рассмотрим матрицу на рис3. Здесь
единицами отмечена система векторов
R:
>>.
При
использовании матрицы Х
критерий проверки линейной независимости
формулируется так: для линейной
независимости системы векторов>>
необходимо и достаточно, чтобы из
ненулевых элементов матрицы Х,
отвечающих этим векторам, невозможно
было составить замкнутый маршрут (цикл).
Так как из выделенных единицами позиций на рис. 3 нельзя составить замкнутый маршрут, то данная система линейно независима и образует базис.
Введем
теперь в систему >
> вектор
>
>,
отметив его знаком '+'. Чтобы разложить
>
> по
векторам системы R, составим цепочку из
выделенных элементов, которая замыкается
на элементе >
>:
>>.
При небольших размерах матрицы Х визуальное отыскание замкнутых цепочек в ней представляет значительные трудности. В таком случае прибегают к формализованному методу вычеркивания. Метод вычеркивания позволяет выделить в произвольном плане Х Т-задачи замкнутую цепочку, если она существует.
Этот метод состоит в следующем. Выделив в плане Х множество ненулевых элементов, обозначаемое через S, выясним, существуют ли во множестве элементов S циклы. Для этого просматриваем одну за другой строки плана Х и вычеркиваем строки, не содержащие элементов S, и строки, которые содержат не более одного элемента S (ненулевой элемент). Просмотрев все строки плана Х, переходим к столбцам и вычеркиваем те из них, которые содержат не более одного элемента S.
При этом элементы, содержащиеся в ранее вычеркнутых строках, в расчет не принимают. Далее повторяем весь этот процесс, просматривая сначала строки, а потом столбцы оставшейся после вычеркивания строк и столбцов подматрицы.
После конечного числа шагов этот процесс заканчивается одним из следующих двух исходов: 1) все строки (столбцы) матрицы вычеркнуты; 2) получена подматрица, в каждой строке и столбце которой содержится не менее двух элементов S.
В первом случае из элементов множества S составить цикл невозможно. Следовательно, соответствующий план Х является опорным.
Во втором случае множество S содержит цикл (циклы) и соответствующий план Х не является опорным (базисным). На рис. 4 показаны два плана Т-задачи: небазисный (рис. 4, а) и базисный (рис. 4, б). Номера линий указывают порядок вычеркивания. Звездочками отмечены элементы, которые вычеркнуть нельзя. Они образуют цикл.
1* *1 1* 1* 1 1 *1 *1 Рис. 4. а) |
1 1 9 1 1 2 1 10 1 1 1 3 1 4 1 Рис. 4. б) |
Нахождение начальных опорных планов
Существует несколько методов построения начальных опорных планов Т-задачи. Из них самый распространенный метод северо-западного угла и метод минимального элемента.
Метод северо-западного угла. Основную идею метода рассмотрим на конкретном примере.
Пусть
дана Т-задача с четырьмя пунктами
производства А>1>,
А>2>,
А>3>,
А>4>
с объемами производства >
> и
пунктами потребления >
> с
объемами потребления соответственно
>
>.
Построим
матрицу Х
размером 4х4, причем для удобства
вычислений снизу от нее оставим строку
b>j>,
справа столбец a>i>.
Кроме того, снизу от b>j>
образуем строки >
>,
где будем записывать неудовлетворенные
потребности, а справа от a>i>
– столбцы >
>,
где будем записывать остатки невывезенного
продукта (табл. 2).
Заполнение
таблицы начинают с левого верхнего
элемента таблицы X
– x>11>,
что и обусловило название метода. Сравнив
>
> с
>
> и
выбрав меньшее из них, получим x>11>=1.
Записываем это значение в матрицу Х>0>.
Так как первый выбор произведен по
строке, то остальная часть первой строки
должна быть заполнена нулями. Во
вспомогательном столбце >
> записываем
остатки невывезенного продукта, >
>,
а в строке >
> –
неудовлетворенные потребности после
одного шага заполнения.
Переходим
к второй строке и начинаем заполнение
с элемента >
> (новый
северо-западный угол незаполненной
части таблицы 2). Сравнивая >
> выбираем
меньшее из них, и потому >
>.
Остальную часть второй строки заполняем
нулями. Далее заполняем таблицу
аналогично. После окончания процесса
заполнения будем иметь начальный план
Х>0>.
Полученный план является базисным
(опорным), так как из его ненулевых
элементов нельзя составить цикл. Кроме
того, он удовлетворяет условиям задачи,
так как
>>.
Таблица 2
Х |
> |
> |
> |
> |
> |
> |
|||||
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
2 |
0 |
0 |
0 |
2 |
2 |
0 |
0 |
0 |
0 |
0 |
|
2 |
1 |
0 |
0 |
3 |
3 |
3 |
1 |
0 |
0 |
0 |
|
0 |
0 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
2 |
0 |
|
> |
5 |
1 |
2 |
2 |
|||||||
> |
4 |
1 |
2 |
2 |
|||||||
> |
0 |
1 |
2 |
2 |
|||||||
> |
0 |
0 |
2 |
2 |
|||||||
> |
0 |
0 |
0 |
2 |
|||||||
> |
0 |
0 |
0 |
0 |
Формальное описание алгоритма. I. Определяют верхний левый элемент матрицы Х:
>>.
Возможные
три случая: а) если >
>то
>
> и
всю первую строку, начиная со второго
элемента, заполняют нулями; б) если >
>,
то >
>,
а все оставшиеся элементы первого
столбца заполняют нулями; в) если
>> то
>
>
и все оставшиеся элементы первых столбцов и строки заполняют нулями.
Находим
>>
на этом один шаг метода заканчивается.
2. Пусть уже проделано k шагов. (k+1) – й шаг состоит в следующем. Определяют верхний левый элемент незаполненной части матрицы Х. Пусть это будет элемент
>>
причем
>>,
(1.27)
где
>>
(1.28)
Если
>
>,
то заполняем нулями строку >
>,
начиная с (>
>
+1) – го элемента. В противном случае
заполняем нулями столбец >
>,
начиная с элемента (>
>
+1). Если >
>,
то заполняем нулями остаток строки >
> и
столбца >
>.
Далее вычисляем >
>.
На этом (k+1) – й шаг заканчивается.
Описанный процесс повторяется до тех
пор, пока матрица Х
не будет заполнена полностью.
Метод минимального элемента
Этот
метод является вариантом метода
северо-западного угла, учитывающим
специфику матрицы транспортных затрат
С=>>.
В отличие от метода северо-западного
угла данный метод позволяет сразу
получить достаточно экономичный план,
сокращая общее количество итераций по
его дальнейшей оптимизации.
Формальное описание алгоритма. Элементы матрицы нумеруют, начиная от минимального в порядке возрастания, а затем в этом же порядке заполняют матрицу Х>0>.
Пусть
элементом с минимальным порядковым
номером оказался >
>.
Возможные три случая: а) если >
>,
то оставшуюся часть >
>-й
строки заполняем нулями; б) если >
>,
то оставшуюся часть >
>-го
столбца заполняем нулями; в) если >
>,
то оставшуюся часть >
>-й
строки и >
>-го
столбца заполняем нулями.
Дале этот процесс повторяют с незаполненной частью матрицы Х>1>.
Пример 1. Найти начальный базисный план методом минимального элемента для Табл. 3. следующей задачи.
Таблица. 3.
A>i> \ B>j> |
1 |
2 |
3 |
4 |
B>j> / a>i> |
1 |
7(10) |
8(11) |
5(7) |
3(5) |
11 |
2 |
2(3) |
4(4) |
5(8) |
9(12) |
11 |
3 |
6(9) |
3(4) |
1(1) |
2(2) |
8 |
A>i> / b>j> |
5 |
9 |
9 |
7 |
b>j> \ a>i> |
Цифры в скобках указывают порядок заполнения элементов в матрице Х>0> (табл. 3.4).
Соответствующее значение целевой функции равно
>> 3*8
+ 1*5 + 3*7 + 5*2 + 6*4 + 8*1 = 92
Таблица 4
Х>0> |
> |
> |
> |
||||||
0 |
3 |
1 |
7 |
11 |
4 |
3 |
0 |
||
5 |
6 |
0 |
0 |
11 |
6 |
0 |
|||
0 |
0 |
8 |
0 |
8 |
0 |
||||
> |
5 |
9 |
9 |
7 |
|||||
> |
0 |
3 |
1 |
0 |
|||||
> |
0 |
0 |
|||||||
Решение транспортной задачи при вырожденном опорном плане
Опорный план называется вырожденным, если число его ненулевых перевозок k меньше ранга матрицы ограничений. В процессе построения начального плана или при его улучшении очередной план может оказаться вырожденным.
Рассмотрим два случая.
1.
Вырожденный план является начальным
Х>0>.
Тогда выбирают некоторые нулевые
элементы матрицы Х>0>
в качестве базисных так, чтобы при этом
не нарушалось условие базисного плана.
Число этих элементов равняется >
>.
Далее данные элементы заменяют на >
> (где
>
> –
произвольное, бесконечно малое число)
и рассматривают их как обычные базисные
элементы плана. Задачу решают как
невырожденную, а в последнем оптимальном
плане Х>k>
вместо>
>
пишут нули.
2.
Вырожденный план получается при
построении плана Х>k+1>
на базе Х>k>,
если цепочка в плане Х>k>
содержит не менее двух минимальных
нечетных элементов. В таком случае в
матрице Х>k+1>
полагают равным нулю только один из
этих элементов, а остальные заменяют
на >
>,
и далее решают задачу как невырожденную.
Если на k-м шаге >
>,
то при переходе от Х>k>
к Х>k+1>
значение целевой функции не изменяется,
а в базис вводится элемент >
>,
для которого перевозка станет равной
>
>.
Пример 2. Решим Т-задачу со следующими условиями (см. Табл.6)
Проверим
условие баланса >
>
Предварительный этап. Методом минимального элемента строим начальный базисный план Х>0> (Табл. 5)
Таблица 5
C = |
a>i >b>j> |
4 |
6 |
8 |
6 |
6 |
2(5) |
2(4) |
3(6) |
4(11) |
|
8 |
6(12) |
4(10) |
3(9) |
1(3) |
|
10 |
1(1) |
2(6) |
2(7) |
1(2) |
>>
Так как m + n – 1 = 6; k = 4, то план х>0> – вырожденный; l = m+ n -1 – k = 2.
Два
нулевых элемента Х>0>
делаем базисными так, чтобы не нарушить
условие опорности. Выберем в качестве
базисных элементов >
>,
>
> и
положим их равными .
Схема перевозок для плана Х>0> показана на рис. 6.
|
|||||||
Для
вычисления предварительных потенциалов
выберем начальный пункт А>1>
и допустим, что >
>.
Потенциалы всех остальных пунктов
вычисляем по формулам
>>,
>
>
Для проверки оптимальности плана х>0> строим матрицу С>1>, элементы которой вычисляем по соотношению
>>
>>
Так как в матрице С>1> элемент С>23 >= – 3 < 0, то план Х>0> – неоптимальный.
Первая итерация. Второй этап.
|
|
|
|
|
|
|||||||||
* |
6* |
0 |
0 |
|
6 |
0 |
0 |
|||||||
X>0 >= |
|
|
* |
8 |
0+ |
|
X>1> = |
0 |
0 |
6 |
|
|||
4 |
0 |
0 |
6* |
>1> = |
4 |
0 |
0 |
6 |
||||||
|
>>
В
результате построения Х>1>
в базис вводим>>.
План Х>1>
является вырожденным (в цепочке есть
два минимальных элемента). Поэтому один
из этих элементов, например >
>,
в плане Х>1>
заменяем на .
Вторая итерация. Первый этап
|
|
|
|
|||||||||||
|
> |
0 |
2 |
2 |
0 |
0 |
-1 |
2 |
||||||
|
2 |
0 |
> |
-3 |
|
С>2> = |
5 |
3 |
0 |
0 |
||||
0 |
1 |
2 |
0 |
0 |
1 |
-1 |
0 |
|||||||
-3 |
>>
Второй этап.
|
|
|
|
|
||||||||||
|
6 |
0 |
0 |
|
6 |
0 |
0 |
|||||||
X>1 >= |
|
0 |
0 |
8* |
* |
X>2> = |
0 |
0 |
2 |
6 |
||||
4 |
0 |
0+ |
6* |
>3> =min {8, 6}= 6 |
4 |
0 |
6 |
0 |
||||||
|
Третья итерация. Первый этап.
|
|
|
|
|
||||||||||
|
> |
> |
-1 |
2 |
+1 |
0 |
0 |
0 |
3 |
|||||
С>2 >= |
5 |
3 |
> |
> |
|
С>2> = |
4 |
2 |
0 |
0 |
||||
|
> |
1 |
-1 |
0 |
+1 |
0 |
1 |
0 |
1 |
|||||
-1 |
-1 |
Так как в матрице С>3> нет отрицательных элементов, план Х>2> – оптимальный.
Венгерский метод для транспортной задачи
Рассмотренная
выше задача о назначениях представляет
собой частный случай Т-задачи, когда >
>.
Поэтому венгерский метод, применимый
для решения транспортной задачи
специального вида, можно распространить
на общий случай Т-задачи.
Пусть требуется решить Т-задачу следующего вида
минимизировать
>
>
при условиях
>>
Алгоритм решения Т-задачи, основанный на венгерском методе, состоит из предварительного этапа и конечного числа однотипных итераций.
В
результате предварительного этапа
вычисляют матрицу >
>,
элементы которой удовлетворяют следующим
условиям:
>>,
(1.3.1)
>>.
(1.3.2)
Если в условиях (1.3.1), (1.3.2) строгие равенства, то матрица Х>0> является решением Т-задачи.
Матрицу,
построенную в результате k-й итерации,
обозначим >
>.
Обозначим также
>>.
(1.3.3)
Величина >
> называется
суммарной невязкой для матрицы >
>.
Она характеризует близость >
> к
искомому плану Т-задачи. Итерации
проводятся до тех пор, пока величина
>
> не
станет равна нулю.
Описание алгоритма Венгерского метода
Предварительный
этап. В каждом из столбцов матрицы
транспортных издержек >
> отыскивают
минимальный элемент, который вычитают
из всех элементов этого столбца. Получают
матрицу С'.
Далее в каждой строке матрицы С'
выбирают минимальный элемент и вычитают
его из всех элементов рассматриваемой
строки. Приходят к матрице С>0>
(С>0>
~ C),
все элементы которой неотрицательны,
причем в каждой строке и столбце С>0>
имеем по крайней мере, один нуль. Строят
матрицу Х>0>
так, чтобы ее ненулевые элементы были
расположены в позициях нулей матрицы
С>0>.
Пусть
>
>-
номер строки, в которой расположен k-й
нуль j-го столбца матрицы С>0>.
Тогда элементы первого столбца матрицы
Х>0>
определяют по рекуррентной формуле
>>
(3.3.4)
Т.е.
все элементы первого столбца >
>,
которым соответствуют ненулевые элементы
в матрицы С>0>,
заполняют нулями, а остальные элементы
этого столбца заполняют по методу
северо-западного угла.
Допустим, что столбцы Х>0> от первого до (j-1) – го включительно уже заполнены. Тогда элементы j-го столбца определяют в соответствии с формулой
>>
(3.3.5)
Если >
>,
то Х>0>
– оптимальный план Т-задачи. Если >
>,
то переходим к первой итерации.
(k+1) – я итерация. Каждая итерация состоит из двух или трех этапов. Итерация начинается первым этапом, а заканчивается вторым. Между первым и вторым этапами в общем случае несколько раз могут быть проведены третий и первый этапы.
Допустим,
что уже проведено k итераций, причем >
>.
В этом случае необходимо, используя
матрицы С>k>
и Х>k>,
провести следующую (k+1) – ю итерацию.
Перед началом итерации выделяют знаком
'+' те столбцы матрицы С>k>,
для которых невязки по столбцам равны
>>.
Первый
этап. Если все ненулевые элементы матрицы
С>k>
окажутся в выделенных столбцах, то
переходят к третьему этапу. В противном
случае пусть некоторый невыделенный
нуль находится в >
>-й
строке и в >
>-м
столбце. Тогда вычисляют значения
невязки >
>-й
строки:
>>.
Возможен
один из двух случаев: 1)>>,
2)>
>.
В первом случае >
>-ю
строку С>k>
отмечают знаком '+' справа от нее, а сам
невыделенный нуль отмечают штрихом.
Далее просматривают элементы >
>-й
строки, которые лежат в выделенных
столбцах и ищут среди них существенные
нули (напомним, что существенным нулем
С>k>
называется такой элемент >
>,
для которого >
>).
Если таким существенным нулем оказался
элемент >
>,
а сам столбец – выделен, то знак
выделения '+' над столбцом уничтожают,
а сам этот нуль отмечают звездочкой.
Затем
просматривают -й столбец и отыскивают
в нем нуль (нули), расположенные в отличных
от >
>-й
строках. Если такой нуль имеется, то
отмечают его штрихом и анализируют
невязку его строки.
Далее процесс поиска нулей и выделение их (штрихами или звездочками) продолжается аналогично, и за несколько шагов он заканчивается одним из следующих исходов:
1)
найдем очередной невыделенный нуль
матрицы С>k>,
для которого невязкая в строке >
>.
Тогда отметив его штрихом, переходим
ко второму этапу;
2)
все нули матрицы С>k>
оказались выделенными, причем для
каждого из нулей, выделяемых штрихом,
невязка >
>.
Тогда переходим к третьему этапу.
Во втором случае, отметив этот нуль штрихом, сразу переходим к третьему этапу.
Второй этап. Состоит в построении цепочки из нулей матрицы С>k>, отмеченных штрихами и звездочками, и в последующем переходе к новой матрице Х>k+1>
Пусть
для некоторого нуля со штрихом матрицы
С>k>,
расположенного, например, в позиции
(>>),
невязка строки >
>.
Начиная с этого элемента >
>,
строят цепочку из отмеченных нулей
матрицы С>k>:
двигаясь по столбцу >
>,
выбирают нуль со звездочкой >
>,
далее двигаясь от него по строке >
>,
находят нуль со штрихом >
>.
Потом движутся от него по столбцу >2>
к следующему нулю со звездочкой и т.д.
Такой последовательный переход от 0' к
0*
по столбцу и от 0*
к 0' по строке осуществляют до тех пор,
пока это возможно.
Можно доказать, что процесс построения цепочки однозначный и законченный, цепочка не имеет циклов, начинается и заканчивается нулем со штрихом.
После того как цепочка вида
>>
построена,
осуществляют переход к матрице >
> от
матрицы Х>k>
по формулам
>>
(1.3.7)
где
>
>
(1.3.8)
Таким
образом, >
>-минимальный
элемент среди совокупности четных
элементов цепочки, невязки строки, где
начинается цепочка, и столбца, где она
заканчивается.
Вычисляем
невязку для >
>
На этом (k+1) – я итерация заканчивается.
Третий
этап. Итак, допустим, что все нули
выделены. Третий этап заключается в
переходе от матрицы С>k>
к эквивалентной матрице С′>k>,
в которой появляется новый невыделенный
нуль (или нули). Пусть >
>,
где минимум выбирают из всех невыделенных
элементов матрицы С>k>.
Тогда из всех элементов невыделенных
строк матрицы С>k>
вычитают h, а ко всем элементам выделенных
столбцов прибавляют h. В результате
получают матрицу С'>k>(С'>k
>~ C>k>),
в которой все существенные нули матрицы
С>k>
остаются нулями, и кроме того, появляются
новые невыделенные нули.
Далее переходят к первому этапу, и в зависимости от его результата либо переходят ко второму этапу, либо снова возвращаются к третьему этапу. За конечное число повторов пары этапов третий – первый обязательно перейдем ко второму этапу.
Если
после выполнения второго этапа >
> то
Х>k+1>
– оптимальный план. В противном случае
переходим к (k+2) итерации.
Отметим некоторые важные особенности венгерского метода.
Поскольку данный метод в отличие от метода потенциалов не использует опорных планов, то явление вырожденности плана для него отсутствует. Это устраняет возможность зацикливания, связанного с вырожденностью планов Т-задачи, которая облегчает программирование метода и его реализацию на ЭВМ.
Метод
позволяет на каждой итерации по величине
невязки >
>оценить
близость Х>k>
к оптимальному плану, а также верхнюю
границу необходимого числа оставшихся
итераций N>ост>:
>>.
(1.3.9)
Эта
формула справедлива для целочисленных
значений всех переменных >
> и
>
>.
Список литературы
1. Акулич И.Л. Математическое программирование в примерах и задачах. – М.: Высшая школа.
2. Вентцель Е.С. Исследование операций. – М.: Наука, 1976.
3. Горелик В.А., Ушаков И.А. Исследование операций. – М: Машиностроение, 1986. – 286 с.
4. Давыдов Э.Т. Исследование операций: Учебное пособие для студентов вузов. – М.: Высшая школа, 1990. – 383 с.
5. Ермолаев Ю.М. Математические методы исследования операций. – К.: Наука, 1979.
6. Кузнецов Ю.Н. Математическое программирование. – М.: Наука, 1976.
7. Минц М. Математическое программирование. Теория и алгоритмы. – М.: Наука, 1990.
8. Таха Х. Введение в исследование операций. – м.: Мир, 1985.
9. Толбатов Ю.А. Эконометрика в Excel. – К.: Четверта хвиля, 1997.