SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Graphs: Cycles
Tecniche di Programmazione – A.A. 2012/2013
Summary
A.A. 2012/2013Tecniche di programmazione2
 Definitions
 Algorithms
Definitions
Graphs: Cycles
Cycle
A.A. 2012/2013Tecniche di programmazione4
 A cycle of a graph, sometimes also called a circuit, is a
subset of the edge set of that forms a path such that the
first node of the path corresponds to the last.
Hamiltonian cycle
A.A. 2012/2013Tecniche di programmazione5
 A cycle that uses each graph vertex of a graph exactly
once is called a Hamiltonian cycle.
Hamiltonian path
A.A. 2012/2013Tecniche di programmazione6
 A Hamiltonian path, also called a Hamilton path, is a path
between two vertices of a graph that visits each vertex
exactly once.
 N.B. does not need to return to the starting point
Eulerian Path and Cycle
A.A. 2012/2013Tecniche di programmazione7
 An Eulerian path, also called an Euler chain, Euler trail,
Euler walk, or "Eulerian" version of any of these variants,
is a walk on the graph edges of a graph which uses each
graph edge in the original graph exactly once.
 An Eulerian cycle, also called an Eulerian circuit, Euler
circuit, Eulerian tour, or Euler tour, is a trail which starts
and ends at the same graph vertex.
Theorem
A.A. 2012/2013Tecniche di programmazione8
 A connected graph has an Eulerian cycle if and only if it
all vertices have even degree.
 A connected graph has an Eulerian path if and only if it
has at most two graph vertices of odd degree.
 …easy to check!
Königsberg Bridges
Weighted vs. Unweighted
A.A. 2012/2013Tecniche di programmazione9
 Classical versions defined on Unweighted graphs
 Unweighted:
 Does such a cycle exist?
 If yes, find at least one
 Optionally, find all of them
 Weighted
 Does such a cycle exist?
 Often, the graph is complete 
 If yes, find at least one
 If yes, find the best one (with minimum weight)
Algorithms
Graphs: Cycles
Eulerian cycles: Hierholzer's algorithm (1)
A.A. 2012/2013Tecniche di programmazione11
 Choose any starting vertex v, and follow a trail of edges
from that vertex until returning to v.
 It is not possible to get stuck at any vertex other than v,
because the even degree of all vertices ensures that, when the
trail enters another vertex w there must be an unused edge
leaving w.
 The tour formed in this way is a closed tour, but may not
cover all the vertices and edges of the initial graph.
Eulerian cycles: Hierholzer's algorithm (2)
A.A. 2012/2013Tecniche di programmazione12
 As long as there exists a vertex v that belongs to the
current tour but that has adjacent edges not part of the
tour, start another trail from v, following unused
edges until returning to v, and join the tour formed in
this way to the previous tour.
A.A. 2012/2013Tecniche di programmazione13
A.A. 2012/2013Tecniche di programmazione14
A.A. 2012/2013Tecniche di programmazione15
Eulerian Circuits in JGraphT
A.A. 2012/2013Tecniche di programmazione16
Hamiltonian Cycles
A.A. 2012/2013Tecniche di programmazione17
 There are theorems to identify whether a graph is
Hamiltonian (i.e., whether it contains at least one
Hamiltonian Cycle)
 Finding such a cycle has no known efficient solution, in
the general case
 Example: the Traveling Salesman Problem (TSP)
A.A. 2012/2013Tecniche di programmazione18
Weighted or
unweighted
What about JGraphT ?
A.A. 2012/2013Tecniche di programmazione19
 org.jgrapht.alg.HamiltonianCycle
 static <V,E> java.util.List<V>
getApproximateOptimalForCompleteGraph
(SimpleWeightedGraph<V,E> g)
 But…
 g must be a complete graph
 g must satisfy the “triangle inequality”: d(x,y)+d(y,z)<d(x,z)
A.A. 2012/2013Tecniche di programmazione20
Resources
A.A. 2012/2013Tecniche di programmazione21
 http://mathworld.wolfram.com/
 http://en.wikipedia.org/wiki/Euler_cycle
 Mircea MARIN, GraphTheory and Combinatorics,
Lectures 9 and 10, http://web.info.uvt.ro/~mmarin/
Licenza d’uso
A.A. 2012/2013Tecniche di programmazione22
 Queste diapositive sono distribuite con licenza Creative Commons
“Attribuzione - Non commerciale - Condividi allo stesso modo (CC
BY-NC-SA)”
 Sei libero:
 di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera
 di modificare quest'opera
 Alle seguenti condizioni:
 Attribuzione — Devi attribuire la paternità dell'opera agli autori originali
