section 13
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
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
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 brid(g)es of Konigsberg
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!!!
$1000000is offered to anyone who finds an
efficient algorithm for finding Hamiltonian cycle in a graph.
DEAD OR ALIVE