Section 13

Post on 23-Jan-2016

27 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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 Presentation

Transcript

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

top related