You are on page 1of 12

« 

A* »
and
« Branch and bound »
Workplan:
Introduction
Definition
- A* / -BB
-heuristic techniques
Pseudocode
Example
Comparison
Conclusion
Definition:
A*:
Path search algorithm extended from the Dijkstra algorithm. it's one of the best and popular
techniques used in pathfinding and graph traversals, used in many fields of computer science due to
its completeness and optimality.

Branch and bound :


An algorithm design paradigm which is generally used for solving combinatorial optimization
problems. These problems are typically exponential in terms of time complexity and may require
exploring all possible permutations in worst case. The Branch and Bound Algorithm technique
solves these problems relatively quickly.[1]
Heuristic Technique:
Any approach to problem solving or self-discovery that employs a practical method that is not
guaranteed to be optimal, perfect, or rational. In situations where finding an optimal solution is
impossible or impractical, heuristic methods can be used to speed up the process of finding a
satisfactory solution.
*Both algorithms A* and Branch and bound works based on heuristic methods 
A* and Heuristic Technique:

The A* algorithm uses a heuristic function to help decide which path to follow next. The
heuristic function provides an estimate of the minimum cost between a given node and the
target node.[2]

Branch-and-bound and Heuristic Technique:

Branch-and-bound may also be a base of various heuristics. For example, one may wish to
stop branching when the gap between the upper and lower bounds becomes smaller than a
certain threshold. [3]
Pseudocode A*:
Example A*:
BB Pseudocode:
Example BB:
Comparison:

A*:
BB:
* used in the field of artificial
* used in the field of operations
intelligence (Video games….)
research
* search for shortest path in a
* the best choice and the maximum
graph
gain
* initial state and final state
* solve NP-complete problems
known

Both use a heuristic


function to help decide
which path to follow

Ps: NP-complete =nondeterministic polynomial-time complete.


Conclusion:

Finally, we conclude that A* itself is a special case of a

generalization of branch and bound. And A* and Branch and Bound

can both in some cases can help with making the decision process

easier or less time-consuming since they both use various

heuristic search procedures used in artificial intelligence (AI).


Reference:

[1] https://www.geeksforgeeks.org/branch-and-bound-algorithm/

[2]https://isaaccomputerscience.org/concepts/dsa_search_a_star?examBoard=all&stage=all

[3]https://en.wikipedia.org/wiki/Branch_and_bound

[4]https://www.sciencedirect.com/science/article/abs/pii/0004370284900043

You might also like