SlideShare a Scribd company logo
Introduction to Graphs
Tecniche di Programmazione – A.A. 2012/2013
Summary
A.A. 2012/2013Tecniche di programmazione2
 Definition: Graph
 Related Definitions
 Applications
Definition: Graph
Introduction to Graphs
Definition: Graph
A.A. 2012/2013Tecniche di programmazione4
 A graph is a collection of points and lines connecting
some (possibly empty) subset of them.
 The points of a graph are most commonly known
as graph vertices, but may also be called “nodes” or
simply “points.”
 The lines connecting the vertices of a graph are most
commonly known as graph edges, but may also be called
“arcs” or “lines.”
http://mathworld.wolfram.com/
Big warning: Graph ≠ Graph ≠ Graph
Graph (plot)
(italiano: grafico)
Graph (maths)
(italiano: grafo)
A.A. 2012/2013Tecniche di programmazione5
≠
Graph (chart)
(italiano: grafico)
History
A.A. 2012/2013Tecniche di programmazione6
 The study of graphs is known as graph theory, and was
first systematically investigated by D. König in the 1930s
 Euler’s proof about the walk across all seven bridges of
Königsberg (1736), now known as the Königsberg bridge
problem, is a famous precursor to graph theory.
 In fact, the study of various sorts of paths in graphs has
many applications in real-world problems.
Königsberg Bridge Problem
A.A. 2012/2013Tecniche di programmazione7
 Can the 7 bridges the of
the city of Königsberg
over the river Preger all
be traversed in a single
trip without doubling back,
with the additional
requirement that the trip
ends in the same place it
began?
Today: Kaliningrad, Russia
Königsberg Bridge Problem
A.A. 2012/2013Tecniche di programmazione8
 Can the 7 bridges the of
the city of Königsberg
over the river Preger all
be traversed in a single
trip without doubling back,
with the additional
requirement that the trip
ends in the same place it
began?
Today: Kaliningrad, Russia
Types of graphs: edge cardinality
A.A. 2012/2013Tecniche di programmazione9
 Simple graph:
 At most one edge (i.e.,
either one edge or no
edges) may connect any
two vertices
 Multigraph:
 Multiple edges are allowed
between vertices
 Loops:
 Edge between a vertex and
itself
 Pseudograph:
 Multigraph with loops
loop
Types of graphs: edge direction
A.A. 2012/2013Tecniche di programmazione10
 Undirected
 Oriented
 Edges have one direction
(indicated by arrow)
 Directed
 Edges may have one or
two directions
 Network
 Oriented graph with
weighted edges
Types of graphs: labeling
A.A. 2012/2013Tecniche di programmazione11
 Labels
 None
 OnVertices
 On Edges
 Groups (=colors)
 OfVertices
 no edge connects two
identically colored
vertices
 Of Edges
 adjacent edges must
receive different colors
 Of both
A.A. 2012/2013Tecniche di programmazione12
Directed and Oriented graphs
 A Directed Graph (di-graph) G is a pair (V,E), where
 V is a (finite) set of vertices
 E is a (finite) set of edges, that identify a binary relationship
overV
 𝐸 ⊆ 𝑉 × 𝑉
A.A. 2012/2013Tecniche di programmazione13
Example
4
1
5 6
2 3
A.A. 2012/2013Tecniche di programmazione14
Example
4
1
5 6
2 3
Loop
A.A. 2012/2013Tecniche di programmazione15
Example
4
1
5 6
2 3
V={1,2,3,4,5,6}
E={(1,2), (2,2), (2,5),
(5,4), (4,5), (4,1),
(2,4), (6,3)}
A.A. 2012/2013Tecniche di programmazione16
Undirected graph
 Ad Undirected Graph is still represented as a couple
