Whenever a problem seems extremely open ended with a large variety of random variables that have an effect on the process, it is impossible for a human programmer to be able to account for every single case. The number of cases increases dramatically with an additional parameter. In such scenarios, probabilistic algorithms have the greatest applicability. In such scenarios, the algorithms need to be given a couple of examples of scenarios it might come across and the algorithm would be able to handle a new scenario with reasonable accuracy. The key word in the previous statement is ‘reasonable’. There is no probabilistic algorithm that will always return the optimum result with a probability of 1. That would make it a deterministic algorithm which, as has just been discussed, cannot handle every potential case. In this chapter, we discuss the algorithms that were employed to successfully complete the experiment.