Теорема о существовании простого пути в случае существования пути — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (Теорема о существовании простого пути в случае существования пути)
(не показано 46 промежуточных версий 10 участников)
Строка 1: Строка 1:
{{Определение
+
==Теорема о существовании простого пути в случае существования пути==
|definition=
+
[[Файл:Simple way.png|thumb|250px|center|Ориентированный граф. <font color=#ED1C24>Красным</font> выделен вершинно-простой путь. <font color=#3771c8ff>Синим</font> {{---}} реберно-простой путь.]]
'''Простой (вершинно-простой) путь''' между двумя вершинами графа [[путь]] между ними, в котором каждая из вершин графа встречается не более одного раза.
+
{{Теорема
 +
|statement=
 +
Если между двумя [[Основные определения теории графов|вершинами графа]] существует [[Основные определения теории графов|путь]], то между ними существует [[Основные определения теории графов|вершинно-простой путь]].
 +
|proof =
 +
=== Конструктивное доказательство ===
 +
Рассмотрим путь: <tex>v_0e_1v_1e_2v_2 \ldots e_nv_n</tex> между вершинами <tex>v_0</tex> и <tex>v_n</tex>, причём <tex>v_0 \neq v_n</tex>. Возьмем <tex>v_i</tex> {{---}} вершина на данном пути. Если она лежит на данном пути более одного раза, то она принадлежит какому-то (не обязательно простому) циклу <tex>v_ie_{i+1}v_{i+1}e_{i+2} \ldots v_{j=i}</tex>. Удалим этот цикл. Получившаяся последовательность вершин и рёбер графа останется путём <tex>v_0 \ldots v_n</tex>, но не будет содержать найденный цикл. Начнём процесс с вершины <tex>v_0</tex> и будем повторять его каждый раз  для следующей вершины нового пути, пока не дойдём до последней. По построению, получившийся путь будет содержать каждую из вершин графа не более одного раза, а значит, будет вершинно-простым.
 +
 
 +
=== Неконструктивное доказательство ===
 +
Выберем из всех путей между данными вершинами путь наименьшей длины.
 +
 
 +
{{Утверждение
 +
|statement = Допустим, что выбранный путь не является простым}}
 +
Тогда в нём содержатся две одинаковые вершины <tex>v_i = v_j</tex>, <tex>i < j</tex>. Удалим из исходного пути отрезок от <tex>e_{i+1}</tex> до <tex>v_j</tex>, включительно. Конечная последовательность также будет путём от <tex>v_0</tex> до <tex>v_n</tex> и станет короче исходной. Получено противоречие с условием: взятый нами путь оказался не кратчайшим. Значит, предположение неверно, выбранный путь {{---}} простой.
 
}}
 
}}
 
+
{{Утверждение
{{Определение
+
|statement = Данная теорема не верна для случая <tex>v_0 = v_n</tex>.
|definition=
+
|proof = В данном случае мы не сможем найти вершинно-простой путь, так как путь начинается и заканчивается в одной и той же вершине.
'''Длина пути''' – количество вершин, входящих в последовательность, задающую этот путь.
 
 
}}
 
}}
  
{{Теорема
+
== Замечания ==
|statement=
+
* Так как вершинно-простой путь всегда является рёберно-простым, данная теорема справедлива и для рёберно-простого пути.
Если между двумя вершинами графа существует путь, то между ними существует простой путь.
+
* Теорема может быть сформулирована как для [[Основные определения теории графов|ориентированного]], так и для неориентированного графа.
|proof=
 
Возьмём любой из существующих путей <math>V_0E_1V_1E_2V_2 ... E_nV_n</math>. Для вершины <math>V_i</math> найдём момент её последнего вхождения в путь – <math>V_j</math> – и удалим отрезок пути от <math>E_{i+1}</math> до <math>V_j</math>, включительно. Получившаяся последовательность вершин и рёбер графа останется путём от <math>V_0</math> до <math>V_n</math>, и в нём вершина <math>V_i</math> будет содержаться ровно один раз. Начнём процесс с вершины <math>V_0</math> и будем повторять его каждый раз  для следующей вершины нового пути, пока не дойдём до последней. По построению, получившийся путь будет содержать каждую из вершин графа не более одного раза, а значит, будет простым.
 
  
 +
== См. также ==
 +
* [[Основные определения теории графов]]
 +
* [[Теорема о существовании простого цикла в случае существования цикла]]
  
''Альтернативное:''
+
[[Категория: Алгоритмы и структуры данных]]
Выберем из всех путей в графе путь наименьшей длины. Пусть он не простой; тогда в нём содержатся две одинаковые вершины <math>V_i</math> и <math>V_j</math>, <math>i < j</math>. Удалим из исходного пути отрезок от <math>E_{i+1}</math> до <math>V_j</math>, включительно. Конечная последовательность также будет путём и станет короче исходной. Значит, исходный путь не был кратчайшим; предположение неверно, выбранный путь – простой.
+
[[Категория: Основные определения теории графов]]
}}
 

Версия 21:48, 20 октября 2016

Теорема о существовании простого пути в случае существования пути

Ориентированный граф. Красным выделен вершинно-простой путь. Синим — реберно-простой путь.
Теорема:
Если между двумя вершинами графа существует путь, то между ними существует вершинно-простой путь.
Доказательство:
[math]\triangleright[/math]

Конструктивное доказательство

Рассмотрим путь: [math]v_0e_1v_1e_2v_2 \ldots e_nv_n[/math] между вершинами [math]v_0[/math] и [math]v_n[/math], причём [math]v_0 \neq v_n[/math]. Возьмем [math]v_i[/math] — вершина на данном пути. Если она лежит на данном пути более одного раза, то она принадлежит какому-то (не обязательно простому) циклу [math]v_ie_{i+1}v_{i+1}e_{i+2} \ldots v_{j=i}[/math]. Удалим этот цикл. Получившаяся последовательность вершин и рёбер графа останется путём [math]v_0 \ldots v_n[/math], но не будет содержать найденный цикл. Начнём процесс с вершины [math]v_0[/math] и будем повторять его каждый раз для следующей вершины нового пути, пока не дойдём до последней. По построению, получившийся путь будет содержать каждую из вершин графа не более одного раза, а значит, будет вершинно-простым.

Неконструктивное доказательство

Выберем из всех путей между данными вершинами путь наименьшей длины.

Утверждение:
Допустим, что выбранный путь не является простым
Тогда в нём содержатся две одинаковые вершины [math]v_i = v_j[/math], [math]i \lt j[/math]. Удалим из исходного пути отрезок от [math]e_{i+1}[/math] до [math]v_j[/math], включительно. Конечная последовательность также будет путём от [math]v_0[/math] до [math]v_n[/math] и станет короче исходной. Получено противоречие с условием: взятый нами путь оказался не кратчайшим. Значит, предположение неверно, выбранный путь — простой.
[math]\triangleleft[/math]
Утверждение:
Данная теорема не верна для случая [math]v_0 = v_n[/math].
[math]\triangleright[/math]
В данном случае мы не сможем найти вершинно-простой путь, так как путь начинается и заканчивается в одной и той же вершине.
[math]\triangleleft[/math]

Замечания

  • Так как вершинно-простой путь всегда является рёберно-простым, данная теорема справедлива и для рёберно-простого пути.
  • Теорема может быть сформулирована как для ориентированного, так и для неориентированного графа.

См. также