Hamiltonian Cycle

20
Hamiltonian Cycle Penka Borukova Student at Telerik Academy

description

Hamiltonian Cycle. Penka Borukova. Student at Telerik Academy. Table of Contents. History Hamiltonian Cycle Hamiltonian Graph Travelling salesman. History. History. Invented by William Rowan Hamilton in 1859 Icosian game = Hamilton’s puzzle - PowerPoint PPT Presentation

Transcript of Hamiltonian Cycle

Page 1: Hamiltonian Cycle

Hamiltonian Cycle

Penka BorukovaStudent at Telerik

Academy

Page 2: Hamiltonian Cycle

Table of Contents

1. History2. Hamiltonian Cycle3. Hamiltonian Graph4. Travelling salesman

2

Page 3: Hamiltonian Cycle

History

Page 4: Hamiltonian Cycle

History Invented by William Rowan Hamilton in 1859

Icosian game = Hamilton’s puzzle Finding Hamiltonian cycle in

dodecahedron

4

Page 5: Hamiltonian Cycle

Hamiltonian Cycle Definition

Page 6: Hamiltonian Cycle

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

Page 7: Hamiltonian Cycle

Hamiltonian Graph Definition

Page 8: Hamiltonian Cycle

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

Page 9: Hamiltonian Cycle

Hamiltonian Graph (2) Possibility for Hamiltonian graph

Complete graph – 100% Almost complete graph – high

possibility Less edges => less possibility

9

Page 10: Hamiltonian Cycle

Hamiltonian Graph (3) Examples

Complete graph Cycle graph Platonic solid Prism Maximal planar graph Tournament – odd number

Hamiltonian paths

10

Page 11: Hamiltonian Cycle

Let’s find Hamiltonian cycle

Herschel graph

11

Page 12: Hamiltonian Cycle

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

Page 13: Hamiltonian Cycle

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

Page 14: Hamiltonian Cycle

Live Demo

Page 15: Hamiltonian Cycle

Travelling Salesman Problem

Page 16: Hamiltonian Cycle

Travelling Salesman Finding Hamiltonian cycle with minimal cost

Also NP-complete Heuristics

Greedy Pairwise exchange Randomized improvement

16

Page 17: Hamiltonian Cycle

Live Demo

Page 18: Hamiltonian Cycle

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен 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, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Hamiltonian Cycle

http://algoacademy.telerik.com

Page 20: Hamiltonian Cycle

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