Designing Genetic Algorithms to Solve GIS Problems
What makes a problem hard for a genetic algorithm (GA)? How does one need to design a GA to solve a problem satisfactorily? How does the designer include domain knowledge in the GA? When is a GA suitable to use for solving a problem? These are all legitimate questions. This chapter will offer a view on genetic algorithms that stresses the role of the so-called linkage. Linkage relates to the fact that between the variables of the solution dependencies exist that cause a need to treat those variables as one “block,” since the best setting of each individual variable can only be determined by looking at the other variables as well. The genes that represent these variables will then have to be transferred together. When these genes are set to their optimal values, they constitute a building block. Building blocks will be transferred as a whole during recombination and the building blocks of all the genes make up the optimal solution. As will become apparent, knowing the linkage of a building block is a big advantage and will allow one to design efficient GAs. Sadly, in the majority of problems, the linkage is unknown. This observation has given rise to a lot of development in linkage learning algorithms (for an example, see Kargupta 1996). However, there is a specific class of problems that allows for relatively easy determination of linkage: spatial problems. This is because in these problems, the linkage is geometrically defined. We will focus in this chapter on certain hard problems that arise in the context of geographical information systems and for which the linkage can be easily found. Specifically, we will fully detail the design of a GA for the problem of map labeling, which is an important problem in automated cartography. The map labeling problem for point features is to find a placement for the labels of a set of points such that the number of labels that do not intersect other labels is maximized.