Abstract
This paper describes the implementation of a reconfigurable hardware-based genetic algorithm (HGA) accelerator using the hardware-software (HW/SW) co-design methodology. This HGA is coupled with a unique TRNG that extracts random jitters from a phase lock loop (PLL) to ensure proper GA operation. It is then applied and benchmarked with several case studies, which include the optimization of a simple fitness function, a constrained Michalewicz function, and the tuning of parameters in finger-vein biometrics. A HGA solution is necessary in systems that demand high performance during the optimization process. However, implementations that are completely designed in hardware will result in a very rigid architecture, making it difficult to reconfigure the system for use in different applications. This paper aims to solve this issue by proposing a HGA design that provides reconfigurability and flexibility by moving problem-dependent processes into software. The prototyping platform used is an Altera Stratix II EP2S60 FPGA prototyping board with a clock frequency of 50 MHz. The HW/SW co-design technique is applied, and system partitioning is done based on aspects such as system constraints, operational intensity, process sequencing, hardware logic utilization, and reconfigurability. Experimental results show that the proposed HGA outperforms equivalent software implementations compiled with an open-sourced C++ GA component library (GAlib) running on the same prototyping platform by 102 times at most. In the final case study, the application of the proposed HGA in tunable parameter optimization in finger-vein biometrics improved the matching rate, reducing the equal error rate (EER) value from 1.004% down to 0.101%.





















Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Ahmadi F, Tati R, Ahmadi S, Hossaini V (2011) New hardware engine for genetic algorithms. In: Genetic and Evolutionary Computing (ICGEC), 2011 Fifth International Conference on Genetic and Evolutionary Computing. IEEE , pp 122–126
Alam NM (2009) Implementation genetic algorithms in fpga-based reconfigurable computing systems. Master’s thesis, Graduate School of Clemson University
Bedaux J (2003) C++ mersenne twister pseudo-random number generator. Published online http://www.bedaux.net/mtrand
Chopra S, Marfurt KJ (2008) Gleaning meaningful information from seismic attributes. SEG Techn Prog Expand Abstr 27(1):1501–1505. doi:10.1190/1.3059381
Cole N, Louis S, Miles C (2004) Using a genetic algorithm to tune first-person shooter bots. In: Evolutionary Computation, 2004. CEC2004. Congress on Evolutionary Computation, vol. 1. pp. 139–145. doi:10.1109/CEC.2004.1330849
De Jong KA, Spears WM (1989) Using genetic algorithms to solve np-complete problems. In: JD Schaffer (ed.) ICGA.Morgan Kaufmann, California, pp 124–132
Fernando P, Katkoori S, Keymeulen D, Zebulum R, Stoica A (2010) Customizable fpga ip core implementation of a general-purpose genetic algorithm engine. IEEE Trans Evolut Comput 14(1):133–149
Goldberg D (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Professional, Upper Saddle River
Graham P, Nelson B (1996) Genetic algorithms in software and in hardware-a performance analysis of workstation and custom computing machine implementations. In: FPGAs for Custom Computing Machines, 1996. Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines, pp. 216–225. doi:10.1109/FPGA.1996.564847
Hau YW, Khalil-Hani M (2009) SystemC-based HW/SW co-simulation platform for system-on-chip (SoC) design space exploration. IJICT 2(1/2):108–119
Hau YW, Khalil-Hani M, Marsono MN (2011) SystemC-Based Hardware/Software Co-Design of Elliptic Curve Cryptographic System for Network Authentication. Malaysian J Comput Sci 24(2):111–130
Holland J (1975) Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor
Hong JH, Cho SB (2004) Evolution of emergent behaviors for shooting game characters in robocode. In: Evolutionary Computation, 2004. CEC2004. Congress on Evolutionary Computation, vol. 1. pp. 634–638. doi:10.1109/CEC.2004.1330917
Ibez L, Schroeder W, Ng L, Cates J, Consortium, TIS (2003) The ITK Software Guide. Kitware Inc
Jain AK, Flynn P, Ross AA (2007) Handbook of Biometrics. Springer-Verlag, Secaucus
Jimnez JL (2009) Hardware/Software Architectures for Iris Biometrics. Ph.D. thesis, Departmento de Technologa Electrnica, Universidad Carlos III de Madrid
Kanasugi A, Tsukahara A (2007) A processor for genetic algorithm using dynamically reconfigurable memory. JCIT 2(1):4–15
Khalil-Hani M, Eng PC (2010) Fpga-based embedded system implementation of finger vein biometrics. In: Industrial Electronics Applications (ISIEA), 2010 IEEE Symposium on Industrial Electronics Applications, pp. 700–705 (2010). doi:10.1109/ISIEA.2010.5679376
Knuth DE (1997) The art of computer programming, vol 2, 3rd edn. seminumerical algorithms. Addison-Wesley Longman Publishing Co., Inc., Boston
Kowalczyk R (1997) Constraint consistent genetic algorithms. In: Evolutionary Computation, 1997. IEEE International Conference on Evolutionary Computation. pp. 343–348. doi:10.1109/ICEC.1997.592333
Louis S, Miles C (2005) Playing to learn: case-injected genetic algorithms for learning to play computer games. IEEE Trans Evolut Comput 9(6):669–681. doi:10.1109/TEVC.2005.856209
Martin P (2001) A hardware implementation of a genetic programming system using fpgas and handel-c. Genetic Programming and Evolvable Machines 2:317–343. doi:10.1023/A:1012942304464
Matsumoto M, Nishimura T (1998) Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Trans Model Comput Simul 8(1):3–30
Megson G, Bland I (1997) Generic systolic array for genetic algorithms. IEE Proc Comput Digi Techn 144(2):107–119. doi:10.1049/ip-cdt:19971126
Meysenburg MM, Foster JA (1999) Randomness and GA performance, revisited. In: Banzhaf W, Daida J, Eiben AE, Garzon MH, Honavar V, Jakiela M, Smith RE (eds) Proceedings of the Genetic and Evolutionary Computation Conference, vol 1. Morgan Kaufmann, Orlando, pp 425–432
Michalewicz (1996) Genetic Algorithms + Data Structures = Evolution Programs, 3rd edn. Springer, Berlin
Thamrin MN, Ahmad I, Khalil-Hani M (2006) A True Random Number Generator for Crypto Embedded Systems. Regional Postgraduate Conference on. Engineering and Science :253–256
Nambiar VP, Khalil-Hani M, Zabidi MM (2009) Accelerating the AES encryption function in OpenSSL for embedded systems. Int J Info Commun Technol (IJCTS) 2009 2(1/2): 83–93
Nareyek A (2004) Ai in computer games. Queue 1(10):58–65. doi:10.1145/971564.971593
Nedjah N, de Macedo Mourelle L (2007) An efficient problem-independent hardware implementation of genetic algorithms. Neurocomputing 71(1–3):88–94
Samarah A, Habibi A, Tahar S, Kharma N (2006) Automated coverage directed test generation using a cell-based genetic algorithm. In: High-Level Design Validation and Test Workshop, 2006. Eleventh Annual IEEE International, pp. 19–26. doi:10.1109/HLDVT.2006.319996
Scheidat T, Engel A, Vielhauer C (2006) Parameter optimization for biometric fingerprint recognition using genetic algorithms. In: Voloshynovskiy S, Dittmann J, Fridrich JJ (eds.) MM & Sec. ACM,New York, pp. 130–134
Schmitz T, Hohmann SG, Meier K, Schemmel J, Schrmann F (2003) Speeding up hardware evolution: A coprocessor for evolutionary algorithms. In: Tyrrell AM, Haddow PC, Torresen J (eds.) ICES, Lecture Notes in Computer Science, vol. 2606. Springer, Boston, pp. 274–285
Scott S, Samal A, Seth S (1995) Hga: A hardware-based genetic algorithm. In: Field-Programmable Gate Arrays, 1995. FPGA ’95. Proceedings of the Third International ACM Symposium on Field-Programmable Gate Arrays. pp. 53–59. doi:10.1109/FPGA.1995.241945
Shackleford B, Snider G, Carter RJ, Okushi E, Yasuda M, Seo K, Yasuura H (2001) A high-performance, pipelined, fpga-based genetic algorithm machine. Genetic Programming and Evolvable Machines 2(1):33–60
Sivanandam SN, Deepa SN (2008) Introduction to genetic algorithms. Springer, Boston
Tajiri Y, Saito M, Serikawa S (2007) Proposal of Optimization Method of Image Processing Parameter by Polytope Method. In: International Symposium on Advanced Intelligent Systems, Sokcho, Korea. Korean Institute of Intelligent Systems, pp. 105–108
Thibault D, Prasad K (1996) Hardware structures for genetic algorithms. University of Massachusetts, Lowell
Torresen J (2002) A scalable approach to evolvable hardware. Genetic Programming and Evolvable Machines 3:259–282. doi:10.1023/A:1020163325179
Vavouras M, Papadimitriou K, Papaefstathiou I (2009) High-speed fpga-based implementations of a genetic algorithm. In: Najjar WA, Schulte MJ (eds.) ICSAMOS. IEEE, New York, pp. 9–16
Wall M (2007) Galib, a c++ library of genetic algorithm components. http://lancet.mit.edu/ga/
Wang K, Gao L, Pian Z, Guo L, Wu J (2007) Edge detection combined entropy threshold and self-organizing map (som). In: Proceedings of the 4th international symposium on Neural Networks: Part II-Advances in Neural Networks, ISNN ’07. Springer-Verlag, Berlin, pp. 931–937
Weise T (2009) Global Optimization Algorithms - Theory and Application. it-weise.de (self-published): Germany. http://www.it-weise.de/projects/book.pdf
Zhu Z, Mulvaney DJ, Chouliaras VA (2007) Hardware implementation of a novel genetic algorithm. Neurocomput 71:95–106
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Nambiar, V.P., Balakrishnan, S., Khalil-Hani, M. et al. HW/SW co-design of reconfigurable hardware-based genetic algorithm in FPGAs applicable to a variety of problems. Computing 95, 863–896 (2013). https://doi.org/10.1007/s00607-013-0305-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-013-0305-5
Keywords
- FPGA
- Genetic algorithm
- HW/SW co-design
- Finger-vein biometrics
- Image processing
- Embedded systems
- System-on-chip
- Benchmarking