The beam search strategy uses the breadth-first search strategy to build its state space. At each level of the search tree, it generates only a limited number of successors of the states at the current level. To simplify matters, we limit that number to two. In general, the beam search strategy would pick the two “best” successors. Again, to simplify matters, our beam search strategy will select the two “left-most” successors. Consider, for example, the following state space diagram.

While traversing the state space, the beam search strategy will visit the states labelled A, B, C, E and F.

Create a search strategy, named BeamSearch, which implements the beam search strategy. Only add notifications related to SearchListeners (no need for dealing with the attribute done, etcetera).

To receive feedback, submit your code using the submit command before Tuesday Febraury 28:

submit 4315 lab7 BeamSearch.java