Теорема о существовании простого цикла в случае существования цикла — различия между версиями
Строка 20: | Строка 20: | ||
Воспользуемся доказанной выше леммой. Так как в нашем графе существует цикл, то существуют два реберно-простых пути между некоторыми вершинами: <tex>v_0e_1v_1e_2v_2 ... e_nv_n</tex>, <tex>v'_0e'_1v'_1e'_2v'_2 ... e'_mv'_m</tex>, <tex>v_0 = v'_0</tex>, <tex>v_n = v'_m</tex>. Удалим из путей одинаковые префиксы и суффиксы, оставив из тех только последние и первые вершины, соответственно. Оставшиеся пути: <tex>v_ae_{a+1} ... e_bv_b</tex>, <tex>v'_ae'_{a+1} ... e'_cv'_c</tex>, <tex>v_a = v'_a</tex>, <tex>v_b = v'_c</tex>, <tex>e_{a+1} \neq e'_{a+1}</tex>, <tex>e_b \neq e'_c</tex>. | Воспользуемся доказанной выше леммой. Так как в нашем графе существует цикл, то существуют два реберно-простых пути между некоторыми вершинами: <tex>v_0e_1v_1e_2v_2 ... e_nv_n</tex>, <tex>v'_0e'_1v'_1e'_2v'_2 ... e'_mv'_m</tex>, <tex>v_0 = v'_0</tex>, <tex>v_n = v'_m</tex>. Удалим из путей одинаковые префиксы и суффиксы, оставив из тех только последние и первые вершины, соответственно. Оставшиеся пути: <tex>v_ae_{a+1} ... e_bv_b</tex>, <tex>v'_ae'_{a+1} ... e'_cv'_c</tex>, <tex>v_a = v'_a</tex>, <tex>v_b = v'_c</tex>, <tex>e_{a+1} \neq e'_{a+1}</tex>, <tex>e_b \neq e'_c</tex>. | ||
− | Рассмотрим конкатенацию первого нового пути и развёрнутого второго нового пути. Она будет циклом, так как начальная и конечная вершины совпадают, изначально пути были рёберно-простыми, а в точке соединения, равно как и в точке замыкания цикла, условие различности двух идущих подряд рёбер выполняется. Мы получили цикл, определим его: <tex>v_0e_1v_1 ... e_kv_k</tex>, <tex>v_0 = v_k</tex>. Дальше будем | + | Рассмотрим конкатенацию первого нового пути и развёрнутого второго нового пути. Она будет циклом, так как начальная и конечная вершины совпадают, изначально пути были рёберно-простыми, а в точке соединения, равно как и в точке замыкания цикла, условие различности двух идущих подряд рёбер выполняется. Мы получили цикл, определим его: <tex>v_0e_1v_1 ... e_kv_k</tex>, <tex>v_0 = v_k</tex>. Дальше будем избавляться от повторных вхождений вершин в наш цикл, действуя по следующему алгоритму: |
* Алгоритм: | * Алгоритм: |
Версия 00:50, 6 марта 2012
Лемма: |
Наличие двух различных рёберно-простых путей между какими-либо двумя вершинами графа равносильно наличию цикла в этом графе. |
Доказательство: |
" "Предположим, что в графе существует два различных реберно-простых пути между вершинами и . Пусть это будут пути и . Пусть их наибольший общий префикс заканчивается в вершине . Заметим, что , т. к. пути различны. Рассмотрим суффиксы путей и : и соответственно. Найдем первую совпадающую вершину в и , не равную . Осталось заметить, что замкнутый путь , полученный объединением части пути вместе с частью цепи является циклическим путем. Действительно, т. r. в путях и двух ребер подряд не бывает, т.к. это реберно простые пути, а ребра, смежные с и не совпадают по построению. Циклический путь является представителем некоторого цикла в графе ." Предположим, что в графе " существует цикл и пусть циклический путь — его представитель. Найдем первую точку пересечения с самим собой. Необходимо такая точка существует, т.к. путь замкнутый. Рассмотрим циклический путь : он простой, т. к. если это неверно и существует вершина , то в вершина повторяется раньше, чем . Теперь элементарно взяв две вершины и легко заметить, что существует два различных реберно-неперсекающихся пути между ними: и . |
Теорема: |
Если в неориентированном графе существует цикл, то в этом графе существует простой цикл. |
Доказательство: |
Воспользуемся доказанной выше леммой. Так как в нашем графе существует цикл, то существуют два реберно-простых пути между некоторыми вершинами: , , , . Удалим из путей одинаковые префиксы и суффиксы, оставив из тех только последние и первые вершины, соответственно. Оставшиеся пути: , , , , , .Рассмотрим конкатенацию первого нового пути и развёрнутого второго нового пути. Она будет циклом, так как начальная и конечная вершины совпадают, изначально пути были рёберно-простыми, а в точке соединения, равно как и в точке замыкания цикла, условие различности двух идущих подряд рёбер выполняется. Мы получили цикл, определим его: , . Дальше будем избавляться от повторных вхождений вершин в наш цикл, действуя по следующему алгоритму:
1. Для вершиныНачнём процесс с вершины найдём момент её последнего вхождения в цикл - . 2. Удалим отрезок цикла от до , включительно. Получившаяся последовательность вершин и рёбер графа останется циклом, и в нём вершина будет содержаться ровно один раз. и будем повторять его каждый раз для следующей вершины нового цикла, пока не дойдём до последней. По построению, получившийся цикл будет содержать каждую из вершин графа не более одного раза, а значит, будет простым. |
Замечания
- Так как вершинно-простой путь всегда является рёберно-простым, первая теорема справедлива и для вершинно-простых путей (усиление условия).
- Так как вершинно-простой цикл всегда является рёберно-простым, первая теорема справедлива и для рёберно-простого цикла (ослабление результата).
- Утверждение
Если две вершины графа лежат на цикле, то они лежат на простом цикле.
в общем случае неверно, так как эти вершины могут лежать в разных компонентах вершинной или рёберной двусвязности: все пути из одной вершины в другую будут содержать одну и ту же точку сочленения или один и тот же мост.