开发者

time and space complexities of breadth first search

开发者 https://www.devze.com 2023-01-26 20:07 出处:网络
i dont understand how the following complexities come from. espeacialy b(b^d-1) in the time complexity

i dont understand how the following complexities come from.

espeacialy b(b^d-1) in the time complexity

Time complexity: Total numb. of nodes generated: 1 + b + b2 + … + bd + b(b^d-1) = O(b^(d+1)) Space complexity:O(b^(d+1))

where b – maximum br开发者_如何学JAVAanching factor of the search tree d – depth of the least-cost solution


At the root, you expand out b nodes as the next elements in the search tree. These, if none are the solution, in turn expand out b nodes from each. This continues until a solution is found, which will be at depth d.

Hence: O(b^d)

(I'm not sure where you got the +1 from, however...)


In simpler terms in BFS we make use of a queue to keep tract of the visited path . Every vertex in the graph is visited at most once . Hence the queue size is maximum V . Hence the space complexity if a function of the number of vertices in the graph i.e O(|V|). As regards to the time complexity we run a loop to go over all the vertices in the graph . This is O(|V|) . Also for every vertex found we need to check alls its neighbours and hence the number of edges it is connected to . THis gives us O(|E|) . Thus the complexity can be explained by the notation O(|V| + |E| ) .


If the algorithm were to apply the goal test to nodes when selected for expansion, rather than when generated, the whole layer of nodes at depth d would be expanded before the goal was detected and the time complexity would be O(b^(d+1)).

0

精彩评论

暂无评论...
验证码 换一张
取 消