Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 6, Exercise 3(c) - Possibly wrong question #46

Closed
dipkakwani opened this issue Jan 5, 2019 · 6 comments
Closed

Chapter 6, Exercise 3(c) - Possibly wrong question #46

dipkakwani opened this issue Jan 5, 2019 · 6 comments
Labels
error Technical error requiring correction fixed Fixed in Jeff's working copy. (Issue remains open until next revision posted to github.)

Comments

@dipkakwani
Copy link

Please correct me if I am wrong, but I think the lemma asked to be proven in the exercise 3(c) of chapter 6 is incorrect.

Let T be an arbitrary spanning tree of G, rooted at an arbitrary vertex r.
For each vertex v, let Tv denote the subtree of T rooted at v; for example,
Tr = T . Prove that v is a cut vertex of G if and only if G does not have
an edge with exactly one endpoint in Tv .

Consider the below (DFS) spanning tree for example:

kyumejvidyjeovpb

Clearly vertex 1 has an edge with exactly one endpoint in T1, but vertex 1 is a cut vertex.

@plin25
Copy link

plin25 commented Jan 5, 2019

The lemma is indeed incorrect as stated. A feasible replacement (for the purposes of part (d)) would be:

Let T be a DFS tree of G. Prove that the root of T is a cut vertex of G if and only if it has more than one child, and a non-root vertex v is a cut vertex of G if and only if no node in Tv with a back edge to a proper ancestor of v.

@jeffgerickson jeffgerickson added the error Technical error requiring correction label Jan 7, 2019
@jeffgerickson
Copy link
Owner

@plin25's suggested fix is incorrect: In @dipkakwani's example, 1 is a cut vertex, but there is a back-edge from 4 to 0.

@jeffgerickson
Copy link
Owner

The correct statement is "A non-root vertex v is a cut vertex of G if and only if v has a child w such that there is no edge in G between a descendant of w and a proper ancestor of v." Because the graph is undirected, any such edge must be a back edge. Equivalently: "...at least one descendant of each child of v is a neighbor of a proper ancestor of v".

@jeffgerickson
Copy link
Owner

Need to fix Figure 6.20 to be undirected.

@jeffgerickson
Copy link
Owner

Removed subproblem (b) ("find a cut vertex in a dag"). I don't know what I was thinking here; edge directions don't matter. I suppose I could ask how to find "(s,t)-cut vertices" in a dag, but that would be better as a separate question.

@jeffgerickson
Copy link
Owner

Added subproblem (b) back as a separate exercise. Time to move on.

06-dfs pdf

@jeffgerickson jeffgerickson added the fixed Fixed in Jeff's working copy. (Issue remains open until next revision posted to github.) label Mar 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
error Technical error requiring correction fixed Fixed in Jeff's working copy. (Issue remains open until next revision posted to github.)
Projects
None yet
Development

No branches or pull requests

3 participants