Evolutionary computation represents some of the most innovative design theory in modern computer algorithms. A cutting-edge field of computer science, it is integral to the advancement of today’s globally connected computer systems. Evolutionary computing is particularly important for the ongoing development of artificial intelligence software, particularly that which has to do with AI perception: how computers sense, and subsequently react, to their surrounding environment. It is widely employed in facial recognition software, the latest in fingerprint scanning, DNA analysis and genome research, military targeting systems, and GPS.
What Is an Algorithm?
At its simplest level, and algorithm is simply a set of instructions for solving a problem. Every item of furniture ever purchased through Ikea, for example, comes with an algorithm—a set of written instructions—detailing its assembly. A shopping list is part of an algorithm for restocking one’s kitchen; to be a complete algorithm, it would have to include steps like “locate car keys” and “visit supermarket.” A recipe is an algorithm for a homemade meal.
With computers, nothing can be taken for granted. Using the above example as a for-instance, a computer would need to be told to look at the car keys, to identify them, and to avoid bumping into any walls while heading for the front door. It would need to be told to open the door, to shut the door behind itself, and to make sure that the door was locked. Coupled with the complexity of the problems that computers are typically tasked to handle, it’s easy to see how computational algorithms can be extremely elaborate. The process of designing new algorithms is continuous, resulting in the gradual simplification of once-convoluted processes.
What Makes Evolutionary Computation Special?
Evolutionary algorithms are based on the concepts of natural selection—in other words, living biological evolution. The origins of evolutionary computing date back to the mid-20th century, when computer scientists first began experimenting with computer processes that mimicked certain highly-evolved living behaviors. For example, there were algorithms that arrived at a solution for their problems based on a process that was similar to how a colony of ants will work together to build their underground colony structures. Another style of evolutionary programming mimics how bees communicate with each other, in order to share knowledge of the location of pollen.
More recently, evolutionary computing techniques have taken on added dimension, with the additional element of automatic refinement over time. Modern evolutionary programming uses advanced AI processes, not only to locate solutions to problems quickly and efficiently, but also to improve their own efficiency over time. Much as evolution represents natural biology “learning” to cope with a range of unforeseen challenges, evolutionary algorithms adapt to overcome situations which their original authors could not have anticipated.
What is Global Optimization?
Global optimization is one of the major applications of evolutionary algorithm design. It involves determining the maximum or minimum practical value for a given variable involved in a particular problem, such as a software package’s ability to detect tiny variations in facial features. This is done regardless of any other variables, meaning that the problem is rendered much more complicated than it would otherwise be, but also that it potentially needs to be solved only once. Using the aforementioned example, global optimization for a software package involving the detection of variations in facial features would work across a diverse range of human facial variations—not simply those inherent to a specific gender, race, or geographic region.
Evolutionary computation is critical to the continuing advancement of modern algorithms. It solves problems on a wide scale, relating to some of the most cutting-edge aspects of modern technological innovation. In the future, as data storage capacity and processing speed both continue to improve, more involved algorithms are likely to be the continuing source of most of our computational advancements.