Hamiltonian Cycle

Preview:

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

Citation preview

Hamiltonian Cycle

Penka BorukovaStudent at Telerik

Academy

Table of Contents

1. History2. Hamiltonian Cycle3. Hamiltonian Graph4. 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, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

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

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Hamiltonian Cycle

http://algoacademy.telerik.com

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

Recommended