15

Алгоритмы на графах

[24/100%]
Показать
LaTeX
Задача 362

Построить минимальное остовное дерево для неориентированного графа G=(V,E)\mathfrak {G}=(V, E) с множествами вершин V={v1,v2,v3,v4,v5,v6,v7,v8,v9}V=\left\{ v_{1}, v_{2}, v_{3}, v_{4}, v_{5}, v_{6}, v_{7}, v_{8}, v_{9}\right\} и рёбер E={(v1,v2;18),(v1,v3;2),(v3,v2;4),(v3,v4;6),(v3,v5;8),(v4,v6;5),(v5,v4;4),(v6,v1;7),(v6,v8;4),(v6,v7;3),(v7,v5;1),(v7,v8;7),(v8,v1;5),(v8,v9;3),(v9,v1;1)}E=\left\{ \left(v_{1}, v_{2} ; 18\right),\left(v_{1}, v_{3} ; 2\right),\left(v_{3}, v_{2} ; 4\right),\left(v_{3}, v_{4} ; 6\right), \left(v_{3}, v_{5} ; 8\right),\left(v_{4}, v_{6} ; 5\right),\left(v_{5}, v_{4} ; 4\right),\left(v_{6}, v_{1} ; 7\right),\left(v_{6}, v_{8} ; 4\right),\left(v_{6}, v_{7} ; 3\right), \left(v_{7}, v_{5} ; 1\right),\left(v_{7}, v_{8} ; 7\right),\left(v_{8}, v_{1} ; 5\right),\left(v_{8}, v_{9} ; 3\right),\left(v_{9}, v_{1} ; 1\right)\right\}. Третий параметр в скобках — вес ребра.

?
Задача 363

Найти минимальное остовное дерево для неориентированного графа G=(V,E)\mathfrak {G}=(V, E), в котором V={v1,v2,v3,v4,v5,v6,v7,v8,v9}V=\left\{ v_{1}, v_{2}, v_{3}, v_{4}, v_{5}, v_{6}, v_{7}, v_{8}, v_{9}\right\} и E={(v1,v2;10),(v1,v4;6),(v2,v3;12),(v2,v4;3),(v3,v5;20),(v3,v6;11),(v4,v5;3),(v4,v7;2),(v5,v6;4),(v5,v7;2),(v5,v8;5),(v5,v9;9),(v6,v8;6),(v6,v9;17),(v8,v9;7)}E=\left\{ \left(v_{1}, v_{2} ; 10\right),\left(v_{1}, v_{4} ; 6\right),\left(v_{2}, v_{3} ; 12\right),\left(v_{2}, v_{4} ; 3\right), \left(v_{3}, v_{5} ; 20\right),\left(v_{3}, v_{6} ; 11\right),\left(v_{4}, v_{5} ; 3\right),\left(v_{4}, v_{7} ; 2\right),\left(v_{5}, v_{6} ; 4\right),\left(v_{5}, v_{7} ; 2\right), \left(v_{5}, v_{8} ; 5\right),\left(v_{5}, v_{9} ; 9\right),\left(v_{6}, v_{8} ; 6\right),\left(v_{6}, v_{9} ; 17\right),\left(v_{8}, v_{9} ; 7\right)\right\}.

?
Задача 364

Пусть ee — ребро максимального веса в некотором простом цикле CC графа G=(V,E)\mathfrak {G}=(V, E). Доказать, что

?
(а)

существует минимальное остовное дерево графа G′=(V,E\{e})\mathfrak {G}^{\prime }=(V, E \backslash \left\{ e\right\} ), которое является и минимальным остовным деревом графа G\mathfrak {G};

(б)

если в CC нет других рёбер такого же веса, то никакое минимальное остовное дерево не содержит ee.

Задача 365

Пусть T=(V,T)\mathfrak {T}=(V, T) — минимальное остовное дерево для нагруженного неориентированного графа G=(V,E)\mathfrak {G}=(V, E) с nn вершинами, c−c- разметка рёбер. Пусть (e1,e2,…,en−1)\left(e_{1}, e_{2}, \ldots , e_{n-1}\right) — это последовательность рёбер из TT, упорядоченных по возрастанию c(ei)c\left(e_{i}\right). Пусть T′\mathfrak {T}^{\prime } — произвольное остовное дерево для G\mathfrak {G} с рёбрами (d1,d2,…,dn−1)\left(d_{1}, d_{2}, \ldots , d_{n-1}\right), упорядоченными по возрастанию c(di)c\left(d_{i}\right). Показать, что c(ei)⩽c(di)c\left(e_{i}\right) \leqslant c\left(d_{i}\right) для всех i=1,…,n−1i=1, \ldots , n-1. Указание. Рассмотреть лес деревьев Ti,m\mathfrak {T}_{i, m} из рёбер ej,j<ie_{j}, j<i, и рёбра dℓ,ℓ⩽id_{\ell }, \ell \leqslant i.

