This chapter discusses several popular design strategies for heuristic algorithms. It is probably not surprising that the hill-climbing strategy is often too restrictive to be successful. Hence, it is desirable to develop design strategies for heuristic search algorithms that will not get stuck every time a locally optimal solution is encountered. One popular method of escaping from locally optimal solutions is based on an analogy with a method of cooling metal which is known as “annealing”. A convenient way to introduce randomness into the tabu search algorithm is to begin with a random initial feasible solution. Heuristic algorithms for the construction of good error-correcting codes and covering codes have also been studied extensively. Early attempts to use genetic algorithms to solve the Traveling Salesman problem can be found in Brady, Muhlenbein, Gorges-Shcleuter and Kramer and Jog, Suh and Gucht.