e in modo tale da non suggerire che essi avallino te o il modo in cui tu
usi l'opera.
 Non commerciale — Non puoi usare quest'opera per fini commerciali.
 Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la
usi per crearne un'altra, puoi distribuire l'opera risultante solo con una
licenza identica o equivalente a questa.
 http://creativecommons.org/licenses/by-nc-sa/3.0/

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (16)

La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
 La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
 
Introduction to Graphs
Introduction to GraphsIntroduction to Graphs
Introduction to Graphs
 
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
 
Approcci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient IntelligenceApprocci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient Intelligence
 
La percezione sensoriale
La percezione sensorialeLa percezione sensoriale
La percezione sensoriale
 
Tecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di baseTecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di base
 
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
 Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
 
AmI 2015 - Course Introduction
AmI 2015 - Course IntroductionAmI 2015 - Course Introduction
AmI 2015 - Course Introduction
 
Introduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applicationsIntroduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applications
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistema
 
Introduzione ai Web Information Systems
Introduzione ai Web Information SystemsIntroduzione ai Web Information Systems
Introduzione ai Web Information Systems
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
 
Introduction to JavaFX
Introduction to JavaFXIntroduction to JavaFX
Introduction to JavaFX
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)
 
Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)
 

Ähnlich wie Graphs: Cycles

Data structures and algorithms lab8
Data structures and algorithms lab8Data structures and algorithms lab8
Data structures and algorithms lab8
Bianca Teşilă
 
Umap traversabilityin graph
Umap traversabilityin graphUmap traversabilityin graph
Umap traversabilityin graph
Kaya Ota
 

Ähnlich wie Graphs: Cycles (20)

ch10.5.pptx
ch10.5.pptxch10.5.pptx
ch10.5.pptx
 
Representing and visiting graphs
Representing and visiting graphsRepresenting and visiting graphs
Representing and visiting graphs
 
Graphs: Finding shortest paths
Graphs: Finding shortest pathsGraphs: Finding shortest paths
Graphs: Finding shortest paths
 
5. Signal flow graph, Mason’s gain formula.pptx
5. Signal flow graph, Mason’s gain formula.pptx5. Signal flow graph, Mason’s gain formula.pptx
5. Signal flow graph, Mason’s gain formula.pptx
 
ISOMORFISME, CONNECTIVITY EULER HAMILTON.pdf
ISOMORFISME, CONNECTIVITY EULER HAMILTON.pdfISOMORFISME, CONNECTIVITY EULER HAMILTON.pdf
ISOMORFISME, CONNECTIVITY EULER HAMILTON.pdf
 
Graphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ programGraphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ program
 
VANU no sql ppt.pptx
VANU no sql ppt.pptxVANU no sql ppt.pptx
VANU no sql ppt.pptx
 
Vanmathy no sql
Vanmathy no sql Vanmathy no sql
Vanmathy no sql
 
Advance analysis of algo
Advance analysis of algoAdvance analysis of algo
Advance analysis of algo
 
nossi ch 6
nossi ch 6nossi ch 6
nossi ch 6
 
Data structures and algorithms lab8
Data structures and algorithms lab8Data structures and algorithms lab8
Data structures and algorithms lab8
 
Graph ds
Graph dsGraph ds
Graph ds
 
Simplex algorithm
Simplex algorithmSimplex algorithm
Simplex algorithm
 
Simplex Algorithm
Simplex AlgorithmSimplex Algorithm
Simplex Algorithm
 
Umap traversabilityin graph
Umap traversabilityin graphUmap traversabilityin graph
Umap traversabilityin graph
 
Na ch02
Na ch02Na ch02
Na ch02
 
Introduction to Graph Theory
Introduction to Graph TheoryIntroduction to Graph Theory
Introduction to Graph Theory
 
Graph
GraphGraph
Graph
 
AGV PATH PLANNING BASED ON SMOOTHING A* ALGORITHM
AGV PATH PLANNING BASED ON SMOOTHING A* ALGORITHMAGV PATH PLANNING BASED ON SMOOTHING A* ALGORITHM
AGV PATH PLANNING BASED ON SMOOTHING A* ALGORITHM
 
Daa chapter11
Daa chapter11Daa chapter11
Daa chapter11
 

Kürzlich hochgeladen

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
ssuserdda66b
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Kürzlich hochgeladen (20)

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 

