If all the edges in the search graph do not have the same cost then breadth-first search generalizes to uniform-cost search. Instead of expanding nodes in order of their depth from the root, uniform-cost search expands nodes in order of their cost from the root. At each step, the next step n to be expanded is one whose cost g(n) is lowest where g(n) is the sum of the edge costs from the root to node n. The nodes are stored in a priorit !ueue. This algorithm is also "nown as #i$"stra%s single-source shortest algorithm. &henever a node is chosen for expansion b uniform cost search, a lowest-cost path to that node has been found. The worst case time complexit of uniform-cost search is '(b c (m), where c is the cost of an optimal solution and m is the minimum edge cost. )nfortunatel, it also suggests the same memor limitation as breadth-first search. Breadth First Search Breadth First Search (*+,) searches breadth-wise in the problem space. *readth-+irst search is li"e traversing a tree where each node is a state which ma a be a potential candidate for solution. *readth first search expands nodes from the root of the tree and then generates one level of the tree at a time until a solution is found. It is ver easil implemented b maintaining a !ueue of nodes. Initiall the !ueue contains $ust the root. In each iteration, node at the head of the !ueue is removed and then expanded. The generated child nodes are then added to the tail of the !ueue. Algorithm: Breadth-First Search 1. Create a variable called NODE-LIST and set it to the initial state. 2. Loop until the goal state is ound or NODE-LIST is e!pt". a. #e!ove the irst ele!ent$ sa" E$ ro! the NODE-LIST. I NODE-LIST %as e!pt" then &uit. b. 'or each %a" that each rule can !atch the state described in E do( i) Appl the rule to generate a new state. ii) If the new state is the goal state, !uit and return this state. iii) 'therwise add this state to the end of -'#.-/I,T ,ince it never generates a node in the tree until all the nodes at shallower levels have been generated, breadth-first search alwas finds a shortest path to a goal. ,ince each node can be generated in constant time, the amount of time used b *readth first search is proportional to the number of nodes generated, which is a function of the branching factor b and the solution d. ,ince the number of nodes at level d is b d , the total number of nodes generated in the worst case is b 0 b 1 0 b 2 03 0 b d i.e. '(b d ) , the asmptotic time complexit of breadth first search. *readth +irst ,earch /oo" at the above tree with nodes starting from root node, 4 at the first level, A and * at the second level and 5, #, . and + at the third level. If we want to search for node . then *+, will search level b level. +irst it will chec" if . exists at the root. Then it will chec" nodes at the second level. +inall it will find . at the third level. Advantages of Breadth-First Search 1. )readth irst search %ill never get trapped e*ploring the useless path orever. 2. I there is a solution$ )'S %ill deinitel" ind it out. +. I there is !ore than one solution then )'S can ind the !ini!al one that re&uires less nu!ber o steps. Disadvantages of Breadth-First Search 1. The !ain dra%bac, o )readth irst search is its !e!or" re&uire!ent. Since each level o the tree !ust be saved in order to generate the ne*t level$ and the a!ount o !e!or" is proportional to the nu!ber o nodes stored$ the space co!ple*it" o )'S is O-b d .. /s a result$ )'S is severel" space-bound in practice so %ill e*haust the !e!or" available on t"pical co!puters in a !atter o !inutes. 2. I the solution is arther a%a" ro! the root$ breath irst search %ill consu!e lot o ti!e. Refer: http://intelligence.worldofcomputing.net/ai- search/breadth-first-search.html