The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+18 votes
1.8k views

Consider an undirected, unweighted graph $G$. Let a breadth-first traversal of $G$ be done starting from a node $r$. Let $d(r,u)$ and $d(r,v)$ be the lengths of the shortest paths from $r$ to $u$ and $v$ respectively in $G$. If $u$ is visited before $v$ during the breadth-first traversal, which of the following statements is correct?

  1. $d(r,u) < d(r,v)$
  2. $d(r,u) > d(r,v)$
  3. $d(r,u) \leq d(r,v)$
  4. None of the above
asked in Algorithms by Veteran (59.6k points)
edited by | 1.8k views
+5
(C) is the correct option!

As, BFS traverses level by level, so either v is at the same level (sibling) or v is at just the next level from u.

5 Answers

+26 votes
Best answer

Answer is $(C)$.

BFS is used to count shortest path from source (If all path costs are $1$)

Now, if $u$ is visited before $v$ it means $2$ things:

  1. Either $u$ is closer to $v$, or,
  2. If $u$ & $v$ are same distance from $r$, then our BFS algo chose to visit $u$ before $v$.
answered by Boss (43k points)
edited by
+1
does BFS always take the shortest path to every node?
+1
@Arjun Sir

Plz chk this answer

First of BFS doesnot calculate according to shorest distance. After root we can take node any order. But if we take any parent first, it's children should be select first. So, u is first taken than doesnot mean u have shortest distance than v. But there is also a possibility that distance of (r,v) is less than distance of (r,u) . So, according to me d) will be answer.
+4
@srestha, if we choose a node $x$  to visit in BFS then children of this node will not be visited until all the siblings of this node(which are at the same distance from root ) will be explored.  henece if $u$ is visited first then only two cases are possible , either $u$ is nearest to root or $u$ is at the same distance as $v$ is.
0
sir can you elaborate  the proper meaning of option c,
0
r

/          \

v           u   consider the case when v is present as left child.

if distance is same it doesn't guarantee that u will be visited first , so it's guaranteed that u will be visited first of v if distance(u) is less than distance(v) so i think option A is correct .

correct me if i'm wrong!
+20 votes

Considering all given constraints :-

u is visited before q means 2-cases can only occur:-

Hence option C is Ans.
answered by Boss (23k points)
+1
Plz chk this answer

First of BFS doesnot calculate according to shorest distance. After root we can take node any order. But if we take any parent first, it's children should be select first. So, u is first taken than doesnot mean u have shortest distance than v. But there is also a possibility that distance of (r,v) is less than distance of (r,u) . So, according to me d) will be answer.
+1
@shreshta as question is on BFS and we know that bfs works on unweighted graph..what you are saying is that vertex v can also have small distance but its not possible if distance would have been small than it would have been more closer to root..so according to bfs as its level order we need to go by that theory...vertex v can only have same distance as u or greater than v..in these two cases only vertex u can be visited before u..!
+1

But still there are chances that even if the vertex v being traversed later has lesser distance than u.
Then I guess it should be not related as per option C and answer should be D.

Please clarify.

0
SUPERB EXPLANATION.
+1 vote
ans is C.

here if the distances d(r,u)=d(r,v) then also path from r will not be updated because if the distance is shorter then only path is updated.
answered by Loyal (8.3k points)
+1
In BFS can't we visit any adjacent vertex  of vertex r( in any order.) ..what is the concept of min distance here...?Please explain
+1
u is visted before v.  therefore d[u] < d[v]

but u and v can be on same level.  therefore d[u] = d[v]

therefore d[u] <= d[v]
0 votes

Please refer CLRS 3rd Edition Chapter 22(Elementary graph algorithms) Lemma 22.3 and Corollary 22.4

Screenshot Attached

answered by Active (2k points)
0 votes

Here we have 2 cases

Case 1: If (u,v) is an edge in the graph then

$d(r,v)=d(r,u)+1$ and hence $d(r,u) \lt d(r,v)$

Case 2: if (u,v) is not an edge, and u and v are children of same parent say

Consider the above tree structure as some part of a given graph where r is my source vertex from which I started my BFS algorithm.

Now, minimum cost to reach X would be $d(r,x)$

Minimum cost to reach U would be $d(r,u)=d(r,x)+1=d(r,v)$ and this is equal to minimum cost to reach v from r via x.

So here we have $d(r,u)=d(r,v)$

Combining cases 1 and 2 we get

$d(r,u) \leq d(r,v)$

Option (C)

 

answered by Boss (16.2k points)
Answer:

Related questions



Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

42,687 questions
48,653 answers
156,493 comments
63,963 users