CSE 332. Graphs 1: What is a Graph? DFS and BFS. Data Abstractions. CSE 332: Data Abstractions. A Graph is a Thingy... 2

Similar documents
CSE 332. Data Structures and Parallelism

CSE 332. Graphs 1: What is a Graph? DFS and BFS. Data Abstractions. CSE 332: Data Abstractions. A Graph is a Thingy... 2

Lecture 20: Minimum Spanning Trees (CLRS 23)

Spanning Trees. BFS, DFS spanning tree Minimum spanning tree. March 28, 2018 Cinda Heeren / Geoffrey Tien 1

(Minimum) Spanning Trees

4.1 Interval Scheduling. Chapter 4. Greedy Algorithms. Interval Scheduling: Greedy Algorithms. Interval Scheduling. Interval scheduling.

Weighted Graphs. Weighted graphs may be either directed or undirected.

CMPS 2200 Fall Graphs. Carola Wenk. Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk

COMP 250. Lecture 29. graph traversal. Nov. 15/16, 2017

5/1/2018. Huffman Coding Trees. Huffman Coding Trees. Huffman Coding Trees. Huffman Coding Trees. Huffman Coding Trees. Huffman Coding Trees

Depth First Search. Yufei Tao. Department of Computer Science and Engineering Chinese University of Hong Kong

Strongly connected components. Finding strongly-connected components

Graph Search (6A) Young Won Lim 5/18/18

Improving Union. Implementation. Union-by-size Code. Union-by-Size Find Analysis. Path Compression! Improving Find find(e)

The University of Sydney MATH 2009

Minimum Spanning Trees (CLRS 23)

Divided. diamonds. Mimic the look of facets in a bracelet that s deceptively deep RIGHT-ANGLE WEAVE. designed by Peggy Brinkman Matteliano

In which direction do compass needles always align? Why?

Minimum Spanning Trees (CLRS 23)

CMSC 451: Lecture 4 Bridges and 2-Edge Connectivity Thursday, Sep 7, 2017

Applications of trees

Theorem 1. An undirected graph is a tree if and only if there is a unique simple path between any two of its vertices.

Lecture II: Minimium Spanning Tree Algorithms

CSE 373: More on graphs; DFS and BFS. Michael Lee Wednesday, Feb 14, 2018

DOCUMENT STATUS: RELEASE

Grade 7/8 Math Circles March 4/5, Graph Theory I- Solutions

MINI POST SERIES BALUSTRADE SYSTEM INSTALLATION GUIDE PRODUCT CODE: MPS-RP

MATERIAL SEE BOM ANGLES = 2 FINISH N/A

learning objectives learn what graphs are in mathematical terms learn how to represent graphs in computers learn about typical graph algorithms

CS 103 BFS Alorithm. Mark Redekopp

Closed Monochromatic Bishops Tours

Single Source Shortest Paths (with Positive Weights)

Cycles and Simple Cycles. Paths and Simple Paths. Trees. Problem: There is No Completely Standard Terminology!

DOCUMENT STATUS: MINTP0 E-ST5080, BASE, NO DISPLAY VENDOR: 15.5 INCH MATERIAL SEE BOM FINISH REVISION HISTORY ITEM NO. PART NUMBER DESCRIPTION

2 Trees and Their Applications

d e c b a d c b a d e c b a a c a d c c e b

Planar convex hulls (I)

SAMPLE CSc 340 EXAM QUESTIONS WITH SOLUTIONS: part 2

Paths. Connectivity. Euler and Hamilton Paths. Planar graphs.

V={A,B,C,D,E} E={ (A,D),(A,E),(B,D), (B,E),(C,D),(C,E)}

DOCUMENT STATUS: LA-S5302-XXXXS LA, SSS, TRICEPS EXTENSION VERY

Graphs. Graphs. Graphs: Basic Terminology. Directed Graphs. Dr Papalaskari 1

Face Detection and Recognition. Linear Algebra and Face Recognition. Face Recognition. Face Recognition. Dimension reduction

Graphs Depth First Search

