Estado del Arte en Hardware Evolutivo

Estado del Arte en Hardware Evolutivo Eduardo Serna P´erez Diciembre 2002 1. Introducci´ on Tradicionalmente los sistemas electr´ onicos han sido d...
7 downloads 0 Views 57KB Size
Estado del Arte en Hardware Evolutivo Eduardo Serna P´erez Diciembre 2002

1.

Introducci´ on

Tradicionalmente los sistemas electr´ onicos han sido dise˜ nados por ingenieros utilizando diversas t´ecnicas, reglas y principios de dise˜ no, as´ı como su experiencia. Dentro de las herramientas de dise˜ no digital m´ as conocidas podemos encontrar a los Mapas de Karnaugh [21] y el m´etodo de Quine-McCluskey [29, 25], m´etodos b´asicamente gr´aficos que nos permiten cierta libertad, al igual que varias limitantes al momento de realizar el dise˜ no, ya que no resulta trivial cuando se habla de problemas que cuentan con un n´ umero elevado de variables. Aun cuando se ha podido mecanizar el m´etodo de Quine-McCluskey, una de sus mayores limitantes es la incapacidad para poder incluir componentes m´ as complejos al modelo como por ejemplo la compuerta XOR. Actualmente se cuenta con algoritmos muy eficientes que han sido llevados a computadora como es el caso de Espresso y MIS-II [2, 3], que permiten realizar dise˜ nos digitales relativamente complicados, auxili´ andose de una serie de heur´ısticas. En la ultima mitad del siglo XX se comenz´ o a gestar una idea que m´ as tarde se convertir´ıa en una t´ecnica alternativa inspirada en las ideas del proceso de selecci´on natural para la soluci´ on de ciertos problemas. (Agregar m´as choro).

2.

Los inicios

George J. Friedman [10] fue uno de los primeros en aplicar t´ecnicas evolutivas a la rob´otica. Friedman propuso un mecanismo para construir, probar y evaluar circuitos en forma autom´atica, utilizando mutaciones aleatorias y procesos de selecci´on. De tal forma, Friedman propuso una manera alternativa para el dise˜ no de circuitos electr´onicos [11] ´este ser´ıa probablemente el primer trabajo del ´ area a la que m´as tarde se le denominar´ıa Hardware Evolutivo. La idea principal del hardware evolutivo consiste en codificar los circuitos en un cromosoma y utilizar un proceso de ensamble y prueba, que unido a un proceso evolutivo nos permita dise˜ nar circuitos de distinto grado de complejidad y as´ı explorar de manera m´ as eficiente el espacio de dise˜ no.

1

Esta idea de dise˜ no evolutivo fue retomada varios a˜ nos m´ as tarde por Louis y Rawlins [23, 24] quienes en 1991 presentan una manera de resolver el dise˜ no de circuitos l´ogicos combinatorios empleando una cadena de cromosoma en donde en cada gene se representa un tipo de compuerta y sus entradas correspondientes. De tal forma, para su evaluaci´ on se realiza un mapeo de la cadena a una matriz interconectada de nivel a nivel, donde cada casilla representa una compuerta l´ogica de dos entradas. A esta idea de representaci´ on de los individuos est´a incorporado un Algoritmo Gen´etico que emplea un mecanismo no convencional de cruza que permite hacer una mayor exploraci´ on del espacio de b´ usqueda y adem´as tratan de integrar un mecanismo extractor de conocimiento sobre el dominio. Los resultados de Louis y Rawlins lejos de ser desalentadores dan la base para que varios investigadores retomen el ´ area con m´ as inter´es. Este es el caso de Higuchi et al. [12], quienes en 1992 comenzaron a trabajar con la idea de hacer hardware configurado por software, como si fueran arreglos l´ ogicos programables que reciben una cadena de bits con instrucciones que configuran al circuito a una arquitectura deseada, empleando un algoritmo gen´etico para la evoluci´ on del hardware. A partir de los trabajos de Louis, Rawlins e Higuchi, es necesario definir dos enfoques que tradicionalmente son considerados en Hardware Evolutivo y que van dirigidos al proceso de evaluaci´ on [20]: Extr´ınseca: el circuito a resolver es construido y evaluado como un modelo de simulaci´on en software. Intr´ınseca: la soluci´on al circuito es implementada en dispositivos reconfigurables, donde se construyen y eval´ uan los circuitos. Tambi´en es posible realizar hardware evolutivo mixtr´ınseco donde las poblaciones son mixtas, compuestas de simulaciones y dispositivos reconfigurables, aunque es poco com´ un encontrar este enfoque [1]. De igual forma existen otros enfoques para el dise˜ no de circuitos que est´ an m´as dirigidos al proceso de evoluci´ on, como son el dise˜ no a nivel de compuertas que consisten en emplear s´olo compuertas l´ ogicas b´ asicas como pueden ser AND, OR y NOT [14]. Y el dise˜ no a nivel de funciones que consiste b´ asicamente en utilizar compuertas l´ogicas y a su vez con ellas construir nuevos m´ odulos compuestos como multiplexores, medio sumadores, etc. [22, 20]. En 1992 J. Koza presenta su libro Genetic Programing [22], donde elabora la soluci´on a algunos ejemplos de circuitos relativamente sencillos empleando el esquema de programaci´on gen´etica como medio de evoluci´ on, con el objetivo de generar dise˜ nos funcionales y no tanto ´ optimos. Quiz´ as una de las aportaciones m´as importantes de Koza fue el emplear la idea de encapsulamiento de sub´arboles en terminales y as´ı mostrar la importancia de la reutilizaci´ on de c´odigo o componentes dentro de un circuito. El trabajo actual de Koza est´ a m´ as orientado al dise˜ no de circuitos anal´ ogicos. En 1995 se realiza el primer taller de Hardware Evolutivo, en el Instituto Federal de Tecnolog´ıa en Suiza. Aqu´ı comienzan a gestarse las bases, los objetivos 2

