您的位置:首页 > 其它

BFS

2016-06-15 21:01 239 查看
广度优先搜索(breadth-first search)是图搜索算法之一,

给定图G=(V,E)和一个特定的源顶点s的情况下,广度优先搜索系统地探索G的边,以期”发现”可从s到达的所有顶点,并计算s到所有这些可达顶点之间的距离(最少的边数),该搜索算法同时还能生成一颗根为s,且包括所有s的可达顶点的广度优先书

BFS(G,s)
for each vertex u $\in V[G]-\{s\}$
u.color=WHITE
u.d=$\infty$
u.$\pi$=NIL
s.color=GARY
s.d=0
s.$\pi$=NIL
Q=$\empty$
ENQUEUE(Q,s)
while Q$\neq \empty$
u=DEQUEUE(Q)
for each $v\in G.Adj[u]$
if v.color==WHITE
v.color=GRAY
v.d=u.d+1
v.$\pi$=u
ENQUEUE(Q,v)
u.color=BLACK


算法的复杂度分析(聚合分析)

在初始化操作结束后,广度优先搜索不会给任何节点涂上白色,而且每个节点的入队次数最多一次,因而出对最多一次,入队和出对的时间均为O(1),则对队列进行的操作的总时间为O(V).算法只在一个结点出队的时候才对该节点的邻接表进行扫描,所以每个邻接表最多只扫描一次,由于所有邻接表的长度之和为Δ(E),故扫描邻接表的总时间为O(E),初始操作的成为为O(V),因此广度优先搜索的总运行时间为O(V+E).是邻接表的线性函数

最短路径

定义从源节点s到节点v的最短路径距离δ(s,v)为从结点s到节点v之间所有路径里边最少的边数。如果没有从结点s到结点v之间没有路径,则δ(s,v)=∞.成从结点s到结点v的长度为δ(s,v)的路径为s到v的最短路径。

引理 给定G=(V,E),G是一个有向图或无向图,设s∈V为任意结点,则对于任意边(u,v)∈E,δ(s,v)⩽δ(s,u)+1

引理

设G=(V,E)是一个有向图或无向图,假定BFS以给定结点s∈V作为源节点在图G上运行,那么在BFS终止时,对每个节点v∈V,BFS所计算出的v.d满足v.d⩾δ(s,v)

证明:

归纳假设:对所有的结点v∈V,v.d⩾δ(s,v)

从源节点s加入队列Q,此时s.d=0=δ(s,s),并且对所有的结点v∈V−{s},v.d⩾δ(s,v),归纳假设成立

对于归纳步:考虑结点u进行邻接表搜索时所发现的白色结点v,根据归纳假设有u.d⩾δ(s,u),可知

v.d=u.d+1⩾δ(s,u)+1⩾δ(s,v)

结点v涂为灰色,加入队列,值不再发生改变,假设成立

引理

假定BFS在图G=(V,E)上运行的过程中,队列Q包含的结点为⟨v1,v2,⋯,vr⟩,这里v1是队列的头,vr 是队列的尾,那么vr.d⩽v1.d+1,并且对于i=1,2,\dcot,r−1成立vi.d⩽vi+1.d

证明:

在初始情况下,队列Q只包含源结点s,引理成立。

对于归纳步:(出队和入队操作时引理成立即可)如果头结点v1被删除,v2成为队列新的头结点(如果队列删除头结点为空,引理直接成立),根据假设,有v1.d⩽v2.d,则有vr.d⩽v1.d+1⩽v2.d+1,余下的不等式不受影响。

将一个结点加入队列的情况:将结点v加入队列Q时,该结点成为结点vr+1,这时已删除结点u,并对该节点的邻接表进行检查,根据假设,新的头结点v1满足v1.d⩾u.d,则vr+1.d=v.d=u.d+1⩽v1+1,根据假设还有vr.d⩽u.d+1,因此vr.d⩽u.d+1=v.d=vr+1.d+1, 余下的不等式不受影响,故假设成立

假定在执行BFS时,结点vi和节点vj都加入队列Q中,并且vi在vj前面入队,则在vj入队时,vi.d⩽vj.d

广度优先搜索的正确性

设G=(V,E)为一个有向图或无向图,又假设BFS以s为源结点在图G上运行,那么在算法运行过程中,BFS将发现从源节点s可以到达的所有节点v∈V,并在算法终止时,对于所有的v∈Vv.d=δ(s,v).而且,对于任意可以从s到达的结点v≠s,从源节点s到结点v的其中一条最短路径为从结点s到接待呢v.π的最短路径再加上(u,v).

证明:(反证法)假设某些结点获取的d值并不等于其最短路距离。设v就是这样的结点,则其最短路路径为δ(s,v),而其获得的d值不等于δ(s,v),显然v≠s,由引理知:d⩾δ(s,v),则d>δ(s,v).结点v必定是可以从s可到达的结点,否则δ(s,v)=∞⩾⩾d.设u为从源节点到结点v的最短路径v的直接前驱,则δ(s,v)=δ(s,u)+1,因为δ(s,u)⩽δ(s,v),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: