A Hardware Engine for Genetic Algorithms

A genetic algorithm (GA) is an optimization method based on natural selection. Genetic algorithms have been applied to many hard optimization problems including VLSI layout optimization, boolean satis ability, power system control, fault detection, control systems, and signal processing. GAs have been recognized as a robust general-purpose optimization technique. But application of GAs to increasingly complex problems can overwhelm software implementations of GAs, causing unacceptable delays in the optimization process. This is true of any non-trivial application of GAs if the search space is large or if real-time performance is necessary. It follows that a hardware implementation of a GA is desirable for application to problems too complex for software-based GAs. Hardware's speed advantage and its ability to parallelize o er great rewards to genetic algorithms. Speedups of 1{2 orders of magnitude have been observed when frequently used software routines were implemented in hardware by way of eld-programmable gate arrays (FPGAs). Since most of the GA's operations are simple, a hardware implementation is feasible. Reprogrammability is essential in a general-purpose GA engine because certain GA modules require changeability (e.g. the function to be optimized by the GA). In hardware, reprogrammability is possible with FPGAs. Thus an FPGA-based GA is both feasible and desirable. A fully functional self-contained hardware-based genetic algorithm (the HGA) is presented here as a proof-of-concept system. It was designed using VHDL to allow for easy scalability. It is designed to act as a coprocessor with the CPU of a PC. The user programs the FPGAs which implement the function to be optimized. Other GA parameters may also be speci ed by the user. An analysis of the design is given that identi es the bottleneck of the HGA's pipeline under varying conditions. Simulation results of the HGA are also presented. A prototype HGA is described and compared to a similar GA implemented in software. In our tests, the prototype and simulations took two to ve percent as many clock cycles to run as the software-based GA. Suggested design improvements could dramatically increase the HGA's speed even further. Finally, we give other potential applications of the HGA which are feasible with current FPGA technology.

[1]  Mehrdad Salami,et al.  Multiple genetic algorithm processor for the economic power dispatch problem , 1995 .

[2]  Bull,et al.  An Overview of Genetic Algorithms: Part 2, Research Topics , 1993 .

[3]  Runhe Huang,et al.  Implementing the Genetic Algorithm on Transputer Based Parallel Processing Systems , 1990, PPSN.

[4]  Harvey F. Silverman,et al.  Implementing a genetic algorithm on a parallel custom computing machine , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[5]  Mehrdad Salami,et al.  An adaptive PID controller based on genetic algorithm processor , 1995 .

[6]  Frank Thomson Leighton Introduction to parallel algorithms and architectures: arrays , 1992 .

[7]  Ricardo Citro,et al.  Armstrong III: A Loosely-Coupled Parallel Processor with Reconfigurable Computing Capabilities , 1996 .

[8]  Howard Trickey,et al.  Flamel: A High-Level Hardware Compiler , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Tughrul Arslan,et al.  Hierarchical test pattern generation using a genetic algorithm with a dynamic global reference table , 1995 .

[10]  S. Casselman Virtual computing and the Virtual Computer , 1993, [1993] Proceedings IEEE Workshop on FPGAs for Custom Computing Machines.

[11]  Graham M. Megson,et al.  Generic systolic array for genetic algorithms , 1997 .

[12]  Stephen Wolfram,et al.  Universality and complexity in cellular automata , 1983 .

[13]  Graham M. Megson,et al.  Implementing a generic systolic array for genetic algorithms , 1997 .

[14]  Sumit Ghosh,et al.  An Asynchronous Approach to Synthesizing Custom Architectures for Efficient Execution of Programs on FPGAs , 1994, 1994 Internatonal Conference on Parallel Processing Vol. 2.

[15]  Daniel P. Lopresti,et al.  Building and using a highly parallel programmable logic array , 1991, Computer.

[16]  J. C. Bean Genetics and random keys for sequencing amd optimization , 1993 .

[17]  Gilbert Syswerda,et al.  Uniform Crossover in Genetic Algorithms , 1989, ICGA.

[18]  Prathima Agrawal,et al.  Programming pipelined CAD applications on message-passing architectures , 1995, Concurr. Pract. Exp..

