One possible method that seems to be popular but has its own limitations is genetic optimization algorithms (GA, for short). Here is a pseudo code of the general schema:
|
The above schema of Figure 1.1 leaves a number of things un-specified so it can be adapted to a number of global optimization problems, such as TSP and Scheduling. For example, an adaption to the TSP, one needs to specify: K and K', the methods for generating starting solutions (tours), the local optimization algorithm A, the mating strategy, the nature of the crossover and mutation operators, the selection strategy, and the criterion for convergence.
Another feature is that the application of local optimization to the individual solutions in Steps 2 and 3.4 could be viewed as almost heretical addition! Well, in the context of the original biological motivation for the genetic approach, it embodies the discredited Lamarckian principle that learned traits can be inherited. Nonetheless, such local optimization steps appear to be essential if competitive results are to be obtained for hard problems like TSP. Therefore, for general optimization problems, I'll assume that genetic algorithms of Figure 1.1 use Steps 2 and 3.4.
Even without the local optimization steps of Figure 1.1, a genetic algorithm can be properly classified as a variant on local search. Implicit is the neighborhood structure in which the neighbors of a solution are those solutions that can be reached by a single mutation or mating operation. With the local optimization steps, the schema can also be viewed simply as variant on a best-of-k-runs approach to local optimization. For the TSP problem using the approach discussed here, instead of independent random starts, we use the genetically motivated operations to construct what we hope will be better starting tours, tours that incorporate knowledge we have obtained from previous runs. This latter way of viewing the solution turns out to be quite productive when dealing with optimization problems, like the TSP.
In general, the main disadvantage with GAs is that without any mathematical rigor, it is quite hard to understand why the method should work at all let alone trying to understand any aspect of natural evolution. Perhaps, the main the difficulty lies in the fact that the algorithms combine two different search strategies, a random search by mutation and a biased search by recombination of the strings contained in the population. Another big problem to overcome is that applying genetic algorithms to general combinatorial optimization problems leads to what is called "genetic representation problem". This means that a representation of the problem has to be found in order for mutation and recombination to create feasible offspring with high probability.
Tabu Search (TS, for short). Like simulated annealing and other techniques, it is motivated by the observation that not all locally optimal solutions need be good solutions. Thus it might be desirable to modify a pure local optimization algorithm by providing some mechanism that helps us escape local optima and continue the search further. One such mechanism would be simply to perform repeated runs of a local optimization algorithm, using a randomized starting heuristics to provide different starting solutions.
One reason for the limited effectiveness of the random restarts policy is that it does not exploit the possibility that locally optimal solutions might cluster together, that is, for any given local optimum, a better one might will be nearby. If this were true, it would be better to restart the search close to the solution just found, rather than at a randomly chosen location. This is in essence what TS does.
The general strategy is always to make the best move found, even if that move makes the current solution worse, i.e., is an uphill move. Thus, assuming that all neighbors of the current solution are examined at each step, TS alternates between looking for a local optimum and , once one has been found, identifying the best neighboring solution, which is then used as the starting point for a new local optimization phase. If one did just this, however, there would be a substantial danger that the best move from this `best neighboring solution' would take us right back to the local optimum we just left or to some other recently visited solution. This is where the tabu in TS comes in. Information about the most recently made moves is kept in one or more tabu lists, and this information is used to disqualify new moves that would undo the work of those recent moves.
Before outlining the pseudo code of the algorithm, we need to specify the following basic ingredients:
The tabu list T of length |T| = k (fixed or variable) which is used as a queue: whenever a move from a solution S to S* is made, S is added at the end of T and remove the oldest solution from T. Now all moves back to S are now forbidden for the next |T| iterations; S is a tabu solution and any move going back to S is a tabu move. An aspiration function A(Z) is defined for every value Z of the objective function. This function determines when a move is admissible despite being on the tabu list. So, if a move to a neighbor solution Si is a tabu move but gives f(Si) =< A(Z = f(S)) then the tabu status of this move is dropped and Si is considered a normal member of the sample V*. One termination criterion for the tabu procedure is a limit in the number of consecutive moves for which no improvement occurs.
|
The use of aspiration function is part of aspiration level conditions used by TS, which provide exceptions to the general tabu rules, typically in situations where there is some guarantee that the supposedly forbidden move will not take us back to a previously seen solution. There are also diversification rules, which can provide something like a random restart, intensification rules, which constrain the search to remain in the vicinity of a previously found good solution, and a host of other rules and conditions for dynamically modifying the underlying neighborhood structure.
Some features, advantages and disadvantages of the algorithm:
The following is an outline of a parallel genetic algorithm (PGA) adapting the distributed scheme.
|
Note that each individual may use a different local hill-climbing method. This is really quite an important feature for problems where the efficiency of a particular hill-climbing method depends on the problem instance. In the above algorithm (Figure 1.3), the information exchange within the whole population is a diffusion process because the neighborhoods of the individuals overlap. Also, all decisions are made by the individuals themselves. Figure 1.3 algorithm is totally distributed without any central control. It models the natural evolution process, which organizes itself.
As we mentioned in the previous section, the algorithm of Figure 1.1 is also a parallel genetic algorithm. If an efficient implementation is desired on a parallel hardware, one needs to pay extra attention to the selection scheme to avoid or minimized overheads, etc. As we can see, it seems the only times during the algorithm where serial operation is required are between generations, and the selection procedure.
The capacity to separate sub-populations (for separate processing) leads to a number of possible population models such as:
Another parallel approach (high-level) to this method is to perform independent searches, each of which starts with a different initial solution.
To achieve any significant reduction in computational effort during each iteration, one needs to employ an aspiration criterion of dynamically changing the sizes of tabu list and long-term memory. Also, the intensification strategy need to be based on the intermediate-term rather than long-term memory, restricting the searches in a neighborhood.