introduction to graphs - university of washington · introduction to graphs cse 373 sp 18 -kasey...
TRANSCRIPT
![Page 1: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/1.jpg)
Introduction to Graphs Data Structures and Algorithms
CSE 373 SP 18 - KASEY CHAMPION 1
![Page 2: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/2.jpg)
Warm Up
CSE 373 SP 18 - KASEY CHAMPION 2
mergeSort(input) {if (input.length == 1)
returnelse
smallerHalf = mergeSort(new [0, ..., mid])largerHalf = mergeSort(new [mid + 1, ...])return merge(smallerHalf, largerHalf)
}
0 1 2 3 4
8 2 57 91 22
0 1
8 2
0 1 2
57 91 22
0
8
0
2
0
57
0 1
91 22
0
91
0
22
0 1
22 91
0 1 2
22 57 91
0 1
2 8
0 1 2 3 4
2 8 22 57 91
1 if n<= 12T(n/2) + n otherwise
T(n) =
The Merge Sort algorithm has the same runtime for its worst, best and average case. Create a recurrence that represents this runtime:
![Page 3: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/3.jpg)
Review: Unfolding Technique
CSE 373 SP 18 - KASEY CHAMPION 3
! " =1 %ℎ'" " = 02! " − 1 + 1 ,-ℎ'.%/0'
! 5 = 2! 5 − 1 + 1
= 2(2! 4 − 1 + 1) + 1
= 2(2 2! 3 − 1 + 1 + 1) + 1
= 2(2 2(2! 2 − 1 + 1) + 1 + 1) + 1
= 2(2 2(2(2! 1 − 1 + 1) + 1) + 1 + 1) + 1
= 2(2 2(2(2(1) + 1) + 1) + 1 + 1) + 1
= 26 + 5
= 27 + "
The pattern by which we move towards the base case is n – 1We would call this a “linear recurrence”
![Page 4: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/4.jpg)
Unfolding Technique
CSE 373 SP 18 - KASEY CHAMPION 4
! " =1 %ℎ'" " ≤ 1
2! "2 + " +,ℎ'-%./'
! 16 = 2! 162 + 16
= 2(2! 82 + 8) + 16
= 2(2(2! 42 + 4) + 8) + 16
= 2(2(2(2! 22 + 2) + 4) + 8) + 16
= 2(2(2(2(1) + 2) + 4) + 8) + 16
= 25 + 67
516= 16 + 16 + 16 + 16 + 16 = 2 8 + 6
7
8"
The pattern by which we move towards the base case is not linearMultiple recursive calls cause branchingIs there an easier way to find the closed form?
![Page 5: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/5.jpg)
Tree Method
CSE 373 SP 18 - KASEY CHAMPION 5
! "
! " =1 %ℎ'" " ≤ 1
2! "2 + " +,ℎ'-%./'
! "2 + ! "
2 + "
! "2 ! "
2
"
1. What work to do?
2. Replace with definition
3. Break apart non recursive and recursive pieces
4. Replace with definition
5. Break apart non recursive and recursive pieces
6. …
! "4 + ! "
4 + "2 ! "4 + ! "
4 + "2"2
"2
! "4 ! "
4 ! "4 ! "
4
! "2 + ! "
2 + " +,ℎ'-%./'
"4
"4
"4
"4
… … … … … … … …
![Page 6: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/6.jpg)
Tree Method
6
n
n2
n2
n4
n4
n4
n4
n8
n8
n8
n8
n8
n8
n8
n8
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
… … … … … … … …… … …… … … … …
How many pieces of work at each level?
How much work at each level?
How much work per level?
1 n
2
4
8
n
n
n
n
n
n
How many levels?
log(n)
Runtime
& ' =1 )ℎ+' ' ≤ 12& '
2 + ' ./ℎ+0)12+
&(') = 5678
9:;< ='
![Page 7: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/7.jpg)
Tree Method FormulasHow much work is done by recursive levels (branch nodes)?1. How many nodes are on each branch level i? branchNum(i)
- i = 0 is overall root level- How many recursive calls are in each recursive branch to the power of which branch
2. At each level i, how much work does a single node do? branchWork(i)3. How many recursive levels are there? branchCount
- Based on the pattern of how we get down to base case
How much work is done by the base case level (leaf nodes)?1. How much work does a single leaf node do? leafWork2. How many leaf nodes are there? leafCount
- How many branch nodes are in the second to last level x recursive calls per node
CSE 373 SP 18 - KASEY CHAMPION 7
!"#$%&'(" )*%+ = -./0
1234567894:
;%<=#ℎ?$@ ' ;%<=#ℎA*%+(')
?*=!"#$%&'(" )*%+ = D"<EA*%+×D"<EG*$=H = D"<EA*%+×;%<=#ℎ?$@49IJKLKMN
O = =1 )ℎ"= = ≤ 1
2O=2+ = *Hℎ"%)'&"
branchNum(i) = 2i
branchWork(i) = (n/ 2i)
branchCount = log2n - 1
O(= > 1) = -./0
UVWX 4YZ
2.=2.
leafWork = 1
leafCount = 2log2n = n
O = ≤ 1 = =
O = = -./0
UVWX 4YZ
2.=2.
+ = = = log^ = + =
![Page 8: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/8.jpg)
Tree Method Practice
8
! " =4 %ℎ'" " ≤ 13! "
4 + ,"- ./ℎ'0%12'
,n-
, n4
-
… …
, n4
-, n4
-
, n16
-, n16
-, n16
-, n16
-, n16
-, n16
-, n16
-, n16
-, n16
-
… … …… … …… … …… … …… … …… … …… … …… … ……
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
Answer the following questions:1. How many nodes on
each branch level?2. How much work for
each branch node?3. How much work per
branch level?4. How many branch
levels?5. How much work for
each leaf node?6. How many leaf nodes?
EXAMPLE PROVIDED BY CS 161 – JESSICA SUHTTPS://WEB.STANFORD.EDU/CLASS/ARCHIVE/CS/CS161/CS161.1168/LECTURE3.PDF
! "4 ! "
4 ! "4
! "4 + ! "
4 + ! "4 + ,"-
![Page 9: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/9.jpg)
Tree Method Practice
CSE 373 SP 18 - KASEY CHAMPION 9
Level (i) Number of Nodes
Work per Node
Work per Level
0 1 !"2 !"2
1 3 !"
4
% 3
16!"%
2 9 !"
16
% 9
256!"%
base 3+,-./ 4 12+,-./
1. How many nodes on each branch level?
2. How much work for each branch node?
3. How much work per branch level?
4. How many branch levels?
5. How much work for each leaf node?
6. How many leaf nodes?
30
!"
40%
log. " − 1
4
5 " =4 7ℎ9" " ≤ 1
35"
4+ !"% <=ℎ9>7?@9
Combining it all together…
30!"
40%=
3
16
0
!"%
5 " = A0BC
+,-D / EF3
16
0
!"% + 4"+,-.G
3+,-D / power of a logH+,-I J = K+,-I L
"+,-D G
![Page 10: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/10.jpg)
Tree Method Practice
CSE 373 SP 18 - KASEY CHAMPION 10
! " = $%&'
()*+ , -. 316
%2"3 + 4"()*67
! " = 2"3 11 − 3
16+ 4"()*67
! " = 2"3316
()*+ ,− 1
316 − 1
+ 4"()*67
! " ∈ :("3)
$%&=
>2?(@) = 2$
%&=
>?(@)
factoring out a constant
! " = 2"3 $%&'
()*+ , -. 316
%+ 4"()*67
$%&'
,-.A% = A, − 1
A − 1
finite geometric series
$%&'
BA% = 1
1 − A
infinite geometric series
when -1 < x < 1
If we’re trying to prove upper bound…
! " = 2"3$%&'
B 316
%+ 4"()*67
Closed form:
![Page 11: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/11.jpg)
Is there an easier way?What if you don’t want an exact closed form?
Sorry, no
If we want to find a big Θ
Yes!
CSE 373 SP 18 - KASEY CHAMPION 11
![Page 12: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/12.jpg)
Master Theorem
CSE 373 SP 18 - KASEY CHAMPION 12
! " =$ %ℎ'" " = 1)! "
* + ", -.ℎ'/%01'
Given a recurrence of the following form:
Then thanks to magical math brilliance we can assume the following:
! " ∈ Θ ",log7 ) < 9
log7 ) = 9 ! " ∈ Θ ", log: "
log7 ) > 9 ! " ∈ Θ "<=>? @
If
If
If
then
then
then
![Page 13: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/13.jpg)
Apply Master Theorem
CSE 373 SP 18 - KASEY CHAMPION 13
! " =1 %ℎ'" " ≤ 12! "
2 + " +,ℎ'-%./'
! " =0 %ℎ'" " = 1
1! "2 + "3 +,ℎ'-%./'
log7 1 = 8 ! " ∈ Θ "3 log; "log7 1 > 8 ! " ∈ Θ "=>?@ A
If
If
! " ∈ Θ "3log7 1 < 8If then
then
then
Given a recurrence of the form:
a = 2b = 2c = 1d = 1
log7 1 = 8 ⇒ log; 2 = 1
! " ∈ Θ "3 log; " ⇒ Θ "D log; "
![Page 14: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/14.jpg)
Reflecting on Master TheoremThe case - Recursive case conquers work more quickly than it divides work- Most work happens near “top” of tree- Non recursive work in recursive case dominates growth, nc term
The case - Work is equally distributed across call stack (throughout the “tree”)- Overall work is approximately work at top level x height
The case - Recursive case divides work faster than it conquers work- Most work happens near “bottom” of tree- Leaf work dominates branch work
CSE 373 SP 18 - KASEY CHAMPION 14
! " =$ %ℎ'" " = 1
)! "* + ", -.ℎ'/%01'
log5 ) = 6 ! " ∈ Θ ", log9 "log5 ) > 6 ! " ∈ Θ ";<=> ?
If
If
! " ∈ Θ ",log5 ) < 6If then
then
then
Given a recurrence of the form: log5 ) < 6
log5 ) = 6
log5 ) > 6
A')BC-/D ≈ $ ";<=> ?
ℎ'0Fℎ. ≈ log5 )*/)"6ℎC-/D ≈ ",log5 )
![Page 15: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/15.jpg)
Introduction to Graphs
CSE 373 SP 18 - KASEY CHAMPION 15
![Page 16: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/16.jpg)
Inter-data RelationshipsArraysCategorically associated
Sometimes ordered
Typically independent
Elements only store pure data, no connection info
CSE 373 SP 18 - KASEY CHAMPION 16
A
B C
TreesDirectional Relationships
Ordered for easy access
Limited connections
Elements store data and connection info
0 1 2
A B C
GraphsMultiple relationship connections
Relationships dictate structure
Connection freedom!
Both elements and connections can store data
A
B
C
![Page 17: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/17.jpg)
Graph: Formal DefinitionA graph is defined by a pair of sets G = (V, E) where…- V is a set of vertices
- A vertex or “node” is a data entity
- E is a set of edges- An edge is a connection between two vertices
CSE 373 SP 18 - KASEY CHAMPION 17
A
B
CD
E
F
G
H
V = { A, B, C, D, E, F, G, H }
E = { (A, B), (A, C), (A, D), (A, H), (C, B), (B, D), (D, E), (D, F),(F, G), (G, H)}
![Page 18: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/18.jpg)
Applications
Physical Maps
- Airline maps
- Vertices are airports, edges are flight paths
- Traffic
- Vertices are addresses, edges are streets
Relationships
- Social media graphs
- Vertices are accounts, edges are follower relationships
- Code bases
- Vertices are classes, edges are usage
Influence
- Biology
- Vertices are cancer cell destinations, edges are migration paths
Related topics
- Web Page Ranking
- Vertices are web pages, edges are hyperlinks
- Wikipedia
- Vertices are articles, edges are links
SO MANY MORREEEE
www.allthingsgraphed.com
CSE 373 SP 18 - KASEY CHAMPION 18
![Page 19: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/19.jpg)
Graph VocabularyGraph Direction- Undirected graph – edges have no direction and are two-way
- Directed graphs – edges have direction and are thus one-way
Degree of a Vertex- Degree – the number of edges containing that vertex
A : 1, B : 1, C : 1- In-degree – the number of directed edges that point to a vertex
A : 0, B : 2, C : 1- Out-degree – the number of directed edges that start at a vertex
A : 1, B : 1, C : 1CSE 373 SP 18 - KASEY CHAMPION 19
A B
C
V = { A, B, C }E = { (A, B), (B, C) } inferred (B, A) and (C,B)
V = { A, B, C }E = { (A, B), (B, C), (C, B) } A
B
C
Undirected Graph:
Undirected Graph:
![Page 20: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/20.jpg)
Food for thoughtIs a graph valid if there exists a vertex with a degree of 0?
CSE 373 SP 18 - KASEY CHAMPION 20
AB
C
A has an “in degree” of 0
AB
C
B has an “out degree” of 0
AB
C
C has both an “in degree” and an “out degree” of 0
Is this a valid graph?
A
Yes!
A B CA B
CD
Are these valid? Yup
Sure
Yes
![Page 21: Introduction to Graphs - University of Washington · Introduction to Graphs CSE 373 SP 18 -KASEY CHAMPION 15. Inter-data Relationships Arrays Categorically associated Sometimes ordered](https://reader035.vdocument.in/reader035/viewer/2022071018/5fd1cf9e02efc90ea634f124/html5/thumbnails/21.jpg)
Graph VocabularySelf loop – an edge that starts and ends at the same vertex
Parallel edges – two edges with the same start and end vertices
Simple graph – a graph with no self-loops and no parallel edges
CSE 373 SP 18 - KASEY CHAMPION 21
A B
A