DOCUMENT STATUS: CORE HEALTH & FITNESS, LLC IL-D2002-XXAAX IP,DUAL ADJUSTIBLE PULLEY MATERIAL SEE BOM FINISH N/A N/A SHEET SIZE: B SCALE: 1:33.

Math 166 Week in Review 2 Sections 1.1b, 1.2, 1.3, & 1.4

MATERIAL SEE BOM ANGLES = 2 > 2000 DATE MEDIUM FINISH

V={A,B,C,D,E} E={ (A,D),(A,E),(B,D), (B,E),(C,D),(C,E)}

The R-Tree. Yufei Tao. ITEE University of Queensland. INFS4205/7205, Uni of Queensland

Dental PBRN Study: Reasons for replacement or repair of dental restorations

Priority Search Trees - Part I

Platform Controls. 1-1 Joystick Controllers. Boom Up/Down Controller Adjustments

On Hamiltonian Tetrahedralizations Of Convex Polyhedra

Exam 2 Solutions. Jonathan Turner 4/2/2012. CS 542 Advanced Data Structures and Algorithms

MAT3707. Tutorial letter 201/1/2017 DISCRETE MATHEMATICS: COMBINATORICS. Semester 1. Department of Mathematical Sciences MAT3707/201/1/2017

Problem solving by search

CSC Design and Analysis of Algorithms. Example: Change-Making Problem

CSE 373. Graphs 1: Concepts, Depth/Breadth-First Search reading: Weiss Ch. 9. slides created by Marty Stepp

EE1000 Project 4 Digital Volt Meter

Graphs. CSC 1300 Discrete Structures Villanova University. Villanova CSC Dr Papalaskari

16.unified Introduction to Computers and Programming. SOLUTIONS to Examination 4/30/04 9:05am - 10:00am

a b c cat CAT A B C Aa Bb Cc cat cat Lesson 1 (Part 1) Verbal lesson: Capital Letters Make The Same Sound Lesson 1 (Part 1) continued...

Graph Search Algorithms

ECE COMBINATIONAL BUILDING BLOCKS - INVEST 13 DECODERS AND ENCODERS

Having a glimpse of some of the possibilities for solutions of linear systems, we move to methods of finding these solutions. The basic idea we shall

Outline. 1 Introduction. 2 Min-Cost Spanning Trees. 4 Example

Tangram Fractions Overview: Students will analyze standard and nonstandard

17 Basic Graph Properties

PR D NT N n TR T F R 6 pr l 8 Th Pr d nt Th h t H h n t n, D D r r. Pr d nt: n J n r f th r d t r v th tr t d rn z t n pr r f th n t d t t. n

CS 241 Analysis of Algorithms


23 Minimum Spanning Trees

,. *â â > V>V. â ND * 828.

12/3/12. Outline. Part 10. Graphs. Circuits. Euler paths/circuits. Euler s bridge problem (Bridges of Konigsberg Problem)

5/9/13. Part 10. Graphs. Outline. Circuits. Introduction Terminology Implementing Graphs

DETAIL B DETAIL A 7 8 APPLY PRODUCT ID LABEL SB838XXXX ADJ FOUR POST RACK SQUARE HOLE RAIL B REVISION

, each of which is a tree, and whose roots r 1. , respectively, are children of r. Data Structures & File Management

CS 461, Lecture 17. Today s Outline. Example Run

1 Introduction to Modulo 7 Arithmetic

18 Basic Graph Properties

22 t b r 2, 20 h r, th xp t d bl n nd t fr th b rd r t t. f r r z r t l n l th h r t rl T l t n b rd n n l h d, nd n nh rd f pp t t f r n. H v v d n f

# 1 ' 10 ' 100. Decimal point = 4 hundred. = 6 tens (or sixty) = 5 ones (or five) = 2 tenths. = 7 hundredths.

B ADDED BADGE PN , CHANGED TO C SIZE FOR ASSY, ADDED NOTES DN J DETAIL A SCALE 1 : INCH MATERIAL

ADORO TE DEVOTE (Godhead Here in Hiding) te, stus bat mas, la te. in so non mor Je nunc. la in. tis. ne, su a. tum. tas: tur: tas: or: ni, ne, o:

