Смекни!
smekni.com

Математические методы исследования операций в экономике (стр. 23 из 37)

Задачу минимизации функции (3.13) при ограничениях (3.11)-(3.12) обычно называют линейной сетевой задачей. Очевидно, что она является задачей линейного программирова­ния. Если дополнительно для каждой дуги сетиdD опреде­лить величины rd ≥ 0, называемые пропускными способно­стями, то, добавив ограничения

мы получаем задачу о потоке в сети с ограниченными пропуск­ными способностями.

Приведенные формулировки задач специально даны в столь абстрактном виде, что позволяет подчеркнуть их универсаль­ность. К очевидной сфере их приложения относится организа­ция грузоперевозок в транспортной сети. В таких моделях вершины i трактуются как пункты, соединенные сетью дорог, и характеризуются потребностями в некотором продукте (bi<0) или его запасами (bi>0). Задачи определения плана, минимизирующего затраты на перевозки, которые с матема­тической точки зрения полностью идентичны (3.11)-(3.13), (3.14), также называют транспортными задачами в сете­вой постановке.

3.2.2. Метод потенциалов для транспортной задачи в сетевой постановке. Рассмотрим задачу определения опти­мального потока Х в некоторой сети (I, D, G), для которого

при ограничениях

где rd ≥ 0. Предполагается также, что сеть является сбаланси­рованной, т. е.

Для задачи (3.15)-(3.17) справедлив критерий оптималь­ности:

-Для того, чтобы допустимый поток Х={хd}dD (т. е. удовлетворяющий условиям (3.16)-(3.17)) был опти­мальным, необходимо и достаточно существование для каждой вершины i I такого числа vi, называемого по­тенциалом, что для всех дуг d = (i, j)

Заметим, что логика обоснования данного критерия абсо­лютно идентична той, которая использовалась для обоснова­ния критерия оптимальности плана транспортной задачи в мат­ричной постановке: построение двойственной задачи и приме­нение соответствующей теоремы двойственности.

Для решения транспортной задачи в сетевой постановке (3.15)-(3.17) также может быть применен метод потенциа­лов, который является обобщением описанного выше мето­да потенциалов для транспортной задачи в матричной поста­новке.

Поскольку задача (3.15)-(3.17) является частным случаем задачи линейного программирования, ее можно привести к ка­нонической форме. При этом достаточно просто устанавлива­ется, что ранг матрицы задачи равен m-1, где m — количество вершин в сети. Введем дополнительно еще некоторые понятия, используемые при описании свойств сетевых задач.

Остовом сети (I, D, G) называется любое ее частичное дере­во (частичный граф, являющийся деревом). Справедливо утвер­ждение:

-Произвольному остову сети (I, D, G) соответствует ба­зис задачи (3.15)-(3.17) и наоборот.

Пусть имеется некоторый поток Х={хd}dD. Рассмотрим множество дуг D(X)= {dD| 0 < xd < rd}. Опорой потока Х назы­вается частичный граф (I, D(X), G). Говорят, что поток Х не­вырожден, если его опора (7, D(X), G) является остовом сети (I, D, G). Иными словами, используя терминологию транспорт­ной задачи, в невырожденном потоке, которому отвечает допу­стимый базисный план задачи, дороги, по которым осуществля­ются перевозки груза, не достигающие по объему ограничения на пропускную способность, образуют остов (связанную под­сеть без циклов) рассматриваемой транспортной сети.

Теперь дадим краткое описание схемы метода потенциалов для транспортной задачи в сетевой постановке.

1°. Предполагается, что в начале очередной итерации q имеется некоторый допустимый невырожденный потокХ={хd(q)}dD(о методах его генерации на начальном этапе бу­дет сказано в дальнейшем).

По имеющемуся потоку Х(q) строится система потенциалов пунктов сети. Для этого выбирается произвольный пунктi0, потенциал которого полагаетсяvi0 =0. Множество вершин, смежных с i0, обозначим через I(i0). Тогда для любой вершины j I(i0) потенциалы рассчитываются по правилу

если (i0,j)∊D(X(q)) (дуга направлена от i0),и

если (j,i0)∊G(D(X(q))) (j,i0)∊D(X(q)) (дуга направлена кi0).