y la direcci´on que llevar´a el hardware evolutivo en los subsecuentes a˜ nos [31].

3.

Implementaciones intr´ınsecas

Los investigadores como Higuchi, Iba y Thompson han enfocado m´ as su trabajo al hardware evolutivo intr´ınseco a nivel de compuertas. Higuchi et al. [12] e Iba et al. [14, 15] emplean algoritmos gen´eticos de longitud variable, adoptando una representaci´on matricial, dirigiendo con m´ as intensidad sus esfuerzos a lograr incorporar aprendizaje a su sistema evolutivo. Por otro lado, Thompson [13, 36] ha realizado trabajo tanto a nivel de compuertas, como a nivel de funciones empleando la programaci´ on gen´etica y circuitos reconfigurables llamados FPGA’s (Field Programmable Gate Array) para construir circuitos digitales, s´ olo que Thompson le da la debida importancia a la reutilizaci´ on de componentes, produciendo quiz´ as los mejores modelos reportados hasta el momento. Adem´ as ha comenzado a trabajar en el an´ alisis de los beneficios que conlleva el emplear un modelos funcional y de all´ı partir la evoluci´on del circuito hacia una optimizaci´ on del mismo. (“agrgar informaci´ on del trabajo de Vassilev”).

4.

Implementaciones extr´ınsecas

Existen otros investigadores que le han dado m´ as ´enfasis al dise˜ no de circuitos extr´ınsecos al nivel de compuertas. La mayor´ıa de ellos emplean un modelo de representaci´on similar al de Louis, incorporando algunas mejoras [6, 17, 20]. Hay trabajos como el de Chen et al. [4] donde se enfoca al nivel de funciones empleando un modelo complejo de grafos para los individuos, utilizando Programaci´on Gen´etica. Quiz´as lo m´ as complicado y costoso (computacionalmente) del modelo resulta ser el mecanismo de cruza empleado en los grafos, pero aun con esta complicaci´on resulta ser uno de los modelos que puede manejar el mayor grado de complejidad en los circuitos, obviamente tomando en cuenta que est´a orientado a nivel de funciones. Coello y sus colegas han realizado implementaciones con Algoritmos Gen´eticos [6, 5] y Colonia de Hormigas [8] empleando el esquema matricial y un alfabeto de cardinalidad n. Es decir, las casillas de cada celda en la matriz est´ an constituidas por un par de entradas y un tipo de compuerta, lo que permite realizar un mapeo a una cadena cromos´ omica a la cual se le aplican los operadores gen´eticos de cruza y mutaci´ on. Asimismo, la funci´ on de aptitud es realizada en dos etapas, primero se busca obtener circuitos funcionales y posteriormente se emplea un mecanismo de bonificaci´ on que permite llegar a la s´ıntesis de los circuitos. Su trabajo adem´as recalca la importancia de la reutilizaci´ on de componentes l´ogicos para lograr una optimizaci´on de los circuitos combinatorios. La propuesta del grupo de Coello muestra ciertas similitudes con el trabajo de Miller y sus colegas [17, 26, 19, 18], a´ un cuando ambos enfoques fueron desarrollados en forma independiente. El trabajo de Miller en un principio fue

