This document provides an overview of optimization techniques used in machine learning, specifically genetic algorithms. It describes the basic concepts of genetic algorithms including genetic operators like selection, crossover, and mutation. It also discusses genetic programming and how programs can be represented as trees or sequences. Finally, it covers Markov decision processes and how they can be used to model sequential decision making problems.