DEVELOPING GENETIC ALGORITHM APPLICATIONS

12.8 DEVELOPING GENETIC ALGORITHM APPLICATIONS

Genetic algorithms are a type of machine learning for representing and solving com- plex problems. They provide a set of efficient, domain-independent search heuristics for a broad spectrum of applications, including:

• Dynamic process control • Induction of optimization of rules • Discovering new connectivity topologies (e.g., neural computing connections, i.e.,

neural network design) • Simulating biological models of behavior and evolution • Complex design of engineering structures • Pattern recognition • Scheduling • Transportation and routing

. C H A P T E R 1 2 A D V A N C E D INTELLIGENT SYSTEMS

• Telecommunication • Graph-based problems

A genetic algorithm interprets information that enables it to reject inferior solu- tions and accumulate good ones, and thus it learns about its universe. Genetic algo- rithms are also suitable for parallel processing (Mitchell, 1999).

Over the last decade, the number of successful business applications of genetic algorithms has been increasing. For example, since 1993 Channel 4 television (England) has been using a genetic algorithm (embedded in an ES) to schedule its commercials to maximize revenues (see the Attar Software Ltd. Web site, www.attar.com, and ComputerWorld, December 20,1993). And a team of researchers at the Electrotechnical Laboratory (ETL) in Japan has developed a hardware- implemented genetic algorithm on a central processing unit (CPU) chip that minimizes the impact of imperfect clock cycles in integrated-circuit fabrication variations. They have demonstrated that increasing the chip yield rate from 2.9 percent to 51.1 percent clears the path toward inexpensive gigahertz clock rate CPUs for PCs (Johnson, 1999).

Examples of genetic algorithms applied to real problems include assembly-line bal- ancing (Kim et al., 1998; Rao, 1998) (see AIS In Action 12.7), facility layout (Tavakkoli- Moghaddain and Shayan, 1998), machine and job shop scheduling (Cheng et al., 1999; Liu and Tang, 1999; Norman and Bean, 2000), production planning (Hung et al., 1999), industrial packing and cutting (Hopper and Turton, 1999), assigning tasks to earth- observing satellites (Wolfe and Sorensen, 2000), construction scheduling with limited resources (Leu and Chung, 1999), utility pricing (Wu, 1999), personnel planning (Easton and Nashat, 1999), sawmill board-cut selection (Ferrar and King, 1999), scheduling ship maintenance for a large fleet (Deris et al., 1999), solving routing problems based on the traveling salesperson problem (Baker and Syechow, 2003; Hwang et al., 1999; Schmitt and Amini, 1998), design and improvement of water-distribution systems and similar networks (Castillo and Gonzalez, 1998; Roe, 1998), and determining creditworthiness and aircraft design (Rao, 1998). Several applications are listed in Goldberg (1994), Koza (1992), and Kumar and Gupta (1995). These include driver scheduling for a public trans- portation system, job shop scheduling, vehicle routing (Baker and Syechew, 2003), and Web searching (Ncik and Themis, 2001). AIS in Action 12.7 describes a real-world appli- cation. Genetic algorithms are often used to improve the performance of other Al methods such as expert systems or neural networks. A role genetic algorithms play in neural networks is to dynamically adjust to find the optimal network weights (Kuo and Chen, 2004). The integration of multiple methods is discussed in Section 12.10.

Since the kernel of genetic algorithms is pretty simple, it is not difficult to write computer codes to implement them. For better performance, there are software pack- ages available on the market. A brief description is provided in AIS in Focus 12.8.