# Graph Search algorithms ## Breadth-first search (BFS) BFS expand node in breadth first order while keeping track of the parent node of each expanded node ## Beam search Beam search is similar to BFS but limits the number of expanded nodes based on a heuristic ## Greedy search Greedy search is essentially Beam search with a beam width of 1 ## Dijkstra Dijkstra's algorithm finds the shortest path across a graph based on some edge weight ## A* A* is similar to Dijkstra but uses a heuristic to speed up the search ## Beam-Stack search (BSS) Beam-Stack search is a variation of beam search which keeps a separate priority queue for each layer of the graph to allow backtracking and expand previously unexpanded nodes