Лемма о белых путях — различия между версиями
Строка 12: | Строка 12: | ||
|statement = | |statement = | ||
Пусть дан граф <tex>G</tex>. Запустим <tex>dfs(G)</tex>. Остановим выполнение процедуры <tex>dfs</tex> от какой-то вершины <tex>u</tex> графа <tex>G</tex> в тот момент, когда вершина <tex>u</tex> была выкрашена в серый цвет (назовем его первым моментом времени). Заметим, что в данный момент в графе <tex>G</tex> есть как белые, так и черные, и серые вершины. Продолжим выполнение процедуры <tex>dfs(u)</tex> до того момента, когда вершина <tex>u</tex> станет черной (второй момент времени). | Пусть дан граф <tex>G</tex>. Запустим <tex>dfs(G)</tex>. Остановим выполнение процедуры <tex>dfs</tex> от какой-то вершины <tex>u</tex> графа <tex>G</tex> в тот момент, когда вершина <tex>u</tex> была выкрашена в серый цвет (назовем его первым моментом времени). Заметим, что в данный момент в графе <tex>G</tex> есть как белые, так и черные, и серые вершины. Продолжим выполнение процедуры <tex>dfs(u)</tex> до того момента, когда вершина <tex>u</tex> станет черной (второй момент времени). | ||
− | Тогда вершины графа <tex>G\setminus u</tex>, бывшие черными и серыми в первый момент времени, не поменяют свой цвет ко второму моменту времени, а белые вершины либо останутся белыми, либо станут черными, причем черными станут те, что были достижимы от вершины <tex>u</tex> по белым путям. | + | <br>Тогда вершины графа <tex>G\setminus u</tex>, бывшие черными и серыми в первый момент времени, не поменяют свой цвет ко второму моменту времени, а белые вершины либо останутся белыми, либо станут черными, причем черными станут те, что были достижимы от вершины <tex>u</tex> по белым путям. |
|proof = | |proof = | ||
− | Черные вершины останутся черными, потому что цвет может меняться только по схеме белый | + | Черные вершины останутся черными, потому что цвет может меняться только по схеме белый <tex>\to</tex> серый <tex>\to</tex> черный. Серые останутся серыми, потому что они лежат в стеке рекурсии и там и останутся. |
− | + | <br>Далее докажем два факта: | |
{{Утверждение | {{Утверждение | ||
|statement= | |statement= |
Версия 08:41, 28 ноября 2010
Лемма: |
Не существует такого момента выполнения поиска в глубину, в который бы существовало ребро из черной вершины в белую. |
Доказательство: |
Пусть в процессе выполнения процедуры | нашлось ребро из черной вершины в белую вершину . Рассмотрим момент времени, когда мы запустили . В этот момент вершина была перекрашена из белого в серый, а вершина была белая. Далее в ходе выполнения алгоритма будет запущен , поскольку обход в глубину обязан посетить все белые вершины, в которые есть ребро из . По алгоритму вершина будет покрашена в черный цвет тогда, когда завершится обход всех вершин, достижимых из нее по одному ребру, кроме тех, что были рассмотрены раньше нее. Таким образом, вершина может стать черной только тогда, когда выйдет из вершины , и она будет покрашена в черный цвет. Получаем противоречие.
Следствие
Лемма о белых путях.
Лемма: | ||||||||||
Пусть дан граф . Запустим . Остановим выполнение процедуры от какой-то вершины графа в тот момент, когда вершина была выкрашена в серый цвет (назовем его первым моментом времени). Заметим, что в данный момент в графе есть как белые, так и черные, и серые вершины. Продолжим выполнение процедуры до того момента, когда вершина станет черной (второй момент времени).
Тогда вершины графа , бывшие черными и серыми в первый момент времени, не поменяют свой цвет ко второму моменту времени, а белые вершины либо останутся белыми, либо станут черными, причем черными станут те, что были достижимы от вершины по белым путям. | ||||||||||
Доказательство: | ||||||||||
Черные вершины останутся черными, потому что цвет может меняться только по схеме белый
| ||||||||||