ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in...
Transcript of ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in...
![Page 1: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/1.jpg)
Graphs
Carlos Moreno cmoreno @ uwaterloo.ca
EIT-4103
https://ece.uwaterloo.ca/~cmoreno/ece250
http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon
![Page 2: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/2.jpg)
Graphs
Standard reminder to set phones to silent/vibrate mode, please!
![Page 3: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/3.jpg)
Graphs
● So far, in ECE-250 ... ● We've looked at algorithms, analysis, and some
sorting algorithms.● Looked at data relationships and how they affect
the choice of data structures.– Saw some of the sequential structures, for storing linearly
ordered data (arrays, linked lists, queues, stacks)– Hash tables for unordered data (e.g., sets, in the strict
mathematical sense of a set)– Trees, for hierarchical data (plus some other interesting
applications deriving from their structure)
![Page 4: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/4.jpg)
Graphs
● Today ... ● We start with Graphs, the data structure for data
featuring adjacency relationships.● We'll look into the basic notions and introductory
concepts.● Discuss the main types of graphs (directed vs.
undirected; weighted vs. unweighted, connected, complete, etc.)
● Talk about some graph algorithms and their applications.
![Page 5: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/5.jpg)
Graphs
● Basic definition:● A graph is defined as a set of vertices together with
a set of edges representing association or adjacency between the vertices.
![Page 6: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/6.jpg)
Graphs
● Basic definition:● A graph is defined as a set of vertices together with
a set of edges representing association or adjacency between the vertices.
● Notation:● A graph consists of the set of vertices
and the set of edges E, where each edge is a pair , with
G = (V , E )V = {v1, v2, ⋯ , vn−1 , vn}
(v i , v j) v i , v j ∈ V
![Page 7: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/7.jpg)
Graphs
● Basic definition:● A graph is defined as a set of vertices together with
a set of edges representing association or adjacency between the vertices.
● Notation:● A graph consists of the set of vertices
and the set of edges E, where each edge is a pair , with
● The number of vertices (in this case, n) is usually denoted , and the number of edges
G = (V , E )V = {v1, v2, ⋯ , vn−1 , vn}
(v i , v j) v i , v j ∈ V
∣V∣ ∣E∣
![Page 8: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/8.jpg)
Graphs
● Graphically, we could represent it like this (this is an example of a graph with :∣V∣= 9
![Page 9: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/9.jpg)
Graphs
● Since the vertices usually represent some element (not unlike nodes in a tree), it is common practice to draw them as circles containing a value.
![Page 10: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/10.jpg)
Graphs
● Since the vertices usually represent some element (not unlike nodes in a tree), it is common practice to draw them as circles containing a value.● So, in a sense (at least from a “visual analogy” point
of view) a graph ends up being like a “generalized” or “extended” version of a tree.
![Page 11: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/11.jpg)
Graphs
● More definitions — directed and undirected graphs:● A directed graph is one where edges are ordered
pairs , where is adjacent to (v i , v j) v j v i
![Page 12: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/12.jpg)
Graphs
● More definitions — directed and undirected graphs:● A directed graph is one where edges are ordered
pairs , where is adjacent to
● Visually, edges are represented with arrows, denoting a direction in the adjacency relationship (arrow going from to ).
(v i , v j) v j v i
v i v j
![Page 13: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/13.jpg)
Graphs
● More definitions — directed and undirected graphs:● An undirected graph is one where edges are
unordered pairs , where both is adjacent to , and is adjacent to
(v i , v j)v j
v iv j v i
![Page 14: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/14.jpg)
Graphs
● More definitions — directed and undirected graphs:● An undirected graph is one where edges are
unordered pairs , where both is adjacent to , and is adjacent to
● In this case, edges are represented as lines connecting the two vertices.
(v i , v j)v j
v iv j v i
![Page 15: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/15.jpg)
Graphs
● Standard assumption:● A vertex is never adjacent to itself — that is, the set
of edges shall never contain (v k , v k )
![Page 16: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/16.jpg)
Graphs
● Maximum number of edges in an undirected graph with n vertices:
![Page 17: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/17.jpg)
Graphs
● Maximum number of edges in an undirected graph with n vertices:
![Page 18: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/18.jpg)
Graphs
● Maximum number of edges in an undirected graph with n vertices:
● Thus, maximum number of edges in a directed graph is:
(n2 ) =n(n−1)
2
![Page 19: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/19.jpg)
Graphs
● Maximum number of edges in an undirected graph with n vertices:
● Thus, maximum number of edges in a directed graph is: twice as many — n(n−1)
(n2 ) =n(n−1)
2
![Page 20: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/20.jpg)
Graphs
● The degree of a vertex (in an undirected graph) is defined as the number of adjacent vertices.● In the example below, the degree of each vertex is
shown in red, next to the vertex:
![Page 21: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/21.jpg)
Graphs
● What about for directed graphs? How do we define this “degree” notion for a directed graph?
![Page 22: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/22.jpg)
Graphs
● What about for directed graphs? How do we define this “degree” notion for a directed graph?● There are the notions of in degree and out degree;
visually, the in degree of a vertex corresponds to the number of arrows pointing to that vertex, and the out degree corresponds to the number of arrows starting at the vertex.
![Page 23: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/23.jpg)
Graphs
● What about for directed graphs? How do we define this “degree” notion for a directed graph?● There are the notions of in degree and out degree;
visually, the in degree of a vertex corresponds to the number of arrows pointing to that vertex, and the out degree corresponds to the number of arrows starting at the vertex.
● Formally:– Out-degree of a vertex: number of vertices which are
adjacent to the given vertex.– In-degree of a vertex: number of vertices which the given
vertex is adjacent to.
![Page 24: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/24.jpg)
Graphs
● Example: in/out degrees shown:
5
![Page 25: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/25.jpg)
Graphs
● Definition: A path is an ordered sequence of vertices
where
(v0, v1, v2 , ⋯ v k−1 , vk)
(v i−1 , v i) ∈ E ∀ i , 1⩽i⩽k
![Page 26: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/26.jpg)
Graphs
● Definition: A path is an ordered sequence of vertices
where
● This is a path from to ● The length of this path is k
(v0, v1, v2 , ⋯ v k−1 , vk)
(v i−1 , v i) ∈ E ∀ i , 1⩽i⩽k
v0 v k
![Page 27: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/27.jpg)
Graphs
● Definition: A path is an ordered sequence of vertices
where
● This is a path from to ● The length of this path is k
● Notion similar than with a path in a tree.● Important distinction: in this case, we're
unrestricted in direction and the sequence of vertices.
(v0, v1, v2 , ⋯ v k−1 , vk)
(v i−1 , v i) ∈ E ∀ i , 1⩽i⩽k
v0 v k
![Page 28: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/28.jpg)
Graphs
● Example:● Consider a graph where vertices represent an
actor/actress, and edges represent associations between actors/actresses that have shared roles in the same movie.
![Page 29: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/29.jpg)
Graphs
● Example:● Consider a graph where vertices represent an
actor/actress, and edges represent associations between actors/actresses that have shared roles in the same movie.
● Then, the length of the path from Kevin Bacon to any other vertex is claimed to be less than 6 !!
![Page 30: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/30.jpg)
Graphs
● Example:● Here's Kevin Bacon himself explaining this
important concept from graph theory:
![Page 31: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/31.jpg)
Graphs
● Examples of paths:● (1, 2, 3, 3, 6, 7, 5)
![Page 32: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/32.jpg)
Graphs
● Examples of paths:● (1, 2, 3, 3, 6, 7, 5)
● (1, 4, 2, 4, 3, 4, 5, 4, 6, 4, 7)
![Page 33: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/33.jpg)
Graphs
● A perhaps curious example of a path:
● (1)
![Page 34: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/34.jpg)
Graphs
● A simple path is one that has no repeated vertices other than possibly the first and last.
![Page 35: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/35.jpg)
Graphs
● A simple path is one that has no repeated vertices other than possibly the first and last.
● Example of a simple path:
![Page 36: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/36.jpg)
Graphs
● A cycle is a non-trivial simple path where the first and last vertices are the same vertex.
![Page 37: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/37.jpg)
Graphs
● A cycle is a non-trivial simple path where the first and last vertices are the same vertex.
● Example of a cycle:● (2, 4, 1, 2)
![Page 38: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/38.jpg)
Graphs
● There are some fascinating theoretical aspects related to this. For example:● A Hamiltonian path is a path that visits each vertex
exactly once.● A Hamiltonian cycle is a Hamiltonian path that is a
cycle.
● An Eulerian path is a path that visits each edge exactly once.
![Page 39: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/39.jpg)
Graphs
● The problems of determining whether a graph contains a Hamiltonian path, a Hamiltonian cycle, or an Eulerian path are quite interesting from a theoretical point of view:● As much as they seem almost identical in terms of
difficulty, testing for an Eulerian path can be done very efficiently.
● Testing for Hamiltonian path or cycle has been proved to be NP-complete — a class of problems that we'll see, are as close as we get to proving that no efficient solution exists.
![Page 40: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/40.jpg)
Graphs
● Definition: Two vertices v, w are connected if there exists a path from v to w.
● A graph is connected if there exists a path between any two vertices.
Connected Unconnected
![Page 41: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/41.jpg)
Graphs
● Weighted graphs:● A numeric value (denoted weight, or cost) may be
associated with each edge in a graph.– This could represent a distance, time, energy
consumption associated with going from one vertex to the other, etc.
![Page 42: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/42.jpg)
Graphs
● Weighted graphs:● A numeric value (denoted weight, or cost) may be
associated with each edge in a graph.– This could represent a distance, time, energy
consumption associated with going from one vertex to the other, etc.
● Example:
![Page 43: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/43.jpg)
Graphs
● Weighted graphs:● Observation: an unweighted graph could be seen
as a weighted graph where every edge has weight 1.
![Page 44: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/44.jpg)
Graphs
● Weighted graphs:● For weighted graphs, the length of a path is the
sum of the weights of all edges in the path.
![Page 45: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/45.jpg)
Graphs
● Weighted graphs:● For weighted graphs, the length of a path is the
sum of the weights of all edges in the path.● Example: the length of the path (1, 4, 7) in the
graph below is 5.1 + 3.7 = 8.8
![Page 46: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/46.jpg)
Graphs
● Weighted graphs:● One typical application is finding directions — a
graph where vertices represent intersections and edges represent streets.
![Page 47: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/47.jpg)
Graphs
● Weighted graphs:● One typical application is finding directions — a
graph where vertices represent intersections and edges represent streets.
● Is this a directed or undirected graph?
![Page 48: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/48.jpg)
Graphs
● Weighted graphs:● One typical application is finding directions — a
graph where vertices represent intersections and edges represent streets.
● Is this a directed or undirected graph?– If we must account for one-way streets, then we have to
make it a directed graph.● Weights could represent the estimated time
(perhaps based on traffic statistics, combined with speed limit, etc.)
![Page 49: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/49.jpg)
Graphs
● Directed Acyclic Graphs (DAGs):● A directed graph that has no cycles.● Examples:
![Page 50: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/50.jpg)
Graphs
● Directed Acyclic Graphs (DAGs):● A directed graph that has no cycles.● Example of something that is not a DAG:
![Page 51: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/51.jpg)
Graphs
● Directed Acyclic Graphs (DAGs):● A directed graph that has no cycles.
● Hmm ... What does this sound like? (what type of relationship could be represented here?)
![Page 52: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/52.jpg)
Graphs
● Directed Acyclic Graphs (DAGs):● A directed graph that has no cycles.
● Hmm ... What does this sound like? (what type of relationship could be represented here?)– In general, we're talking about a partial ordering.– Specific examples include course prerequisite diagrams,
compiler optimization diagrams for code dependencies.
![Page 53: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/53.jpg)
Graphs
● In the next few lessons, we'll look at some of the algorithms to solve particular problems with graphs (notably, shortest path, minimum spanning tree, topological sort).
![Page 54: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/54.jpg)
Graphs
● In the next few lessons, we'll look at some of the algorithms to solve particular problems with graphs (notably, shortest path, minimum spanning tree, topological sort).
![Page 55: ECE-250 Course Slides -- Graphs (intro)cmoreno/ece250/2012-03-14--graphs.pdf · Graphs So far, in ECE-250 ... We've looked at algorithms, analysis, and some sorting algorithms. Looked](https://reader030.fdocuments.net/reader030/viewer/2022040613/5f0613107e708231d4162967/html5/thumbnails/55.jpg)
Summary
● During today's lesson, we:● Introduced Graphs — data structure for storing data
featuring adjacency relationships.● Saw some of the basic notions.● Discussed the main types of graphs (directed vs.
undirected; weighted vs. unweighted, connected, complete, etc.)
● Mentioned some graph algorithms and their applications.