Section 13 Questions Graphs. Graphs A graph representation: –Adjacency matrix. Pros:? Cons:?...

Post on 06-Jan-2018

244 views 0 download

description

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.

Transcript of Section 13 Questions Graphs. Graphs A graph representation: –Adjacency matrix. Pros:? Cons:?...

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