The computational aspects of finding the shortest addition chains for an integer are investigated in this work. Theoretically developed lower and upper bounds for the minimal length of the addition chains for an integer are exploited to construct a subtle pruning function for backtracking algorithm. These techniques are finally combined to build an efficient algorithm for finding the optimal addition chains.