3

enfocado al nivel intr´ınseco [27], pero posteriormente comenz´ o a enfocarse m´ as ha las simulaciones. El grupo de Miller emplea una representaci´ on entera en cada celda que representa una cierta combinaci´ on de entradas y compuerta l´ogica. Por otro lado, la funci´ on de aptitud centra su mecanismo en encontrar soluciones funcionales u ´nicamente [17, 26, 18, 20]. Actualmente Miller y sus colegas han comenzado a observar al igual que Thompson los beneficios que acarrea el partir de una soluci´ on funcional para obtener lo que ellos llaman un camino neutral hacia la zona de dise˜ no. Adem´ as, han comenzado a ver la forma de inyectar conocimiento a los modelos para poder obtener nuevas reglas como lo hace Islas [16]. Por su parte Kalganova y Miller [35], comenzaron a emplear una t´ecnica para poder obtener circuitos funcionales m´ as compactos a la cual denominan err´ oneamente con el nombre de multi-objetivo. Desafortunadamente, es s´ olo una forma de dise˜ no que no implica ninguna t´ecnica multiobjetivo ya que una vez que obtienen una soluci´ on completamente funcional, comienzan a tratar de minimizarla tratando de eliminar las casillas innecesarias para el dise˜ no. Aunque ´esta forma de dise˜ no en dos etapas ya es utilizada por la mayor´ıa de los investigadores del a´rea. Actualmente Kalganova ha comenzado a dirigir sus investigaciones a lo que podr´ıa ser la direcci´on m´ as novedosa en Hardware Evolutivo, algo conocido como dise˜ no incremental que busca dise˜ nar sistemas complejos a partir de peque˜ nos componentes l´ogicos que coevolucionan1 y donde el nivel de compuertas y funciones se combinen para lograr la evoluci´ on de los circuitos a partir de peque˜ nos componentes reutilizables [34, 33].

5.

Enfoques multi-Objetivo y distribuido

Recientemente se han comenzado a emplear t´ecnicas multiobjetivo para logra reducir el esfuerzo computacional, es decir hacer en menos evaluaciones un circuito funcional [7, 30, 9]. Y otros como Ricardo Poli [28] que investiga la posibilidad de poder utilizar los mecanismos distribuidos y paralelos, para lograr obtener mejores soluciones con menos esfuerzo, buscando adem´ as obtener esquemas de diversidad. Coello et al. [7] desarrolla un modelo en el que eval´ ua por separado cada una de las 2n salidas del circuito en forma independiente, adem´ as de la salida total en conjunto, es decir se cuenta con 2n + 1 objetivos, lo que ser´ıa un esquema similar a VEGA [32]. El modelo ha resultado muy interesante ya que ha logrado reducir el esfuerzo computacional, lo que es un logro importante cuando se habla de dise˜ no evolutivo. E. de Jong, por su parte ha desarrollado ´ un modelo bastante interesante. Empleando los conceptos de Optimo de Pareto logra reducir el esfuerzo computacional en forma considerable en circuitos que cuentan con un espacio de soluci´ on especialmente dif´ıcil como es el problema del “even-n-parity”. En su articulo describe 3 objetivos a tomar en cuenta para llevar a cabo su m´etodo multiobjetivo: 1 cambios

evolutivos inducidos reciprocamente entre dos o m´ as poblaciones

4

Funcionalidad, es decir cumple con todas las salidas del circuito. Tama˜ no, aqu´ı se busca incrementar la poblaci´ on de ´ arboles con tama˜ no cercano al promedio. Diversidad, elimina los arboles funcionales que sean iguales y genera nuevos ´arboles. Este esquema le ha dado la oportunidad de desarrollar circuitos que son extremadamente dif´ıciles como el even-5-parity.

