Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4....
-
date post
11-Jan-2016 -
Category
Documents
-
view
218 -
download
0
Transcript of Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4....
Hamiltonian Cycle
Penka Borukova
Student at Telerik Academy
Table of Contents
1. History
2. Hamiltonian Cycle
3. Hamiltonian Graph
4. Travelling salesman
2
History
History Invented by William Rowan Hamilton in 1859
Icosian game = Hamilton’s puzzle Finding Hamiltonian cycle in
dodecahedron
4
Hamiltonian Cycle Definition
Hamiltonian Cycle Hamiltonian path is a path in a graph that visits each vertex exactly once
Hamiltonian cycle is a cycle in a graph that visits each vertex exactly once
Hamiltonian path/cycle problem – determining if Hamiltonian path/cycle exists
Both are NP-complete6
Hamiltonian Graph Definition
Hamiltonian Graph Hamiltonian graph is a graph that has Hamiltonian cycle
Complexity for finding Hamiltonian cycle – O(n!)
Works for less than 50 vertices
8
Hamiltonian Graph (2) Possibility for Hamiltonian graph
Complete graph – 100%
Almost complete graph – high possibility
Less edges => less possibility
9
Hamiltonian Graph (3) Examples
Complete graph
Cycle graph
Platonic solid
Prism
Maximal planar graph
Tournament – odd number Hamiltonian paths
10
Let’s find Hamiltonian cycle
Herschel graph
11
Hamiltonian Graph (4)public static void HamiltonianCycle(Node node, int level, List<Node> pathSoFar) { if (level == nodesCount) { foreach (Node neighbor in node.Neighbors) { if (neighbor == startNode) { List<Node> p = new List<Node>();
p.AddRange(pathSoFar);p.Add(startNode);cycles.Add(p);
} } return; }
12
Hamiltonian Graph (5) for (int i = 0; i < node.Neighbors.Count; i++) { if (!node.Neighbors[i].Visited) { node.Neighbors[i].Visited = true; pathSoFar.Add(node.Neighbors[i]); HamiltonianCycle(node.Neighbors[i], level + 1, pathSoFar); pathSoFar.Remove(node.Neighbors[i]); node.Neighbors[i].Visited = false; } }}
13
Live Demo
Travelling Salesman Problem
Travelling Salesman Finding Hamiltonian cycle with minimal cost
Also NP-complete Heuristics
Greedy
Pairwise exchange
Randomized improvement
16
Live Demo
форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно
програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки
уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop
уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC
безплатен курс "Разработка на софтуер в cloud среда"
BG Coder - онлайн състезателна система - online judge
курсове и уроци по програмиране, книги – безплатно от Наков
безплатен курс "Качествен програмен код"
алго академия – състезателно програмиране, състезания
ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия
курс мобилни приложения с iPhone, Android, WP7, PhoneGap
free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно
?
? ? ??
?? ?
?
?
?
??
?
?
? ?
Questions?
?
Hamiltonian Cycle
http://algoacademy.telerik.com
Resources Nakov’s book: Programming = ++Algorithms;
http://en.wikipedia.org/wiki/Hamiltonian_path
http://neohumanism.org/h/ha/hamiltonian_path.html
http://en.wikipedia.org/wiki/Travelling_salesman_problem
http://en.wikipedia.org/wiki/Herschel_graph
19
Free Trainings @ Telerik Academy
“C# Programming @ Telerik Academy csharpfundamentals.telerik.com
Telerik Software Academy academy.telerik.com
Telerik Academy @ Facebook facebook.com/TelerikAcademy
Telerik Software Academy Forums forums.academy.telerik.com 20