List of Optimization

1) Look at only those nodes  which show some progress.

In this we generated only those moves for the minimax algorithm which advance towards the goal state and rejected others. This results in significant improvement in speed.

2) Taking shortest depth first in case of a win.

In case two paths results in  a win ( same value of SEF ) , then we choose the path which takes us to the goal faster.

3) Expand the node with maximum value to improve alpha - beta pruning.

4) Sort the generated nodes to increase the gain from alha-beta pruning


Significant improvements are observed when the above optimizations are implemented.