7 ACM FOR FRAME 2SET 6 FRAME 2SET 5 ACM FOR MAIN FRAME 2SET 4 MAIN FRAME 2SET 3 POLE ASSLY 1 2 CROWN STRUCTURE ASSLY 1 1 CROWN ASSLY 1

FL/VAL ~RA1::1. Professor INTERVI of. Professor It Fr recru. sor Social,, first of all, was. Sys SDC? Yes, as a. was a. assumee.

( ) ( ) ( ) 0. Conservation of Energy & Poynting Theorem. From Maxwell s equations we have. M t. From above it can be shown (HW)


Planar Upward Drawings

CS61B Lecture #33. Administrivia: Autograder will run this evening. Today s Readings: Graph Structures: DSIJ, Chapter 12

L.3922 M.C. L.3922 M.C. L.2996 M.C. L.3909 M.C. L.5632 M.C. L M.C. L.5632 M.C. L M.C. DRIVE STAR NORTH STAR NORTH NORTH DRIVE

0 t b r 6, 20 t l nf r nt f th l t th t v t f th th lv, ntr t n t th l l l nd d p rt nt th t f ttr t n th p nt t th r f l nd d tr b t n. R v n n th r

n r t d n :4 T P bl D n, l d t z d th tr t. r pd l

Humanistic, and Particularly Classical, Studies as a Preparation for the Law

SAMPLE LITANY OF THE SAINTS E/G. Dadd9/F. Aadd9. cy. Christ, have. Lord, have mer cy. Christ, have A/E. Dadd9. Aadd9/C Bm E. 1. Ma ry and. mer cy.

46 D b r 4, 20 : p t n f r n b P l h tr p, pl t z r f r n. nd n th t n t d f t n th tr ht r t b f l n t, nd th ff r n b ttl t th r p rf l pp n nt n th

An undirected graph G = (V, E) V a set of vertices E a set of unordered edges (v,w) where v, w in V

4 4 N v b r t, 20 xpr n f th ll f th p p l t n p pr d. H ndr d nd th nd f t v L th n n f th pr v n f V ln, r dn nd l r thr n nt pr n, h r th ff r d nd

Maximum Matching Width: new characterizations and a fast algorithm for dominating set

n

Transcription:

Am Blnk Ltur 19 Summr 2015 CSE 332: Dt Astrtons CSE 332 Grps 1: Wt s Grp? DFS n BFS Dt Astrtons LnkLsts r to Trs s Trs r to... 1 A Grp s Tny... 2 Wr W v Bn Essntl ADTs: Lsts, Stks, Quus, Prorty Quus, Hps, Vnll Trs, BSTs, Bln Trs, B-Trs, Hs Tls Importnt Alortms: Trvrsls, Sortn, ulhp, Prx Sum, Dv n Conqur Alortms Conurrny: Prlllsm, Synronzton So, wt s nxt? V = {}, E = V = {,}, E = {{,}} Grps n Grp Alortms A nrly unvrsl t strutur tt wll n t wy you tnk out t worl. (Srously.) Grps r mor ommon tn ll t otr t struturs omn (ts s n prt tru, us ty r nrlzton o most o t otr t struturs). W ll t rls vrts n t lns s. Dnton (Grp) A Grp s pr, G = (V,E), wr: V s st o vrts, n E s st o s (prs o vrts).

A Grp s Tny... 2 Grps r n ADT? 3 V = {}, E = V = {,}, E = {{,}} V = {,, }, E = {{, },{,}} V = {,,, }, E = {{x,y} x,y V x y} W n tnk o rps s n ADT wt oprtons lk x.snor(y), ut t s not lr wt soul nlu: x.rlfrom(y)? x.sortstptto(y)? x.ntrlty()?... W ll t rls vrts n t lns s. Dnton (Grp) A Grp s pr, G = (V,E), wr: V s st o vrts, n E s st o s (prs o vrts). W wll ppro rps rntly: Grps r n strt onpt tt w n pply n rnt wys to t prolm t n. A rp prolm s on tt w n mtmtlly mol s rp... Molln Prolms wt Grps 4 Consr t ollown qustons: How n I llot rstrs to vrls n prorm? Wy Grps? Fnn Importnt Popl 5 I ts rp s sol ntwork, wo s most mportnt? Wo s t most nlun? How populr m I? Wt s t mnmum mount o wr I v to us to onnt ll ts oms? Just ow os Gool work? Cn I utomtlly t t wors o sntn wt tr prt o sp? How o I mk look-ups n tss quk t Fook s sl?

