Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
352 12. Heuristic methods in a nutshell 1: 2: 3: 4: 5: 6: 7: 8: 9: select P 0 P (mating pool), initialize P 00 ; (children) for i 1 to n do select individuals x a and x b at random from P 0 apply crossover to x a and x b to produce x child (greedy algorithm) randomly mutate produced child x child (Tabu Search (TS)) P 00 P 00 [ x child ¢¢¢ end for ¢¢¢ High-level relay hybrid Examples are the use of a greedy heuristic to generate the initial popula- tion of a Genetic Algorithm and/or threshold method and Tabu Search to improve the population obtained by the Genetic Algorithm as described below. 1: generate current population P of solutions (greedy algorithm) 2: compute GA solution 3: improve solution with threshold method (TM) Another example is the use of a heuristic to optimize another heuristic, that is, find the optimal values for the parameters. High-level co-evolutionary hybrid In this scheme, many self-contained algorithms cooperate in a parallel search to find an optimum. 12.5. Constraints Nothing in the algorithms that we presented above ensures that a constraint on a solution x is observed. But it is often constraints that make models realistic--and difficult. Several strategies exist for including restrictions. Note that in what follows, we do not differentiate between linear, nonlinear, integer constraints, and so on. It rarely matters for heuristics to what class a constraint belongs; computationally, any functional form is possible. All techniques discussed before are iterative methods, that is, we move from one solution to the next. The simplest approach is to "throw away" infeasible new solutions. Suppose we have a current solution, and we modify it to get a neighbor solution. If this neighbor violates a constraint, we just pick a new neighbor. Clearly, this works only for stochastic choices of neighbor solutions, but almost all heuristics are stochastic. This strategy may appear inefficient, but if our model has only few constraints which are not often hit, it is often a good strategy. A second approach is to directly use the information of the constraint to create new solutions. An example from portfolio optimization (discussed in