?
Задача 366

Пусть все рёбра дерева имеют попарно различные веса. При каком условии в алгоритме МинОД минимальное остовное дерево будет построено на самом последнем шаге?

?
Задача 367

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

?
Задача 368

Пусть задан неориентированный нагруженный граф G=(V,E)\mathfrak {G}=(V, E), в котором V={a,b,c,d,e,f,g,h,k}V=\left\{ a, b, c, d, e, f, g, h, k\right\} и E={(a,b;10),(a,c;7),(b,f;21),(b,d;9),(c,d;8),(d,e;21),(f,e;7),(f,g;8),(e,k;12),(e,h;10),(g,h;8)}E=\left\{ (a, b ; 10),(a, c ; 7), (b, f ; 21),(b, d ; 9),(c, d ; 8),(d, e ; 21),(f, e ; 7),(f, g ; 8),(e, k ; 12), (e, h ; 10),(g, h ; 8)\right\}. Какие из рёбер не могут попасть ни в какое минимальное остовное дерево?

?
Задача 369

Доказать корректность следующего алгоритма построения минимального остовного дерева, предложенного независимо В. Ярником, Р. Примом и Э. Дейкстрой.

?
(а)

Выбрать произвольным образом вершину aa, она сама по себе является деревом (без рёбер).

(б)

На каждом шаге добавлять к имеющемуся дереву ребро наименьшего веса, одна из вершин которого принадлежит дереву, а вторая — нет.

Задача 370

Пусть T=(V,T)\mathfrak {T}=(V, T) — это глубинное остовное дерево, построенное алгоритмом обхода в глубину для графа G=(V,E)\mathfrak {G}=(V, E). Доказать, что для каждого обратного ребра (u,v)∈E\T(u, v) \in E \backslash T или uu является предком vv в T\mathfrak {T}, или vv является предком uu в T\mathfrak {T}.

?
Задача 371

Модифицировать алгоритм поиска в глубину так, чтобы он вычислял Up[v]U p[v] и распечатывал список всех мостов графа.

?
Задача 372

Обойти (занумеровать) вершины заданного неориентированного графа G=(V,E)\mathfrak {G}=(V, E) с помощью алгоритма обхода в глубину, начиная с вершины v1v_{1}, и построить дерево этого обхода. V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10},E={(v1,v4),(v1,v5),(v1,v8),(v1,v11),(v2,v9),(v3,v6),(v3,v7),(v3,v9),(v3,v11),(v5,v9),(v5,v10),(v6,v8),(v7,v8),(v9,v10)}V=\left\{ v_{1}, v_{2}, v_{3}, v_{4}, v_{5}, v_{6}, v_{7}, v_{8}, v_{9}, v_{10}\right\} , E=\left\{ \left(v_{1}, v_{4}\right),\left(v_{1}, v_{5}\right),\left(v_{1}, v_{8}\right),\left(v_{1}, v_{11}\right),\left(v_{2}, v_{9}\right), \left(v_{3}, v_{6}\right),\left(v_{3}, v_{7}\right),\left(v_{3}, v_{9}\right),\left(v_{3}, v_{11}\right),\left(v_{5}, v_{9}\right),\left(v_{5}, v_{10}\right),\left(v_{6}, v_{8}\right),\left(v_{7}, v_{8}\right), \left(v_{9}, v_{10}\right)\right\}. Какое обратное ребро e∈E\Te \in E \backslash T и цикл в G\mathfrak {G} обнаружились в этом обходе первыми? Вычислить для каждой вершины vv значение Up[v]U p[v] и определить все мосты графа G\mathfrak {G}. Считать, что все списки смежности упорядочены по возрастанию номера вершины.

?
Задача 373