Graphs: Cycles

  • 1. Graphs: Cycles Tecniche di Programmazione – A.A. 2012/2013
  • 2. Summary A.A. 2012/2013Tecniche di programmazione2  Definitions  Algorithms
  • 4. Cycle A.A. 2012/2013Tecniche di programmazione4  A cycle of a graph, sometimes also called a circuit, is a subset of the edge set of that forms a path such that the first node of the path corresponds to the last.
  • 5. Hamiltonian cycle A.A. 2012/2013Tecniche di programmazione5  A cycle that uses each graph vertex of a graph exactly once is called a Hamiltonian cycle.
  • 6. Hamiltonian path A.A. 2012/2013Tecniche di programmazione6  A Hamiltonian path, also called a Hamilton path, is a path between two vertices of a graph that visits each vertex exactly once.  N.B. does not need to return to the starting point
  • 7. Eulerian Path and Cycle A.A. 2012/2013Tecniche di programmazione7  An Eulerian path, also called an Euler chain, Euler trail, Euler walk, or "Eulerian" version of any of these variants, is a walk on the graph edges of a graph which uses each graph edge in the original graph exactly once.  An Eulerian cycle, also called an Eulerian circuit, Euler circuit, Eulerian tour, or Euler tour, is a trail which starts and ends at the same graph vertex.
  • 8. Theorem A.A. 2012/2013Tecniche di programmazione8  A connected graph has an Eulerian cycle if and only if it all vertices have even degree.  A connected graph has an Eulerian path if and only if it has at most two graph vertices of odd degree.  …easy to check! Königsberg Bridges
  • 9. Weighted vs. Unweighted A.A. 2012/2013Tecniche di programmazione9  Classical versions defined on Unweighted graphs  Unweighted:  Does such a cycle exist?  If yes, find at least one  Optionally, find all of them  Weighted  Does such a cycle exist?  Often, the graph is complete   If yes, find at least one  If yes, find the best one (with minimum weight)
  • 11. Eulerian cycles: Hierholzer's algorithm (1) A.A. 2012/2013Tecniche di programmazione11  Choose any starting vertex v, and follow a trail of edges from that vertex until returning to v.  It is not possible to get stuck at any vertex other than v, because the even degree of all vertices ensures that, when the trail enters another vertex w there must be an unused edge leaving w.  The tour formed in this way is a closed tour, but may not cover all the vertices and edges of the initial graph.
  • 12. Eulerian cycles: Hierholzer's algorithm (2) A.A. 2012/2013Tecniche di programmazione12  As long as there exists a vertex v that belongs to the current tour but that has adjacent edges not part of the tour, start another trail from v, following unused edges until returning to v, and join the tour formed in this way to the previous tour.
  • 13. A.A. 2012/2013Tecniche di programmazione13
  • 14. A.A. 2012/2013Tecniche di programmazione14
  • 15. A.A. 2012/2013Tecniche di programmazione15
  • 16. Eulerian Circuits in JGraphT A.A. 2012/2013Tecniche di programmazione16
  • 17. Hamiltonian Cycles A.A. 2012/2013Tecniche di programmazione17  There are theorems to identify whether a graph is Hamiltonian (i.e., whether it contains at least one Hamiltonian Cycle)  Finding such a cycle has no known efficient solution, in the general case  Example: the Traveling Salesman Problem (TSP)
  • 18. A.A. 2012/2013Tecniche di programmazione18 Weighted or unweighted
  • 19. What about JGraphT ? A.A. 2012/2013Tecniche di programmazione19  org.jgrapht.alg.HamiltonianCycle  static <V,E> java.util.List<V> getApproximateOptimalForCompleteGraph (SimpleWeightedGraph<V,E> g)  But…  g must be a complete graph  g must satisfy the “triangle inequality”: d(x,y)+d(y,z)<d(x,z)
  • 20. A.A. 2012/2013Tecniche di programmazione20
  • 21. Resources A.A. 2012/2013Tecniche di programmazione21  http://mathworld.wolfram.com/  http://en.wikipedia.org/wiki/Euler_cycle  Mircea MARIN, GraphTheory and Combinatorics, Lectures 9 and 10, http://web.info.uvt.ro/~mmarin/
  • 22. Licenza d’uso A.A. 2012/2013Tecniche di programmazione22  Queste diapositive sono distribuite con licenza Creative Commons “Attribuzione - Non commerciale - Condividi allo stesso modo (CC BY-NC-SA)”  Sei libero:  di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera  di modificare quest'opera  Alle seguenti condizioni:  Attribuzione — Devi attribuire la paternità dell'opera agli autori originali e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.  Non commerciale — Non puoi usare quest'opera per fini commerciali.  Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.  http://creativecommons.org/licenses/by-nc-sa/3.0/