Лемма о белых путях — различия между версиями
Строка 3: | Строка 3: | ||
Не существует такого момента выполнения [[Обход в глубину, цвета вершин|поиска в глубину]], в который бы существовало ребро из черной вершины в белую. | Не существует такого момента выполнения [[Обход в глубину, цвета вершин|поиска в глубину]], в который бы существовало ребро из черной вершины в белую. | ||
|proof = | |proof = | ||
− | Пусть в процессе выполнения процедуры <tex>dfs</tex> нашлось ребро из черной вершины <tex>v</tex> в белую вершину <tex>u</tex>. Рассмотрим момент времени, когда мы запустили <tex>dfs(v)</tex>. В этот момент вершина <tex>v</tex> была перекрашена из белого в серый, а вершина <tex>u</tex> была белая. Далее в ходе выполнения алгоритма будет запущен <tex>dfs(u)</tex>, поскольку обход в глубину обязан посетить все белые вершины, в которые есть ребро из <tex>v</tex>. По алгоритму вершина <tex>v</tex> будет покрашена в черный цвет тогда, когда завершится обход всех вершин, достижимых из нее по одному ребру, кроме тех, что были рассмотрены раньше нее. | + | Пусть в процессе выполнения процедуры <tex>dfs</tex> нашлось ребро из черной вершины <tex>v</tex> в белую вершину <tex>u</tex>. Рассмотрим момент времени, когда мы запустили <tex>dfs(v)</tex>. В этот момент вершина <tex>v</tex> была перекрашена из белого в серый, а вершина <tex>u</tex> была белая. Далее в ходе выполнения алгоритма будет запущен <tex>dfs(u)</tex>, поскольку обход в глубину обязан посетить все белые вершины, в которые есть ребро из <tex>v</tex>. По алгоритму вершина <tex>v</tex> будет покрашена в черный цвет тогда, когда завершится обход всех вершин, достижимых из нее по одному ребру, кроме тех, что были рассмотрены раньше нее. Таким образом, вершина <tex>v</tex> может стать черной только тогда, когда <tex>dfs</tex> выйдет из вершины <tex>u</tex>, и она будет покрашена в черный цвет. Получаем противоречие. |
}} | }} | ||
<br> | <br> | ||
Строка 11: | Строка 11: | ||
{{Лемма | {{Лемма | ||
|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(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>G\setminus u</tex>, бывшие черными и серыми в нулевой момент времени, не поменяют свой цвет к первый момент времени, а белые вершины либо останутся белыми, либо станут черными, причем черными станут те, что были достижимы от вершины <tex>u</tex> по белым путям. |
|proof = | |proof = | ||
олололо | олололо | ||
}} | }} |
Версия 03:25, 28 ноября 2010
Лемма: |
Не существует такого момента выполнения поиска в глубину, в который бы существовало ребро из черной вершины в белую. |
Доказательство: |
Пусть в процессе выполнения процедуры | нашлось ребро из черной вершины в белую вершину . Рассмотрим момент времени, когда мы запустили . В этот момент вершина была перекрашена из белого в серый, а вершина была белая. Далее в ходе выполнения алгоритма будет запущен , поскольку обход в глубину обязан посетить все белые вершины, в которые есть ребро из . По алгоритму вершина будет покрашена в черный цвет тогда, когда завершится обход всех вершин, достижимых из нее по одному ребру, кроме тех, что были рассмотрены раньше нее. Таким образом, вершина может стать черной только тогда, когда выйдет из вершины , и она будет покрашена в черный цвет. Получаем противоречие.
Следствие
Лемма о белых путях.
Лемма: |
Пусть дан граф . Запустим . Остановим выполнение процедуры от какой-то вершины графа в тот момент, когда вершина была выкрашена в серый цвет (назовем его первым моментом времени). Заметим, что в данный момент в графе есть как белые, так и черные, и серые вершины. Продолжим выполнение процедуры до того момента, когда вершина станет черной (второй момент времени).
Тогда вершины графа , бывшие черными и серыми в нулевой момент времени, не поменяют свой цвет к первый момент времени, а белые вершины либо останутся белыми, либо станут черными, причем черными станут те, что были достижимы от вершины по белым путям. |
Доказательство: |
олололо |