Вы находитесь на странице: 1из 3

2.2.

9 Предъявите топологическую сортировку этого графа или укажите


цикл. В этой задаче достаточно привести ответ.
C F

A D G

B E
Решение. Топологическая сортировка зависит от порядка обхода ребер
вершины. Будем считать, что порядок алфавитный.
По алгоритму DFS можно начать с любой вершины (хотя видела вари-
ации алгоритма, где начало идет именно с вершины с нулевой входящей
степенью... Но это лишнее, даже если мы ткнем в середину, при завер-
шении обхода с этой вершины у нас будет правильный конец списка, и
можно продолжить обходить непосещенные вершины, выбрав любую из
оставшихся и запустив с неё DFS.
Начнем с D для простоты - это единственная вершина с нулевой вхо-
дящей степенью. Получим следующее упорядочение.
D −→ F −→ G −→ E −→ C −→ A −→ B

2.2.10 Найдите компоненты сильной связности в этом графе (рисунок


в самом ответе).
Решение.

B H E

C D

I A F G

2.2.11 Пусть в ориентированном графе 21 вершина. У каждой из пер-


вых 20 вершин входная степень 2 и исходящая степень 3. Чему равны вхо-
дящая и исходящая степень 21-й вершины?
Решение.
Обозначим неизвестное входящую и исходящую степень 21-й верши-
ны как d+ (21) и d− (21) соответственно.
По условию на ориентированные графы, сумма входящих степеней (как
и сумма исходящих), должна равняться числу ребер графа.
21
X
d+ (i) = |E|
i=1
21
X
d− (i) = |E|
i=1

Раскроем левые части:


20
X
d+ (i) + d+ (21) = |E|
i=1

20
X
d− (i) + d− (21) = |E|
i=1

Подставим известные степени:

20 · 2 + d+ (21) = |E|

20 · 3 + d− (21) = |E|
Вычтем из первого второе:

20 + d− (21) = d+ (21)

Степень не может быть отрицательной, поэтому предварительно по-


лучаем ряд не противоречащих данному условию решений:

d− (21) = 0, 1, 2, · · ·

d+ (21) = 20, 21, 22, · · ·


Далее, вспоминаем, что петли запрещены. Это дает дополнительное
необходимое условие на неизвестные величины. С одной стороны, коли-
чество ребер l, выходящих из 21-й вершины в себя, не может быть больше
нуля, с другой стороны оно никак не меньше, чем:

d− (21) − 20 · 2 ≤ l ≤ 0
Аналогично для входящих в 21-ю вершину ребер, условие на запрет
петель дает:

d+ (21) − 20 · 3 ≤ l ≤ 0
Получим следующие дополнительные необходимые условия:

d− (21) ≤ 40
d+ (21) ≤ 60
Это отсечет некоторые решения:

d− (21) = 0, 1, 2, · · · 39, 40
d+ (21) = 20, 21, 22, · · · 59, 60
Далее вспоминаем, что двойные ребра тоже запрещены. Количество
ребер par, исходящих из 21-й вершины в себя, по крайней мере (пока про
запрет на петли забудем) d− (21) минус по одному ребру на остальные вер-
шины, но не больше единицы.

d− (21) − 20 · 1 ≤ par ≤ 1
Аналогично с другой стороны количество ребер par, входящих в 21-ю
вершину из себя, по крайней мере (также забудем пока про запрет на пет-
ли) d+ (21) минус по одному ребру на остальные вершины, но не больше
единицы.
d+ (21) − 20 · 1 ≤ par ≤ 1
Это даст куда более ограничивающие условия.

d− (21) ≤ 21
d+ (21) ≤ 21
С запретом на петли это условие ужесточится:

d− (21) ≤ 20
d+ (21) ≤ 20
В итоге из всех вариантов останется единственный вариант, который
не нарушил необходимые условия:

d− (21) = 0
d+ (21) = 20
Поскольку мы доказали только единственность, давайте покажем су-
ществование такого варианта. Так как отсутствие нарушений необходи-
мых условий (а все вышеописанные условия были необходимыми) недо-
статочно для доказательства того, что данный вариант возможен, то это
нужно действительно еще показать.
Лучше всего его изобразить и убедиться в правильности решения.

21