Получив очередную группу вершин с известными потенциа­лами, мы имеем возможность на основе (3.22)-(3.23) вычис­лить потенциалы для следующей группы смежных вершин и т. д., пока не будут определены все потенциалы. Возможность сде­лать это единственным образом вытекает из свойства отсут­ствия циклов у остова сети.

Имея полную систему потенциалов, для всех дуг следует про­верить условия критерия оптимальности (3.19)-(3.21). Если они выполняются, то текущий поток Х(q) — оптимальный и, следовательно, алгоритм завершен; в противном случае — пе­реходим к построению следующего «улучшенного» потока.

2°. По аналогии с другими методами последовательного улуч­шения плана очередной поток получается за счет «ввода» в него одной дуги и «вывода» другой. Если условия критерия опти­мальности нарушаются сразу для нескольких дуг, то для ввода имеет смысл выбрать ту, на которой достигается максимальное отклонение цены от разности потенциалов соединяемых вер­шин. Пусть для ввода выбрана некоторая дугаdl = (s,t), направ­ленная из вершины s в вершину t. Из правил построения по­тенциалов следует, что в остове существуют две цепи, одна из которых соединяет базовую вершину i0, потенциал которой был принят равным нулю, с s, а другая — i0 с t. Если дополнить остов дугойdl, образуется единственный цикл. Построенныйцикл является аналогом цепочки преобразования плана в мето­де потенциалов для транспортной задачи в матричной постанов­ке. Обозначим черезD+(s,t) множество дуг данного цикла, ориен­тация которых совпадает с ориентацией дугиdl = (s, t), а через D-(s,t)— множество дуг, имеющих противоположную ориента­цию. Определим величину возможной корректировки объемов грузоперевозок, «перемещаемых» по циклу

Идея формулы (3.24) достаточно прозрачна: при циклическом преобразовании текущего потока увеличиваются объемы гру­зоперевозок на тех дугах, которые сонаправлены вводимой дуге, и уменьшаются на дугах, имеющих обратную ориентацию. Соответственно, при добавлении мы должны следить за тем, чтобы не превысить ограничения на пропускные способности (θ ≤ rdхd(q)), а при вычитании — за неотрицательностью хd(q). После определения θ происходит пересчет компонент текуще­го потока по формуле

В результате мы получаем новый допустимый поток хd(q+1)), полагаем номер текущей итерацииq+1 и переходим к п. 1°.

В описанном алгоритме, как и в случае с матричной транс­портной задачей, мы не гарантированы от возникновения вы­рожденного потока. Как уже упоминалось выше, такому пото­ку будет соответствовать несвязная опора. Для преодоления вырожденности рекомендуется включить в текущий план фик­тивные компоненты с нулевыми объемами так, чтобы соответ­ствующие им дуги дополняли опору до остова сети. Построен­ный таким способом план позволяет выполнитьвсе действия, входящие в стандартную итерацию метода потенциалов.

Отдельно следует остановиться на методах генерации исход­ного допустимого потока. Наиболее простой из них (хотя, воз­можно, и наименее рациональный) основан на идеях, сходных с идеями метода минимизации невязок, используемого для по­строения допустимого базисного плана ЗЛП. Данный метод предполагает решение соответствующей вспомогательной за­дачи, которая получается из основной в результате следующих преобразований:

1. К множеству вершин сети добавляется фиктивная нулевая вершина с нулевой интенсивностью (b0= 0).

2. Все вершины, имеющие отрицательную интенсивность (спрос) bi < 0, соединяются с добавленной вершиной 0 входя­щими дугами (0, i), а вершины, обладающие положительной интенсивностью (запасом) bi >0, — исходящими дугами (i,0). Ограничения на пропускные способности для добавляемых дуг отсутствуют.

3. Стоимости перемещения единицы продукта для вновь до­бавленных дуг полагаются равными 1, а для дуг, соответствую­щих транспортной сети основной задачи, — 0.

Построенная вспомогательная задача обладает очевидным допустимым невырожденным потоком, получаемым назначени­ем объемов, равных интенсивностям вершин, по всем добавлен­ным дугам. Решив вспомогательную задачу, мы либо получим допустимый поток для основной задачи, либо придем к выводу об отсутствии у нее допустимых планов.