G=(V,E), but the set E is made of non-ordered pairs of
vertices
A.A. 2012/2013Tecniche di programmazione17
Example
4
1
5 6
2 3
V={1,2,3,4,5,6}
E={(1,2), (2,5), (5,1), (6,3)}
A.A. 2012/2013Tecniche di programmazione18
Example
4
1
5 6
2 3
V={1,2,3,4,5,6}
E={(1,2), (2,5), (5,1), (6,3)}
Edge (1,5) adjacent
(or incident) to
vertices 1 and 5
Vertex 5 is adjacent
to vertices 1 and 2
Vertex 4 is isolated
Related Definitions
Introduction to Graphs
A.A. 2012/2013Tecniche di programmazione20
Degree
 In an undirected graph,
 the degree of a vertex is the number of incident edges
 In a directed graph
 The in-degree is the number of incoming edges
 The out-degree is the number of departing edges
 The degree is the sum of in-degree and out-degree
 A vertex with degree 0 is isolated
A.A. 2012/2013Tecniche di programmazione21
Degree
4
1
5 6
2 3
2 2
20 1
1
A.A. 2012/2013Tecniche di programmazione22
Degree
4
1
5 6
2 3
In: 1
Out: 1
In: 2
Out: 2
In: 1 or 2
Out: 2 or 3
In: 2
Out: 1
In: 1
Out: 0
In: 0
Out: 1
Paths
A.A. 2012/2013Tecniche di programmazione23
 A path on a graph G=(V,E) also called a trail, is
a sequence {v1, v2, …, vn} such that:
 v1, …, vn are vertices: vi V
 (v1, v2), (v2, v3), ..., (vn-1,vn) are graph edges: (vi-1,vi)  E
 vi are distinct (for “simple” paths).
 The length of a path is the number of edges (n-1)
 If there exist a path between vA and vB we say that vB is
reachable from vA
A.A. 2012/2013Tecniche di programmazione24
Example
4
1
5 6
2 3
Path = { 1, 2, 5 }
Length = 2
A.A. 2012/2013Tecniche di programmazione25
Cycles
 A cycle is a path where v1 = vn
 A graph with no cycles is said acyclic
A.A. 2012/2013Tecniche di programmazione26
Example
4
1
5 6
2 3
Path = { 1, 2, 5, 1 }
Length = 3
A.A. 2012/2013Tecniche di programmazione27
Reachability (Undirected)
 An undirected graph is connected if, for every couple of
vertices, there is a path connecting them
 The connected sub-graph of maximum size are called
connected components
 A connected graph has exactly one connected
component
A.A. 2012/2013Tecniche di programmazione28
Connected components
4
1
5 6
2 3
The graph is not
connected.
Connected components =
3
{ 4 } , { 1, 2, 5 }, { 3, 6 }
A.A. 2012/2013Tecniche di programmazione29
Reachability (Directed)
 A directed graph is strongly connected if, for every
ordered pair of vertices (v, v’), there exists at least one
path connecting v to v’
A.A. 2012/2013Tecniche di programmazione30
Example
4
1
5
2
The graph is strongly
connected
A.A. 2012/2013Tecniche di programmazione31
Example
4
1
5
2
The graph is not strongly
connected
Complete graph
A.A. 2012/2013Tecniche di programmazione32
 A graph is complete if, for every pair of vertices, there is
an edge connecting them (they are adjacent)
 Symbol: Kn
A.A. 2012/2013Tecniche di programmazione33
Complete graph: edges
 In a complete graph with n vertices, the number of
edges is
 n(n-1), if the graph is directed
 n(n-1)/2, if the graph is undirected
 If self-loops are allowed, then
 n2 for directed graphs
 n(n-1) for undirected graphs
Density
A.A. 2012/2013Tecniche di programmazione34
 The density of a graph G=(V,E) is the ration of the
number of edges to the total number of edges
𝑑 =
𝐸 𝐺
𝐸 𝐾 𝑉(𝐺)
A.A. 2012/2013Tecniche di programmazione35
Esempio
4
1
3
2
Density = 0.5
Existing: 3 edges
Total: 6 possible edges
A.A. 2012/2013Tecniche di programmazione36
Trees and Forests
 An undirected acyclic graph is called forest
 An undirected acyclic connected graph is called tree
