180 likes | 289 Views
Section 13. Questions Questions Graphs. Graphs. A graph representation: Adjacency matrix. Pros:? Cons:? Neighbor lists. Pros:? Cons:?. Graphs. A graph representation: Adjacency matrix. Pros: O(1) check if u is a neighbor of v.
E N D
Section 13 • Questions • Questions • Graphs
Graphs • A graph representation: • Adjacency matrix. • Pros:? • Cons:? • Neighbor lists. • Pros:? • Cons:?
Graphs • A graph representation: • Adjacency matrix. • Pros: O(1) check if u is a neighbor of v. • Cons:Consumes lots of memory for sparse graphs. Slow in finding all neighbors. • Neighbor lists. • Pros:Consume little memory, easy to find all neighbors. • Cons:Check if u is a neighbor of v can be expensive.
Graphs • In practice, usually neighbor lists are used.
Some graphs we often meet. • Acyclic - no cycles. • Directed, undirected. • Directed, acyclic graph = dag.
Topological sorting • A problem: Given a dag G determine the ordering of the vertices such that v precedes u iff there is an edge (v, u) in G. • Algorithm: Take out the vertice with no incoming edges along with its edges, put in the beginning of a list, repeat while necessary. • Implementation?
Topological sorting • More descriptive description: • 1. For each vertice v compute count[v] - the number of incoming edges. • 2. Put all the vertices with count[v] = 0 to the stack • 3. repeat: Take top element v from the stack, decrease count[u] for its neighbors u.
Topological sorting • Implementation: • 1. Use DFS/BFS to compute count. • 2. Complexity? • O(E + V) - 1. takes E, the loop is executed V times, the number of operations inside loop sums up to E.
Topological sorting • Applications: • Job scheduling.
The bridges of Konigsberg • In 1735 Leonard Euler asked himself a question. • Is it possible to walk around Konigsberg walking through each bridge exactly once?
The bridges of Konigsberg • It’s not possible! • It’s a graph problem!
Euler’s theorem • The Euler circuit passes through each edge in the graph only once and returns to the starting point. • Theorem: The graph has an Euler circuit iff every vertice has even degree. (the number of adjacent vertices)
Euler’s circuit • How to check if there’s one?
Hamiltonian’s circuit • A cycle which passes through vertice only once. • How to find one efficiently?
Hamiltonian’s cycle • Nobody knows!!!
REWARD!!! $1000000 is offered to anyone who finds an efficient algorithm for finding Hamiltonian cycle in a graph. DEAD OR ALIVE