Applications of Genetic Algorithms, Dynamic Programming, and Linear Programming to Combinatorial Optimization Problems