Multiobjective Problem Solving from Nature - Knowles, Joshua (Springer, 2017)
To those unfamiliar with the field of evolutionary computation (EC), its problem-solving achievements must seem as magical, nearly, as the products of natural evolution itself. Air traffic control in four dimensions and robot teams that perform co-operative navigation; billion-transistor microchips and expert-level poker playing: these are not the future, but just some of the past trophies of the computer scientist’s version of descent with modification. Of course, behind these achievements lurks some human ingenuity, and liberal amounts of human perspiration. Practitioners of EC know that it does not do its magic at the mere twitch of a wand — and there is much work still ahead to understand how the next step-changes in capability will be reached. But it remains true that EC demands relatively little from the practitioner in order to function with at least moderate success. Three ingredients, only, are needed: a way to express a solution as a data-structure, a way to modify instances of that data-structure, and a way to calculate the relative quality of two solutions. These are often simple things to design and implement, and consequently EC enjoys the labels ‘generic’ and ‘flexible’, able to tackle a huge diversity of problems.