A.A. 2012/2013Tecniche di programmazione37
Example
Tree
A.A. 2012/2013Tecniche di programmazione38
Example
Forest
A.A. 2012/2013Tecniche di programmazione39
Example This is not a tree nor a
forest
(it contains a cycle)
Rooted trees
A.A. 2012/2013Tecniche di programmazione40
 In a tree, a special node may be singled out
 This node is called the “root” of the tree
 Any node of a tree can be the root
Tree (implicit) ordering
A.A. 2012/2013Tecniche di programmazione41
 The root node of a tree induces an ordering of the
nodes
 The root is the “ancestor” of all other nodes/vertices
 “children” are “away from the root”
 “parents” are “towards the root”
 The root is the only node without parents
 All other nodes have exactly one parent
 The furthermost (children-of-children-of-children…)
nodes are “leaves”
A.A. 2012/2013Tecniche di programmazione42
Example
Rooted Tree
A.A. 2012/2013Tecniche di programmazione43
Example
Rooted Tree
A.A. 2012/2013Tecniche di programmazione44
Weighted graphs
 A weighted graph is a graph in which each branch (edge)
is given a numerical weight.
 A weighted graph is therefore a special type of labeled
graph in which the labels are numbers (which are usually
taken to be positive).
Applications
Introduction to Graphs
Graph applications
A.A. 2012/2013Tecniche di programmazione46
 Graphs are everywhere
 Facebook friends (and posts, and ‘likes’)
 Football tournaments (complete subgraphs + binary tree)
 Google search index (V=page, E=link, w=pagerank)
 Web analytics (site structure, visitor paths)
 Car navigation (GPS)
 Market Matching
Market matching
A.A. 2012/2013Tecniche di programmazione47
 H = Houses (1, 2, 3, 4)
 B = Buyers (a, b, c, d)
 V = H  B
 Edges: (h, b)  E if b would like to buy h
 Problem: can all houses be sold and all
buyers be satisfied?
 Variant: if the graph is weighted with a
purchase offer, what is the most
convenient solution?
 Variant: consider a ‘penalty’ for unsold
items
This graph is called
“bipartite”:
H  B = 
Connecting cities
A.A. 2012/2013Tecniche di programmazione48
 We have a water reservoir
 We need to serve many cities
 Directly or indirectly
 What is the most efficient set of inter-city water
connections?
 Also for telephony,
gas, electricity, …
We are searching for
the “minimum
spanning tree”
Google Analytics (Visitors Flow)
A.A. 2012/2013Tecniche di programmazione49
Customer behavior
A.A. 2012/2013Tecniche di programmazione50
User actions encoded
as frequencies
Street navigation
A.A. 2012/2013Tecniche di programmazione51
We must find a
“Hamiltonian cycle”
TSP:The traveling
salesman problem
Train maps
A.A. 2012/2013Tecniche di programmazione52
Chemistry (Protein folding)
A.A. 2012/2013Tecniche di programmazione53
Facebook friends
A.A. 2012/2013Tecniche di programmazione54
A.A. 2012/2013Tecniche di programmazione55
Flow chart
BEGIN
END
Resources
A.A. 2012/2013Tecniche di programmazione56
 Maths Encyclopedia: http://mathworld.wolfram.com/
 Basic GraphTheory with Applications to Economics
http://www.isid.ac.in/~dmishra/mpdoc/lecgraph.pdf
 Application of GraphTheory in real world
http://prezi.com/tseh1wvpves-/application-of-graph-theory-
in-real-world/
 JGraphT Library: http://jgrapht.org/
Licenza d’uso
A.A. 2012/2013Tecniche di programmazione57
 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/

More Related Content

What's hot (20)

PPT
Graph theory
Thirunavukarasu Mani
 
PPTX
Interesting applications of graph theory
Tech_MX
 
PDF
MFCS PPT.pdf
jayarao21
 
PPTX
Real life application
umadeviR3
 
PPTX
Graph Theory
Ehsan Hamzei
 
PPTX
trigonometry and application
TRIPURARI RAI
 
PPT
Windows Programming with AWT
backdoor
 
PPTX
Taylor series
Milan Bhatiya
 
PPTX
Trigonometry
Vijay Balaji
 
PPTX
Trigonometry maths school ppt
Divya Pandey
 