[19]  Brent E. Nelson,et al.  A Hardware Genetic Algorithm for the Travelling Salesman Problem on SPLASH 2 , 1995, FPL.

[20]  Tughrul Arslan,et al.  An architecture for enhancing image processing via parallel genetic algorithms and data compression , 1995 .

[21]  David B. Beasley,et al.  An overview of genetic algorithms: Part 1 , 1993 .

[22]  D. Michael Miller,et al.  The analysis of one-dimensional linear cellular automata and their aliasing properties , 1990, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[23]  Kalyanmoy Deb,et al.  A Comparative Analysis of Selection Schemes Used in Genetic Algorithms , 1990, FOGA.

[24]  C. Burns,et al.  An architecture for a verilog hardware accelerator , 1996, Proceedings. IEEE International Verilog HDL Conference.

[25]  D. H. Horrocks,et al.  A hardware architecture for a parallel genetic algorithm for image registration , 1994 .

[26]  J. C. Bean,et al.  A GENETIC ALGORITHM METHODOLOGY FOR COMPLEX SCHEDULING PROBLEMS , 1999 .

[27]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[28]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[29]  James E. Baker,et al.  Reducing Bias and Inefficienry in the Selection Algorithm , 1987, ICGA.

[30]  Jack E. Volder The CORDIC Trigonometric Computing Technique , 1959, IRE Trans. Electron. Comput..

[31]  Proceedings of the 4th Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA '92, San Diego, CA, USA, June 29 - July 1, 1992 , 1992, SPAA.

[32]  W. Spears,et al.  Using Neural Networks and Genetic Algorithms as Heuristics for NP-Complete Problems , 1983 .

[33]  Timo Hämäläinen,et al.  Accelerating genetic algorithm computation in tree shaped parallel computer , 1996, J. Syst. Archit..

[34]  Pinaki Mazumder,et al.  A Systolic Architecture for High Speed Hypergraph Partitioning Using a Genetic Algorithm , 1993, Evo Workshops.

[35]  Jean Vuillemin,et al.  Programmable Active Memories: A Performance Assessment , 1992, Heinz Nixdorf Symposium.

[36]  Kenneth A. De Jong,et al.  Using Genetic Algorithms to Solve NP-Complete Problems , 1989, ICGA.

[37]  Steven A. Guccione List of FPGA-based computing machines , 1997 .

[38]  Ashok Samal,et al.  HGA: A Hardware-Based Genetic Algorithm , 1995, Third International ACM Symposium on Field-Programmable Gate Arrays.

[39]  T. H. Meyer Computer Architecture and Organization , 1982 .

[40]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1996, Springer Berlin Heidelberg.

[41]  Marco Tomassini,et al.  Towards Evolvable Hardware: The Evolutionary Engineering Approach , 1996 .

[42]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[43]  Reinhard Männer,et al.  Real-Time Optimization by Hardware Supported Genetic Algorithms , 1996 .

[44]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[45]  Brent E. Nelson,et al.  Genetic algorithms in software and in hardware-a performance analysis of workstation and custom computing machine implementations , 1996, 1996 Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[46]  Sungho Kang,et al.  A Hardware Accelerator for Fault Simulation Utilizing a Reconfigurable Array Architecture , 1996 .

[47]  Harvey F. Silverman,et al.  Processor reconfiguration through instruction-set metamorphosis , 1993, Computer.

[48]  S. M. Wu,et al.  The IBM High-Level Synthesis System , 1991 .

[49]  Douglas C. Schmidt,et al.  ASX: An Object-Oriented Framework for Developing Distributed Applications , 1994, C++ Conference.

[50]  D. E. Goldberg,et al.  Genetic Algorithms in Search , 1989 .

[51]  Reinhard Männer,et al.  Enable++: a second generation FPGA processor , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[52]  Pak K. Chan A FIELD-PROGRAMMABLE PROTOTYPING BOARD: XC4000 BORG USER''S GUIDE , 1994 .

[53]  Tughrul Arslan,et al.  A parallel genetic VLSI architecture for combinatorial real-time applications-disc scheduling , 1995 .