Wy Grps? 6 Wt s t pst/sortst/t. lt rom loton A to B? Wy Grps? How o wors ssot wt otr? How sy r wors to onus? How smlr r spllns? ttp://lltnsrp.om/pul/ms/wornt-synonyms/oo-vl- rp- pt.pn ttp://lltnsrp.om/pul/ms/rln-ool-rt.pn Wy Grps? 8 Wr soul w trt nr n prtulr ptnt s oy? ttps://om.om/2013/03/26/ow-rsrrs-r- tn- lun-nr-usn- prnk/ 7 Wy Grps? 9 How r m I rom my rns? Wy os my sol ntwork look lustr? Wy r ll my rns mor populr tn I m? ttp://lltnsrp.om/pul/ms/ook/ook-rn-rp.pn

Wy Grps? 10 Wy Grps? Wt n w n out rom poltl lo t? Wo lstns to wom? Wt t Ron Wllms v on t popl roun m? ttp://lltnsrp.om/pul/ms/poltl-los-2004/lt-rt.pn Wy Grps? ttp://lltnsrp.om/pul/ms/m/ron-wllms-rp.pn 12 Wt ppns wn vtrn trs lv sool ntworks? 11 Molln Prolms wt Grps To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps T Intrnt Sol Ntworks A Runnn Prorm A Css Gm Tlpon Lns CSE Courss ttp://www.mntlmunton.om/2013/05/usn-sol- ntwork-nlyss-to- n.tml Wt ts n mn, lt s tlk out mor rul ntons. 13

Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Sol Ntworks A Runnn Prorm A Css Gm Tlpon Lns CSE Courss Wt ts n mn, lt s tlk out mor rul ntons. Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks A Runnn Prorm A Css Gm Tlpon Lns CSE Courss Wt ts n mn, lt s tlk out mor rul ntons. Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks Vrts: popl; Es: s rns wt A Runnn Prorm A Css Gm Tlpon Lns CSE Courss Wt ts n mn, lt s tlk out mor rul ntons. Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks Vrts: popl; Es: s rns wt A Runnn Prorm Vrts: mtos; Es: lls A Css Gm Tlpon Lns CSE Courss Wt ts n mn, lt s tlk out mor rul ntons.

Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks Vrts: popl; Es: s rns wt A Runnn Prorm Vrts: mtos; Es: lls A Css Gm Vrts: ors; Es: n mov to Tlpon Lns CSE Courss Wt ts n mn, lt s tlk out mor rul ntons. Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks Vrts: popl; Es: s rns wt A Runnn Prorm Vrts: mtos; Es: lls A Css Gm Vrts: ors; Es: n mov to Tlpon Lns Vrts: ouss; Es: tlpon ln twn CSE Courss Wt ts n mn, lt s tlk out mor rul ntons. Molln Prolms wt Grps 13 To mol prolm wt rp, you n to mk two os 1 Wt r t vrts? 2 Wt r t s? Mps Vrts: rons; Es: s nxt to T Intrnt Vrts: wsts; Es: s lnk to Sol Ntworks Vrts: popl; Es: s rns wt A Runnn Prorm Vrts: mtos; Es: lls A Css Gm Vrts: ors; Es: n mov to Tlpon Lns Vrts: ouss; Es: tlpon ln twn CSE Courss Vrts: ourss; Es: s pr-rqust o Wt ts n mn, lt s tlk out mor rul ntons. Mor Importnt Grps 14 Empty Grp Som Qustons How mny s n rp wt V = n v? Complt Grp (K n ) I w v E = n, wt s t smllst numr o vrts w n v? T lrst? Smllst: Lrst:

