penka borukova student at telerik academy. 1. history 2. hamiltonian cycle 3. hamiltonian graph 4....

20
Hamiltonian Cycle Penka Borukova Student at Telerik Academy

Post on 11-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Hamiltonian Cycle

Penka Borukova

Student at Telerik Academy

Page 2: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Table of Contents

1. History

2. Hamiltonian Cycle

3. Hamiltonian Graph

4. Travelling salesman

2

Page 3: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

History

Page 4: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

History Invented by William Rowan Hamilton in 1859

Icosian game = Hamilton’s puzzle Finding Hamiltonian cycle in

dodecahedron

4

Page 5: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Hamiltonian Cycle Definition

Page 6: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Hamiltonian Graph Definition

Page 8: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Hamiltonian Graph (2) Possibility for Hamiltonian graph

Complete graph – 100%

Almost complete graph – high possibility

Less edges => less possibility

9

Page 10: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Hamiltonian Graph (3) Examples

Complete graph

Cycle graph

Platonic solid

Prism

Maximal planar graph

Tournament – odd number Hamiltonian paths

10

Page 11: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Let’s find Hamiltonian cycle

Herschel graph

11

Page 12: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Live Demo

Page 15: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Travelling Salesman Problem

Page 16: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Travelling Salesman Finding Hamiltonian cycle with minimal cost

Also NP-complete Heuristics

Greedy

Pairwise exchange

Randomized improvement

16

Page 17: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

Live Demo

Page 18: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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

програмиране за деца – безплатни курсове и уроцибезплатен 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

Page 20: Penka Borukova Student at Telerik Academy. 1. History 2. Hamiltonian Cycle 3. Hamiltonian Graph 4. Travelling salesman 2

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