Постановка и основные свойства транспортной задачи

Постановка и основные свойства транспортной задачи

Транспортная задача (Т-задача) является одной из наиболее распространенных специальных задач ЛП. Частные постановки задачи рассмотрены рядом специалистов по транспорту, например О.Н. Толстым [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

1

2

X =

1

1

3

1

1

4

1

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. а)

5 6 11 7 8

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.

Рис. 6.

Для вычисления предварительных потенциалов выберем начальный пункт А>1> и допустим, что > >. Потенциалы всех остальных пунктов вычисляем по формулам

>>, > >

Для проверки оптимальности плана х>0> строим матрицу С>1>, элементы которой вычисляем по соотношению

>>

>>

Так как в матрице С>1> элемент С>23 >= – 3 < 0, то план Х>0> – неоптимальный.

Первая итерация. Второй этап.

*

6*

0

0

6

0

0

X>0 >=

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

С>1 >=

2

0

>>

-3

+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.