Mor Importnt Grps 14 Mor Importnt Grps 14 Empty Grp Complt Grp (K n ) Empty Grp Complt Grp (K n ) Som Qustons How mny s n rp wt V = n v? E = ( n 2 ) = n(n 1) 2 I w v E = n, wt s t smllst numr o vrts w n v? T lrst? Smllst: Lrst: Som Qustons How mny s n rp wt V = n v? E = ( n 2 ) = n(n 1) 2 I w v E = n, wt s t smllst numr o vrts w n v? T lrst? Smllst: v(v 1) = n v 2 v = v O( n) 2 Lrst: Mor Importnt Grps 14 Empty Grp Som Qustons How mny s n rp wt V = n v? E = ( n 2 ) = n(n 1) 2 Complt Grp (K n ) I w v E = n, wt s t smllst numr o vrts w n v? T lrst? Smllst: v(v 1) = n v 2 v = v O( n) 2 Lrst: Tr s no lrst! Wlks n Pts 15 Dnton (Wlk) A wlk n rp G = (V,E) s lst o vrts: v 0,v 1,...,v n su tt {v,v +1 } E. Intutvly, pt rom u to v s ontnuous ln rwn wtout pkn up your pnl. Dnton (Pt) A pt n rp G = (V,E) s wlk wt no rpt vrts. 2 T lu s r pt 1 3 4 6 5 7 T r s r wlk ut not pt 8

Wlks n Cyls 16 Dnton (Wlk) A wlk n rp G = (V,E) s lst o vrts: v 0,v 1,...,v n su tt {v,v +1 } E. Intutvly, pt rom u to v s ontnuous ln rwn wtout pkn up your pnl. Dnton (Cyl) A yl n rp G = (V,E) s wlk (v 0,v 1,...,v n ) wt no rpt vrts xpt v 0 = v n. Mkn A Connton! 17 Dnton (Connt Grp) W sy rp s onnt or vry pr o vrts, u,v V, tr s pt rom u to v. Intutvly, w pk up t rp n sk t roun, nytn sn t stll n t r, tn t rp sn t onnt. 1 5 1 5 2 4 6 8 2 4 6 8 3 Connt! Not Connt! 7 T lu s r yl 3 7 T r s r not yl Trs: Just A Kn o Grp! 18 Dnton (Tr) A tr s onnt, yl rp. A Worklst 19 A vry ommon typ o lortm on rps s worklst lortm. Frst, w n nw (non-stnr) ADT: WorkLst ADT (v) Nots t worklst tt t must nl v nxt() swork() Rturns t nxt vrtx to work on Rturns tru tr s ny work lt n ls otrws Importntly, w o not r ow t worklst mns t work. (Oky, w o, ut not wn omn up wt t lortm.) Worklst lortms wll lwys look lk t ollown: Dnton (Root Tr) A root tr s tr wt on spl no ll out s t root. It n qully usul to work wt trs s t s to work wt root trs; w r ntly mor mlr wt root trs so r... 1 worklst = /* ntl work to worklst */ 2 wl (worklst.swork()) { 3 v = worklst.nxt(); 4 owork(v); 5 }

Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 }

Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 }

Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? Srn Grp 20 W s rp s onnt wn tr s pt twn vry pr o vrts. Wt w on t know rp s onnt? Rltly, w mt sk t quston: Is vrtx w rl (os tr xst pt) rom vrtx v? W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. W oul us ts lortm to n pt, o somtn wt vry no, sr or prtulr no, t. Unsurprsnly, ts s worklst lortm: Unsurprsnly, ts s worklst lortm: 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 }

Wt Hppn? 21 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 wl (worklst.swork()) { 4 v = worklst.nxt(); 5 osomtn(v); 6 or (w : v.nors()) { 7 worklst.(w); 8 } 9 } 10 } Wt Hppn? W strt srn pts n t rp n vntully wnt k n twn n. Ts ppn, us tr wr two stnt pts twn n : n W ollow t yl n our rp! A Corollry: Ts wouln t v ppn on tr! Tt s, w ust oun n lortm to k or tr-nss! 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst

Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst

Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst

Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst

Srn Grp (wt SortLst) 22 Srn Grp (wt SortLst) 22 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Srn Grp (wt SortLst) 22 Srn Grp (wt Stk) 23 1 sr(v) { 2 worklst = [v]; 3 sn = {v}; 4 wl (worklst.swork()) { 5 v = worklst.nxt(); 6 osomtn(v); 7 or (w : v.nors()) { 8 (w not sn) { 9 worklst.(w); 10 sn = sn {w}; W v two wys o xn ts: 1 nsst tt t worklst tk r o uplts, n 2 vo n uplts to t worklst Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst

Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst 3 It n wrttn rursvly 3 It n wrttn rursvly Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst

Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst

Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst 3 It n wrttn rursvly 3 It n wrttn rursvly

Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up worklst 3 It n wrttn rursvly 3 It n wrttn rursvly Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) worklst Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) worklst 2 W ollow pt s r s possl, tn k up 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly 3 It n wrttn rursvly

Srn Grp (wt Stk) 23 Oky, ut w nvr tully us SortLst. How out Stk? Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Stk: 1 Ts lortm s ll DFS (pt-rst sr) 2 W ollow pt s r s possl, tn k up 3 It n wrttn rursvly worklst Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst

Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst

Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst

Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst

Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no Srn Grp (wt Quu) 24 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst worklst Srn Grp (wt Quu) 24 Srn Grp: Rovrn T Pt 25 Any rson w souln t us Quu? Wn w us Quu: 1 Ts lortm s ll BFS (rt-rst sr) 2 W nrs our orzon wy rom t strtn no worklst Us A Dtonry! sr(v) { worklst = [v]; rom = nw Dtonry(); rom.put(v, null); wl (worklst.swork()) { v = worklst.nxt(); osomtn(v); or (w : v.nors()) { (w not n rom) { worklst.(w); rom.put(w, v); } } } rturn rom; } npt(v, w) { rom = sr(v); pt = []; urr = w; wl (urr!= null) { pt.(0, urr); urr = rom[urr]; } rturn pt; }

Asymptot Anlyss o BFS n DFS 26 BFS n DFS Tr-Os 27 Runtm Bot lortms vst ll nos n t onnt omponnt: V Bot lortms n vst no on or n t rp: E So, BFS n DFS r O( V + E ) (ts s ll rp lnr ). Sp DFS: I t lonst pt s lnt p n t lrst numr o nors s n, tn DFS stors t most pn vrts BFS: Consr tr. BFS wll ol t ntr ottom lvl w s O( V ). Tr-Os DFS s ttr sp us, ut t mt n rutous pt BFS wll lwys n t sortst pt to no, ut t wll us mor mmory Itrtv Dpnn Itrtv Dpnn s DFS tt ouns t pt: 1 nt pt = 1; 2 wl (tr r nos to xplor) { 3 s(v, pt); 4 pt++; 5 } Sn most o t vrts r lvs, ts tully osn t wst mu tm! Gnrlzn Grps: Drton & E Wt 28 Gnrlzn Grps: Mult-Es 29 Unrt vs. Drt (o t s v rrows?) Smpl vs. Mult (loops on vrts? multpl s?) Unrt Drt Mult-rp Grp wt Loops 100 1 Wt vs. Unwt (o t s v wts?) 50 Unwt & Drt Wt & Unrt 1 50 100 Ts nrlztons r ll usul n rnt omns. W r on to tlk lot mor out tm ovr t nxt w lturs. Nxt ltur, w ll workn mostly wt rt rps.

A Wor out Sprsty 30 Bk to ountn s. In rp wtout multpl s, tr r n vrts, tr n nywr rom 0 to n 2 s. Ts s vry w rn. A rp wt wr s s ll sprs n on wt losr to n 2 s ll ns. W lry sw tt rp trvrsl ws O( E + V ): On sprs rp, tt s O( V ) On ns rp, tt s O( V 2 ). Sprsty mks u rn!