PPT
Linear transformation.ppt
Raj Parekh
 
PDF
2) exponential growth and decay
estelav
 
PDF
Graph theory and its applications
Manikanta satyala
 
PDF
Introduction to NumPy (PyData SV 2013)
PyData
 
PPTX
joins in database
Sultan Arshad
 
PDF
Introduction to R programming
Alberto Labarga
 
PPT
SQL Views
Aaron Buma
 
PPT
Backtracking
Pranay Meshram
 
PPTX
Height and distances
avb public school
 
Graph theory
Thirunavukarasu Mani
 
Interesting applications of graph theory
Tech_MX
 
MFCS PPT.pdf
jayarao21
 
Real life application
umadeviR3
 
Graph Theory
Ehsan Hamzei
 
trigonometry and application
TRIPURARI RAI
 
Windows Programming with AWT
backdoor
 
Taylor series
Milan Bhatiya
 
Trigonometry
Vijay Balaji
 
Trigonometry maths school ppt
Divya Pandey
 
Linear transformation.ppt
Raj Parekh
 
2) exponential growth and decay
estelav
 
Graph theory and its applications
Manikanta satyala
 
Introduction to NumPy (PyData SV 2013)
PyData
 
joins in database
Sultan Arshad
 
Introduction to R programming
Alberto Labarga
 
SQL Views
Aaron Buma
 
Backtracking
Pranay Meshram
 
Height and distances
avb public school
 

Similar to Introduction to Graphs (20)

PDF
09_DS_MCA_Graphs.pdf
Prasanna David
 
PDF
Representing and visiting graphs
Fulvio Corno
 
PPTX
Slides Chapter10.1 10.2
showslidedump
 
PPT
Graph Introduction.ppt
Faruk Hossen
 
PPTX
Graph Theory in Theoretical computer science
Ahmad177077
 
PPTX
Graph terminology and algorithm and tree.pptx
asimshahzad8611
 
PPTX
Discrete mathematics 4 on Computer science and engineering.pptx
habibulislamruddro
 
PPTX
Graphs Basics.pptx
SanGeet25
 
PPTX
Spanningtreesppt
Jyoshna Cec Cse Staf bejjam
 
PDF
graph_theory_1-11.pdf___________________
ssuser1989da
 
PPTX
Data Structures and Agorithm: DS 21 Graph Theory.pptx
RashidFaridChishti
 
PPT
Graphs
amudha arul
 
PPT
Basics of graph
Khaled Sany
 
PDF
unit-3-dsa-graph introduction to grapgh and graph type
sayalijscoe2
 
PPTX
Graph ASS DBATU.pptx
ARVIND SARDAR
 
PPTX
Graphs.pptx
satvikkushwaha1
 
PPT
Graph theory concepts complex networks presents-rouhollah nabati
nabati
 
PPTX
Data structure - Graph
Madhu Bala
 
PPT
graph ASS (1).ppt
ARVIND SARDAR
 
PPT
Graph-theory (1).ppt BBA 1st Semester Graph
swatiritvik
 
09_DS_MCA_Graphs.pdf
Prasanna David
 
Representing and visiting graphs
Fulvio Corno
 
Slides Chapter10.1 10.2
showslidedump
 
Graph Introduction.ppt
Faruk Hossen
 
Graph Theory in Theoretical computer science
Ahmad177077
 
Graph terminology and algorithm and tree.pptx
asimshahzad8611
 
Discrete mathematics 4 on Computer science and engineering.pptx
habibulislamruddro
 
Graphs Basics.pptx
SanGeet25
 
Spanningtreesppt
Jyoshna Cec Cse Staf bejjam
 
graph_theory_1-11.pdf___________________
ssuser1989da
 
Data Structures and Agorithm: DS 21 Graph Theory.pptx
RashidFaridChishti
 
Graphs
amudha arul
 
Basics of graph
Khaled Sany
 
unit-3-dsa-graph introduction to grapgh and graph type
sayalijscoe2
 
Graph ASS DBATU.pptx
ARVIND SARDAR
 
Graphs.pptx
satvikkushwaha1
 
