2.4k 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
edited | 2.4k 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.

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$.
edited
+1
does BFS always take the shortest path to every node?
+1
@Arjun Sir

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!

Considering all given constraints :-

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

Hence option C is Ans.
+1

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.

0
SUPERB EXPLANATION.
0

+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.
+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]

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

Screenshot Attached

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)

Given that 'u' is visited before 'v' during the breadth-first traversal.

There exist two cases:

1) Either 'u' and 'v' lies in the same level and 'u' is visited before 'v'. Therefore, distance from 'r' to 'u' & 'v' is same. Hence the sign of equality in option (C).

2) Second case is, 'u' and 'v' doesn't lie in the same level i.e 'u' is at level 'x' and 'v' is at level 'x+c' which means 'u' is visited before 'v' as per the given condition. Hence the sign of less than(<) in option (C).

So, option (C) is correct.

1
2