Гамильтоновы графы — различия между версиями
Кирилл (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
+ | [[Файл:450px-Hamiltonian Dodecahedron Graph.svg.png|250px|thumb|right|Граф додекаэдра с выделенным циклом Гамильтона]] | ||
==Основные определения== | ==Основные определения== | ||
− | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
Строка 54: | Строка 54: | ||
− | \end{matrix} \Bigg\} \ | + | \end{matrix} \Bigg\} \rightarrow |
</tex> G - гамильтонов. | </tex> G - гамильтонов. | ||
Строка 101: | Строка 101: | ||
*Харари Ф. Теория графов: Пер. с англ. / Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом "ЛИБРОКОМ", 2009. — 60 с. | *Харари Ф. Теория графов: Пер. с англ. / Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом "ЛИБРОКОМ", 2009. — 60 с. | ||
*Седжвик Р. Фундаментальные алгоритмы на C++. Алгоритмы на графах. — СПб: ООО «ДиаСофтЮП», 2002. | *Седжвик Р. Фундаментальные алгоритмы на C++. Алгоритмы на графах. — СПб: ООО «ДиаСофтЮП», 2002. | ||
+ | *[http://ru.wikipedia.org/wiki/Гамильтонов_граф Гамильтонов граф] | ||
[[Категория:Алгоритмы и структуры данных]] | [[Категория:Алгоритмы и структуры данных]] | ||
[[Категория: Обходы графов]] | [[Категория: Обходы графов]] |
Версия 03:59, 23 ноября 2011
Содержание
Основные определения
Определение: |
Гамильтоновым путём называется простой путь, приходящий через каждую вершину графа ровно один раз. |
Определение: |
Гамильтоновым циклом называют замкнутый гамильтонов путь. |
Определение: |
Граф называется полугамильтоновым, если он содержит гамильтонов путь. |
Определение: |
Граф называется гамильтоновым, если он содержит гамильтонов цикл. |
Очевидно, что любой гамильтонов граф также и полугамильтонов.
Достаточные условия гамильтоновости графа
Теорема Дирака
Теорема: |
Если и для любой вершины неориентированного графа , то - гамильтонов граф. |
Теорема Оре
Теорема: |
Если и для любых двух различных несмежных вершин и неориентированного графа , то - гамильтонов граф. |
Теорема Редеи-Камиона
Теорема: |
Любой сильносвязный турнир - гамильтонов. |
Теорема Гуйя-Ури
Теорема: |
Пусть G - сильносвязный ориентированный граф. G - гамильтонов. |
Теорема Хватала
Теорема (Хватал): |
Пусть:
Тогда если |
Теорема Поша
Теорема: |
Пусть граф G имеет вершин. Если для всякого число вершин со степенями, не превосходящими , меньше чем , и для нечетного число вершин степени не превосходит , то G - гамильтонов граф. |
Алгорит нахождения гамильтового цикла
Основан на обходе в глубину.
Псевдокод
search_cycle(0, 0, number_of_vertices);
bool search_cycle(int v, int w, int d)
{
if(w == v)
return (d == 0);
visited[v] = true;
for (t
Adj[v])
if(!visited[t])
if(search_cycle(t, w, d - 1))
return true;
visited[v] = false;
return false;
}
Источники
- Харари Ф. Теория графов: Пер. с англ. / Предисл. В. П. Козырева; Под ред. Г.П.Гаврилова. Изд. 4-е. — М.: Книжный дом "ЛИБРОКОМ", 2009. — 60 с.
- Седжвик Р. Фундаментальные алгоритмы на C++. Алгоритмы на графах. — СПб: ООО «ДиаСофтЮП», 2002.
- Гамильтонов граф