Graph theory concepts complex networks presents-rouhollah nabati
nabati
 
Data structure - Graph
Madhu Bala
 
graph ASS (1).ppt
ARVIND SARDAR
 
Graph-theory (1).ppt BBA 1st Semester Graph
swatiritvik
 
Ad

Recently uploaded (20)

PPTX
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPTX
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
QUARTER 1 WEEK 2 PLOT, POV AND CONFLICTS
KynaParas
 
PPTX
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
I AM MALALA The Girl Who Stood Up for Education and was Shot by the Taliban...
Beena E S
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
QUARTER 1 WEEK 2 PLOT, POV AND CONFLICTS
KynaParas
 
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
How to Handle Salesperson Commision in Odoo 18 Sales
Celine George
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
Ad

Introduction to Graphs

  • 1. Introduction to Graphs Tecniche di Programmazione – A.A. 2012/2013
  • 2. Summary A.A. 2012/2013Tecniche di programmazione2  Definition: Graph  Related Definitions  Applications
  • 4. Definition: Graph A.A. 2012/2013Tecniche di programmazione4  A graph is a collection of points and lines connecting some (possibly empty) subset of them.  The points of a graph are most commonly known as graph vertices, but may also be called “nodes” or simply “points.”  The lines connecting the vertices of a graph are most commonly known as graph edges, but may also be called “arcs” or “lines.” http://mathworld.wolfram.com/
  • 5. Big warning: Graph ≠ Graph ≠ Graph Graph (plot) (italiano: grafico) Graph (maths) (italiano: grafo) A.A. 2012/2013Tecniche di programmazione5 ≠ Graph (chart) (italiano: grafico)
  • 6. History A.A. 2012/2013Tecniche di programmazione6  The study of graphs is known as graph theory, and was first systematically investigated by D. König in the 1930s  Euler’s proof about the walk across all seven bridges of Königsberg (1736), now known as the Königsberg bridge problem, is a famous precursor to graph theory.  In fact, the study of various sorts of paths in graphs has many applications in real-world problems.
  • 7. Königsberg Bridge Problem A.A. 2012/2013Tecniche di programmazione7  Can the 7 bridges the of the city of Königsberg over the river Preger all be traversed in a single trip without doubling back, with the additional requirement that the trip ends in the same place it began? Today: Kaliningrad, Russia
  • 8. Königsberg Bridge Problem A.A. 2012/2013Tecniche di programmazione8  Can the 7 bridges the of the city of Königsberg over the river Preger all be traversed in a single trip without doubling back, with the additional requirement that the trip ends in the same place it began? Today: Kaliningrad, Russia
  • 9. Types of graphs: edge cardinality A.A. 2012/2013Tecniche di programmazione9  Simple graph:  At most one edge (i.e., either one edge or no edges) may connect any two vertices  Multigraph:  Multiple edges are allowed between vertices  Loops:  Edge between a vertex and itself  Pseudograph:  Multigraph with loops loop
  • 10. Types of graphs: edge direction A.A. 2012/2013Tecniche di programmazione10  Undirected  Oriented  Edges have one direction (indicated by arrow)  Directed  Edges may have one or two directions  Network  Oriented graph with weighted edges
  • 11. Types of graphs: labeling A.A. 2012/2013Tecniche di programmazione11  Labels  None  OnVertices  On Edges  Groups (=colors)  OfVertices  no edge connects two identically colored vertices  Of Edges  adjacent edges must receive different colors  Of both
  • 12. A.A. 2012/2013Tecniche di programmazione12 Directed and Oriented graphs  A Directed Graph (di-graph) G is a pair (V,E), where  V is a (finite) set of vertices  E is a (finite) set of edges, that identify a binary relationship overV  𝐸 ⊆ 𝑉 × 𝑉
  • 13. A.A. 2012/2013Tecniche di programmazione13 Example 4 1 5 6 2 3
  • 14. A.A. 2012/2013Tecniche di programmazione14 Example 4 1 5 6 2 3 Loop
  • 15. A.A. 2012/2013Tecniche di programmazione15 Example 4 1 5 6 2 3 V={1,2,3,4,5,6} E={(1,2), (2,2), (2,5), (5,4), (4,5), (4,1), (2,4), (6,3)}
  • 16. A.A. 2012/2013Tecniche di programmazione16 Undirected graph  Ad Undirected Graph is still represented as a couple G=(V,E), but the set E is made of non-ordered pairs of vertices
  • 17. A.A. 2012/2013Tecniche di programmazione17 Example 4 1 5 6 2 3 V={1,2,3,4,5,6} E={(1,2), (2,5), (5,1), (6,3)}
  • 18. A.A. 2012/2013Tecniche di programmazione18 Example 4 1 5 6 2 3 V={1,2,3,4,5,6} E={(1,2), (2,5), (5,1), (6,3)} Edge (1,5) adjacent (or incident) to vertices 1 and 5 Vertex 5 is adjacent to vertices 1 and 2 Vertex 4 is isolated
  • 20. A.A. 2012/2013Tecniche di programmazione20 Degree  In an undirected graph,  the degree of a vertex is the number of incident edges  In a directed graph  The in-degree is the number of incoming edges  The out-degree is the number of departing edges  The degree is the sum of in-degree and out-degree  A vertex with degree 0 is isolated
  • 21. A.A. 2012/2013Tecniche di programmazione21 Degree 4 1 5 6 2 3 2 2 20 1 1
  • 22. A.A. 2012/2013Tecniche di programmazione22 Degree 4 1 5 6 2 3 In: 1 Out: 1 In: 2 Out: 2 In: 1 or 2 Out: 2 or 3 In: 2 Out: 1 In: 1 Out: 0 In: 0 Out: 1
  • 23. Paths A.A. 2012/2013Tecniche di programmazione23  A path on a graph G=(V,E) also called a trail, is a sequence {v1, v2, …, vn} such that:  v1, …, vn are vertices: vi V  (v1, v2), (v2, v3), ..., (vn-1,vn) are graph edges: (vi-1,vi)  E  vi are distinct (for “simple” paths).  The length of a path is the number of edges (n-1)  If there exist a path between vA and vB we say that vB is reachable from vA
  • 24. A.A. 2012/2013Tecniche di programmazione24 Example 4 1 5 6 2 3 Path = { 1, 2, 5 } Length = 2
  • 25. A.A. 2012/2013Tecniche di programmazione25 Cycles  A cycle is a path where v1 = vn  A graph with no cycles is said acyclic
  • 26. A.A. 2012/2013Tecniche di programmazione26 Example 4 1 5 6 2 3 Path = { 1, 2, 5, 1 } Length = 3
  • 27. A.A. 2012/2013Tecniche di programmazione27 Reachability (Undirected)  An undirected graph is connected if, for every couple of vertices, there is a path connecting them  The connected sub-graph of maximum size are called connected components  A connected graph has exactly one connected component
  • 28. A.A. 2012/2013Tecniche di programmazione28 Connected components 4 1 5 6 2 3 The graph is not connected. Connected components = 3 { 4 } , { 1, 2, 5 }, { 3, 6 }
  • 29. A.A. 2012/2013Tecniche di programmazione29 Reachability (Directed)  A directed graph is strongly connected if, for every ordered pair of vertices (v, v’), there exists at least one path connecting v to v’
  • 30. A.A. 2012/2013Tecniche di programmazione30 Example 4 1 5 2 The graph is strongly connected
  • 31. A.A. 2012/2013Tecniche di programmazione31 Example 4 1 5 2 The graph is not strongly connected
  • 32. Complete graph A.A. 2012/2013Tecniche di programmazione32  A graph is complete if, for every pair of vertices, there is an edge connecting them (they are adjacent)  Symbol: Kn
  • 33. A.A. 2012/2013Tecniche di programmazione33 Complete graph: edges  In a complete graph with n vertices, the number of edges is  n(n-1), if the graph is directed  n(n-1)/2, if the graph is undirected  If self-loops are allowed, then  n2 for directed graphs  n(n-1) for undirected graphs
  • 34. Density A.A. 2012/2013Tecniche di programmazione34  The density of a graph G=(V,E) is the ration of the number of edges to the total number of edges 𝑑 = 𝐸 𝐺 𝐸 𝐾 𝑉(𝐺)
  • 35. A.A. 2012/2013Tecniche di programmazione35 Esempio 4 1 3 2 Density = 0.5 Existing: 3 edges Total: 6 possible edges
  • 36. A.A. 2012/2013Tecniche di programmazione36 Trees and Forests  An undirected acyclic graph is called forest  An undirected acyclic connected graph is called tree
  • 37. A.A. 2012/2013Tecniche di programmazione37 Example Tree
  • 38. A.A. 2012/2013Tecniche di programmazione38 Example Forest
  • 39. A.A. 2012/2013Tecniche di programmazione39 Example This is not a tree nor a forest (it contains a cycle)
  • 40. Rooted trees A.A. 2012/2013Tecniche di programmazione40  In a tree, a special node may be singled out  This node is called the “root” of the tree  Any node of a tree can be the root
  • 41. Tree (implicit) ordering A.A. 2012/2013Tecniche di programmazione41  The root node of a tree induces an ordering of the nodes  The root is the “ancestor” of all other nodes/vertices  “children” are “away from the root”  “parents” are “towards the root”  The root is the only node without parents  All other nodes have exactly one parent  The furthermost (children-of-children-of-children…) nodes are “leaves”
  • 42. A.A. 2012/2013Tecniche di programmazione42 Example Rooted Tree
  • 43. A.A. 2012/2013Tecniche di programmazione43 Example Rooted Tree
  • 44. A.A. 2012/2013Tecniche di programmazione44 Weighted graphs  A weighted graph is a graph in which each branch (edge) is given a numerical weight.  A weighted graph is therefore a special type of labeled graph in which the labels are numbers (which are usually taken to be positive).
  • 46. Graph applications A.A. 2012/2013Tecniche di programmazione46  Graphs are everywhere  Facebook friends (and posts, and ‘likes’)  Football tournaments (complete subgraphs + binary tree)  Google search index (V=page, E=link, w=pagerank)  Web analytics (site structure, visitor paths)  Car navigation (GPS)  Market Matching
  • 47. Market matching A.A. 2012/2013Tecniche di programmazione47  H = Houses (1, 2, 3, 4)  B = Buyers (a, b, c, d)  V = H  B  Edges: (h, b)  E if b would like to buy h  Problem: can all houses be sold and all buyers be satisfied?  Variant: if the graph is weighted with a purchase offer, what is the most convenient solution?  Variant: consider a ‘penalty’ for unsold items This graph is called “bipartite”: H  B = 
  • 48. Connecting cities A.A. 2012/2013Tecniche di programmazione48  We have a water reservoir  We need to serve many cities  Directly or indirectly  What is the most efficient set of inter-city water connections?  Also for telephony, gas, electricity, … We are searching for the “minimum spanning tree”
  • 49. Google Analytics (Visitors Flow) A.A. 2012/2013Tecniche di programmazione49
  • 50. Customer behavior A.A. 2012/2013Tecniche di programmazione50 User actions encoded as frequencies
  • 51. Street navigation A.A. 2012/2013Tecniche di programmazione51 We must find a “Hamiltonian cycle” TSP:The traveling salesman problem
  • 52. Train maps A.A. 2012/2013Tecniche di programmazione52
  • 53. Chemistry (Protein folding) A.A. 2012/2013Tecniche di programmazione53
  • 55. A.A. 2012/2013Tecniche di programmazione55 Flow chart BEGIN END
  • 56. Resources A.A. 2012/2013Tecniche di programmazione56  Maths Encyclopedia: http://mathworld.wolfram.com/  Basic GraphTheory with Applications to Economics http://www.isid.ac.in/~dmishra/mpdoc/lecgraph.pdf  Application of GraphTheory in real world http://prezi.com/tseh1wvpves-/application-of-graph-theory- in-real-world/  JGraphT Library: http://jgrapht.org/
  • 57. Licenza d’uso A.A. 2012/2013Tecniche di programmazione57  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/