8 research outputs found
Gene expression programming for logic circuit design
Finding an optimal solution for the logic circuit design problem is challenging and time-consuming especially
for complex logic circuits. As the number of logic gates increases the task of designing optimal logic circuits
extends beyond human capability. A number of evolutionary algorithms have been invented to tackle a range
of optimisation problems, including logic circuit design. This dissertation explores two of these evolutionary
algorithms i.e. Gene Expression Programming (GEP) and Multi Expression Programming (MEP) with the
aim of integrating their strengths into a new Genetic Programming (GP) algorithm. GEP was invented by
Candida Ferreira in 1999 and published in 2001 [8]. The GEP algorithm inherits the advantages of the Genetic
Algorithm (GA) and GP, and it uses a simple encoding method to solve complex problems [6, 32]. While
GEP emerged as powerful due to its simplicity in implementation and
exibility in genetic operations, it is
not without weaknesses. Some of these inherent weaknesses are discussed in [1, 6, 21]. Like GEP, MEP is a
GP-variant that uses linear chromosomes of xed length [23]. A unique feature of MEP is its ability to store
multiple solutions of a problem in a single chromosome. MEP also has an ability to implement code-reuse which
is achieved through its representation which allow multiple references to a single sub-structure.
This dissertation proposes a new GP algorithm, Improved Gene Expression Programming (IGEP) which im-
proves the performance of the traditional GEP by combining the code-reuse capability and simplicity of gene encoding method from MEP and GEP, respectively. The results obtained using the IGEP and the traditional
GEP show that the two algorithms are comparable in terms of the success rate when applied on simple problems
such as basic logic functions. However, for complex problems such as one-bit Full Adder (FA) and AND-OR
Arithmetic Logic Unit (ALU) the IGEP performs better than the traditional GEP due to the code-reuse in IGEPMathematical SciencesM. Sc. (Applied Mathematics
Explorations in Parallel Linear Genetic Programming
Linear Genetic Programming (LGP) is a powerful problem-solving technique,
but one with several significant weaknesses. LGP programs consist
of a linear sequence of instructions, where each instruction may reuse
previously computed results. This structure makes LGP programs compact
and powerful, however it also introduces the problem of instruction
dependencies. The notion of instruction dependencies expresses the concept
that certain instructions rely on other instructions. Instruction dependencies
are often disrupted during crossover or mutation when one or
more instructions undergo modification. This disruption can cause disproportionately
large changes in program output resulting in non-viable
offspring and poor algorithm performance.
Motivated by biological inspiration and the issue of code disruption,
we develop a new form of LGP called Parallel LGP (PLGP). PLGP programs
consist of n lists of instructions. These lists are executed in parallel, and
the resulting vectors are summed to produce the overall program output.
PLGP limits the disruptive effects of crossover and mutation, which allows
PLGP to significantly outperform regular LGP.
We examine the PLGP architecture and determine that large PLGP programs
can be slow to converge. To improve the convergence time of large
PLGP programs we develop a new form of PLGP called Cooperative Coevolution
PLGP (CC PLGP). CC PLGP adapts the concept of cooperative
coevolution to the PLGP architecture. CC PLGP optimizes all program
components in parallel, allowing CC PLGP to converge significantly faster
than conventional PLGP.
We examine the CC PLGP architecture and determine that performanc
Desarrollo y simplificación de redes de neuronas artificiales mediante el uso de técnicas de computación evolutiva
[Resumen] Esta Tesis propone el uso de técnicas de Computación Evolutiva (CE) con el objetivo de automatizar el proceso de desarrollo de Redes de Neuronas Artificiales (RR,NN.AA.). Tradicionalmente, el desarrollo de RR.NN.AA. es un proceso lento, marcado por el gran trabajo que debe de realizar el experto. Por su parte, los métodos existentes para el desarrollo automatizado de RR.NN.AA. han sido analizados, y como resultado se han hallado una serie de carencias graves. Con el objetivo de paliar estas carencias, y de lograr un sistema totalmente automatizado en todas las etapas de desarrollo de RR.NN.AA., se propone el uso de dos técnicas de CE: Programación Genética (PG) y Algoritmos Genéticos (AA.GG.) para lograr un modelo que tenga dichas caracterÃsticas. Los resultados obtenidos en los experimentos realizados, asà como en la comparación del modelo desarrollado con los existentes, muestran una alta eficiencia del sistema desarrollado, asà como una serie de ventajas tales como una optimización de las redes conseguidas.Esta Tesis propone el uso de técnicas de Computación Evolutiva (CE) con el objetivo de automatizar el proceso de desarrollo de Redes de Neuronas Artificiales (RR.NN.AA.). Tradicionalmente, el desarrollo de RR.NN.AA. es un proceso lento, marcado por el gran trabajo que debe de realizar el experto. Por su parte, los métodos existentes para el desarrollo automatizado de RR.NN.AA. han sido analizados, y como resultado se han hallado una serie de carencias graves. Con el objetivo de paliar estas carencias, y de lograr un sistema totalmente automatizado en todas las etapas de desarrollo de RR.NN.AA., se propone el uso de dos técnicas de CE: Programación Genética (PG) y Algoritmos Genéticos (AA.GG.) para lograr un modelo que tenga dichas caracterÃsticas
Reusing Code in Genetic Programming
In this paper we propose an approach to Genetic Programming based on code reuse and we test it in the design of combinational
logic circuits at the gate-level. The circuits evolved by our algorithm are
compared with circuits produced by human designers, by Particle Swarm
Optimization, by an n-cardinality GA and by Cartesian Genetic Programming