CS 473: Fundamental Algorithms, Spring 2011
HW 1
Homework is due by
Monday, 23:59:59, January 3
1
Problem 1 is due by
Sunday, 23:59:59, January 30
1. (30 pts.) Short questions to be answered on compass individually.
2. (10 pts.) Present an algorithm that takes an undirected graph, and directs each one of the
edges of the graph such that the resulting directed graph is a
DAG
. What is the running time
of your algorithm?
Solution
:
Run
DFS
on the given undirected graph
G
.
Recall that we will have only tree edges or
forward edges; sometimes undirected forward edges are called backward edges.
Orient all
edges so that they point out toward leaves.
Let
G
0
be the resulting directed graph.
Since
a directed cycle in
G
0
can come only from an undirected cycle in
G
, it suffices show the
following: Consider any (undirected) cycle
C
in
G
. Then there are two edges in
C
0
that have
the same end point after being oriented. In the cycle
C
, consider a forward edge
uv
and its
adjacent (tree) edge
wv
. Our algorithm indeed orient
uv
and
wv
such that they share their
endpoint.
Since orienteering each edge takes
O
(1) time, the total running time is
O
(
m
+
n
).
Rubrik
:
•
(6 pts.): if the writeup gives a correct algorithm.
•
(3 pts.): if the writeup gives a correct proof.
•
(1 pts.): if the algorithm has a running time of
O
(
m
+
n
).
3. (40 pts.) For a
DAG
G
let lp(
v, G
) denote the longest directed path in
G
that starts in
v
(if
there are several such paths, we arbitrarily choose one of them). Here, the length of a path is
the number of edges in it. The
influence
of a vertex
v
in
G
, denoted by
i
(
v
), is the number
of edges of lp(
v, G
). Two vertices
x
and
y
in a
DAG
G
are
unrelated
if there is no directed
path from
x
to
y
, and no directed path from
y
to
x
in
G
.
(a) (5 pts.) Prove, that if the edge (
x, y
) is in
G
then
i
(
x
)
> i
(
y
).
1
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Solution
:
Consider the path combining the edge
xy
and the path lp(
y, G
); this is indeed a path
since the graph
G
is a DAG. It starts with
x
and has a length
i
(
y
) + 1, so we have
i
(
x
)
≥
i
(
y
) + 1
> i
(
y
).
Rubrik
:
•
(3 pts.): if the writeup gives a key proof idea that could lead to the correct proof.
•
(2 pts.): if the writeup gives a correct proof.
(b) (5 pts.) Prove, that if there is a path between
x
and
y
in
G
then
i
(
x
)
> i
(
y
).
Solution
:
Consider the path combining a path from
x
to
y
and the path lp(
y, G
). As mentioned
above, it is indeed a path, since the underlying graph is a DAG. It starts with
x
and has
a length of at least
i
(
y
) + 1, so we have
i
(
x
)
≥
i
(
y
) + 1
> i
(
y
).
Rubrik
:
•
(3 pts.): if the writeup gives a proof idea that could lead to the correct proof.
•
(2 pts.): if the writeup gives a correct proof.
(c) (5 pts.) Conclude, that if there are
k
vertices in
G
that have all the same influence then
they are all unrelated.
Solution
:
For the sake of contradiction, suppose that there are two nodes
x
and
y
that have the
same influence but are related. Without loss of generality (WLOG), assume that there
is a path from
x
to
y
. Then by 3 (b), we have
i
(
x
)
> i
(
y
), which is a contradiction.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '08
 Chekuri,C
 Algorithms, Graph Theory, correct proof

Click to edit the document details