Industrial Applications of Genetic Algorithms:Genetic Algorithms in the Engineer's Toolbox

Previous | Table of Contents | Next

## Chapter 1
Genetic Algorithms in the Engineer’s Toolbox

Charles L. Karr
L. Michael Freeman

Department of Aerospace Engineering and Mechanics
University of Alabama
Box 870280
Tuscaloosa, AL 35487-0280
e-mail: ckarr@coe.eng.ua.edu and mfreeman@coe.eng.ua.edu

ABSTRACT

Genetic algorithms (GAs) are computer-based search techniques patterned after the genetic mechanisms of biological organisms which have allowed such organisms to adapt and flourish in changing, highly competitive environments for millions of years. These robust genetic algorithms have been successfully applied to problems in a variety of fields of study, and their popularity continues to increase due to their effectiveness, their applicability, and their ease of use. This chapter provides an overview of genetic algorithms including a brief history that indicates GAs have made the leap from their origins in the laboratory and the halls of academia to the practicing engineer’s toolbox. The GA applications presented in subsequent chapters are meant to serve as a testament to this idea. Each chapter describes a project completed by a graduate student as an assignment for a semester course offered at The University of Alabama. The current chapter describes The University of Alabama course, and lays a foundation for the rest of the book.

INTRODUCTION

Almost from the beginning of the computer age, researchers have been interested in developing computers that demonstrate the adaptive capabilities of natural organisms. Early computer scientists such as Alan Turing and John von Neumann were interested in developing what is commonly referred to today as artificial intelligence: machines (computers) capable of understanding, adapting to, and controlling the environments in which they exist and function. Many of these early pioneers had backgrounds in biology, psychology, and medicine, and thus looked to natural systems as guides in the pursuit of their goals. Over the years, these efforts have produced techniques and systems of varying effectiveness, complexity, and popularity such as expert systems, neural networks, fuzzy logic, adaptive agents, and evolutionary systems.

Today, computer methods inspired by biological evolution are grouped under the umbrella of a field called evolutionary computation. The three main elements of evolutionary computation are

  1. evolution strategies [1],
  2. evolutionary programming [2], and
  3. GAs [3].

Each of these three techniques mimic the processes observed in natural evolution, and provide efficient search engines by evolving populations of candidate solutions to a given problem. These techniques have proven to be effective in solving difficult problems from a wide range of disciplines including economics [4], engineering [5], medicine [6], and chemistry [7], to name a few. GAs are generally thought to be the most prominent technique in the field of evolutionary computation.

GAs utilize an iterative approach to solving search problems. They are population-based search techniques that rely on the information contained in a broad group of candidate solutions to solve the problem at hand. This population-based search distinguishes GAs from traditional point-by-point search routines. The strength of GAs lies in their ability to implicitly identify the inviting properties associated with potential solutions, and to produce subsequent populations of candidate solutions which contain new combinations of these fertile characteristics as derived from candidate solutions in preceding populations.

GAs code the requisite information for a solution to a given problem in strings called chromosomes. Each chromosome can be decoded, according to a user defined mapping function, yielding specific values for each of the important parameters being sought. Coding schemes can vary dramatically from one GA application to the next, and in fact, have themselves undergone somewhat of an evolution. In early GA applications, most coding schemes were designed to produce chromosomes that were bit-strings consisting of concatenated binary sub-strings designed to represent the individual parameters necessary to form a solution to a particular problem. More recently, researchers have moved toward coding schemes which represent the various solution parameters with floating point chromosomes, resulting in chromosomes that bear a striking resemblance to arrays common to most computer languages. For many GA novices, it is this coding of the problem into chromosomes that represents the most difficult conceptual hurdle. However, once a potential GA user has been exposed to some GA applications, it is not long until said user is able to develop imaginative and effective coding schemes for a particular problem. The coding scheme plays a key role in the ultimate success or failure of a GA application.

The potential solution represented by each chromosome in the population of candidate solutions is evaluated according to a fitness function which is synonymous with the objective function of traditional optimization: a function that quantifies the quality of a potential solution. This fitness function is used in the implicit identification of high-quality values of the individual solution parameters, and the goal of the GA is to either maximize or minimize the fitness function of the strings in a generation depending on the specific problem. The fitness function ultimately determines which chromosomes are selected to propagate their parameter values through subsequent generations. Like the coding scheme, the fitness function plays a key role in the GA’s success (or failure) in any given problem. It has been said that a GA will find what it is told to look for as represented by the fitness function defined. Thus, as the old adage goes, “be careful what you ask for, you just may get it.”

Previous | Table of Contents | Next

Copyright © CRC Press LLC