Использование обхода в глубину для топологической сортировки — различия между версиями
Glukos (обсуждение | вклад) |
Glukos (обсуждение | вклад) |
||
| Строка 9: | Строка 9: | ||
|statement=<tex>G</tex> — ациклический ориентированный граф, тогда <tex>uv \in E \Rightarrow leave[u] > leave[v]</tex> | |statement=<tex>G</tex> — ациклический ориентированный граф, тогда <tex>uv \in E \Rightarrow leave[u] > leave[v]</tex> | ||
|proof= | |proof= | ||
| − | Рассмотрим произвольное ребро <tex>(u, v)</tex>, исследуемое процедурой <tex>dfs</tex>. При исследовании вершина <tex>v</tex> не может быть серой, так как серые вершины в процессе работы <tex>dfs</tex> всегда образуют простой путь в графе, и факт попадания в серую вершину <tex>v</tex> означает, что в графе есть цикл из серых вершин, что противоречит условию утверждения. | + | Рассмотрим произвольное ребро <tex>(u, v)</tex>, исследуемое процедурой <tex>dfs</tex>. При исследовании вершина <tex>v</tex> не может быть серой, так как серые вершины в процессе работы <tex>dfs</tex> всегда образуют простой путь в графе, и факт попадания в серую вершину <tex>v</tex> означает, что в графе есть цикл из серых вершин, что противоречит условию утверждения. Следовательно, вершина <tex>v</tex> должна быть белой либо черной. Если вершина <tex>v</tex> — белая, то она становится потомком <tex>u</tex>, так что <tex>leave[u] > leave[v]</tex>. |
}} | }} | ||
}} | }} | ||
Версия 04:55, 25 октября 2011
Топологическая сортировка ориентированного ациклического графа представляет собой такое линейное упорядочение всех его вершин, что если , то при таком упорядочении располагается до (если граф не является ацикличным, такая сортировка невозможна).
Постановка задачи
| Теорема: | |||||
— ациклический ориентированный граф, тогда | |||||
| Доказательство: | |||||
|
Определим как порядковый номер окраски вершины в черный цвет в результате работы алгоритма , см. Обход в глубину, цвета вершин. Рассмотрим функцию . Очевидно, что такая функция подходит под критерий функции из условия теоремы, если выполняется следующее утверждение:
| |||||