Пусть задан неориентированный граф G=(V,E)\mathfrak {G}=(V, E) с множеством вершин V={a,b,c,d,e,f,g,h,i}V=\left\{ a, b, c, d, e, f, g, h, i\right\} и множеством рёбер E={(a,b),(a,c),(b,d),(b,c),(d,e),(d,f),(f,g),(f,h),(f,i),(g,i)}E=\left\{ (a, b), (a, c),(b, d),(b, c),(d, e),(d, f),(f, g),(f, h),(f, i),(g, i)\right\}. Используя вариант поиска в глубину, начиная с вершины aa, с подсчётом функции UpU p, определить все мосты этого графа. Считать, что списки смежности упорядочены по алфавиту.

?
Задача 374

Начиная с вершины aa, обойти (занумеровать) вершины неориентированного графа G=(V,E)\mathfrak {G}=(V, E) с помощью алгоритма обхода в глубину, начиная с вершины v1v_{1}, и построить дерево T=(V,T)\mathfrak {T}=(V, T) этого обхода. Граф G\mathfrak {G} имеет множество вершин V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11}V=\left\{ v_{1}, v_{2}, v_{3}, v_{4}, v_{5}, v_{6}, v_{7}, v_{8}, v_{9}, v_{10}, v_{11}\right\} и множество рёбер E={(v1,v2),(v1,v4),(v1,v8),(v2,v9),(v2,v4),(v3,v6),(v3,v7),(v3,v8),(v5,v6),(v6,v7),(v7,v8),(v9,v10),(v9,v11),(v10,v11)}E=\left\{ \left(v_{1}, v_{2}\right),\left(v_{1}, v_{4}\right),\left(v_{1}, v_{8}\right),\left(v_{2}, v_{9}\right), \left(v_{2}, v_{4}\right),\left(v_{3}, v_{6}\right),\left(v_{3}, v_{7}\right),\left(v_{3}, v_{8}\right),\left(v_{5}, v_{6}\right),\left(v_{6}, v_{7}\right),\left(v_{7}, v_{8}\right),\left(v_{9}, v_{10}\right), \left(v_{9}, v_{11}\right),\left(v_{10}, v_{11}\right)\right\}. Какое обратное ребро e∈E\Te \in E \backslash T и цикл в G\mathfrak {G} обнаружились в этом обходе первыми? Вычислить для каждой вершины vv значение Up(v)U p(v) и определить все мосты графа G\mathfrak {G}. Считать, что списки смежности упорядочены по возрастанию номера.

?
Задача 375

Обойти (занумеровать) вершины заданного неориентированного графа G=(V,E)\mathfrak {G}=(V, E) с помощью алгоритма обхода в глубину, начиная с вершины aa, и построить дерево T=(V,T)\mathfrak {T}=(V, T) этого обхода. Граф задан списками смежности:

(a(e,f,h),b(e,h),c(d,f,g,i),d(c),e(a,b,h),f(a,c,g,i),g(c,f),h(a,b,e),i(c,f)). \begin{aligned} & (a(e, f, h), b(e, h), c(d, f, g, i), d(c), e(a, b, h), \\ & \quad f(a, c, g, i), g(c, f), h(a, b, e), i(c, f)). \end{aligned}

Какое обратное ребро e∈E\Te \in E \backslash T и цикл в G\mathfrak {G} обнаружились в этом обходе первыми? Вычислить для каждой вершины vv значение Up[v]U p[v] и определить все мосты графа G\mathfrak {G}.

?
Задача 376

Изменить алгоритм обхода в глубину так, чтобы он позволил перечислить все связные компоненты неориентированного графа.

?
Задача 377

Если в ориентированном графе G=(V,E)\mathfrak {G}=(V, E) существует вершина rr, из которой достижимы все остальные, то для него тоже можно определить понятие остовного (теперь ориентированного) дерева: дерево T=(V,T)\mathfrak {T}=(V, T) с корнем rr. Определить, какие из алгоритмов построения остовного дерева можно приспособить для построения остовного дерева в ориентированном графе: алгоритм Крускала, алгоритм Ярника-Прима-Дейкстры, алгоритм поиска в глубину.

?
Задача 378

Определить для следующего нагруженного графа G=(V,E)\mathfrak {G}=(V, E) и вершины a∈Va \in V длины кратчайших путей из aa в остальные вершины G\mathfrak {G} и построить дерево этих путей. Здесь V={a,b,c,d,e,f}V=\left\{ a, b, c, d, e, f\right\}, E={(a,b;154),(a,c;17),(a,d;214),(a,e;63),(b,d;25),(c,e;33),(c,d;192),(c,b;123),(d,f;5),(e,f;140),(d,e;10)}E=\left\{ (a, b ; 154),(a, c ; 17),(a, d ; 214),(a, e ; 63),(b, d ; 25),(c, e ; 33), (c, d ; 192),(c, b ; 123),(d, f ; 5),(e, f ; 140),(d, e ; 10)\right\}.

