Genetic Algorithms (GAs) are intelligent search techniques that are based on Darwin’s theory of evolution. They are a particular class of Evolutionary Algorithms (EA) which can be applied to find acceptable solutions to computationally complex search problems in a reasonable amount of time. GAs are usually implemented in software and typically require a large number of iterations to reach a near optimal solution, thus consuming a large amount of processing time. The inherent parallelism in GAs facilitates the exploration of a large number of regions in the search space and also becomes the motivation for their implementation in hardware.
As a part of this thesis, we construct a comprehensive library which implements commonly used techniques employed in the various stages of a GA – selection, crossover and mutation. We also provide modules to generate high quality pseudorandom numbers, which the GA needs to use to ensure high performance. The purpose of constructing the library is to maintain a varied repository of components that can be efficiently combined as needed to build larger architectures, depending on the specific application. Our project extends earlier work which implemented a smaller set of GA modules, along with a family of feedback based shift registers for pseudorandom number generation. In addition, we do a comparative analysis of the effectiveness of various module choices.
We also develop an architecture from our components for DNA sequence alignment. Our results are compared with results from ClustalW, a commonly used software application developed by the European Bioinformatics Institute (EBI) for this problem.