This document discusses using genetic algorithms to optimize the design of combinational logic circuits. It describes representing circuit designs as chromosomes that are evolved over generations using genetic operators like crossover and mutation to minimize the number of gates needed. Specifically, it proposes encoding the circuit as a 2D matrix chromosome to allow 2D genetic operators that may provide faster optimization compared to 1D encodings. The evolved designs aim to implement the desired logic function with the highest number of "wire" null gates.
2. PROBLEM DESCRIPTION
Designing a circuit that performs a desired function
(specified by a truth table), with given a specified set
of available logic gates.
The aim is to design and implement circuits with
least complexity i.e. with minimum number of gates.
The Genetic Algorithm (GA) is used to optimize the
combinations and find the fittest design of the given
circuit.
3. PREVIOUS TECHNIQUES:
Karnaugh Map method (K-Map)
- based on graphical representation of Boolean
functions.
- Useful in minimizing functions upto 5 or 6 variables.
Quine – McCluskey method (Tabular
method)
- It is a tabular method.
- Useful for functions of any number of variables.
4. GENETIC ALGORITHMS
1. Genetic algorithms [1] are search techniques modeled
after natural selection, including the associated genetic
operators.
2. Initially GAs were developed by John Holland [2], K.
DeJong, D. Goldberg [3].
3. GAs are stochastic algorithms with very simple
operators that involve random number generation, and
copying and exchanging string structures.
4. The three major operators are : selection, mutation and
crossover, with fitness evaluation.
5. GA TERMINOLOGY
Gene – a single encoding of part of the solution space, i.e.
either single bits or short blocks of adjacent bits that encode
an element of the candidate solution. Eg. - 1
Chromosome – a string of genes that represents a solution.
Eg. 0 1 0 1 1
Population – the number of chromosomes available to test.
Eg. 0 1 0 0 0
1 1 0 0 1
0 1 0 1 0
1 1 0 1 0
1 1 0 1 1
1 0 0 1 1
0 1 0 1 1
1 1 1 1 1
7. SGA REPRODUCTION CYCLE
1. Form the initial population (also called Mating pool).
2. Calculate the fitness of each individual among the present
generation.
3. Select parents for the mating pool
(size of mating pool = population size)
4. For each consecutive pair apply crossover with probability pc
(otherwise copy parents)
5. For each offspring apply mutation (bit-flip with probability pm
independently for each bit)
6. Replace the whole population with the resulting offspring
8. FITNESS EVALUATION
A Fitness Function is a particular type of objective
function that is used to evaluate as how close a given
design solution is to achieving the set aims.
The fitness value of an individual is the value of the
fitness function for that individual.
Two main classes of fitness functions:
the fitness function is mutable.
the fitness function does not change, as in optimizing a fixed
function or testing with a fixed set of test cases
9. SELECTION
Chromosomes are selected from the population to
be parents to crossover and produce offspring
Also known as Selection Operator
Parents are selected according to their fitness
There are many methods [1] to select the best
chromosomes
1. Roulette Wheel Selection
2. Rank Selection
3. Tournament Selection
4. Elitism
The better the chromosomes are, more is the
chance to be selected.
10. SELECTION
Main idea: better individuals get higher chance
Chances proportional to fitness
Implementation: Roulette Wheel Technique [1]
Assign to each individual a part of the
roulette wheel
Spin the wheel n times to select n
individuals
fitness(A) = 3
fitness(B) = 1
fitness(C) = 2
A C
1/6 = 17%
3/6 = 50%
B
2/6 = 33%
11. CROSSOVER OPERATORS: 1-POINT
CROSSOVER
Choose a random point on the two parents
Split parents at this crossover point
Create children by exchanging tails
Pc typically in range (0.6, 1.0)
12. MUTATION OPERATOR
Alter specific bit independently with a probability Pm
Pm is called the mutation rate
13. Replace the next generation with the with the new
off springs and evaluate their respective fitness.
Repeat the cycle of GA with the new generation as
the current one and apply the genetic operators.
This is done until the optimum desired condition is
not achieved.
14. DESIGN REPRESENTATION
The representation used is a bi-dimensional
matrix in which each matrix element is a
gate. A gate set consisting of 5 gates, i.e.
AND, OR, NOT, XOR and WIRE is
considered [4] [5].
(WIRE basically indicates a null operation, or
in other words, the absence of a gate.)
16. ENCODING [2,3]
Each matrix element is a gate that receives
its 2 inputs from any gate at the previous
column in the figure.
A chromosomic string encodes the matrix
element by using triplets in which the first 2
elements refer to each of the inputs used and
the third is the corresponding gate used in
that element.
19. The inputs to matrix elements of the first column
are the inputs directly obtained by the truth table
while the inputs to the other elements are the
outputs of any of its previous level gates [4].
The outputs obtained from the last column are the
final output of the designed circuit.
20. Once the binary bit strings are obtained from the
encoding, the GA will optimize the population
within the search space.
The optimal bit strings obtained after the required
number of iterations will be decoded back to form
circuit using the gates in predefined gate set.
GA tries to obtain the circuit with maximum
number of WIREs that perform the function
required.
21. 2D TECHNIQUE [7]
Coello [4] worked by the same method but
used linear form to represent the
chromosomes.
This consumes more computational time.
To avoid this demerit the circuit can be
represented as a 2D chromosome itself. It
helps in better visualization.
The 2D genetic operators i.e. 2D crossover
and 2D mutation are then operated over
these 2D chromosomes.
22. ENCODING IN 2D FORM
The individuals are created randomly which contains
the information about the type of gates & the
corresponding inputs to the gate.
Two individuals ‘A’ and ‘B’ are shown in figure.
23. 2D CROSSOVER
Mask matrices are prepared to find the region of
crossover.
A set of 4 random numbers {R1,R2,C1,C2} are
generated where R1 & R2, C1 & C2 are numbers
between ‘1’ and ‘n’ where n is the size of the
parent matrix.
These 4 numbers indicate the start and end of
rows and columns of a sub matrix in the parents
respectively.
The genes in this sub matrix will be swapped
between the parents.
24. Two mask matrices M1 and M2 are generated.
The elements of matrix M1 are 1’s for rows and
columns outside the subset matrix.
The rows and columns inside the subset matrix are
filled with 0’s and 1’s randomly.
27. 2D MUTATION
Since only a small percentage (0.3%) of the
population undergo mutation.
Thus only a single mask is needed for mutation. It
is prepared in the same way.
This mask operator is superimposed over the
offspring to be mutated.
1 indicates a change in characteristic of the offspring.
0 indicates no change in characteristic of the offspring.
28. ADVANTAGES:
Using the 2D representation leads to less
computational time.
Increases the total operational speed for the
implementation.
Visualization is much more convenient and
easier.
29. REFERENCES
[1] “Genetic Algorithms for VLSI Design, Layout & Test Automation” by
Pinaki Mazumdar and E. M. Rudnick.
[2] Holland, J. H. (1992) Adaptation in Natural and Artificial Systems. An
Introductory Analysis with Applications to Biology, Control and Artificial
Intelligence. MIT Press, Cambridge, Massachusetts.
[3] Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization and
Machine Learning. Reading, Mass. : Addison-Wesley Publishing Co.
[4] Carlos A. Coello Coello, Alan D. Christiansenz, Arturo Hernandez
Aguirrez, “Use of Evolutionary Techniques to Automate the Design of
Combinational Circuits”.
[5] Cecília Reis, J. A. Tenreiro Machado J. Boaventura Cunha, “Logic
Circuits Synthesis Through Genetic Algorithms”, Proceedings of the 6th
WSEAS Int. Conf. on Evolutionary Computing, Lisbon, Portugal, June
16-18, 2005.
[6] Ahmed T. Soliman and Hazem M. Abbas, ”Combinational Circuit Design
Using Evolutionary Algorithms”, CCGEI 2003, Montreal, Mayami 2003.
[7] Vijayakumari. C. K, Mythili. P (2012), “A Faster 2D Technique for the
design of Combinational Digital Circuits Using Genetic Algorithm.