**13.3 Backtracking algorithms**

A backtracking algorithm is an algorithm that is used to find solutions to computational problems such as conditional problems. The process of programming starts with a particular move out of a number of alternatives [36]. If it is possible to reach a solution using the selected move, the solution is printed; otherwise, the program backtracks and selects another move to try.

### **13.4 Randomized algorithms**

Randomized algorithms use the concept of randomness to determine the task to be performed anywhere in the algorithm. Their preferred use is for the analysis of expectation of worst cases, in which all likely values of the random variables are considered and the corresponding time by a possible value is evaluated.

### **13.5 Dynamic programming algorithms**

Dynamic programming is the process where algorithms are created for breaking down a problem into a number of sub-programs. These problems are solved just once and the result is stored so that when a similar problem occurs in the future, a solution is looked up amongst the stored solutions [7]. This basically involves creating a program that memorizes the results of a particular state and using it to solve a sub-problem.
