Теория игр и исследование операций. Модели, алгоритмы, сложность: Конспект лекций, страница 30

Работы будем обозначать сплошными дугами, а отношения предшествования (фиктивные дуги) – прерывистыми. Составим из работ слоистую сеть. На слой 1 поместим работы, которым ничего не предшествует. Работам следующих слоев предшествуют работы слоев с меньшими номерами, причем хотя бы одна работа с непосредственно предшествующего слоя.

Правила редукции графа. 1. Если концы фиктивной дуги связывает путь, то дугу можно удалить (из r1 в r6 и из r3 в r7).

2. Если в  вершину втекает, или из нее вытекает единственная дуга, и она фиктивна, то начало и конец дуги можно склеить (r3 поглощает 2 дуги, r5 и r6 по 1).

3. Две работы, следующих одна за другой, объединим в одну с суммарной длительностью, если степень вершины на стыке равна 2 ( в примере - r6 и r7).

Объединим все вершины слоя 1 в вершину s, последнего слоя – в вершину t.

Пусть ai – самый ранний срок начала работ, выходящих из вершины j, а wi – самый поздний срок окончания работ, входящих в вершину j при условии, что весь комплекс работ будет завершен в минимальное время. Тогда

a1 = 0,   ai = max j{ai + tij }               wt = at ,   wi = min j{wj - tij }

ai

0

10

8

22

10

36

55

i

S

1

2

3

4

5

T

wi

0

10

22

22

29

36

55

Dij = wj - tij - ai  - максимальная задержка работы, выполняющейся на отрезке (i,j).

Работу назовем критической, если Dij = 0. Путь критический, если все дуги в нем критические. Он – самый длинный в сети.

Двойственность в сетевом планировании.

Задача нахождения αi= max{αi+ dij} ~ задаче αt- αs → min при αi– αj≥ dij

Она двойственна прямой задаче c’x → max, Ax = b, x ≥ 0 с параметрами: A - матрица инциденций, c ={dij} – длительности работ (реальных и фиктивных), x – единичный поток. Ограничения прямой задачи = уравнения баланса для потока. Матрица инциденций вполне унимодулярна Þ ЛП = ЦЛП Þ c’x = длина пути. Цель – найти максимальный путь. Граф ацикличен Þ задача полиномиальна.

Выделение критических работ и путей непосредственно следует из ТДН ???

Обратим внимание на то, что y=α в двойственной задаче y’b → min, y’A ≥ c’ может быть любым Þ ограничения прямой задачи имеют форму равенств. b=(-1,0   0,1).

Связь с NP ‑полной задачей МНОГОПРОЦЕССОРНОЕ РАСПИСАНИЕ.


3.5. ПОТОКОВЫЕ ЗАДАЧИ

Задача о максимальном потоке (ЗМП).

Пусть S – сеть, т.е. граф (V,E) с выделенными стартовой и терминальной вершинами s, t ÎV; A ={a ij ³ 0} – матрица пропускных способностей ребер,
a ij = 0 Û ребра нет; поток X ={xij}– матрица, удовлетворяющая ограничениям:

0 £ xij £ a ij ,              Sjxij = Skxki , " i ¹ s,tуравнение баланса.

Максимизируем величину потока, вытекающего из вершины s:   F( X ) = Sjxsj .

Предположение А. r=min{xij, xji} = 0. Иначе проводим операцию ГАШЕНИЕ:
xij = xij – r, xji= xji – r. Поток при этом остается допустимым. В том числе xii = 0. Предположение Б. xjs = xtj = 0 (в s ничего не втекает, из t ничего не вытекает).

На диагонали матрицы X стоят нули. Суммы элементов первой строки и последнего столбца равны. Для остальных строк: сумма элементов строки i равна сумме элементов i-го столбца.

Все ограничения и целевая функция линейны Þ это задача ЛП.

Как и задача о кратчайшем пути, она может решаться волновым алгоритмом.

Пусть W – множество включенных вершин: WÌV, sÎW, tÏW. Обозначим через R(W) ={(v1,v2E | v1ÎW, v2ÏW}  -разрез,`R(W) ={(v1,v2E | v1ÏW, v2ÎW} -антиразрез,
a (R (W )) =  - пропускную способность разреза. 

Теорема 1: Для любого потока X и для любого W .

Доказательство. Имеем  .

Следствие 1. Sjxsj = Skxkt . Для этого достаточно взять W = V \ {t}.

Следствие 2. Для любого потока X и для любого W имеем F (X) ≤ a (R (W )) .

Доказательство:      .

Неравенство верно для любых Xи W Þ .

Теорема 2 (Форда-Фалкерсона):