SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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/

Mais conteúdo relacionado

Destaque

Destaque (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)
 

Semelhante a 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
 

Semelhante a 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
 

Último

An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 

Último (20)

An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
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
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.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...
 
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
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

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/