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}, | S 2| = 6 ´ 6, | S 3| = 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 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.