Теорема Редеи-Камиона — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
(не показано 35 промежуточных версий 6 участников) | |||
Строка 5: | Строка 5: | ||
В любом [[Турниры|турнире]] есть [[Гамильтоновы_графы#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F|гамильтонов путь]]. | В любом [[Турниры|турнире]] есть [[Гамильтоновы_графы#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F|гамильтонов путь]]. | ||
|proof= | |proof= | ||
− | Приведем доказательство по индукции по числу вершин в графе. Пусть <tex> n </tex> - количество вершин в графе. | + | Приведем доказательство по индукции по числу вершин в графе. Пусть <tex> n </tex> {{---}} количество вершин в графе. |
− | <u> ''База | + | <u> ''База индукции:'' </u> |
Очевидно, для <tex> n = 3 </tex> утверждение верно. | Очевидно, для <tex> n = 3 </tex> утверждение верно. | ||
Строка 15: | Строка 15: | ||
Пусть предположение верно для всех турниров с количеством вершин не более <tex> n </tex>. Рассмотрим турнир <tex> T </tex> с <tex> n + 1 </tex> вершинами. | Пусть предположение верно для всех турниров с количеством вершин не более <tex> n </tex>. Рассмотрим турнир <tex> T </tex> с <tex> n + 1 </tex> вершинами. | ||
− | Пусть <tex> u </tex> | + | Пусть <tex> u </tex> {{---}} произвольная вершина турнира <tex> T </tex>. Тогда турнир <tex> T - u </tex> имеет <tex> n </tex> вершин, значит, в нем есть гамильтонов путь <tex> P: (v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_n) </tex>. |
− | Одно из | + | [[Файл: Redei_kamion_1.png|150px|thumb|center]] |
− | + | ||
− | # | + | Одно из рёбер <tex> (u, v_1) </tex> или <tex> (v_1, u) </tex> обязательно содержится в <tex> T </tex>. |
− | + | Если ребро <tex> (u, v_1) \in ET </tex>, то путь <tex> (u \rightarrow P) </tex> {{---}} гамильтонов. | |
− | # | + | [[Файл: Redei_kamion_2.png|150px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен искомый путь]] |
+ | |||
+ | Пусть теперь ребро <tex> (u, v_1) \notin ET, v_i </tex> {{---}} первая вершина пути <tex> P </tex>, для которой ребро <tex> (u, v_i) \in T </tex>. | ||
+ | Если такая вершина существует, то в <tex> T </tex> существует ребро <tex> (v_{i - 1}, u) </tex> и путь <tex> (v_1 \rightarrow \ldots \rightarrow v_{i - 1} \rightarrow u \rightarrow v_i \rightarrow \ldots v_n) </tex> {{---}} гамильтонов. | ||
+ | [[Файл: Redei_kamion_3.png|180px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен искомый путь]] | ||
+ | |||
+ | Если такой вершины не существует, то путь <tex> (P \rightarrow u) </tex> {{---}} гамильтонов. | ||
+ | [[Файл: Redei_kamion_4.png|150px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен искомый путь]] | ||
+ | |||
Значит, в любом случае в турнире существует гамильтонов путь, q.e.d. | Значит, в любом случае в турнире существует гамильтонов путь, q.e.d. | ||
}} | }} | ||
Строка 30: | Строка 38: | ||
В любом [[Отношение_связности,_компоненты_связности#.D0.A1.D0.B8.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D1.81.D0.B2.D1.8F.D0.B7.D0.BD.D0.BE.D1.81.D1.82.D1.8C|сильно связанном]] турнире есть [[Гамильтоновы_графы#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F|гамильтонов цикл]]. | В любом [[Отношение_связности,_компоненты_связности#.D0.A1.D0.B8.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D1.81.D0.B2.D1.8F.D0.B7.D0.BD.D0.BE.D1.81.D1.82.D1.8C|сильно связанном]] турнире есть [[Гамильтоновы_графы#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F|гамильтонов цикл]]. | ||
|proof= | |proof= | ||
− | Приведем доказательство по индукции по числу вершин в цикле. Пусть <tex> n </tex> - количество вершин в графе. | + | Приведем доказательство по индукции по числу вершин в цикле. Пусть <tex> n </tex> {{---}} количество вершин в графе. |
− | <u> ''База | + | <u> ''База индукции:'' </u> |
{{Утверждение | {{Утверждение | ||
|statement= | |statement= | ||
− | Cильно связанный турнир <tex> T </tex> из <tex> n \ | + | Cильно связанный турнир <tex> T </tex> из <tex> n \geqslant 3 </tex> вершин содержит [[Основные_определения_теории_графов#.D0.9E.D1.80.D0.B8.D0.B5.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B3.D1.80.D0.B0.D1.84.D1.8B|цикл]] длины <tex> 3 </tex>. |
|proof= | |proof= | ||
− | + | Пусть <tex> u </tex> {{---}} произвольная вершина турнира <tex> T </tex>. Множество вершин <tex> VT - u </tex> распадается на <tex> 2 </tex> непересекающихся множества: | |
− | Пусть <tex> u </tex> - произвольная вершина турнира <tex> T </tex>. Множество вершин <tex> VT - u </tex> распадается на <tex> 2 </tex> непересекающихся множества: | + | * <tex> V_1 = \{ v_1 \in VT \mid (v_1, u) \in ET \} </tex>, |
− | * <tex> V_1 = \{ v_1 \in VT | + | * <tex> V_2 = \{ v_2 \in VT \mid (u, v_2) \in ET \} </tex>. |
− | * <tex> V_2 = \{ v_2 \in VT | + | [[Файл: Redei_kamion_5.png|290px|thumb|center]] |
<tex> T </tex> сильно связен, следовательно: | <tex> T </tex> сильно связен, следовательно: | ||
− | # <tex> V_1 \neq \emptyset </tex>, иначе | + | # <tex> V_1 \neq \emptyset </tex>, иначе <tex> v </tex> {{---}} исток турнира |
− | # <tex> V_2 \neq \emptyset </tex>, иначе | + | # <tex> V_2 \neq \emptyset </tex>, иначе <tex> v </tex> {{---}} сток турнира |
− | # <tex> \exists e = ( | + | # <tex> \exists e = (w_2, w_1) \in ET </tex>, иначе нет пути из <tex> V_2 </tex> в <tex> V_1 </tex>: |
− | #* <tex> | + | #* <tex> w_1 \in V_1 </tex>, |
− | #* <tex> | + | #* <tex> w_2 \in V_2 </tex>. |
− | Цикл <tex> S_3: (u \rightarrow | + | [[Файл: Redei_kamion_6.png|290px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен цикл длины <tex> 3 </tex>]] |
+ | |||
+ | Цикл <tex> S_3: (u \rightarrow w_2 \rightarrow w_1 \rightarrow u) </tex> {{---}} искомый цикл длины <tex> 3 </tex>, q.e.d. | ||
}} | }} | ||
Строка 56: | Строка 66: | ||
{{Утверждение | {{Утверждение | ||
|statement= | |statement= | ||
− | Если сильно связанный турнир <tex> T </tex> из <tex> n \ | + | Если сильно связанный турнир <tex> T </tex> из <tex> n \geqslant 3 </tex> вершин содержит цикл <tex> S_k </tex> длины <tex> k, (k < n)</tex>, то он содержит и цикл длины <tex> k + 1 </tex>. |
|proof= | |proof= | ||
Пусть <tex> S_k = (v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_k \rightarrow v_1) </tex>. | Пусть <tex> S_k = (v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_k \rightarrow v_1) </tex>. | ||
− | Пусть <tex> v_0 \notin S_k </tex> | + | Пусть <tex> v_0 : v_0 \notin S_k </tex> и верно, что <tex> \exists u, w \in S_k </tex>: |
* <tex> (v_0, u) \in ET </tex>, | * <tex> (v_0, u) \in ET </tex>, | ||
* <tex> (w, v_0) \in ET </tex>. | * <tex> (w, v_0) \in ET </tex>. | ||
Строка 67: | Строка 77: | ||
# существует такая вершина <tex> v_0 </tex>, | # существует такая вершина <tex> v_0 </tex>, | ||
# не существует такой вершины <tex> v_0 </tex>. | # не существует такой вершины <tex> v_0 </tex>. | ||
+ | Заметим, что при <tex> k = n - 1 </tex> такая вершина необходимо существует, так как иначе вершина, не входящая в цикл, будет являться либо стоком, либо истоком. | ||
<u> Первый случай: </u> | <u> Первый случай: </u> | ||
− | + | Перенумеруем вершины <tex> S_k </tex> так, чтобы ребро <tex> e = (v_1, v_0) \in ET </tex> для вершины <tex> v_1 \in S_k </tex>. Пусть <tex> v_i </tex> – первая вершина при обходе <tex> S_k </tex> из <tex> v_1 </tex>, для которой ребро <tex> f = (v_0, v_i) \in ET </tex>. | |
− | + | [[Файл: Redei_kamion_7.png|150px|thumb|center]] | |
− | : Тогда ребро <tex> g = (v_{i - 1}, v_0) \in ET </tex>. | + | |
− | : Тогда <tex> S_{k + 1} = (v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_{i - 1} \rightarrow v_0 \rightarrow v_i \rightarrow \ldots \rightarrow v_k \rightarrow v_1) </tex> – искомый цикл длины <tex> k + 1 </tex>. | + | Тогда ребро <tex> g = (v_{i - 1}, v_0) \in ET </tex>. |
+ | [[Файл: Redei_kamion_8.png|150px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен искомый цикл длины <tex> k + 1 </tex> ]] | ||
+ | |||
+ | Тогда <tex> S_{k + 1} = (v_1 \rightarrow v_2 \rightarrow \ldots \rightarrow v_{i - 1} \rightarrow v_0 \rightarrow v_i \rightarrow \ldots \rightarrow v_k \rightarrow v_1) </tex> – искомый цикл длины <tex> k + 1 </tex>. | ||
<u> Второй случай: </u> | <u> Второй случай: </u> | ||
− | + | Пусть: | |
− | + | * <tex> V_1 = \{ u \in VT \mid u \notin S_k, e = (u, v_i) \in ET, \forall i = \overline{1, n} \} </tex>, | |
− | + | * <tex> V_2 = \{ u \in VT \mid u \notin S_k, f = (v_i, u) \in ET, \forall i = \overline{1, n} \} </tex>. | |
− | + | Тогда <tex> V_1 \cap V_2 = \emptyset </tex>. | |
− | + | [[Файл: Redei_kamion_9.png|290px|thumb|center]] | |
− | : Турнир сильно связен, следовательно: | + | |
− | + | Турнир сильно связен, следовательно: | |
− | + | * <tex> V_1 \neq \emptyset </tex>, иначе <tex> T </tex> не будет сильно связным, так как тогда нет простых путей с началом в <tex> V_2 </tex> и концом в <tex> S_k </tex> | |
− | + | * <tex> V_2 \neq \emptyset </tex>, иначе <tex> T </tex> не будет сильно связным, так как тогда нет простых путей с началом в <tex> S_k </tex> и концом в <tex> V_1 </tex> | |
− | + | * <tex> \exists g = (w_2, w_1) \in ET </tex>, иначе <tex> T </tex> не будет сильно связным, так как тогда нет простых путей с началом в <tex> V_2 </tex> и концом в <tex> V_1 </tex>): | |
− | + | ** <tex> w_1 \in V_1 </tex>, | |
− | : Тогда <tex> S_{k + 1} = (v_1 \rightarrow | + | ** <tex> w_2 \in V_2 </tex>. |
+ | [[Файл: Redei_kamion_10.png|290px|thumb|center|<font color=#ff2a2a>Красным</font> цветом выделен цикл длины <tex> k + 1 </tex>]] | ||
+ | Тогда <tex> S_{k + 1} = (v_1 \rightarrow w_2 \rightarrow w_1 \rightarrow v_3 \rightarrow \ldots \rightarrow v_k \rightarrow v_1) </tex> – искомый цикл длины <tex> k + 1 </tex>. | ||
− | + | В любом случае утверждение верно, q.e.d. | |
}} | }} | ||
− | Таким образом, | + | Таким образом, любой сильно связанный турнир <tex> T </tex> с <tex> n \geqslant 3 </tex> вершинами содержит цикл длины <tex> n </tex>, то есть гамильтонов цикл, q.e.d. |
}} | }} | ||
− | {{ | + | {{Теорема |
|about= | |about= | ||
Следствие | Следствие | ||
Строка 103: | Строка 119: | ||
}} | }} | ||
− | == | + | ==См. также== |
+ | * [[Гамильтоновы графы]] | ||
+ | * [[Турниры]] | ||
+ | |||
+ | == Источники информации == | ||
* Асанов М., Баранский В., Расин В.: ''Дискретная математика: Графы, матроиды, алгоритмы'' | * Асанов М., Баранский В., Расин В.: ''Дискретная математика: Графы, матроиды, алгоритмы'' | ||
* Ф. Харари: ''Теория графов'' | * Ф. Харари: ''Теория графов'' | ||
Строка 109: | Строка 129: | ||
[[Категория: Алгоритмы и структуры данных]] | [[Категория: Алгоритмы и структуры данных]] | ||
[[Категория: Обходы графов]] | [[Категория: Обходы графов]] | ||
+ | [[Категория: Гамильтоновы графы]] |
Текущая версия на 19:07, 4 сентября 2022
Теорема (Редеи-Камиона (для пути)): |
В любом турнире есть гамильтонов путь. |
Доказательство: |
Приведем доказательство по индукции по числу вершин в графе. Пусть — количество вершин в графе.База индукции: Очевидно, для утверждение верно.Индукционный переход: Пусть предположение верно для всех турниров с количеством вершин не более . Рассмотрим турнир с вершинами.Пусть — произвольная вершина турнира . Тогда турнир имеет вершин, значит, в нем есть гамильтонов путь .Одно из рёбер или обязательно содержится в . Если ребро , то путь — гамильтонов.Пусть теперь ребро — первая вершина пути , для которой ребро . Если такая вершина существует, то в существует ребро и путь — гамильтонов.Если такой вершины не существует, то путь — гамильтонов. Значит, в любом случае в турнире существует гамильтонов путь, q.e.d. |
Теорема (Редеи-Камиона (для цикла)): | ||||||||||
В любом сильно связанном турнире есть гамильтонов цикл. | ||||||||||
Доказательство: | ||||||||||
Приведем доказательство по индукции по числу вершин в цикле. Пусть — количество вершин в графе.База индукции:
Индукционный переход:
| ||||||||||
Теорема (Следствие): |
Турнир является сильно связанным тогда и только тогда, когда он имеет гамильтонов цикл. |
См. также
Источники информации
- Асанов М., Баранский В., Расин В.: Дискретная математика: Графы, матроиды, алгоритмы
- Ф. Харари: Теория графов