Referencias [1] R. Zebulum A. Stoica and D. Keymeulen. Mixtrinsic evolution. In J. F. Miller, A. Thompson, P. Thomson, and T. C. Fogarty, editors, Proc. of Third International Conference on Evolvable System: From Biology to Hardware (ICES 2000), pages 208–217, Edinburgh, Scotland, April 2000. SpringerVerlag. [2] R. K. Brayton, G. D. Hachtel, C. T. McMullen, and A. L. SangiovanniVincentelli. Logic Minimization Algorithms for VLSI Synthesis. Kluwer Academic Publishers, Dordrecht, The Netherlands, 1984. [3] R. K. Brayton, R. Rudell, A. Sangiovanni-Vincentelli, and A. R. Wang. Mis: A multiple-level logic optimization system. IEEE Transactions on Computer-Aided Design CAD-6, 6:1062–1081, 1987. [4] Dingjun Chen, Takafumi Aoki, Naofumi Homma, Toshiki Terasaki, and Tatsuo Higuchi. Graph-based evolutionary design of aritmetic circuit. IEEE Transactions on Evolutionary Computation, 6(1):86–100, February 2002. [5] Carlos A. Coello, Christiansen Alan D., and Arturo Hern´ andez Aguirre. Automated Design of Combinational Logic Circuits Using Genetic Algorithms. In D. G. Smith, N. C. Steele, and R. F. Albrecht, editors, Proceedings of the International Conference on Artificial Neural Nets and Genetic Algorithms, ICANNGA’97, pages 335–338, Norwich, England, April 1997. University of East Anglia. [6] Carlos A. Coello Coello. An Empirical Study of Evolutionary Techniques for Multiobjetive Optimization in Engineering Design. PhD thesis, Department of Computer Science, Tulane University, New Orleans, Louisiana, April 1996. [7] Carlos A. Coello Coello, Arturo Hern´ andez A., and Bill P. Buckles. Evolutionary Multiobjective Design of Combinational Logic Circuits. In Jason Lohn, Adrian Stoica, Didier Keymeulen, and Silvano Colombano, editors, Proceedings of the Second NASA/DoD Workshop on Evolvable Hardware, pages 161–170, Los Alamitos, California, July 2000. IEEE Computer Society. 5

[8] Carlos A. Coello Coello, Zavala G. Rosa Laura, Benito Mendoza G., and Arturo Hern´andez Aguirre. Ant Colony System for the Design of Combinational Logic Circuits. In Julian Miller, Adrian Thompson, Peter Thomson, and Terence C. Fogarty, editors, Evolvable Systems: From Biology to Hardware, pages 21–30, Edinburgh, Scotland, April 2000. [9] Edwin D. de Jong, Richard A. Watson, and Jordan B. Pollack. Reducing bloat and promoting diversity using multi-objective methods. In Lee Spector, Erik D. Goodman, Annie Wu, W. B. Langdon, Hans-Michael Voigt, Mitsuo Gen, Sandip Sen, Marco Dorigo, Shahram Pezeshk, Max H. Garzon, and Edmund Burke, editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), pages 11–18, San Francisco, California, USA, 2001. Morgan Kaufmann. [10] George J. Friedman. Selective feedback computers for engineering synthesis and nervous system analogy. Master’s thesis, University of California at Los Angeles, February 1956. [11] George J. Friedman. Digital simulation of an evolutionary process. General Systems: Yearbook of the Society for General System Research, 4:171–184, 1959. ˜ [12] T. Higuchi, T.Niwa, T. Tanaka, H. Iba, H. de Garis, and T. Furuya. Evolving hardware with genetic learning. In Proc. of Simulation of Adaptive Behaviour, pages 417–424. MIT Press, 1992. [13] Tetsuya Higuchi, Masaya Iwata, and Weixin Liu, editors. An Evolved Circuit, Intrinsic in Silicon, Entwined with Physics., Tsukuba, Japan, 1996. Springer-Verlang. [14] Tetsuya Higuchi, Masaya Iwata, and Weixin Liu, editors. Machine Learning Approach to Gate-Level Evolvable Hardware, Tsukuba, Japan, 1996. Springer-Verlang. [15] Hitoshi Iba, Masaya Iwata, and Tetsuya Higuchi. Gate-level evolvable hardware: Empirical study and application. In Dipankar Dasgupta and Zbigniew Michalewicz, editors, Evolutionary Algorithms in Engineering Applications, pages 260–275. Springer-Verlang, Berlin, Alemania, 1997. [16] Carlos A. Islas P´erez, Eduardo; Coello Coello and Hern´ andez Aguirre Arturo. Extraction of design patterns from evolutionary algorithms using case-based reasoning. In Yong Liu, Kiyoshi Tanaka, Masaya Iwata, Tetsuya Higuchi, and Moritoshi Yasunaga, editors, Evolvable Systems: From Biology to Hardware (ICES’2001), volume 2210, pages 244–255, Tokyo, Japan, October 2001. Springer-Verlag. Lecture Notes in Computer Science. [17] P. Thomson J.F. Miller. Evolving digital electronic circuits for real-valued function generation using a genetic algorithm. In John R. Koza, Wolfgang. Banzhaf, Kumar. Chellapilla, Kalyanmoy. Deb, Marco. Dorigo, David B. 6

