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

k=1

k=2

k=3

k=4

k=4

k=3

k=2

-

10

6

-

20

10

5

-

11

8

5

8

11

8

5

8

-

10

6

-

12

4

6

9

10

9

4

7

10

20

-5

-

10

20

-5

-

1

-2

-5

-2

1

-2

-5

-2

10

20

-5

-

1

-2

-5

-2

1

20

-5

-2

6

3

12

3

6

3

-2

3

6

3

-2

3

6

3

-2

3

6

3

6

3

6

3

6

3

4

3

-2

1

-

-

3

-

-

-

3

-

9

6

3

6

9

6

3

6

-

-

3

-

9

6

3

6

7

6

1

4

Результат зависит от нумерации вершин. Что значат числа в полученной матрице? После 1-го шага – это длины либо прямых путей, либо двузвенных (через 1 вершину?). После 2-го шага число разрешенных звеньев увеличивается до 4, после 3-го шага – до 8. В результате получим путь длины 2 через 1-ю вершину: 2(1)+2(2)+2(3)+3(1 2)+3(1 3)+3(2 3)+4(1 2 1)+4(1 3 1)+4(2 3 2)+8(1 2 1 3 1 2 1)+… +7(…)+… +6(…)+…+5(…)+… В цепочках не участвует только вершина 4 (на 3-ем шаге).

С каждой матрицей можно связать списки вершин. Например: S2= (0,1,2,12, 121).

S3={(v3u): v, uÎS2}, | S2| = 6 ´ 6, | S3| = 36 ´ 36- мощность S3.???

Нахождение кратчайшего пути для ациклического орграфа

Утверждение 1: В ациклическом графе существует вершина, в которую не входит ни одна дуга.

Доказательство. Предположим противное. Возьмем любую вершину. По предположению в нее входит дуга. Перейдем в начало дуги, пометив его и т.д. Число вершин конечно Þ когда-то мы попадем в помеченную вершину и найдем цикл.

Вершины, в которые не входит ни одна дуга, поместим на слой 1 и удалим выходящие из них дуги. В оставшемся графе снова возьмем вершины, в которые не входят дуги, поместим их на слой 2 и восстановим входящие в них дуги с предыдущих слоев и т.д.

Обработаем этот граф:     D(1)=0     D(2)=d12+D(1)=3,         D(4)=d24+D(2)=-1+3=+2,

D(5)=d25+D(2)=-5+3=-2, D(3)= min{d43+D(4), d13+D(1)}=-4, D(6)= min{D(4)+4, D(3)+9, D(5)+2}=0. Кратчайший путь легко строится по вектору отцов.

Алгоритм работает для любого ациклического графа. Оценим его трудоемкость:

1.  построение слоистой сети ~ числу дуг этого графа

2.  è трудоемкость алгоритма ~ числу дуг, каждая дуга будет обработана 1 раз

В слоистой сети и в начальном графе число дуг совпадает.


№22. Задача сетевого планирования.

Дано множество работ {rk} с длительностями tkи отношение предшествования Pмежду работами. Найти минимальное время, за которое можно выполнить все работы.

k

P.

tk

i

j

Dij = wj – tij – ai

1

-

10

S

1

w1 – 10 – aS = 0

2

-

8

S

2

w2 – 8 – aS = 14

3

1

12

1

3

w3 – 12 – a1 = 0

4

1,2

7

4

5

w5 – 7 – a4 = 19

5

2,3

14

3

5

w5 – 14 – a3 = 0

6

1,4,5

6

5

T

wT – 19 – a5 = 0

7

3,6

13