Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

George Saliaris Faseas at Open Coffee Athens XVI


Published on

a talk on entrepreneurship by Google's Country Manager in Greece

  • Be the first to comment

George Saliaris Faseas at Open Coffee Athens XVI

  1. 1. Sanders: Graphs 1 Graphs and Graph Representation INFORMATIK ¾ 1736 L. Euler asks about a “touristic” question: ¾ Street or Computer networks ¾ Railway connections (space and time) ¾ Citation or Coauthorship social networks ¾ Job precedences scheduling problems ¾ Values and arithmetic operations compiler construction ¾
  2. 2. Sanders: Graphs 1 Mathematical View: Just Sets and Pairs INFORMATIK Often terminology is already reason enough for a graph model 1.1 Directed Graphs ´Î µ describes a directed graph with vertex set Î and edge set ¢ . Î Î Convention: and Ñ Ò Î 1.1.1 Special Cases (usually disallowed) Multigraphs: parallel edges allowed, i.e, is a multiset. self loops: edges ´Ú Úµ
  3. 3. Sanders: Graphs 3 1.1.2 Degrees INFORMATIK ¾ ´Ú out-degree´Úµ: Ùµ ¾ ´Ù in-degree´Úµ: Úµ
  4. 4. Sanders: Graphs ¾ ¾ ´Ù ´Ú INFORMATIK Bidirected graph: Úµ Ùµ 1.2 Undirected Graphs streamlined description of a bidirected graph where edges are two element vertex sets. ° ´Ù ´Ú ÙÚ Úµ Ùµ degree´Úµ in-degree´Úµ out-degree´Úµ What about self loops?
  5. 5. Sanders: Graphs 5 1.3 Subgraphs INFORMATIK ¼ ´Î ¼ ¼ µ is subgraph of µ if Î ¼ ¼¾ ´Î and Î ¼ is vertex induced by Î ¼ if ¼ ¼ ¼ ¾ ¾ ¾ ´Ù Úµ Ù Î Ú Î
  6. 6. Sanders: Graphs 1.4 Associated Information INFORMATIK Ê edge weights Û Example: Length or traffic capacity of a street, we will see more things like node potentials, node/vertex colors,
  7. 7. Sanders: Graphs 7 1.5 Paths INFORMATIK A path Ô Ú¼ Ú of length connects nodes Ú¼ and Ú if subsequent nodes in Ô are connected by edges in , i.e, ¾ ¾ ¾  ½ ´Ú¼ Ú½ µ ´Ú½ Ú¾ µ ´Ú µ ,¾ , , . ½ Ú edge representation: . ½ Ô simple path: Ú¼ , ,Ú different. Nonsimple paths are usually called walks. È µ. In weighted graphs, length is ½ Û´ bottleneck weight: Ñ Ò µ. ½ Û´ Applications: What is the shortest route from Saarbrucken to Paris? ¨ How much traffic can it carry?
  8. 8. Sanders: Graphs 1.6 Cycles INFORMATIK Cycles are paths that share the first and the last node A cycle is simple if all other nodes are different. Hamiltonian cycle: simple cycle that visits all nodes. Euler cycle: cycle (cyclic walk) that visits all edges once back to the bridge problem. But we need one more term.
  9. 9. Sanders: Graphs 9 1.7 Connectedness INFORMATIK ¸ ¾ is strongly connected path Ô connects Ù and Ú ÙÚ Î Ô drop the “strongly” for undirected graphs A connected component is a maximal connected vertex induced subgraph
  10. 10. Sanders: Graphs 1.8 Euler Tours INFORMATIK Theorem 1. is Eulerian (has an Euler tour) if and only if is connected and every node has even degree. Proof: Necessity: connectedness is clear.   ½. Consider a node Ú with degree ¾ The tour is stuck when it visits Ú the -th time. Sufficiency: Step 1, Construct Euler Paritioning of into a set of cycles: Greedily build any walk. Remove visited edges. When you get stuck, you have closed a cycle. Step 2, Glue the cycles together. Possible since any cycle intersects some other cycle.
  11. 11. Sanders: Graphs 11 1.9 Trees INFORMATIK An undirected graph is a tree if there is exactly one path between any pair of nodes. Exercise: Prove that the following properties are equivalent 1. is a tree.   ½ edges. 2. is connected and has exactly Ò 3. is connected and contains no cycles. Forest: undirected acyclic graph Directed acyclic graph (DAG): no cycles. Exercise: How many edges are possible?
  12. 12. Sanders: Graphs 1.10 Directed Trees? INFORMATIK we need a special root node Ö. ¾   exactly one Ö path or Ú Î Ú ¾   exactly one Ú path Ú Î Ö CS trees have the root at the top. a parent is immediately above its children or successors which are siblings. (ancestors, ) Nodes without children are leaves. Nonroot nonleaf nodes are interior. ordered trees: order of children matters. Example: search trees.
  13. 13. Sanders: Graphs 13 2 Graph Representation INFORMATIK we mostly represent undirected graphs as bidirected graphs focus on directed graphs Overview: ¾ Operations are what matters ¾ A trivial representation ¾ Arrays ¾ Linked Lists ¾ Matrices ¾ Implicit Representation ¾ Discussion
  14. 14. Sanders: Graphs 2.1 Operations INFORMATIK Ç´½µ time for all elementary operations Goal: Access associated information. Use arrays. Perhaps hash tables. ½ One reason for Î Ò. Navigation: Given Ú find outgoing edges. (We may also want incoming edges.) ¾ Edge queries: ´Ù ? Adjanceny matrices, hash tables. Úµ Reverse access: Given ´Ù find ´Ú Úµ Ùµ Construction conversion and output (Ç´Ñ · Òµ time) Update: Insert/delete nodes/edges. This is the hard part.
  15. 15. Sanders: Graphs 15 Example: Recognizing DAGs INFORMATIK ¾ ¼ do delete Ú while out-degree´Úµ Ú Î if Î then output “ is a DAG” else output “ contains a cycle” // to find a cycle, pick any node and follow edges works because we never destroy or introduce cycles Ç´Ñ · Exercise: implement it in time Òµ
  16. 16. Sanders: Graphs 2.2 Edge Sequence Representation INFORMATIK Sequence of node pairs (or triples with edge weight) · Compact · Good for I/O   Almost no useful operations except scanning all edges Not so bad with some additional node arrays. Examples: Find isolated nodes, several MST algorithms, conversion.
  17. 17. Sanders: Graphs 17 2.3 Adjacency Arrays INFORMATIK  ½ ¼ Î Ò Edge array E stores targets grouping edges leaving a node Node array V stores index of first outgoing edge stores Ñ · ½ dummy entry Î Ò 1 0 n−1 4=n V0 2 466 0 3 E1 2 2 3 1 3 m−1 6=m 0 2  Î ÎÚ·½ Example: out-degree´Úµ Ú
  18. 18. Sanders: Graphs 2.4 Edge List Adjacency Array INFORMATIK A Reminder: Sorting Small Integers // make a sorted permutation of Procedure KSortArray´a,b : Array ½ of 0..K-1µ Ò  ½ of Æ ¼ ¼ : Array ¼ c // counters for each bucket à for := ½ to Ò do ·· // Count bucket sizes C := 0 È   ½ do ´ := ¼ to à µ := ´ · µ// Store for in for := ½ to Ò do // Distribute := ·· Idea: Sort by starting node
  19. 19. Sanders: Graphs 19 Integrated Solution INFORMATIK Ä ×Ø µ Function adjacencyArray´ of Æ ¼ ¼ : Array ¼ V Ò ¾ EdgeList do foreach ´Ù ·· // count Úµ ÎÙ  ½ for Ú := ½ to Ò do +=Î // prefix sums ÎÚ Ú ¾ EdgeList do    foreach ´Ù // place Úµ ÎÙ Ú return ´Î µ Example on Blackboard
  20. 20. Sanders: Graphs Operations for Adjacency Arrays INFORMATIK Navigation: easy. we will see several applications Edge weights: becomes array of records Incoming Edges: another (reverse) edge array Delete Edges: explicit end indices Batched Updates: rebuild
  21. 21. Sanders: Graphs 21 2.5 Adjacency Lists INFORMATIK store (doubly linked) list of adjacent edges for each node (a bit more restricted with singly linked lists) · easy edge insertion · easy edge deletion (order preserving)   more space (factor up to 3) than adj. arrays   more cache faults than adj. arrays
  22. 22. Sanders: Graphs Enhancing Adjacency Lists INFORMATIK For reverse edge access or edge weight updates in undirected graphs: explicit edge objects ¾ stores weights ¾ pred/succ-pointers for all adjacency lists containing this edge ¾ reverse pointer for directed graphs ¾ cute trick: store only xor of incident nodes
  23. 23. Sanders: Graphs 23 Node insertion/deletion INFORMATIK mark as deleted swap in node Ò list of nodes µ node handles are pointers. 1 0 3 Problem: graphs with common node set E list out list in list rev from to 2 (0,1) 0 0 0 V list first first deg deg out in out in (0,2) 0 0 0 0 0 2 0 (1,2) 1 0 2 2 (1,3) 2 0 00 2 2 (2,1) 3 0 0 0 0 0 2 (2,3) 0 0 0 0 ¢ more space than vanilla adjacency arrays
  24. 24. Sanders: Graphs 2.6 Customization INFORMATIK Customize data structure for application for maximum speed/compactness. Sofware Engineering nightmare Seperating algorithm from their representation may be a way out
  25. 25. Sanders: Graphs 25 Example: Recognizing dags INFORMATIK ¾ ¼ do delete Ú while out-degree´Úµ Ú Î ¾ Use adjacency array storing incoming edges ¾ Store out-degrees ¾ Maintain a stack of out-degree zero nodes ¾ delete ´Ù by decrementing out-degree´Ùµ Úµ ¾ no explicit node deletion ¾ At the end test whether all nodes have out-degree´¼µ
  26. 26. Sanders: Graphs 2.7 Adjacency Matrix INFORMATIK Ò¢Ò with ¾ ¾ ¼½ ´ µ ´ µ · space efficient for very dense matrices    space inefficient otherwise. Exercise: what should “very dense” mean? · Easy edge queries   Slow navigation (except for dense graphs) ·· joins linear algebra and graph theory # -edge paths from to Example: . Exercise: count -edge paths Important accelerators: Ç´ÐÓ µ mat-mults for mat-power matrix multiplication in subcubic time, e.g., Strassen’s algorithm
  27. 27. Sanders: Graphs 27 Example where graph theory helps LA INFORMATIK Ü ´½ ´ µ ¼µ Problem: solve Consider Ò µ Assume has two connected components we swap rows and cols such that ¼ ½¼ ½ ¼ ½ ¼ ܽ ½ ½ ¼ ܾ ¾ ¾ Exercise: What if is a DAG?
  28. 28. Sanders: Graphs 2.8 Implicit Representation INFORMATIK Compact representations of possibly very dense graphs Implement algorithms directly using this representation
  29. 29. Sanders: Graphs 29 Example: Connectedness of Interval Graphs INFORMATIK ÒÒ ½ ½ Î and overlap Idea: sweep intervals from left to right. The number of overlapping intervals may never drop to zero. Function isConnected(Ä : SortedListOfIntervalEndPoints) : ¼ ½ remove first element of Ä overlap := 1 ¾ foreach Ô do Ä ¼ return 0 if overlap if Ô is a start point then overlap·· else overlap   // end point   ¾¡ Ç´Ò ÐÓ Ç algorithm for up to edges! Exercise: find all connected Òµ Ò components