我正在看这个任务:
考虑两个顶点a和b,它们在无向图中从s执行广度优先搜索时在同一点上同时位于FIFO队列中。
以下哪项是正确的?
- s和a之间最短路径上的边数比s和b之间最短路径上的边数多一个。
- s和a之间最短路径上的边数比s和b之间最短路径上的边数少至少一个。
- a和b之间有一条路径。
醇>可能的答案:
a)仅限1个
b)仅限1和2
c)仅限2个
d)1,2和3
我知道如何解决它,但我对这句话的含义有疑问
...在广度优先搜索执行期间同时在FIFO队列中...
这是什么意思?
答案 0 :(得分:2)
正如@beaker已经评论过,作业中有一个拼写错误。单词 same 应该被理解为 some :
考虑在无向图中从s执行广度优先搜索期间
some
点处的FIFO队列上同时位于FIFO队列中的两个顶点a和b。
根据广度优先的定义,您在搜索的第n次次迭代后在队列中找到的节点是 n 离开始节点< EM>取值。当进行下一次迭代时,这个距离增加1,并且队列中的每个节点一个接一个地从队列中取出,以便移动它们的邻居,距离 s < / em>的。虽然这个过程是中途,但是距离 n 的节点和队列中距离 n + 1 的节点,直到所有距离 n < / em>已处理并从队列中删除。
这意味着在任何给定时刻,队列中的任何两个节点与 s 的距离不能超过1步。
我必须说,&#34;这个短语至少少于#34; 在前提2中有点含糊不清:&#34;至少&#34; < / em>将以数学方式解释,即&#34;不小于&#34; :dist(a,s)>=dist(b,s)-1
。
最后,因为这是一个无向图,我们找到了从 s 到 a 的路径和从 s 到<的另一条路径em> b ,还有一条从 a 到 b 的路径(通过 s )。
这解决了这个问题。