Fogel, Max H. Garzon, David E. Goldberg, Hitoshi Iba, and Rick L. Riolo, editors, Genetic Programming 1998: Proceedings of the Third Annual Conference, pages 863–868, San Francisco, CA, July 1998. University of Wisconsin, Madison, Wisconsin, Morgan Kaufmann. [18] J. Miller Kalganova, T. and T. Fogarty. Some aspects of an evolvable hardware approach for multiple-valued combinational circuit design. In Proc. of Second International Conference on Evolvable System: From Biology to Hardware (ICES’98), pages 78–89, Lausanne, Switzerland, 1998. [19] J. Miller Kalganova, T. and N. Lipnitskaya. Multiple-valued combinational citrcuits synthesised using evolvable hardware approach. In Proc. of the 7th Workshop on Post-Binary Ultra Large Scale Integration Systems (ULSI’98) in association with ISMVL’98, Fukuoka, Japan, 1998. [20] Tatiana G. Kalganova. Evolvable Hardware Design of Combinational Logic Circuits. PhD thesis, Napier University, Edinburgh, Scotland, 2000. [21] M. Karnaugh. A map method for synthesis of combinational logic circuits. Transactions of the AIEE, Communications and Electronics, 72(I):593–599, November 1953. [22] John R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press, Cambridge, Massachusetts, 1992. [23] S. J. Louis and G. J. E. Rawlins. Designer genetic algorithms: Genetic algorithms in structure design. In Proc. of the Fourth International Conference on Genetic Algorithms, pages 53–60, San Diego, CA, 1991. [24] Sushil J. Louis. Genetic Algorithm as a Computational Tool for Design. PhD thesis, Departament of Computer Science, Indina University, August 1993. [25] E. J. McCluskey. Minimization of boolean functions. Bell Systems Technical Journal, 35(6):1417–1444, November 1956. [26] Julian F. Miller, Dominic Job, and Vesselin K. Vassilev. Principles in the evolutionary design of digital circuits-part I. Genetic Programing and Evolvaable Machines, 1(1/2):7–35, April 2000. [27] Julian F. Miller, P. Thomson, and T. Fogarty. Designing electronic circuits using evolutionary algorithms. arithmetic circuits: A case study. In D. Quagliarella, J. P´eriaux, C. Poloni, and G. Winter, editors, Genetic Algorithms and Evolution Strategy in Engineering and Computer Science, pages 105–131. Morgan Kaufmann, Chichester, England, 1997. [28] Riccardo Poli and Jonathan Page. Solving high-order boolean parity problems with smooth uniform crossover, sub-machine code gp and demes. Genetic Programming and Evolvable Machines, 1(1-2):37–56, April 2000. 7

[29] W. V. Quine. A way to simplify truth functions. American Mathematical Monthly, 62(9):627–631, November 1955. [30] Katya Rodr´ıguez-V´azquez and Peter J. Fleming. Functionality and Optimality in Circuit Design: A Genetic Programming Approach. In Proceedings of the Third International Symposium on Adaptive Systems—Evolutionary Computation and Probabilistic Graphical Models, pages 23–28, Havana, Cuba, March 19–23 2001. Institute of Cybernetics, Mathematics and Physics. [31] E. Sanchez and M. Tomassini, editors. Towards Evolvable Hardware, Lausanne, Switzerland, 1996. Swiss Federal Institute of Technology, SpringerVerlag. [32] J. David Schaffer. Multiple Objective Optimization with Vector Evaluated Genetic Algorithms. PhD thesis, Vanderbilt University, 1984. [33] Kalganova T. Bidirectional incremental evolution in evolvable hardware. In Jason Lohn, Adrian Stoica, Didier Keymeulen, and Silvano Colombano, editors, Proc. of The Second NASA/DoD Workshop on Evolvable Hardware (EH’2000), Palo Alto, California, July 2000. IEEE Computer Society. [34] Kalganova T. An extrinsic function-level evolvable hardware approach. In W. Banzhaf R. Poli, editor, Proc. of the Third European Conference on Genetic Programming, EuroGP2000, Edinburgh, UK., 2000. SpringerVerlag. [35] Kalganova T. and J. Miller. Evolving more efficient digital circuits by allowing circuit layout evolution and multi-objective fitness. In Adrian Stoica, Didier Keymeulen, and Jason Lohn, editors, Proc. of The First NASA/DoD Workshop on Evolvable Hardware (EH’1999), California, July 1999. IEEE Computer Society. [36] Adrian Thompson. Notes on design through artificial evolution: Opportunities and algorithms. Adaptive computing in design and manufacture (plenary paper), 2002.

8