?
Задача 379

Задан размеченный граф G=(V,E)\mathfrak {G}=(V, E), в котором V={a,b,c,d,e,f}V=\left\{ a, b, c, d, e, f\right\}, а длины рёбер заданы матрицей на рис. 14, «-» означает отсутствие ребра. Используя алгоритм Дейкстры, построить для G\mathfrak {G} дерево T\mathfrak {T} кратчайших путей из вершины aa во все остальные. Определить сумму длин всех рёбер дерева T\mathfrak {T}.

[c∣ccccccabcdefa−255265375b12−−−12040c−15−204760d−−−−2045e−−7520−20f40151526−−] \left[\begin{smallmatrix} {c|cccccc} & a & b & c & d & e & f \\ \hline a & - & 25 & 5 & 26 & 53 & 75 \\ b & 12 & - & - & - & 120 & 40 \\ c & - & 15 & - & 20 & 47 & 60 \\ d & - & - & - & - & 20 & 45 \\ e & - & - & 75 & 20 & - & 20 \\ f & 40 & 15 & 15 & 26 & - & - \end{smallmatrix}\right]

Рис. 14: Матрица из задачи 379.

?
Задача 380

Дан ориентированный граф G=(V,E)\mathfrak {G}=(V, E), где V={a,b,c,d,e,f,g,h},E={(a,b;3),(a,g;5),(b,a;4),(b,d;3),(b,h;2),(c,g;1),(c,h;6),(d,c;2),(d,e;4),(d,h;4),(e,c;12),(e,d;1),(f,c;12),(f,d;13),(f,g;15),(f,h;2),(h,a;5),(h,e;5)}V=\left\{ a, b, c, d, e, f, g, h\right\} , E=\left\{ (a, b ; 3),(a, g ; 5),(b, a ; 4),(b, d ; 3),(b, h ; 2),(c, g ; 1), (c, h ; 6),(d, c ; 2),(d, e ; 4),(d, h ; 4),(e, c ; 12),(e, d ; 1),(f, c ; 12), (f, d ; 13),(f, g ; 15),(f, h ; 2),(h, a ; 5),(h, e ; 5)\right\} (третий элемент указывает вес соответствующего ребра). С помощью алгоритма Дейкстры по шагам найти кратчайшие пути из вершины ff во все остальные.

?
Задача 381

Дан ориентированный граф G=(V,E)\mathfrak {G}=(V, E), где V={a,b,c,d,e,f,g,h},E={(a,e;11),(a,g;100),(b,f;46),(b,g;16),(c,e;71),(c,f;16),(c,g;111),(c,h;21),(d,a;8),(d,b;429),(d,h;3),(e,a;1),(e,g;25),(f,b;8),(g,b;2),(h,a;28),(h,b;154),(h,c;7),(h,d;9),(h,f;126)}V=\left\{ a, b, c, d, e, f, g, h\right\} , E=\left\{ (a, e ; 11),(a, g ; 100),(b, f ; 46),(b, g ; 16), (c, e ; 71),(c, f ; 16),(c, g ; 111),(c, h ; 21),(d, a ; 8),(d, b ; 429), (d, h ; 3),(e, a ; 1),(e, g ; 25),(f, b ; 8),(g, b ; 2),(h, a ; 28),(h, b ; 154), (h, c ; 7),(h, d ; 9),(h, f ; 126)\right\} (третий элемент указывает вес соответствующего ребра). С помощью алгоритма Дейкстры по шагам найти кратчайшие пути из вершины hh во все остальные.

?
Задача 382

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

?
Задача 383

Доказать, что алгоритм Дейкстры не может использоваться в исходном виде, если веса рёбер графа могут быть отрицательными: привести пример графа с отрицательными весами рёбер, для которого алгоритм Дейкстры даёт неверный ответ.

?
Задача 384

Сколько раз может меняться для одной вершины vv значение D[v]D[v] в ходе работы алгоритма Дейкстры для графа с шестью вершинами? Привести пример на каждый возможный случай.

?
Задача 385

Пусть в графе G\mathfrak {G} выбрана вершина aa и для каждой вершины v∈Vv \in V, достижимой из aa, существует единственный кратчайший путь из aa в vv. Доказать, что рёбра всех этих путей образуют ориентированное дерево с корнем aa.

?