You are on page 1of 144

CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITECNICO NACIONAL DEPARTAMENTO DE INGENIER ELECTRICA IA DE COMPUTACION SECCION

Dise o de circuitos lgicos combinatorios n o usando optimizacin mediante c mulos de o u part culas
Tesis que presenta Erika Hernndez Luna a Para obtener el grado de Maestro en Ciencias En la especialidad de Ingenier Elctrica a e Opcin Computacin o o

Director de Tesis: Dr. Carlos A. Coello Coello Mxico, D.F., febrero 2004 e

Resumen
En esta tesis se propone un algoritmo para el dise o y la posterior optin mizacin de circuitos lgicos combinatorios a nivel de compuertas usando un o o algoritmo de optimizacin mediante c mulos de part o u culas y tres enfoques de representacin distintos: binaria, entera A y entera B . A pesar de que o existen muchos criterios para determinar cual es el diseo de costo m n nimo de un circuito, en este trabajo se utiliza una mtrica basada en el n mero de e u compuertas necesarias para la implementacin en hardware del circuito. o El algoritmo de optimizacin mediante c mulos de part o u culas (Particle Swarm Optimization PSO) es una tcnica de optimizacin numrica de fune o e ciones no lineales que se encuentra inuenciada fuertemente por algunas otras corrientes como vida articial, psicolog social, ingenier y ciencias de la a a computacin, que ha conseguido su xito gracias a que tiene un bajo costo o e computacional, una fcil implementacin y un excelente desempe o. a o n Las tcnicas evolutivas han sido sumamente utiles en el proceso de dise o e n de circuitos electrnicos debido a su poder exploratorio, pues al contar con o una poblacin de soluciones potenciales permiten evaluar diversas regiones o del espacio de dise o. n Tambin se ha visto a los largo de los aos que el dise o de circuitos e n n mediante las metodolog tradicionales es un proceso complejo que requieas re de tiempo y experiencia por parte del diseador humano, por lo que se n pretende que al utilizar tcnicas evolutivas puedan hallarse diseos que son e n radicalmente diferentes que los encontrados hasta el momento por estos dise adores. n El PSO ha utilizado una representacin binaria y frecuentemente una reo presentacin real para codicar las soluciones de los problemas, sin embargo o en este trabajo adems de presentarse una versin binaria, se hicieron los a o ajustes necesarios para presentar tambin una propuesta basada en dos enfoe ques distintos de una versin entera del algoritmo de optimizacin mediante o o c mulos de part u culas para el dise o de circuitos lgicos combinatorios a nivel n o de compuertas. Los dos enfoques de la representacin entera y el de la versin binaria o o del algoritmo propuesto se validaron usando algunos ejemplos tomados de la literatura y comparados contra otros tres enfoques: el diseo realizado por n un experto humano, el dise o resultante de aplicar el algoritmo gentico de n e cardinalidad N (NGA), y el dise o obtenido aplicando el algoritmo gentico n e multiobjetivo (MGA). iii

iv

Abstract
This thesis presents an algorithm for the design and the optimization of combinational logic circuits at gate-level using a particle swarm optimization algorithm and three dierent representation approaches: binary, integer A and integer B. Although there are many criteria to determine the minimalcost circuit design, in this work we used a metric based on the number of gates necessaries for the hardware implementation of the circuit. The Particle Swarm Optimization (PSO) algorithm is a numerical optimization technique for nonlinear functions that is strongly inuenced by other areas such as articial life, social psychology and computer science. PSO has been very successful because it has a low computacional cost, an easy implementation and an excellent performance. Evolutionary techniques have been very useful for designing electronic circuits due to their exploratory power, since they operate using a population of potential solutions which can evaluate several regions of design space at the same time. It has been seen along the years that designing logic circuits using traditional techniques is a complex process which requires considerable time and whose success depends on the human designers experience. Because of that, we propose the use of evoluationary techniques to nd circuits which, are often radically dierent from those typically found by human designers. PSO has been used sometimes with a binary representation and more often with a real numbers encoding. However in this thesis we present two integer approaches besides the binary version of the particle swarm optimization algorithm, which are intended for designing combinational logic circuits. The binary version and the two integer approaches of the proposed algorithm are validated using several examples taken from the specialized literature and are compared against human designers, the n-cardinality genetic algorithm (NGA) and the multiobjective genetic algorithm (MGA).

vi

Agradecimientos

A Gelus y a Manolo por haber guiado mis pasos para llegar hasta aqu y en el camino darme a probar el sabor del triunfo y ense arme a no querer n abandonarlo nunca. A Sandy y a Isra por estar siempre conmigo y por el gran apoyo que me han brindado incluso cuando ni siquiera sab que lo necesitaa ba. A mi querido Daniel porque cuando estamos juntos todo parece ser mejor. A mis seres queridos y a todos aquellos que han inuido en mi vida a lo largo de mis a os de estudio y que con sus acertadas palabras me condujeron n por el mejor camino. Al Dr. Coello por sus invaluables consejos y por ser una fuente de inspiracin que motiva a seguir siempre adelante. o A CONACyT por el apoyo otorgado a travs de la beca proporcionada e durante mi estancia en el programa de maestr y a travs del proyecto titulaa e do Estudio y Desarrollo de Tcnicas Avanzadas de Manejo de Restricciones e para Algoritmos Evolutivos en el Contexto de Optimizacin Numrica (Ref. o e 32999-A), cuyo responsable es el Dr. Carlos A. Coello Coello.

vii

viii

Contenido
1. Introduccin o 2. Circuitos lgicos combinatorios o 2.1. Algebra booleana . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Tablas de verdad . . . . . . . . . . . . . . . . . . 2.1.2. Compuertas lgicas . . . . . . . . . . . . . . . . . o 2.1.3. Postulados, leyes y teoremas del algebra booleana 2.2. Formas Estndar . . . . . . . . . . . . . . . . . . . . . . a 2.2.1. Minitrminos y maxitrminos . . . . . . . . . . . e e 2.2.2. Suma de productos . . . . . . . . . . . . . . . . . 2.2.3. Producto de sumas . . . . . . . . . . . . . . . . . 2.3. Procedimiento de diseo de circuitos lgicos . . . . . . . n o 2.4. Planteamiento formal del problema de diseo de circuitos n 2.5. Simplicacin de circuitos lgicos . . . . . . . . . . . . . o o 2.5.1. Simplicacin algebraica . . . . . . . . . . . . . . o 2.5.2. Mapas de Karnaugh . . . . . . . . . . . . . . . . 2.5.3. Mtodo de Quine-McCluskey . . . . . . . . . . . e 2.5.4. Tcnicas evolutivas . . . . . . . . . . . . . . . . . e 3. Conceptos bsicos a 3.1. Optimizacin . . . . . . . . . . . . . . . . . . . . o 3.1.1. Optimizacin con y sin restricciones . . . . o 3.1.2. Optimizacin global y local . . . . . . . . o 3.1.3. Optimizacin estocstica y determin o a stica 3.1.4. Algoritmos de optimizacin . . . . . . . . o 3.2. Computacin evolutiva . . . . . . . . . . . . . . . o 3.2.1. Programacin evolutiva . . . . . . . . . . . o 3.2.2. Estrategias evolutivas . . . . . . . . . . . . ix 1 5 6 7 8 12 14 14 17 17 18 19 20 21 22 27 31 37 37 37 38 38 39 39 40 41

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Contenido 3.2.3. Algoritmos genticos . . . . . . . . . . . . . . . . . e 3.3. Algoritmo de optimizacin mediante c mulos de part o u culas 3.3.1. Algoritmo de PSO binario . . . . . . . . . . . . . . 3.3.2. Algoritmo de PSO real . . . . . . . . . . . . . . . . 3.3.3. Parmetros del PSO . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . 41 41 44 47 48 51 51 54 55 57 58

4. Descripcin de la tcnica o e 4.1. Representacin de los circuitos lgicos . . . . . . . . . . . . . o o 4.1.1. Representacin interna de las celdas . . . . . . . . . . o 4.1.2. Cardinalidad . . . . . . . . . . . . . . . . . . . . . . 4.2. Evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 4.3. Obtencin de expresiones booleanas . . . . . . . . . . . . . . o 4.4. Algoritmo de optimizacin mediante c mulos de part o u culas para el dise o de circuitos lgicos combinatorios . . . . . . . . n o 4.5. Mutacin uniforme . . . . . . . . . . . . . . . . . . . . . . . o 4.6. Funcin de aptitud . . . . . . . . . . . . . . . . . . . . . . . o 5. Circuitos de una salida 5.1. Experimentos . . . . 5.2. Ejemplo 1 . . . . . . 5.3. Ejemplo 2 . . . . . . 5.4. Ejemplo 3 . . . . . . 5.5. Ejemplo 4 . . . . . . 5.6. Ejemplo 5 . . . . . . 5.7. Ejemplo 6 . . . . . . 5.8. Ejemplo 7 . . . . . . 5.9. Ejemplo 8 . . . . . . 5.10. Ejemplo 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 60 . 63 . 64 . . . . . . . . . . 67 68 72 75 78 81 84 87 90 93 96

6. Circuitos de mltiples salidas u 6.1. Ejemplo 1 . . . . . . . . . . 6.2. Ejemplo 2 . . . . . . . . . . 6.3. Ejemplo 3 . . . . . . . . . . 6.4. Ejemplo 4 . . . . . . . . . . 7. Conclusiones y trabajo futuro Bibliograf a

101 . 102 . 105 . 108 . 112 117 121

Lista de tablas
2.1. Tabla de verdad para dos variables de entrada. . . . . . . . . . 2.2. Distintos s mbolos y terminolog para la operacin AND. . . a o 2.3. Tabla de verdad de la compuerta AND. . . . . . . . . . . . . . 2.4. Distintos s mbolos y terminolog para la operacin OR. . . . a o 2.5. Tabla de verdad de la compuerta OR. . . . . . . . . . . . . . . 2.6. Tabla de verdad de la compuerta NOT. . . . . . . . . . . . . . 2.7. Tabla de verdad de la compuerta XOR. . . . . . . . . . . . . . 2.8. Minitrminos de tres variables. . . . . . . . . . . . . . . . . . . e 2.9. Maxitrminos de tres variables. . . . . . . . . . . . . . . . . . e 2.10. Equivalencia entre una suma de minitrminos y un producto e de maxitrminos. . . . . . . . . . . . . . . . . . . . . . . . . . e 2.11. Agrupacin de trminos para encontrar los implicantes primos o e de la funcin S = (0, 1, 2, 5, 6, 7, 8, 9, 10, 14). . . . . . . . . . o 2.12. Resultado de la comparacin y combinacin de trminos en o o e grupos adyacentes de la tabla 2.12. . . . . . . . . . . . . . . . 2.13. Resultado de la comparacin y combinacin de trminos en o o e grupos adyacentes de la tabla 2.12. . . . . . . . . . . . . . . . 2.14. Diagrama de implicantes primos de las tablas 2.11, 2.12 y 2.13 2.15. Resultado de la inclusin de los implicantes primos esenciales o en la suma m nima. . . . . . . . . . . . . . . . . . . . . . . . . 5.1. Tabla de verdad del ejemplo 1. . . . . . . . . . . . . . . . . . 5.2. Anlisis comparativo de 20 corridas del ejemplo 1. . . . . . . a 5.3. Comparacin de resultados entre el PSO, un dise ador humao n no, el MGA y el NGA para el ejemplo 1. . . . . . . . . . . . 5.4. Tabla de verdad del ejemplo 2. . . . . . . . . . . . . . . . . . 5.5. Anlisis comparativo de 20 corridas del ejemplo 2. . . . . . . a 5.6. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 2. . . . . . . . . . . . . . . . . xi 7 8 8 9 9 10 11 15 15 16 28 29 29 30 31

. 72 . 73 . 74 . 75 . 76 . 77

xii

Lista de tablas 5.7. Tabla de verdad del ejemplo 3. . . . . . . . . . . . . . . . . . 5.8. Anlisis comparativo de 20 corridas del ejemplo 3. . . . . . . a 5.9. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 3. . . . . . . . . . . . . . . . . 5.10. Tabla de verdad del ejemplo 4. . . . . . . . . . . . . . . . . . 5.11. Anlisis comparativo de 20 corridas del ejemplo 4. . . . . . . a 5.12. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 4. . . . . . . . . . . . . . . . . 5.13. Tabla de verdad del ejemplo 5. . . . . . . . . . . . . . . . . . 5.14. Anlisis comparativo de 20 corridas del ejemplo 5. . . . . . . a 5.15. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 5. . . . . . . . . . . . . . . . . 5.16. Tabla de verdad del ejemplo 6. . . . . . . . . . . . . . . . . . 5.17. Anlisis comparativo de 20 corridas del ejemplo 6. . . . . . . a 5.18. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 6. . . . . . . . . . . . . . . . . 5.19. Tabla de verdad del ejemplo 7. . . . . . . . . . . . . . . . . . 5.20. Anlisis comparativo de 20 corridas del ejemplo 7. . . . . . . a 5.21. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 7. . . . . . . . . . . . . . . . . 5.22. Tabla de verdad del ejemplo 8. . . . . . . . . . . . . . . . . . 5.23. Anlisis comparativo de 20 corridas del ejemplo 8. . . . . . . a 5.24. Comparacin de resultados entre el PSO, un dise ador humao n no, el MGA y el NGA para el ejemplo 8. . . . . . . . . . . . 5.25. Tabla de verdad del ejemplo 9. . . . . . . . . . . . . . . . . . 5.26. Anlisis comparativo de 20 corridas del ejemplo 9. . . . . . . a 5.27. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 9. . . . . . . . . . . . . . . . . 6.1. Tabla de verdad del ejemplo 1. . . . . . . . . . . . . . . . . . 6.2. Anlisis comparativo de 20 corridas del ejemplo 1. . . . . . . a 6.3. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 1. . . . . . . . . . . . . . . . . 6.4. Tabla de verdad del ejemplo 2. . . . . . . . . . . . . . . . . . 6.5. Anlisis comparativo de 20 corridas del ejemplo 2. . . . . . . a 6.6. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 2. . . . . . . . . . . . . . . . . 6.7. Tabla de verdad del ejemplo 3. . . . . . . . . . . . . . . . . . . 78 . 79 . 80 . 81 . 82 . 83 . 84 . 85 . 86 . 87 . 88 . 89 . 90 . 91 . 92 . 93 . 94 . 95 . 96 . 97 . 98 . 102 . 103 . 104 . 105 . 106 . 107 . 109

Lista de tablas 6.8. Anlisis comparativo de 20 corridas del ejemplo 3. . . . . . . a 6.9. Comparacin de resultados entre el PSO, un dise ador humao n no y el MGA para el ejemplo 3. . . . . . . . . . . . . . . . . 6.10. Tabla de verdad del ejemplo 4. . . . . . . . . . . . . . . . . . 6.11. Anlisis comparativo de 20 corridas del ejemplo 4. . . . . . . a 6.12. Comparacin de resultados entre el PSO, un dise ador humao n no, el MGA y el NGA para el ejemplo 4. . . . . . . . . . . .

xiii . 110 . 111 . 113 . 114 . 114

xiv

Lista de tablas

Lista de guras
2.1. Ejemplo de una expresin booleana. . . . . . . . . . . . . . . . o 2.2. Compuerta AND de dos entradas. . . . . . . . . . . . . . . . . 2.3. Compuerta OR de dos entradas. . . . . . . . . . . . . . . . . . 2.4. Compuerta NOT. . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Compuerta XOR de dos entradas. . . . . . . . . . . . . . . . . 2.6. Ejemplo de una suma de productos. . . . . . . . . . . . . . . . 2.7. Diagrama de circuito de una suma de productos (SOP). . . . . 2.8. Ejemplo de un producto de sumas. . . . . . . . . . . . . . . . 2.9. Diagrama de circuito de un producto de sumas (POS). . . . . 2.10. Ejemplo de funciones booleanas equivalentes. . . . . . . . . . . 2.11. Ejemplo de un diagrama de circuito y su expresin booleana. . o 2.12. Diagrama de circuito y su expresin booleana simplicada. . . o 2.13. Mapa de Karnaugh de dos variables. (a)Forma general. (b) Mapa de S = A B + A B = (0, 1) = (2, 4) . . . . . . . . . 2.14. Mapa de Karnaugh de tres variables. (a)Forma general. (b) Mapa de S = A B C +A B C+A BC+AB C = (0, 1, 3, 4) = (2, 5, 6, 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.15. Mapa de Karnaugh de cuatro variables. (a)Forma general. (b) Mapa de S = A B C +A B C+A BC+AB C = (0, 1, 3, 4) = (2, 5, 6, 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.16. Adyacencia de celdas en los extremos de un mapa de cuatro variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.17. Mapa de Karnaugh de cuatro variables con agrupamientos de 1, 2, 4 y 8 celdas. . . . . . . . . . . . . . . . . . . . . . . . . . 2.18. Representacin de matriz para el dise o de circuitos lgicos. . o n o 6 9 10 10 11 17 18 18 19 21 21 22 23

24

25 26 26 33

3.1. Algoritmo general de la programacin evolutiva. . . . . . . . . 40 o 3.2. Algoritmo general de las estrategias evolutivas. . . . . . . . . . 41 3.3. Algoritmo general de los algoritmo genticos. . . . . . . . . . . 42 e xv

xvi

Lista de guras . 44 . 44 . 46 . 48 . 49 . 50 52 53 54 54 55 56 57 58 59 59 61 63 64 65 66

3.4. Modelo Gbest del PSO. . . . . . . . . . . . . . . . . . . . . . 3.5. Modelo Lbest del PSO. . . . . . . . . . . . . . . . . . . . . . 3.6. Versin binaria del algoritmo de optimizacin mediante cmuo o u los de part culas. . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Versin real del algoritmo de optimizacin mediante c mulos o o u de part culas. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8. Efecto de la eliminacin del parmetro Vmax en el algoritmo o a de PSO [23]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9. Efecto de la variacin del parmetro en el algoritmo de PSO o a [23]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9.

Representacin de matriz para el dise o de circuitos lgicos. . o n o 75 Matriz de 5 5 con un espacio de bsqueda de 5 . . . . . . . u Distintos tipos de representacin. . . . . . . . . . . . . . . . . o Una tercia de la matriz con representacin entera. . . . . . . . o Una tercia de la matriz con representacin binaria. . . . . . . o Uso de una cardinalidad de dos para la seleccin de celdas . . o Entradas a las celdas de la matriz. . . . . . . . . . . . . . . . . Matriz de ejemplo para la obtencin de la expresin booleana. o o Arbol de derivacin para la salida S0 de la expresin booleana o o en notacin preja de la matriz mostrada en la gura 4.8. . . . o 4.10. Derivacin completa de la expresin booleana para la salida o o S0 a partir de la matriz de la gura 4.8. . . . . . . . . . . . . . 4.11. Pseudocdigo del algoritmo de optimizacin mediante c mulos o o u de part culas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.12. Ejemplo del funcionamiento de la representacin entera A y o entera B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.13. Ejemplo de mutacin uniforme sobre una representacin entera. o o 4.14. Aptitud de una solucin no factible. . . . . . . . . . . . . . . . o 4.15. Aptitud de una solucin factible. . . . . . . . . . . . . . . . . o 5.1. Archivo con formato blif. . . . . . . . . . . . . . . . . . . . . 5.2. Programa en lenguaje Scheme que evala la expresin booleau o na obtenida del archivo blif de la gura 5.1. . . . . . . . . . 5.3. Grca de convergencia del ejemplo 1 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 1. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 69 . 71 . 73 . 74

Lista de guras 5.5. Grca de convergencia del ejemplo 2 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. Grca de convergencia del ejemplo 3 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9. Grca de convergencia del ejemplo 4 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11. Grca de convergencia del ejemplo 5 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.13. Grca de convergencia del ejemplo 6 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.14. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.15. Grca de convergencia del ejemplo 7 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.16. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17. Grca de convergencia del ejemplo 8 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.19. Grca de convergencia del ejemplo 9 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.20. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 9. . . . . . . . . . . . . . . . . . . . . . . . . . . .

xvii

. 76 . 77 . 79 . 80 . 82 . 83 . 85 . 86 . 88 . 89 . 91 . 92 . 94 . 95 . 98 . 99

6.1. Grca de convergencia del ejemplo 1 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.2. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

xviii

Lista de guras

6.3. Grca de convergencia del ejemplo 2 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Grca de convergencia del ejemplo 3 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7. Grca de convergencia del ejemplo 4 de la corrida ubicada en a la mediana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8. Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 4. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. 107 . 108 . 110 . 112 . 115 . 115

Cap tulo 1 Introduccin o


La produccin de circuitos electrnicos es un proceso que demanda cao o da vez dise os mejores y ms complejos, debido a las tecnolog actuales n a as de fabricacin. Sin embargo, tradicionalmente en el proceso de diseo se han o n adoptado tcnicas que utilizan un conjunto de reglas y principios que adems e a de haber existido durante dcadas dependen de la habilidad del dise ador y e n no aseguran llegar al diseo optimo. El dise o de circuitos lgicos combin n o natorios (no secuenciales) es un problema particular del diseo de circuitos n electrnicos que tiene una complejidad tal que ha permanecido como un proo blema de investigacin abierto a lo largo del tiempo. o El objetivo principal en el proceso de dise o de circuitos lgicos combinan o torios es encontrar la expresin que proporcione el comportamiento deseado o y que adems minimice un cierto criterio. En el caso de este trabajo de tea sis el criterio a minimizarse es el costo del circuito, medido en trminos del e n mero necesario de compuertas para un diseo dado. Existen muchos criteu n rios para determinar cul es esta expresin de costo m a o nimo. Sin embargo, un circuito lgico es una implementacin en hardware de una funcin booleana o o o y la reduccin del n mero de literales de cada trmino reduce el n mero de o u e u entradas de cada compuerta logrando con ello la reduccin del n mero de o u compuertas necesarias y por tanto la complejidad del circuito. Las tcnicas evolutivas han sido aplicadas al diseo de circuitos [8, 31], e n codicando los posibles dise os en genotipos a partir de los cuales se consn truyen los circuitos o fenotipos. Estas tcnicas han resultado muy utiles en e el dise o de circuitos lgicos combinatorios debido a su poder exploratorio, n o pues al contar con una poblacin de soluciones potenciales permiten evao luar diversas regiones del espacio de diseo. El area dedicada al estudio y n 1

Introduccin o

aplicacin de tcnicas evolutivas para el dise o de circuitos electrnicos es o e n o el hardware evolutivo [39, 19, 42] el cual est inuenciado por otras areas, a principalmente ciencias de la computacin, biolog e ingenier electrnica. o a a o El hardware evolutivo puede dividirse en dos grupos principales de acuerdo a la forma en que se dise an y prueban los circuitos: n Evolucin intr o nseca: Es el proceso evolutivo en el cual cada fenotipo es contru y probado en hardware recongurable1 . do Evolucin extr o nseca: Utiliza un modelo de hardware y evala los u fenotipos en software (simulacin). o En este trabajo se utiliz la tcnica evolutiva denominada Optimizacin o e o mediante cmulos de partculas (Particle swarm optimization - PSO) [21] que u es uno de los algoritmos de la llamada inteligencia colectiva (swarm intelligence en ingls) [3] que se reere a aquellas tcnicas de b squeda inspiradas e e u en el comportamiento colectivo de las colonias de insectos y de algunas otras sociedades de animales. El PSO tiene como idea principal simular el movimiento de un grupo de aves que buscan comida. En esta simulacin, el comportamiento de cao da individuo est afectado por un factor individual y uno social. El factor a individual se reere a las decisiones que ha tomado el individuo y que han funcionado mejor (en trminos de su aptitud) y que afectarn las nuevas e a decisiones que pueda tomar. El factor social se reere a las decisiones que han tomado el resto de los individuos de la poblacin (dentro de un cierto o vecindario) que han funcionado mejor y que afectarn las nuevas decisiones a tomadas por los individuos en el vecindario. Cada individuo o part cula contiene su posicin actual en el espacio de b squeda, su velocidad actual y la o u mejor posicin encontrada por el individuo hasta este punto de la bsqueda o u (el factor individual) [23]. Este trabajo de tesis se encuentra dentro del ambito de la evolucin ex o tr nseca del hardware evolutivo al dise ar circuitos lgicos combinatorios a n o nivel de compuertas (slo utilizando las funciones AND, OR, NOT y XOR) o mediante la tcnica evolutiva de PSO. e En el cap tulo 2 se da una introduccin a la teor de circuitos lgicos o a o combinatorios y el proceso de dise o. Tambin se describen algunas de las n e
Sistemas cuyo hardware puede modicarse de manera que se adapte a nuevas condiciones del mismo o a distintas aplicaciones.
1

Introduccin o

distintas tcnicas tradicionalmente usadas para el dise o de circuitos lgicos e n o como los mapas de Karnaugh y el mtodo de Quine-McCluskey, adems de e a algunos otros enfoques evolutivos como el algoritmo gentico de cardinalidad e N y el algoritmo gentico multiobjetivo. e En el cap tulo 3 se presenta un panorama de lo que son los problemas de optimizacin en ingenier y su importancia. Despus se da un breve repaso o a e de lo que es la computacin evolutiva, los trminos ms importantes y sus o e a principales paradigmas para despus dar una descripcin del algoritmo de e o optimizacin mediante c mulos de part o u culas. En el cap tulo 4 se describe la tcnica propuesta para resolver el diseo de e n circuitos lgicos combinatorios detallando cada uno de los elementos que la o componen como la representacin, la evaluacin y obtencin de expresiones o o o booleanas, el algoritmo utilizado y la funcin de aptitud. o En el cap tulo 5 se muestran los resultados obtenidos por la tcnica proe puesta a travs de una serie de experimentos realizados con circuitos lgicos e o combinatorios de una sola salida. Se presentan las tablas de verdad de los circuitos de los experimentos, tablas comparativas de las tres representaciones (binaria, entera A y entera B) donde se eval a tambin el desempe o contra u e n otras tcnicas evolutivas adems de los diagramas lgicos y las expresiones e a o booleanas en notacin preja de los mejores circuitos encontrados. o En el cap tulo 6 se discuten los resultados obtenidos por la tcnica para e experimentos con circuitos de m ltiples salidas. La estructura de este cap u tulo es similar a la del cap tulo 5 ya que se presentan tambin las tablas de e verdad de los circuitos que se estn probando, las tablas comparativas y los a diagramas lgicos con la expresin booleana correspondiente de los mejores o o circuitos encontrados. Por ultimo, en el cap tulo 7 se dan las conclusiones acerca de los resultados obtenidos as como algunas ideas para realizar algunos trabajos posteriores y que pudieran mejorar el desempeo del algoritmo presentado. n

Introduccin o

Cap tulo 2 Circuitos lgicos combinatorios o


Un sistema digital es una combinacin de dispositivos diseada para mao n nipular variables que solamente tomen valores discretos. Un circuito lgico o combinatorio es un sistema digital que opera en modo binario, es decir que los valores que pueden existir slo son el 1 y el 0, adems de que en cualo a quier instante de tiempo la salida depende unicamente de los niveles lgicos o presentes a la entrada. En 1854, George Boole publica su libro titulado Las leyes del pensamiento en el que aproxim la lgica en una nueva direccin reducindola o o o e a una algebra simple llamada desde entonces algebra booleana. Sin embargo fue hasta 1937 que Claude Shannon de los Laboratorios Bell llev a cabo el o enlace entre la lgica y la electrnica [37, 11]. Shannon demostr cmo las o o o o operaciones booleanas elementales se pod representar mediante circuitos an conmutados elctricos, y cmo la combinacin de circuitos pod representar e o o a operaciones aritmticas y lgicas complejas. Posteriormente formaliz toda e o o la estructura matemtica para que los ingenieros pudieran aplicar la teora a a la prctica. a Bsicamente, el algebra booleana consiste en un mtodo para resolver a e problemas de lgica y que recurre slo a los valores binarios 0 y 1 y a tres o o operaciones bsicas: AND, OR y NOT. Como ya se mencion, los circuitos a o lgicos combinatorios tienen la caracter o stica de ser binarios por lo que es posible utilizar esta algebra como herramienta para su anlisis y dise o. a n 5

1. Circuitos lgicos combinatorios o

2.1.

Algebra booleana

El lgebra booleana trata principalmente con constantes, variables y opea raciones lgicas y su principal diferencia con respecto al lgebra tradicional o a es que en este caso se utilizan variables y constantes binarias, es decir que slo pueden tomar el valor de 0 o de 1. Estos dos valores con frecuencia reo presentan el nivel de voltaje presente en un determinado lugar del circuito, es decir que no representan n meros sino el estado de una variable de voltaje, u mejor conocido como nivel lgico. Debido a que slo existen dos valores, el o o a lgebra booleana es ms fcil de manejar que el lgebra ordinaria ya que no a a a se tiene que lidiar con n meros decimales, n meros negativos, logaritmos, u u n meros imaginarios, etc., de hecho slo cuenta con tres operaciones lgicas u o o bsicas: a 1. Adicin lgica: Tambin conocida como operacin OR. El s o o e o mbolo ms a com n para esta operacin es el (+). La salida ser 1 si alguna de las u o a variables es igual a 1. 2. Multiplicacin lgica: Se le conoce tambin como operacin AND. El o o e o s mbolo de esta operacin es el (). La salida ser 1 slo cuando ambas o a o variables sean iguales a 1. 3. Complemento: Conocida como operacin de inversin o NOT. Su s o o mbolo es el ( ). Como su nombre lo indica, la salida siempre ser la inversa a del valor de la variable de entrada, es decir que si a la entrada existe un valor 1, a la salida se tendr el valor 0. a En el lgebra booleana existen funciones booleanas (ver gura 2.1) que a expresan la relacin lgica entre las variables binarias y constan de una expreo o sin algebraica formada por variables binarias, constantes 0 o 1 y los smbolos o de operacin lgica. Estas expresiones son muy utiles para la manipulacin o o o de variables lgicas y para expresar el funcionamiento de un circuito digital o para determinados valores de entrada [40]. f = AB + BC Figura 2.1: Ejemplo de una expresin booleana. o

Algebra booleana

Expl citamente, el lgebra booleana b(A) de un conjunto A es el conjunto a de subconjuntos de A que pueden ser obtenidos mediante la aplicacin de un o n mero nito de operaciones del conjunto union (OR), interseccin (AND) u o y complemento (NOT) y en donde cada uno de los elementos de b(A) es una funcin booleana. El algebra booleana tambin forma una lattice ya que un o e a lgebra L es llamada una lattice cuando L es un conjunto no vac y adems o a existen dos operaciones binarias sobre L, y tales que son idempotentes, conmutativas y asociativas adems de satisfacer las leyes de absorcin (las a o cuales se explicarn en la seccin 2.1.3). a o

2.1.1.

Tablas de verdad

Una tabla de verdad o de combinaciones (ver tabla 2.1) es un mtodo e grco para representar todos los posibles valores de las variables y mosa trar los resultados de la operacin deseada. Es decir, que en estas tablas se o muestra la forma en que la salida del circuito se comportar con las diversas a combinaciones de los niveles lgicos a la entrada [40, 11]. o

A 0 0 1 1

B S 0 1 1 0 0 0 1 0

Tabla 2.1: Tabla de verdad para dos variables de entrada. El tama o de la tabla depende directamente del n mero de variables de n u entrada al circuito. Si por ejemplo se tienen dos valores de entrada, existen entonces cuatro posibles combinaciones como puede verse en la tabla 2.1. La relacin existente entre variables y combinaciones puede expresarse mediante o la ecuacin 2.1. o
N umero de combinaciones = 2N umero de variables booleanas

(2.1)

Debido a sus caracter sticas, las tablas de verdad son utiles para repre sentar el dise o de un circuito lgico. n o

1. Circuitos lgicos combinatorios o

2.1.2.

Compuertas lgicas o

Las compuertas lgicas son circuitos electrnicos que implementan en o o hardware operaciones lgicas del algebra booleana y que operan con una o o ms se ales de entrada para generar una se al de salida [27]. Cualquier a n n circuito lgico, por muy complejo que sea, puede ser realizado con las tres o compuertas bsicas AND, OR y NOT. Sin embargo, existen algunas cona guraciones que se presentan muy frecuentemente y a las que, por ende, se les ha asignado un nombre y s mbolo propio. Compuerta AND La compuerta AND implementa la multiplicacin lgica, la cual puede o o ser representada mediante diferentes s mbolos y terminolog como puede as verse en la tabla 2.2. Nombre S mbolo AND Multiplicacin booleana o Interseccin o Conjuncin o Tabla 2.2: Distintos s mbolos y terminolog para la operacin AND. a o

A B 0 0 0 1 1 0 1 1

S = AB 0 0 0 1

Tabla 2.3: Tabla de verdad de la compuerta AND. En la tabla 2.3 se muestra la tabla de verdad de la operacin AND de o dos variables de entrada y como puede verse, la operacin AND proporciona o un valor de 1 cuando la variable A y la variable B toman un valor de 1 y es 0 en cualquier otro caso.

Algebra booleana

Se puede decir entonces que la operacin AND es exactamente igual que o hacer una multiplicacin ordinaria, en donde el resultado ser 0 siempre que o a alguna de las variables que se multiplica tome este valor. Es decir que la compuerta AND tendr un valor de 1 a la salida slo cuando todas las variables a o de entrada sean igual a 1. El s mbolo para representar una compuerta AND en el diagrama de un circuito lgico y la expresion booleana a su salida se o muestra en la gura 2.2.
A B

S = AB

Figura 2.2: Compuerta AND de dos entradas. Compuerta OR La compuerta OR implementa la operacin de adicin lgica y al igual o o o que la compuerta AND existen diversos trminos y s e mbolos para representar a esta funcin, como muestra la tabla 2.4. o

Nombre S mbolo OR + Adicin booleana o + Unin o Disyuncin o Tabla 2.4: Distintos s mbolos y terminolog para la operacin OR. a o

A 0 0 1 1

B S=A+B 0 0 1 1 0 1 1 1

Tabla 2.5: Tabla de verdad de la compuerta OR.

10

1. Circuitos lgicos combinatorios o

La tabla de verdad de la operacin OR se muestra en la tabla 2.5. Como o puede observarse, para esta funcin la salida ser 1 siempre que alguna de o a las variables de entrada tome el valor de 1. En cualquier otro caso el valor de salida ser 0. Dicho de otra forma, la salida de la compuerta OR ser 0 a a slo cuando todas las variables de entrada sean 0. La gura 2.3 muestra la o representacin de la compuerta OR en un diagrama de un circuito lgico y o o la expresin booleana a su salida. o
A B

S = A+B

Figura 2.3: Compuerta OR de dos entradas. Compuerta NOT La compuerta NOT es mejor conocida como inversor e implementa la operacin de complemento como muestra la tabla 2.6. o A S = A 0 1 1 0 Tabla 2.6: Tabla de verdad de la compuerta NOT. La tabla de verdad de la compuerta NOT muestra que en esta operacin o slo se tiene una variable de entrada, la cual tendr como salida el nivel lgio a o co contrario al nivel lgico de entrada, es decir que si a la entrada se tiene o el valor de 1, a la salida se tendr un 0 y viceversa. La gura 2.4 muestra la a representacin de la compuerta NOT en un diagrama de un circuito lgico y o o la expresin booleana a su salida. o

S = A

Figura 2.4: Compuerta NOT.

Algebra booleana Compuerta XOR

11

La compuerta XOR tambin es conocida como compuerta OR-exclusiva e y no implementa una operacin bsica del algebra booleana. A pesar de eso o a se presenta frecuentemente en los sistemas digitales y por ello es util en el dise o e implementacin de circuitos lgicos. La tabla 2.7 muestra la tabla n o o de verdad de la compuerta XOR. A B 0 0 0 1 1 0 1 1 S = AB 0 1 1 0

Tabla 2.7: Tabla de verdad de la compuerta XOR. Se puede ver en la tabla de verdad de la compuerta XOR que esta operacin detecta cuando las variables de entrada tiene valores diferentes, ya o que cuando los niveles lgicos de las entradas son opuestos se tiene un 1 a la o salida, mientras que cuando los dos niveles lgicos son iguales, se tiene un 0. o En la ecuacin 2.2 se muestra la funcin booleana de la compuerta XOR en o o trminos de las operaciones bsicas del algebra booleana. e a S = A B + AB = A B (2.2)

Debido a que la conguracin de compuertas de la ecuacin 2.2 se preo o senta muy a menudo se le ha asignado una representacin espec o ca para los diagramas de circuitos adems de un s a mbolo particular, los cuales se muestra en la gura 2.5.

A B

S=A

Figura 2.5: Compuerta XOR de dos entradas.

12

1. Circuitos lgicos combinatorios o

2.1.3.

Postulados, leyes y teoremas del lgebra booleaa na

Los postulados, leyes y teoremas booleanos sirven para poder simplicar las expresiones booleanas que representan un circuito lgico y en consecueno cia requerir un menor n mero de compuertas para su implementacin. u o Postulados Los postulados describen el comportamiento de las operaciones bsicas a del lgebra booleana [11]. a 1. a) 0 0 = 0 b) 1 + 1 = 1 2. a) 1 1 = 1 b) 0 + 0 = 0 3. a) 1 0 = 0 1 = 0 b) 0 + 1 = 1 + 0 = 1 4. a) 0 = 1 b) 1 = 0 Leyes Las tres leyes bsicas del algebra booleana [11] se presentan a continuaa cin: o 1. Ley Conmutativa : Esta ley establece que no importa el orden en que se eval en las operaciones AND y OR de dos variables ya que el resultado u es el mismo. a) A B = B A b) A + B = B + A 2. Ley Asociativa : Establece que las variables de una operacin AND o o de una operacin OR pueden ser agrupadas en cualquier forma. o

Algebra booleana a) A (B C) = (A B) C b) A + (B + C) = (A + B) + C

13

3. Ley Distributiva : Se establece que una expresin puede desarrollarse o multiplicando trmino a trmino como en el lgebra ordinaria as como e e a llevar a cabo la factorizacin de trminos. o e a) A B + A C = A (B + C) b) (A + B) (A + C) = A + B C Teoremas Existen diversos teoremas que resultan de la aplicacin de los postulados o y de las leyes mencionadas [11], sin embargo slo se mostrarn los ms utiles. o a a 1. Teorema de identidad a) A + 0 = A b) A 1 = A 2. Teorema del elemento nulo a) A + 1 = 1 b) A 0 = 0 3. Teorema del complemento a) A + A = 1 b) A A = 0 4. Teorema de idempotencia a) A + A = A b) A A = A 5. Teorema de absorcin o a) A (A + B) = A b) A + A B = A

14 6. Teorema de involucin o a) A = A 7. Teorema de DeMorgan

1. Circuitos lgicos combinatorios o

a) (A + B + C + ) = A B C b) (A B C ) = A + B + C +

2.2.

Formas Estndar a

Para poder aplicar las tcnicas de reduccin comunes es necesario que las e o expresiones booleanas se encuentren en su forma estndar ya que facilitan los a procedimiento de simplicacin [11]. Existen diversas maneras de represeno tar una funcin booleana algebraicamente pero pocas de ellas se consideran o estndar. Las formas estndar tienen trminos de suma y trminos de proa a e e ducto que no implican operaciones aritmticas del lgebra booleana sino las e a operaciones lgicas AND y OR respectivamente [27]. Un ejemplo de trmino o e de suma puede ser A + B + C que consiste en una operacin OR entre liteo rales. Anlogamente un ejemplo de trmino producto es A BC que consiste a e en una operacin AND entre literales. o

2.2.1.

Minitrminos y maxitrminos e e

Un trmino producto en el que aparecen todas las variables slo una e o vez de forma complementada o no se llama minitrmino. Una variable se e encuentra complementada cuando su valor es 0. Cada minitrmino tiene la e caracter stica de que tiene un valor de 1 para la combinacin de variables y o un valor de 0 para todas las dems. El s a mbolo utilizado para designar un minitrmino es mj donde j denota el equivalente decimal de la combinacin e o binaria. En la tabla 2.8 se muestran los minitrminos para tres variables y e su s mbolo. Por su parte, un maxitrmino es un trmino de suma que contiene a e e todas las variables de forma complementada o no, adems de tener un valor a de 0 para la combinacin dada y un valor de 1 para todas las dems. Una o a variable se encuentra complementada cuando su valor es 1. Los maxitrminos e se denotan con el s mbolo Mj donde al igual que los minitrminos la j es el e

Formas Estndar a A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C Minitrmino e 0 ABC 1 ABC 0 A BC 1 A BC 0 AB C 1 AB C 0 ABC 1 ABC S mbolo m0 m1 m2 m3 m4 m5 m6 m7

15

Tabla 2.8: Minitrminos de tres variables. e equivalente decimal de la combinacin binaria. En la tabla 2.9 se muestran o los maxitrminos para tres variables y su s e mbolo correspondiente. A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C Maxitrmino e 0 A+B+C 1 A+B+C 0 A+B +C 1 A+B +C 0 A +B+C 1 A +B+C 0 A +B +C 1 A +B +C S mbolo M0 M1 M2 M3 M4 M5 M6 M7

Tabla 2.9: Maxitrminos de tres variables. e En las tablas 2.8 y 2.9 puede apreciarse que los minitrminos y los mae xitrminos tienen la caracter e stica de que representan a una sola de las combinaciones de entrada por lo que se puede armar que existen tantos minitrminos o maxitrminos como combinaciones de los valores de las variae e bles de entrada, adems de que un minitrmino y el maxitrmino con el a e e mismo sub ndice son complementarios, es decir que mj = Mj lo cual puede ser fcilmente vericado con las leyes de DeMorgan. a Como se mencion anteriormente, una tabla de verdad representa el como portamiento del circuito debido a un determinado nivel lgico de las variables o de entrada. A partir de una tabla de verdad se puede obtener una expresin o

16

1. Circuitos lgicos combinatorios o

algebraica de la funcin booleana que est representando. Para poder obtener o a dicha expresin se tiene que hacer la suma lgica de los trminos de producto o o e para los que la funcin tome el valor de 1, que es lo mismo que llevar a cabo o la suma de los minitrminos que producen un valor de 1 es decir una suma e de minitrminos [27]. e De manera anloga se puede obtener un producto de maxitrminos como a e expresin algebraica de la funcin booleana, que resulta de tomar el proo o ducto de los maxitrminos que a su salida tengan el valor de 0. La suma e de minitrminos y el producto de maxitrminos describen la misma funcin e e o booleana, como puede verse en la tabla 2.10. A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 S 0 1 0 1 0 1 0 1
7 j=0

S = A B C + A BC + AB C + ABC =

mj
7 j=0 Mj

S = (A + B + C)(A + B + C)(A + B + C)(A + B + C) =

Tabla 2.10: Equivalencia entre una suma de minitrminos y un producto de e maxitrminos. e En el dise o de circuitos, el producto de maxitrminos no es de uso fren e cuente ya que siempre puede ser sustituido por una suma de minitrminos. e A continuacin se resumirn algunas de las caracter o a sticas ms sobresalientes a de los minitrminos. e 1. Existen una cantidad de minitrminos igual al nmero de combinacioe u nes de las variables de entrada, es decir que existen 2n minitrminos e donde n es el n mero de variables. u 2. Una expresin booleana puede derivarse directamente de la tabla de o

Formas Estndar a

17

verdad como la suma lgica de minitrminos que tengan como salida o e un valor de 1. 3. El complemento f de una funcin f es igual a la suma de los minitrmio e nos no incluidos en f . 4. Si una funcin contiene a los 2n minitrminos, su valor siempre ser igual o e a a 1.

2.2.2.

Suma de productos

La suma de minitrminos es una expresin algebraica que contiene la e o cantidad mxima de literales en cada trmino lo que a menudo conlleva a e a que tenga ms trminos producto de los necesarios. En la simplicacin a e o de circuitos lgicos se tiene como objetivo reducir la cantidad de trminos o e producto y de literales en los trminos, obteniendo as una expresin reducida e o equivalente en forma de suma de productos (SOP - sum of products) [11]. En la gura 2.6 se muestra un ejemplo de SOP. S = AC + B C + A B Figura 2.6: Ejemplo de una suma de productos. El diagrama de circuito de una suma de productos consiste en un conjunto de compuertas AND seguido de una sola compuerta OR (gura 2.7), donde cada trmino producto necesita una compuerta AND y la suma lgica se e o forma con una compuerta OR que tiene como entrada las salidas de todas las compuertas AND. Este esquema de compuertas AND seguidas de una compuerta OR se conoce como implementacin en dos niveles. o

2.2.3.

Producto de sumas

El producto de sumas (POS - product of sums) es una forma estndar a de expresin algebraica de funciones booleanas y se obtiene formando un o producto lgico de trminos de suma [11]. Un ejemplo de un POS se muestra o e en la gura 2.8. La estructura de compuertas de un POS consiste de un grupo de compuertas OR seguidas de una compuerta AND que da como resultado una implementacin en dos niveles (gura 2.9). o

18
A C B C A B

1. Circuitos lgicos combinatorios o

Figura 2.7: Diagrama de circuito de una suma de productos (SOP). S = (A + C )(B + C)(A + B) Figura 2.8: Ejemplo de un producto de sumas.

2.3.

Procedimiento de diseo de circuitos lgin o cos

El proceso de dise o de un circuito lgico comienza con la especicacin n o o del problema a resolver y termina con un diagrama de circuito o una expresin o booleana que lo represente [44]. De forma general se pueden enumerar los siguientes pasos en el proceso de dise o de un circuito lgico: n o 1. Determinar, a partir del enunciado del problema, la cantidad de entradas y de salidas necesarias. 2. Una vez determinadas las entradas y salidas se construye la tabla de verdad que ejemplique el comportamiento deseado del circuito para todas las combinaciones posibles y establecer as la relacin entre en o tradas y salidas. 3. A partir de la tabla de verdad se construye la expresin booleana que o ser simplicada posteriormente para tener as una funcin de salida en a o trminos de las entradas. La simplicacin es un paso muy importante e o en el dise o de circuitos ya que permite generar expresiones booleanas n equivalentes y ms sencillas. a 4. Con las expresiones booleanas se traza el diagrama de circuitos lgicos o que ayudar para su implementacin en hardware. a o

Planteamiento formal del problema de diseo de circuitos n


A C B C A B

19

Figura 2.9: Diagrama de circuito de un producto de sumas (POS). 5. Por ultimo, se lleva a cabo la vericacin del comportamiento del cir o cuito. Un dise o prctico debe considerar algunas restricciones como la cantin a dad de compuertas, cantidad de entradas y de interconexiones, as como las limitaciones f sicas de los circuitos integrados. En la mayor de los casos, la a simplicacin de las expresiones booleanas busca satisfacer un solo objetivo o y luego se intenta cumplir con nuevos criterios de desempeo. n

2.4.

Planteamiento formal del problema de dise o de circuitos n

Formalmente podemos decir que el espacio booleano unidimensional B esta denido por el conjunto {0, 1}. Una variable booleana x puede tomar cualquier valor de este conjunto. Todos los vectores booleanos con n componentes forman el espacio booleano n-dimensional Bn . Bn = {X/X = (x1 , x2 , . . . , xn ), xi B, i = 1, . . . , n} Sea X = (x1 , x2 , . . . , xn ) un conjunto de n variables booleanas. El mapeo unico de Bn a B es una funcin booleana f (X). o Sea C = {OR, AND, NOT, XOR} un conjunto de compuertas lgicas booo leanas con dos variables de entrada y sea EB(C) el conjunto de expresiones booleanas sobre C, por ejemplo:

20

1. Circuitos lgicos combinatorios o

eb1 : y AND z eb2 : w XOR (y OR z) donde w, y y z son variables booleanas. Sea x EB(C) y denimos |x| como el n mero de compuertas de x, por ejemplo: u x1 : (NOT y) AND (w OR z); |x1 | = 3 (NOT, AND, OR) x2 : y XOR (NOT w); |x2 | = 2 (XOR, NOT ) Sea f (X) una funcin booleana y F EB(C) tal que x F , x = f (X). o Nuestro problema es encontrar x F tal que |x | = min |x|, x F .

2.5.

Simplicacin de circuitos lgicos o o

El objetivo principal de la simplicacin de circuitos lgicos es normalo o mente la minimizacin de la cantidad de hardware necesario para construir o un sistema en particular, ya que a menor hardware se tendr un menor costo a nal. Por otro lado, la complejidad de un circuito lgico est relacionada direco a tamente con la expresin booleana a partir de la cual se implement. Esta o o expresin puede ser reducida para que contenga menos trminos y que a su o e vez cada uno de stos contenga menos literales. La nueva expresin puede e o entonces ser utilizada para implementar un nuevo circuito equivalente al original, es decir que genere la misma salida y por tanto la misma tabla de verdad pero mediante una funcin booleana distinta con un menor nmero o u de compuertas y conexiones. La forma ms simple de trminos de suma de productos es una funcin a e o llamada suma mnima que representar la suma con menor nmero de trmi a u e nos. Si existe ms de una suma de productos que contenga el m a nimo n mero u de trminos, la suma m e nima ser aquella que contenga el menor nmero de a u literales. Por ejemplo, las funciones de la gura 2.10 son equivalentes, pero la tercera de ellas es la suma m nima ya que contiene cuatro literales mientras que las otras dos tienen cinco literales cada una. Esto da como consecuencia una implementacin en dos niveles con un diagrama de circuito con la o

Simplicacin de circuitos lgicos o o

21

menor cantidad de compuertas y con la menor cantidad de entradas a las compuertas. S = BC + ABC S = A BC + AB S = BC + AB Figura 2.10: Ejemplo de funciones booleanas equivalentes.

2.5.1.

Simplicacin algebraica o

Las expresiones booleanas pueden simplicarse mediante manipulaciones algebraicas. Sin embargo, como se ver a continuacin, el procedimiento rea o sulta complicado pues al carecer de reglas espec cas para predecir los pasos sucesivos se requiere de una gran experiencia por parte del diseador para n poder aplicar los postulados y teoremas del algebra booleana de manera que las expresiones puedan ser minimizadas.

B C

S = ABC + ABC + AC
Figura 2.11: Ejemplo de un diagrama de circuito y su expresin booleana. o Otra desventaja de la simplicacin algebraica es que despus de llevar a o e cabo toda la manipulacin algebraica no se puede saber cundo se ha llegado o a a la expresin ms sencilla. En la gura 2.11 se muestra el diagrama de o a circuito y la funcin booleana sin simplicar obtenida como resultado del o

22

1. Circuitos lgicos combinatorios o

proceso de dise o para resolver alg n problema. Si a la expresin booleana n u o de la gura 2.11 se le aplican los postulados y teoremas del algebra booleana podr obtenerse una expresin simplicada. En la gura 2.12 se muestra a o el resultado obtenido de la manipulacin algebraica llevada a cabo para la o reduccin as como el diagrama de circuito donde puede apreciarse que la o cantidad de compuertas necesarias para la implementacin es menor que las o necesitadas por el circuito original.

2.5.2.

Mapas de Karnaugh

El mapa de Karnaugh es un mtodo grco [18, 28] utilizado para simplie a car una ecuacin lgica o para convertir una tabla de verdad a su circuito o o lgico correspondiente mediante un proceso simple y ordenado. Como una o tabla de verdad, el mapa de Karnaugh especica el valor de la funcin de o salida para cada combinacin de valores de las variables independientes de o entrada. El mapa ofrece tambin un diagrama visual de las distintas maneras e en que puede expresarse una funcin booleana en forma estndar. o a

A B S C S = ABC + ABC + AC S = AB(C+C) + AC S = AB(1) + AC S = AB + AC


Figura 2.12: Diagrama de circuito y su expresin booleana simplicada. o El resultado producido por el mapa siempre est en forma de suma de a productos o de producto de sumas. Es decir, que se permite la simplicacin o de implementaciones en dos niveles pero el mtodo no puede ser aplicado e directamente a implementaciones ms sencillas de los casos generales de un a mayor n mero de niveles. u

Simplicacin de circuitos lgicos o o Mapas de dos, tres y cuatro variables

23

En la gura 2.13 se muestra un mapa de una funcin de dos variables que o es un cuadrado de cuatro celdas (una celda para cada minitrmino). e

A B 0 1

0 F0 F1
(a)

1 F2 F3

A B 0 1

0 1 1
(b)

1 0 0

Figura 2.13: Mapa de Karnaugh de dos variables. (a)Forma general. (b) Mapa de S = A B + A B = (0, 1) = (2, 4) Para llenar el valor de cada celda se buscan sus coordenadas como valores de entrada en la tabla de verdad y se coloca un 1 en aquellas celdas cuyo valor en la salida sea 1 y 0 en las restantes [28]. Por ejemplo, en los mapas de la gura 2.13 se puede observar que las celdas F0 y F1 contienen un 1 o mientras que F2 y F4 contienen un 0, ya que la funcin booleana de salida es S = A B + A B es decir que las coordenadas 00 y 01 del mapa de Karnaugh tendrn el valor 1 mientras que las coordenadas 10 y 11 tendrn el valor 0. a a Es importante recalcar que la designacin decimal de cada celda es igual o al equivalente decimal del n mero binario formado por sus coordenadas. Los u mapas para las funciones de tres y cuatro variables son extensiones directas del mapa de dos variables. El mapa de tres variables se muestra en la gura 2.14 con 23 = 8 celdas y el mapa de cuatro variables se muestra en la gura 2.15 con 24 = 16 celdas. Cada 1 en el mapa corresponde a un minitrmino de la funcin de salida y e o pueden leerse directamente de aqu tal como se hace en las tablas de verdad. , Los minitrminos en cuadros adyacentes en el mapa pueden ser combinados e debido a que slo dieren en una sola variable. o

24

1. Circuitos lgicos combinatorios o

AB C 00 0 F0 1 F1

01 11 F2 F3
(a)

10 F4 F5

F6 F7

AB C 00 0 1 1 1

01 11 0 1
(b)

10 1 0

0 0

Figura 2.14: Mapa de Karnaugh de tres variables. (a)Forma general. (b) Mapa de S = A B C + A B C + A BC + AB C = (0, 1, 3, 4) = (2, 5, 6, 7) Implicantes primos Los cuadrados adyacentes de los mapas de Karnaugh pueden combinarse debido al teorema del algebra booleana que establece que AB + AB = A. Es decir, que los trminos producto puden ser combinados o simpilifcados e cuando los n meros binarios dieren en un solo bit [28]. u La expresion ABCD + ABCD = ABC tiene dos productos de cuatro variables con los n meros binarios 1111 y 1110 los cuales dieren solamente u en el bit de menor orden por lo que pueden ser combinados. Sin embargo, los productos ABCD y A BCD no pueden ser combinados porque sus n meros u binarios correspondientes son 1111 y 0110 que dieren en las posiciones de mayor y menor orden. Dos productos slo pueden ser combinados si sus puno tos correspondientes en un cubo de dimensin n de un mapa se encuentran a o una distancia de 1. Los puntos con una distancia de 1 en un cubo de n dimensiones son celdas adyacentes en el mapa y por tanto representan productos que pueden ser combinados y que pueden ser rpidamente determinados por a inspeccin. o En el proceso de inspeccin debe recordarse que las celdas a los extremos o del mapa son adyacentes con las celdas que se encuentran exactamente al otro extremo en l nea recta. La gura 2.16 ilustra estas adyacencias como por ejemplo las celdas F0 y F2 con n meros binarios 0000, 0010 y F3 y F11 u que tienen los n meros binarios 0011 y 1011. u En un mapa de cuatro variables, cada celda es adyacente a otras cuatro celdas correspondientes a las posiciones de los cuatro bits en los cuales el n mero binario puede diferir. Solamente se deben de tomar en cuenta para u

Simplicacin de circuitos lgicos o o

25

AB 00 CD 00 F0 01 11 10 F1 F3 F2

01 F4 F5 F7 F6
(a)

11 F12 F13 F15 F14

10 F8 F9 F11 F10

AB 00 CD 1 00 01 11 10 1 0 1

01 1 0 0 0
(b)

11 0 0 1 0

10 0 0 1 1

Figura 2.15: Mapa de Karnaugh de cuatro variables. (a)Forma general. (b) Mapa de S = A B C +A B C +A BC +AB C = (0, 1, 3, 4) = (2, 5, 6, 7) la simplicacin aquellas celdas que tengan el valor de 1 y el resto debe de o ser ignorado [28]. La regla para obtener la expresin booleana simplicada a partir del mapa o es escribir un producto trmino por cada par de celdas adyacentes con valor e 1 y un producto trmino por cada celda que tenga valor de 1 y que no sea e adyacente a ninguna otra celda. La gura 2.17 muestra el mapa de Karnaugh y la expresin booleana resultante para esta regla. o Las siguientes reglas en la obtencin de la expresin booleana se aplican o o en los casos en que pueden ser agrupadas ms de un par de celdas. Primero se a considerar el caso en que se pueden combinar cuatro celdas por la aplicacin a o sucesiva del teorema AB + AB = A. En la simplicacin o S = ABCD + ABCD + ABC D + ABC D = (ABCD + ABCD ) + (ABC D + ABC D ) = ABC + ABC = AB puede observarse como cuatro productos de cuatro variables pueden ser simplicados para obtener un solo trmino. e La caracter stica principal de la combinacin de cuatro trminos es que o e dos de las variables son iguales en los cuatro productos y los nmeros binarios u correspondientes son idnticos a excepcin de dos bits. El trmino resultante e o e de la combinacin de estos cuatro productos es igual a la adyacencia de dos o

26
AB CD 00 01 11 10 00 F0 F1 F3 F2

1. Circuitos lgicos combinatorios o

01 11
F4

10 F8 F9 F11 F10

F12 F13 F15 F14

F5 F7 F6

Figura 2.16: Adyacencia de celdas en los extremos de un mapa de cuatro variables.

AB 00 CD 1 00 01 11 10 0 1 1

01 1 1 1 1

11 1 1 1 1

10 0 1 0 0

S = A B C D + A C + B + AC D Figura 2.17: Mapa de Karnaugh de cuatro variables con agrupamientos de 1, 2, 4 y 8 celdas. celdas con la diferencia de que las dos variables en donde los bits de las celdas cambian deben de ser omitidas. En la gura 2.17 se muestra el mapa de Karnaugh con un agrupamiento de cuatro celdas y la expresin booleana o correspondiente. La ultima regla nos permite combinar ocho celdas, donde cada una de ellas tiene tres variables idnticas (ya sea negadas o no) en los ocho trmie e nos. En la gura 2.17 se muestra el mapa de Karnaugh con la combinacin o de ocho celdas y la expresin booleana resultante. La regla general estableo i ce que si se tienen 2 trminos producto con i variables idnticas entonces e e e 2i trminos producto pueden ser combinados y las i variables que cambian pueden omitirse.

Simplicacin de circuitos lgicos o o

27

Durante el proceso de simplicacin de expresiones booleanas mediante o los mapas de Karnaugh, se tienen que ir encontrando y encerrando los conjuntos de celdas que puedan ser combinadas. Si uno de estos conjuntos se encuentra contenido en un conjunto ms grande, entonces slo se encerrar esa o a te ultimo en el mapa. Los conjuntos encontrados junto con sus trminos e producto correspondientes son los implicantes primos que son exactamente los trminos que se obtienen debido a la aplicacin repetida del teorema e o AB + AB = A.

2.5.3.

Mtodo de Quine-McCluskey e

El mtodo de mapas de Karnaugh puede ser muy util cuando se tiene e un problema con pocas variables de entrada, pero al ser un mtodo grco e a la representacin puede resultar sumamente complicada al tener un mayor o n mero de variables [18, 11]. El mtodo de Quine-McCluskey es un procediu e miento sistematizado que permite la simplicacin de expresiones booleanas o con un mayor n mero de variables y que adems puede ser realizado por una u a computadora personal. La idea bsica de este mtodo es reducir la expansin a e o de minitrminos para obtener la suma m e nima de productos llevando a cabo dos pasos principales: 1. Eliminar la mayor cantidad de literales posibles aplicando el teorema AB + AB = A. Los trminos resultantes obtenidos son llamados ime plicantes primos. 2. Seleccionar el conjunto m nimo de implicantes primos mediante un diagrama. Cuando estos trminos son sumados lgicamente se obtiene una e o expresin simplicada que contiene el menor n mero de literales. o u Determinacin de los implicantes primos o En la primera parte del mtodo de Quine-McCluskey todos los implicane tes primos son obtenidos mediante la combinacin de todos los minitrminos. o e Los minitrminos son expresados como n meros binarios y combinados mee u diante AB + AB = A. Para poder obtener todos los implicantes primos, deben compararse y de ser posible combinarse todos los posibles pares de minitrminos. Para reducir el nmero de comparaciones, los minitrminos e u e son ordenados en grupos de acuerdo al nmero de 1s existentes en su repreu sentacin binaria como muestra la tabla 2.11. o

28 Grupo 0 Grupo 1 0 1 2 8 Grupo 2 5 6 9 10 Grupo 3 7 14

1. Circuitos lgicos combinatorios o 0000 0001 0010 1000 0101 0110 1001 1010 0111 1110

Tabla 2.11: Agrupacin de trminos para encontrar los implicantes primos o e de la funcin S = (0, 1, 2, 5, 6, 7, 8, 9, 10, 14). o Tomando en cuenta el ordenamiento de cada grupo de la tabla 2.11 y considerando que dos trminos pueden ser combinados si dieren en un solo e bit, las comparaciones entre trminos de dos grupos no adyacentes son innee cesarias. Por otro lado, las comparaciones entre trminos del mismo grupo e tambin pueden omitirse debido a que dos trminos con igual nmero de 1s e e u deben diferir en al menos dos variables. El algoritmo comienza comparando todos los trminos del grupo 0 cone tra todos los trminos del grupo 1, generando una nueva tabla en donde se e escriben los trminos que fueron combinados y la representacin binaria del e o trmino simplicado que los representa adems de que es necesario marcar e a los trminos que pudieron ser combinados con algn otro en este paso. Dese u pus de esto se contin a con las comparaciones pero ya no del grupo 0 porque e u el unico grupo adyacente es el grupo 1. Ahora se comparan los trminos del e grupo 2 contra los trminos del grupo 1. Cuando todas las comparaciones e necesarias han sido realizadas se obtiene la marcacin de los trminos que se o e combinaron (tabla 2.11) y una tabla como la que se muestra en la tabla 2.12 la cual se organiza tambin agrupando los trminos con igual nmero de 1s e e u en su representacin binaria. o El siguiente paso consiste en generar una tercera tabla comparando y combinando los trminos de grupos adyacentes pero que adems tengan los e a guiones de su representacin binaria en la misma posicin, que es equivante o o a A B C + A B C = A B . Los resultados de la compracin y la combinacin o o de trminos para este paso son mostrados en la tabla 2.13 y la marcacin de e o

Simplicacin de circuitos lgicos o o Grupo 0 0,1 0,2 0,8 Grupo 1 1,5 1,9 2,6 2,10 8,9 8,10 Grupo 2 5,7 6,7 6,14 10,14 00000-0 -000 0-01 -001 0-10 -010 10010-0 01-1 011-110 1-10

29

Tabla 2.12: Resultado de la comparacin y combinacin de trminos en gruo o e pos adyacentes de la tabla 2.12. los trminos que se combinaron se ilustra en la tabla 2.12. e Grupo 0 0,1,8,9 0,2,8,10 0,8,1,9 0,8,2,10 2,6,10,14 2,10,6,14 -00-0-0 -00-0-0 10 10

Grupo 1

Tabla 2.13: Resultado de la comparacin y combinacin de trminos en gruo o e pos adyacentes de la tabla 2.12. En la tabla 2.13 puede verse que existen trminos repetidos los cuales no e son necesarios y pueden ser eliminados. Despus de haber obtenido esta tabla e el procedimiento se detiene ya que no es posible llevar a cabo la combinacin o de ms trminos. Los trminos que no fueron marcados debido a que no a e e pudieron combinarse con ning n otro trmino son los llamados implicantes u e primos. Ya que cada minitrmino ha sido incluido en al menos uno de los e implicantes primos la funcin es precisamente igual a la suma de estos, es o decir S = A C D + A BD + A BC + B C + B D + CD .

30

1. Circuitos lgicos combinatorios o

Una expresin de suma de productos m o nima consiste de la suma de algunos (pero no necesariamente todos) los implicantes primos de la funcin, es o decir que una expresin que contenga algn trmino que no es un implicante o u e primo, no puede ser m nima. Esto se puede comprobar ya que un trmino que e no es un implicante primo no contiene el m nimo n mero de literales porque u puede a n ser combinado con algn minitrmino para formar un implicante u u e primo con menor nmero de literales. Cualquier expresin de suma de prou o ductos con trminos que no son implicantes primos puede ser reemplazada e por su equivalente con trminos implicantes primos que reducir el n mero e a u de literales y por tanto simplicar la expresin [18]. a o Diagrama de implicantes primos La segunda parte del mtodo de Quine-McCluskey selecciona el conjunto e m nimo de implicantes primos para la funcin booleana mediante un diagrao ma en donde los implicantes primos se listan hacia abajo y hacia la derecha se listan los minitrminos de la funcin. Un implicante primo es igual a la e o suma de minitrminos y por tanto se dice que los cubre. En el diagrama se e coloca un en la interseccin de implicante primo y minitrmino cuando este o e ultimo es cubierto, como muestra la tabla 2.14. 0 BC * * BD CD ACD * ABD ABC 1 2 * * * 5 6 7 8 * * 9 10 * * 14

(0,1,8,9) (0,2,8,10) (2,6,10,14) (1,5) (5,7) (6,7)

* * * * * *

Tabla 2.14: Diagrama de implicantes primos de las tablas 2.11, 2.12 y 2.13 Si un minitrmino es cubierto slo por un implicante primo, ste es llae o e mado implicante primo esencial y debe se inclu en la suma m do nima de productos. Los implicantes primos esenciales son fciles de identicar en el a diagrama porque solamente contienen un en la columna correspondiente, en la tabla 2.14 las columnas de los minitrminos 9 y 14 contienen un solo e por lo que B C y CD son esenciales.

Simplicacin de circuitos lgicos o o

31

Cada vez que un implicante primo es seleccionado para su inclusin en o la suma m nima toda la la debe de ser marcada como ya inclu da. Despus e de hacer esto, la columna de los minitrminos ya inclu e dos tambin debe e marcarse para que ya no sea agregada a la suma m nima. En la tabla 2.15 se muestra el resultado de marcar los minitrminos que son inclu e dos al agregar los implicantes primos esenciales a la suma m nima. 0 * * * 1 * 2 * * * * * 5 6 7 8 * * 9 10 * * 14

(0,1,8,9) (0,2,8,10) (2,6,10,14) (1,5) (5,7) (6,7)

BC BD CD ACD ABD ABC

* * *

Tabla 2.15: Resultado de la inclusin de los implicantes primos esenciales en o la suma m nima. El conjunto m nimo de implicantes primos debe seleccionarse de manera que todos los minitrminos se encuentren inclu e dos [18]. En la tabla 2.15 a n faltan los minitrminos 5 y 7 por ser cubiertos. Sin embargo, si ahora se u e incluye en la suma m nima el implicante primo A BD todos los minitrmie nos se encontrarn cubiertos. El conjunto de implicantes primos m a nimos es entonces: S = B C + CD + A BD.

2.5.4.

Tcnicas evolutivas e

Las tcnicas evolutivas son herramientas poderosas que han sido utilizae das para resolver una gran variedad de problemas de optimizacin y que han o dado muy buenos resultados en ciertos dominios. El uso de tcnicas evolutie vas para el dise o de circuitos electrnicos es el llamado hardware evolutivo n o que se encuentra clasicado en dos grandes grupos: evolucin intrnseca que o dise a y prueba los circuitos en hardware y evolucin extrnseca que hace n o una simulacin del hardware en software para llevar a cabo el dise o de los o n circuitos. Dentro de la evolucin extr o nseca se ha utilizado diversas tcnicas para e el dise o de circuitos lgicos combinatorios como: la programacin gentica n o o e

32

1. Circuitos lgicos combinatorios o

[33, 24, 4], la colonia de hormigas [29], los algoritmos genticos [7], enfoques e multiobjetivo [20, 9] e incluso el propio algoritmo de optimizacin mediante o c mulos de part u culas [15, 10]. En esta seccin se explicarn dos de estos o a algoritmos: el algoritmo gentico de cardinalidad N (NGA) y el algoritmo e gentico multiobjetivo (MGA). e Algoritmo gentico de cardinalidad N (NGA) e El algoritmo gentico de cardinalidad N (NGA) es una propuesta basada e en un algoritmo gnetico con representacin entera para automatizar el diseo e o n de circuitos lgicos combinatorios y en donde se intenta minimizar el nmero o u total de compuertas utilizadas [6]. Un algoritmo gentico para un problema e en particular debe tener los siguientes componentes: 1. Una representacin de las posibles soluciones al problema. o 2. Una forma de poder generar una poblacin inicial de posibles solucioo nes. 3. Una funcin de evaluacin que pueda calicar a las soluciones de acuero o do a su aptitud. 4. Operadores genticos que alteren la composicin de los hijos. e o 5. Valores para los distintos parmetros usados por el algoritmo gentico a e (tama o de poblacin, probabilidad de aplicacin de los operadores n o o genticos, etc.) e El NGA utiliza una representacin de matriz (similar a la usada en eso te trabajo de tesis) para codicar las posibles soluciones encontradas en el proceso de dise o del circuito. Se puede decir que cualquier circuito puede n ser representado como un arreglo bidimensional de compuertas Si,j , donde j indica el nivel de la compuerta, de manera que las compuertas cercanas a las entradas tiene valores peque os de j. En cada celda de la matriz est codin a cada una tercia en donde los dos primeros elementos se reeren a cada una de las entradas usadas y el tercero a la compuerta (ver gura 4.1). A pesar de que se ha probado que la representacin binaria provee el mximo n mero de o a u esquemas1 [16], algunos alfabetos de mayor cardinalidad han dado mejores
1

Un esquema es un patrn de valores que se presenta en las cadenas cromosmicas. o o

Simplicacin de circuitos lgicos o o


COMPUERTA ENTRADA 1 ENTRADA 2

33

Entradas

Salidas

Figura 2.18: Representacin de matriz para el dise o de circuitos lgicos. o n o resultados en un menor tiempo que su contraparte binaria. Por ello, para el NGA se decidi experimentar con un alfabeto de cardinalidad n, donde n o toma normalmente un valor igual al nmero de renglones de la matriz que u esta codicando las soluciones. El clculo de la aptitud de un individuo x se a hizo de acuerdo a la siguiente frmula: o aptitud(x) =
p j=1 fj (x) p j=1 fj (x)

si x no es factible + w(x) de otra forma

(2.3)

donde p es el n mero de entradas a la tabla de verdad, fj (x) es el valor del u n mero de salidas correctas (es decir, el n mero de salidas producidas por el u u individuo cuyo valor es igual al valor de la salida de la tabla de verdad de entrada) y w(x) devuelve el n mero de WIREs2 presentes en el circuito x, el u cual slo es agregado al valor de aptitud cuando el circuito es factible. Para o la representacin usada en el NGA con una cardinalidad n y una longitud o del cromosoma de tamao l, el tama o del espacio de bsqueda intr n n u nseco es nl . La cardinalidad y la longitud de la cadena depende del tamao de la n
WIRE es un buer o reforzador de corriente que representa una ausencia de compuerta y que es utilizado para llevar a cabo la simplicacin de los circuitos. o
2

34

1. Circuitos lgicos combinatorios o

matriz usado para resolver el circuito. Los operadores genticos usados en el e NGA fueron un operador de cruza de dos puntos y un operador de mutacin o uniforme convencional. Algoritmo gentico multiobjetivo (MGA) e El MGA es una propuesta que utiliza una tcnica de optimizacin evoe o lutiva multiobjetivo para el dise o de circuitos lgicos combinatorios a nivel n o de compuertas [9], que reduce el n mero de evaluaciones necesarias de la u funcin objetivo para encontrar el diseo optimo. La idea principal del MGA o n es usar una propuesta basada en poblacin de una tcnica de optimizacin o e o multiobjetivo similar a Vector Evaluated Genetic Algorithm (VEGA) [35] junto con una representacin de matriz igual a la usada por el NGA. La o optimizacin multiobjetivo puede denirse como: o El problema de encontrar el vector de variables de decisin que o satisface las restricciones y optimiza un vector de funciones cuyos elementos representan la funcin objetivo. Estas funciones forman o una descripcin matemtica de los criterios de desempe o los cuao a n les estan normalmente en conicto entre s Por tanto, el trmino . e optimizacin signica encontrar una solucin que obtenga los o o mejores valores posibles para todas las funciones objetivo y que sean aceptables para el dise ador. n Se puede decir que el problema de dise o de circuitos lgicos combinan o torios es un problema con m restricciones iguales, donde m es el n mero de u valores individuales de la tabla de verdad que se desean satisfacer. En cada generacin, el MGA divide la poblacin en m+1 subpoblaciones, donde cao o da una de ellas est a cargo de optimizar una restriccin del problema (en a o este caso, las salidas del circuito). Sin embargo, el principal objetivo de cada subpoblacin es tratar de igualar el valor de sus salidas con el de la tabla de o verdad de entrada. La funcin objetivo tambin es igual a la del NGA en donde se incremeno e ta el valor de la funcin objetivo en uno por cada igualdad entre la salida o del circuito y la salida de la tabla de verdad y si el circuito es factible (es decir, todas las salidas del circuito son iguales a las salidas de la tabla de verdad) se agrega uno por cada WIRE presente en la matriz que codica al circuito. En el MGA una fraccin de la poblacin ser seleccionada usando la o o a

Simplicacin de circuitos lgicos o o

35

funcin objetivo como su aptitud (es decir, intentar maximizar la igualdad o a entre todas las salidas del circuito y las salidas de la tabla de verdad); otra fraccin usar la igualdad entre la primera salida del circuito y de la tabla o a de verdad como su aptitud. La aptitud de cada subpoblacin ser calculada o a entonces mediante el siguiente esquema: si oj (x) = tj si no, si v = 0 si no, entonces entonces aptitud(x)=0 aptitud(x) = v aptitud(x) = f (c)

donde oj se reere al valor de salida j del circuito codicado x; tj es el valor especicado por la salida j en la tabla de verdad; y v es el n mero de salidas u del circuito x que no son iguales a las salidas de la tabla de verdad. Finalmente, f (x) es la funcin de aptitud descrita en la ecuacin 2.3. La seleccin o o o en el MGA obedece distintas reglas dentro de cada subpoblacin. Sin embaro go, las cruza y la mutacin son aplicadas a la poblacin entera intentando o o llevar a cabo la recombinacin del material cromosmico correspondiente a o o distintos circuitos parcialemente funcionales. El algoritmo general del MGA se muestra a continuacin: o 1. Generar una poblacin aleatoria de tamao P . o n 2. Dividir la poblacin en m+1 subpoblaciones (m = n mero de salidas o u de la tabla de verdad). 3. Calcular los valores de aptitud de acuerdo a los objetivos de cada individuo dentro de cada subpoblacin. o Si la salida objetivo no es igual, la aptitud es cero. Si la salida objetivo es igualada, pero el circuito no es funcional, la aptitud es igual al nmero de salidas no igualadas multiplicado u por (-1). Si la salida objetivo es igual y el circuito es funcional, la aptitud est dada por la suma del n mero de salidas iguales y el nmero a u u de WIREs en el circuito. 4. Hacer un barajeo de la poblacin y seleccionar los padres de cada subo poblacin basndose en el valor de aptitud previamente calculado de o a cada individuo.

36

1. Circuitos lgicos combinatorios o

5. Aplicar la cruza y la mutacin a toda la poblacin (sin importar la o o subpoblacin) y generar la nueva poblacin P . o o 6. Si se ha alcanzado el criterio de convergencia, terminar. 7. Si no, regresar al paso 2. En este algoritmo se puede observar que cada subpoblacin coopera con o las otras subpoblaciones que tienen dicultades de igualar su salida objetivo con la de la tabla de verdad. Si el circuito es factible, entonces todas las subpoblaciones tratarn de maximizar el n mero de WIREs en el circuito. a u

Cap tulo 3 Conceptos bsicos a


3.1. Optimizacin o

La optimizacin es una tarea que se presenta en diversas areas tales coo mo ciencias sociales, la econom y la ingenier y bsicamente implica el a a a ajuste de una serie de parmetros o variables con la nalidad de conseguir a que un sistema tenga un mejor desempe o. El primer paso en el proceso de n optimizacin es identicar el objetivo, es decir, la mtrica que determinar el o e a desempe o del sistema y que estar sujeto a un cierto n mero de variables a n a u travs de las cuales se podr llegar a un sistema optimo. La identicacin del e a o objetivo y de las variables a la que est sujeto es el modelado del sistema. a Es importante que al realizar el modelo ste se apegue a la realidad sin come plicarlo demasiado, es decir llegar a un modelo equilibrado entre el sistema real y sus parmetros ms relevantes. Si el modelo es muy simple entonces a a los resultados encontrados sern in tiles al intentar aplicarlos a la prctica a u a mientras que por el contrario, si el modelo del sistema es demasiado complejo ser muy dif de resolver. Una vez determinado el modelo se puede aplicar a cil alg n mtodo de optimizacin para obtener la solucin buscada adems de u e o o a que se debe contar con alguna forma de evaluar la viabilidad de la solucin o propuesta y determinar su factibilidad.

3.1.1.

Optimizacin con y sin restricciones o

Los problemas que son resueltos generalmente por tcnicas de optimizae cin pueden ser clasicados en dos grandes grupos [32]: o 37

38

2.Conceptos bsicos a

1. Optimizacin sin restricciones: Son problemas que se presentan en aplio caciones prcticas en donde si las variables tienen alg n tipo de resa u triccin se considera que sta no tiene efecto alguno sobre la solucin o e o encontrada. 2. Optimizacin con restricciones: Provienen de modelos que tienen reso tricciones expl citas sobre las variables. Estas restricciones pueden ser desde el establecimiento de los l mites de los valores que puede tomar una variable o restricciones ms complejas que involucran desigualdaa des no lineales.

3.1.2.

Optimizacin global y local o

La optimizacin local slo trata de encontrar soluciones factibles que teno o gan un mejor valor en la evaluacin de la funcin objetivo con respecto a o o las otras soluciones que se encuentran dentro de su mismo vecindario. Sin embargo, este tipo de optimizacin no siempre encuentra el mejor de todos o estos m nimos que es precisamente la solucin buscada por la optimizacin o o global [32]. A pesar de que la solucin global es necesaria en muchas aplicao ciones, frecuentemente es dif de identicar y ms a n de encontrar. Debido cil a u a la naturaleza de la b squeda, los algoritmos que slo tratan de encontrar u o o ptimos locales son mucho ms veloces que aquellos que buscan los optimos a globales.

3.1.3.

Optimizacin estocstica y determin o a stica

Los problemas de optimizacin estocstica se presentan cuando el moo a delo no puede ser descrito completamente porque depende de variables que var o que son desconocidas al momento de la formulacin del problema an o [32]. Para este tipo de problemas, se pueden predecir o estimar los valores desconocidos con un cierto grado de conanza de forma que se puedan producir soluciones que optimicen el desempe o esperado del modelo. Los modelos n de optimizacin determin o sticos, al contrario de los estocsticos, se encuena tran completamente especicados por lo que no es necesario predecir ningn u valor.

Computacin evolutiva o

39

3.1.4.

Algoritmos de optimizacin o

La mayor de los algoritmos de optimizacin son iterativos y siguen el a o mismo procedimiento, que comienza con un valor inicial estimado del valor o ptimo y genera una secuencia de valores que van mejorando (con respecto a la evaluacin de la funcin objetivo) conforme pasa el tiempo. La estrategia o o usada para mejorar estos valores es lo que distingue a los distintos algoritmos de optimizacin tales como los de b squeda lineal, los mtodos de gradiente o u e conjugado, los de Newton, la programacin lineal, etc. o Sin embargo, existen problemas que no pueden ser resueltos usando un algoritmo que tome un tiempo polinomial o incluso no se puede encontrar siquiera una solucin eciente. En este tipo de problemas en los que el mejor o algoritmo conocido para resolverlos requiere de un tiempo exponencial se recurre a las heur sticas que pueden denirse como tcnicas que buscan buenas e soluciones a un costo computacional razonable sin garantizar la factibilidad u optimalidad de las mismas [34]. Algunos ejemplos de tcnicas heur e sticas son: la bsqueda tab, el recocido simulado y el algoritmo de escalando la u u colina.

3.2.

Computacin evolutiva o

La computacin evolutiva se reere a aquellas tcnicas para resolver proo e blemas que tienen una inspiracin biolgica. Estas tcnicas se basan en el o o e principio de que la evolucin es un proceso de optimizacin en el cual se o o intenta mejorar las habilidades de los individuos y conseguir as una mejor adaptacin a su entorno y por ende una mayor supervivencia. La computao cin evolutiva es una simulacin del proceso de seleccin natural aplicado o o o a un problema de b squeda [12]. En trminos generales, se puede decir que u e para poder simular el proceso evolutivo en una computadora se requiere: Codicar las estructuras que se replicarn. a Operaciones que afecten a los individuos. Una funcin de aptitud. o Un mecanismo de seleccin. o El modelo general de la computacin evolutiva es una poblacin de ino o dividuos llamados cromosomas en donde se codican las carater sticas de

40

2.Conceptos bsicos a

las soluciones potenciales a un problema. Estas caracter sticas son los genes del individuo o del cromosoma y su valor el alelo. En cada generacin los o individuos compiten por la supervivencia, pero aquellos con las mejores capacidades tienen una mayor oportunidad de reproducirse. La descendencia es generada mediante la combinacin de partes de los cromosomas de los o padres, es decir mediante la cruza aunque tambin puede presentarse alg n e u tipo de mutacin que altere el cromosoma del individuo. La medida de las o habilidades y capacidades de un individuo se ve plasmada en su valor de aptitud que reeja cul es el desempe o de la solucin que representa dicho a n o individuo para el problema propuesto [12]. Actualmente existen distintos tipos de algoritmos evolutivos. Sin embargo, frecuentemente se han distinguido tres paradigmas principales: la programacin evolutiva, las estrategias evolutivas y los algoritmos genticos, los o e cuales se originaron de manera muy independiente y con motivaciones distintas [5, 13].

3.2.1.

Programacin evolutiva o

En esta tcnica, el proceso evolutivo consiste en encontrar un conjunto e de comportamientos ptimos a partir de un espacio de comportamientos o observables, enfatizando los nexos de comportamiento entre padres e hijos. El operador de mutacin es el unico utilizado para generar la nueva poblacin. o o El algoritmo general de la programacin evolutiva se muestra en la gura o 3.1.

Generar una poblacin inicial aleatoria. o Repetir Evaluar la aptitud de cada individuo de la poblacin. o Mutar cada uno de los individuos para generar a los hijos. Seleccionar la nueva poblacin. o Hasta que la condicin de paro se alcance o

Figura 3.1: Algoritmo general de la programacin evolutiva. o

Algoritmo de optimizacin mediante c mulos de part o u culas

41

3.2.2.

Estrategias evolutivas

Estn basadas en el concepto de evolucin de la evolucin. La evolucin a o o o consiste en evolucionar tanto las caracter sticas genticas como los parmee a tros de la estrategia que modela el comportamiento del individuo en su ambiente. La mutacin es aplicada slo cuando este proceso genera individuos o o con una mejor aptitud. En esta tcnica, los hijos pueden generarse a partir e de ms de dos padres. El algoritmo general de las estrategias evolutivas se a muestra en la gura 3.2.
Generar una poblacin inicial aleatoria. o Evaluar la aptitud de cada individuo de la poblacin. o Repetir Aplicar operador de cruza. Aplicar operador de mutacin. o Evaluar la aptitud de cada uno de los hijos obtenidos. Seleccionar la nueva poblacin. o Hasta que la condicin de paro se alcance o

Figura 3.2: Algoritmo general de las estrategias evolutivas.

3.2.3.

Algoritmos genticos e

Los algoritmos genticos enfatizan la importancia de la cruza sexual soe bre la mutacin; por ello el operador principal es el de cruza y el operador o secundario es el de mutacin (ver gura 3.3). La seleccin utilizada en esta o o tcnica es probabil e stica.

3.3.

Algoritmo de optimizacin mediante c muo u los de part culas

El algoritmo de optimizacin mediante c mulos de part o u culas (Particle swarm optimization PSO) fue propuesto por Kennedy y Eberhart [21, 23] y tiene sus ra ces en reas como vida articial, psicolog social, ingenier y a a a ciencias de la computacin. El PSO es un algoritmo estocstico de fcil imo a a plementacin que no requiere informacin de gradiente derivada de la funcin o o o

42

2.Conceptos bsicos a

Generar una poblacin inicial aleatoria. o Repetir Evaluar la aptitud de cada individuo. Seleccionar los padres. Llevar a cabo la recombinacin de los padres para obtener a los hijos. o Mutar a los hijos recin creados. e Seleccionar la nueva poblacin de individuos. o Hasta que la condicin de paro se alcance o

Figura 3.3: Algoritmo general de los algoritmo genticos. e de error, lo que permite usarlo en funciones donde el gradiente no est disa ponible o cuando su clculo requiere de mucho esfuerzo computacional [41]. a Al igual que los tres principales paradigmas de la computacin evolutio va, el algoritmo de PSO utiliza una poblacin de soluciones potenciales que o evolucionan a la solucin optima (o muy cercana a sta) de un determinado o e problema. La principal diferencia del PSO y la computacin evolutiva es un o mecanismo que no parece tener un anlogo en estas ultimas, en el cual las a part culas o individuos sobrevuelan a travs del hiperespacio de b squeda e u del problema [23]. Los algoritmos basados en una poblacin toman en cuenta o varias coordenadas del espacio de bsqueda al mismo tiempo. Un mtodo de u e b squeda poblacional puede denirse como sigue: u P = m(f (P )) donde P es la poblacin, que es un conjunto de posiciones en el espacio de o b squeda, f es la funcin de aptitud, que devuelve un vector de valores que u o indican la optimalidad de cada individuo de la poblacin y m es una funcin o o de manipulacin que genera una nueva poblacin a partir de la poblacin o o o actual. En el PSO, la funcin de manipulacin m est basada en el modelo o o a de comportamiento de colonias de insectos [1]. El PSO tiene como idea principal simular el movimiento de un grupo de aves que buscan comida. En la simulacin, el comportamiento de cada indio viduo est afectado por un factor individual y uno social. El factor individual a se reere a las decisiones que ha tomado el individuo y que han funcionado mejor (en trminos de su aptitud), que afectarn las nuevas decisiones que e a pueda tomar. El factor social se reere a las decisiones que han tomado el

Algoritmo de optimizacin mediante c mulos de part o u culas

43

resto de los individuos de la poblacin (dentro de un cierto vecindario) que o han funcionado mejor y que afectarn las nuevas decisiones tomadas por los a individuos en el vecindario. Cada individuo o part cula contiene su posicin o actual en el espacio de b squeda, su velocidad actual y la mejor posicin u o encontrada por el individuo hasta este punto de la bsqueda (el factor indiu vidual). El modelo de c mulos de part u culas est basado en una teor socioa a cognitiva muy simple, que establece que el proceso de adaptacin cultural o est formado por una componente de alto nivel y otra de bajo nivel. La pria mera de estas componentes se maniesta mediante la formacin de patrones o a travs de los individuos y la habilidad de resolver problemas. La compoe nente de bajo nivel se reere al comportamiento de los individuos [23], que puede resumirse en tres principios: evaluar, comparar e imitar. Evaluar, es la tendencia de clasicar los est mulos como negativos o positivos, atractivos o repulsivos. Desde este punto de vista el aprendizaje puede denirse como el cambio que permite al organismo mejorar la evaluacin de su ambiente. o Comparar e imitar se reere a la comparacin del individuo con respecto a o sus vecinos para imitar slo a aquellos que considere mejor a l mismo. o e En una poblacin de part o culas, cada uno de los individuos puede estar conectado a alg n otro mediante una gran variedad de esquemas. Sin embaru go, la mayor de las implementaciones del algoritmo de PSO utilizan alguno a de los dos modelos principales llamados Gbest y Lbest. Modelo Gbest Este modelo conecta conceptualmente a todos los individuos de la poblacin (gura 3.4), que tiene como efecto que cada part o cula estar inuena ciada por aquella part cula de toda la poblacin que haya tenido el mejor o desempe o. Esta part n cula actuar como un atractor acercando a todas las a part culas hacia ella por lo que eventualmente todas las part culas convergern a la misma posicin si este valor no es actualizado, logrando con ello a o una convergencia prematura. Modelo Lbest Este modelo crea un vecindario para cada individuo, que comprende a l mismo y a sus k vecinos (gura 3.5). El efecto que tiene es que el indie viduo estar inuenciado por el individuo o part a cula de mejor desempe o n

44

2.Conceptos bsicos a

1 6 5 4
Figura 3.4: Modelo Gbest del PSO. de una cierta porcin de la poblacin. Este esquema prevee la convergencia o o prematura, manteniendo mltiples atractores. u

2 3

Figura 3.5: Modelo Lbest del PSO.

3.3.1.

Algoritmo de PSO binario

En este modelo cada individuo de la poblacin slo tiene en mente la decio o sin binaria que tiene que tomar: si/no, falso/verdadero, etc. Cada individuo o est rodeado por otros que tambin tienen que tomar su propia decisin. La a e o informacin que tiene disponible para poder tomar la mejor decisin es su o o propia experiencia y la experiencia de sus vecinos. La probabilidad de que un individuo seleccione el si depende de qu tan exitoso haya resultado el e si con respecto al no en el pasado. El individuo debe tomar una serie de decisiones de manera que todas ellas sean adecuadas en conjunto, por lo que debe de ser capaz de evaluar, comparar e imitar una cierta cantidad de decisiones binarias simultneamente. a Matemticamente, Kennedy y Eberhart [22] proponen un modelo donde a la probabilidad de que un individuo decida si/no, falso/verdadero o alguna

Algoritmo de optimizacin mediante c mulos de part o u culas

45

otra decisin binaria es una funcin que depende de factores personales y o o sociales:

P [xid (t) = 1] = f [xid (t 1), vid (t 1), pid, pgd ] donde: P [xid (t) = 1] es la probabilidad de que el individuo i seleccione 1 para el bit en la posicin d de la cadena binaria. o xid (t) es el estado actual del bit d de la cadena binaria. vid (t 1) es la medida de la predisposicin individual o la probabilidad o actual de seleccionar 1. pid es el mejor estado encontrado para el bit d de la cadena binaria de acuerdo a la experiencia personal del individuo. pgd es el mejor estado encontrado para el bit d de la cadena binaria encontrado por el mejor individuo del vecindario. Si vid (t) es grande, el individuo tiene una mayor predisposicin a seleco cionar 1, mientras que valores peque os favorecen al 0. Para ubicar el valor n de este parmetro dentro del rango [0.0, 1.0], se utiliza la siguiente funcin: a o

s(vid ) =

1 1 + exp(vid )

Para ajustar la disposicin de cada individuo hacia el xito personal y de o e la comunidad, se construye una frmula para cada vid en el momento actual, o que ser una funcin de la diferencia entre el estado actual del individuo a o y el mejor estado encontrado por l y sus vecinos. En cualquier situacin e o no se puede determinar cul ser el factor de mayor inuencia para tomar la a a decisin: el factor individual o el social, por lo cual cada uno de estos factores o es multiplicado por un n mero aleatorio para que se vaya alternando el efecto u de cada uno de ellos. La frmula de decisin binaria es: o o

46

2.Conceptos bsicos a

vid = vid (t 1) + 1 [pid xid (t 1)] + 2 [pgd xid (t 1)]

Si wid < s[vid (t)] entonces xid (t) = 1; Si no xid (t) = 0 donde 1 y 2 representan n meros positivos con distribucin uniforme con u o un l mite superior denido y wid es un vector de n meros aleatorios entre u 0.0 y 1.0 con distribucin uniforme. Cada una de estas frmulas es aplicada o o repetidamente en cada una de las dimensiones de cada individuo, vericando cada vez si el valor actual de xid resulta en una mejor evaluacin que pid , o en cuyo caso se actualiza el valor. Algunas veces la decisin que tome el o individuo estar basada en su experiencia personal y otras en su percepcin a o de lo que los otros individuos creen. El algoritmo de PSO binario se muestra en la gura 3.6.
Repetir Para cada individuo i en la poblacin o Si aptitud(xi ) > aptitud(pi ) Para cada dimensin d del individuo hacer pid = xid o g=i Para cada vecino j del individuo i Si aptitud(pj ) > aptitud(pg ) entonces g = j Para cada dimensin d del individuo o vid = vid (t 1) + 1 [pid xid (t 1)] + 2 [pgd xid (t 1)] vid (Vmax , Vmax ) Si wid < s[vid (t)] entonces xid (t) = 1; Si no xid (t) = 0 Hasta que la condicin de paro se alcance o

Figura 3.6: Versin binaria del algoritmo de optimizacin mediante c mulos o o u de part culas.

Algoritmo de optimizacin mediante c mulos de part o u culas

47

3.3.2.

Algoritmo de PSO real

En esta versin del algoritmo de PSO, los individuos son vistos como o puntos en el espacio donde el cambio a lo largo del tiempo es visto como un movimiento de puntos o part culas, de tal forma que el estar cerca en el espacio signica que los individuos son similares en las mtricas relevantes. e El aprendizaje ser un incremento o decremento en alguna dimensin, los a o cambios de actitud son vistos como movimientos entre el eje positivo y negativo mientras que los cambios de humor y emocin de los individuos pueden o describirse conceptualmente en un sistema de coordenadas en el que existe un cierto n mero de part u culas en movimiento. Estas part culas o puntos tendern entonces a moverse hacia alguna otra part a cula y a inuenciarse entre s mientras buscan la aprobacin de sus vecinos. o El algoritmo de PSO real cambia la posicin de la part o cula mediante una velocidad vi que es un vector de n meros que se agrega a la posicin actual u o del individuo para moverlo desde un punto a otro en cada paso. El algoritmo de PSO recorre el espacio de bsqueda mediante la modicacin del valor u o vi . La direccin del movimiento es una funcin de la posicin actual de la o o o part cula y su velocidad as como la mejor posicin previa individual y la o mejor posicin previa en el vecindario: o

xi (t) = f [xi (t 1), vi (t 1), pi , pg ] El cambio ahora est denido en trminos de la velocidad y no de la a e probabilidad como en la versin binaria. Sin embargo, el cambio sigue siendo o una funcin de la diferencia entre la mejor posicin anterior y la actual y la o o diferencia entre la mejor posicin en el vecindario anterior y la posicin actual o o de la part cula. La frmula para cambiar la velocidad es igual que la frmula o o de la versin binaria con la unica diferencia de que ahora las variables son o continuas. vi (t) = vi (t 1) + 1 [pi (t) xi (t 1)] + 2 [pg (t) xi (t 1)] xi (t) = xi (t 1) + vi (t)

48

2.Conceptos bsicos a

El algoritmo de PSO en el espacio de los n meros reales es casi idntico u e a la versin binaria, excepto que vi dene incrementos en el movimiento en o lugar de una probabilidad. En la gura 3.7 se muestra la versin real del o algoritmo de PSO.
Repetir Para cada individuo i en la poblacin o Si aptitud(xi ) > aptitud(pi ) Para cada dimensin d del individuo hacer pid = xid o g=i Para cada vecino j del individuo i Si aptitud(pj ) > aptitud(pg ) entonces g = j Para cada dimensin d del individuo o vid (t) = vid (t 1) + 1 [pid (t) xid (t 1)] + 2 [pgd (t) xid (t 1)] vid (Vmax , Vmax ) xid (t) = xid (t 1) + vid (t) Hasta que la condicin de paro se alcance o

Figura 3.7: Versin real del algoritmo de optimizacin mediante c mulos de o o u part culas.

3.3.3.

Parmetros del PSO a

En el algoritmo de PSO existen una gran variedad de parmetros que puea den ser ajustados para modicar la manera en que lleva a cabo la bsqueda el u algoritmo. Los dos parmetros ms importantes son Vmax y los cuales son a a establecidos al inicio del algoritmo y se utilizan a lo largo de toda la bsqueu da. La manipulacin de estos parmetros pueden causar cambios abruptos o a en el comportamiento del sistema. Vmax Este parmetro es utilizado para evitar que la trayectoria de la part a cula se salga de control y que se expanda en ciclos cada vez ms amplios en el a

Algoritmo de optimizacin mediante c mulos de part o u culas

49

espacio del problema hasta que eventualmente tienda al innito. La gura 3.8 es una grca de la trayectoria de una part a cula simplicada que tiene una sola dimensin. En el eje horizontal se muestran las iteraciones del algoritmo o y en el eje vertical el valor de la part cula. En esta grca puede observarse a el efecto de la eliminacin del parmetro Vmax . Para realizar esta grca se o a a utilizaron los valores de los extremos, por ello en las primeras iteraciones los ciclos parecen una l nea recta. Sin embargo, la trayectoria del valor de la part cula crece cada vez ms conforme pasa el tiempo hasta que al llegar a a las 150 iteraciones el valor se encuentra en el rango de 109 [23].

Figura 3.8: Efecto de la eliminacin del parmetro Vmax en el algoritmo de o a PSO [23]. El parmetro de control tambin es llamado la constante de aceleraa e cin y determina el tipo de trayectoria que tomarn las part o a culas. Si tiene un valor muy peque o, la trayectoria de la part n cula crece y cae lentamente a travs del tiempo, mientras que para valores grandes (alrededor de 10) e pareciera que la trayectoria es aleatoria. El incremento de resulta en un incremento de la frecuencia de la trayectoria seguida por la partcula (gura 3.9) mientras que la amplitud est limitada por Vmax [23]. a

50

2.Conceptos bsicos a

Figura 3.9: Efecto de la variacin del parmetro en el algoritmo de PSO o a [23].

Cap tulo 4 Descripcin de la tcnica o e


En este cap tulo se presenta la forma en que se atac el problema del dio se o de circuitos lgicos combinatorios. Primero se explica la representacin n o o utilizada incluyendo la forma de evaluacin y de presentacin de resultao o dos. Despus se describe el algoritmo de optimizacin mediante c mulos de e o u part culas y las modicaciones que se le efectuaron para que pudiera utilizarse en el dise o de circuitos lgicos. Finalmente se habla de la funcin de n o o aptitud adoptada en nuestro algoritmo.

4.1.

Representacin de los circuitos lgicos o o

El principal problema que se pretende resolver en este trabajo es el dise o y la posterior optimizacin de circuitos lgicos combinatorios a nivel de n o o compuertas, teniendo como entrada una tabla de verdad en la que se indican las salidas deseadas dado un conjunto de entradas posibles. Debido a que se conocen los valores de entrada y de salida, lo que se busca es la conguracin de compuertas m o nima (en trminos de alguna mtrica) e e que genere las salidas indicadas en la tabla de verdad correspondiente. Para poder dise ar y optimizar estos circuitos es necesario utilizar una n representacin de las soluciones que ayude a que el tiempo necesario para o la decodicacin no sea muy grande. Es decir, que se debe contar con una o representacin que permita una fcil interpretacin de manera que no se tenga o a o que invertir demasiado tiempo en realizar el mapeo de la representacin a o los valores usados para calcular la aptitud, ya que durante el proceso se va a realizar una gran cantidad de evaluaciones de las posibles soluciones 51

52
COMPUERTA

3. Descripcin de la tcnica o e
ENTRADA 1 ENTRADA 2

Entradas

Salidas

Figura 4.1: Representacin de matriz para el dise o de circuitos lgicos. o n o que se vayan encontrando y que estn contenidas dentro de cada una de las a part culas de la poblacin. o Es importante tener en cuenta que una vez decodicada la solucin es o necesario llevar a cabo su evaluacin y obtener as una tabla de verdad como o la que se da a la entrada para as comprobar la factibilidad de la solucin. o Una solucin factible es la conguracin de compuertas tal que produce la o o misma tabla de verdad que la tabla de entrada. Pueden existir una gran cantidad de soluciones factibles en el espacio de posibles circuitos existentes dentro de la representacin adoptada, pero la conguracin que se busca es o o la que tiene el menor n mero de compuertas. u Existen muchas formas para representar un circuito, sin embargo se opt por o utilizar una representacin de matriz como la de la gura 4.1, la cual fue proo puesta por Louis [25, 26] y que ha sido usada tambin por otros autores como e Miller [30, 31] y Coello [7, 6, 9]. En esta codicacin cada celda de la matriz contiene la informacin refeo o rente a la compuerta y sus entradas. A pesar de que la representacin permite o que se utilicen compuertas de cualquier n mero de entradas, para nes de u esta tesis se consider slo el caso particular de dos entradas, de manera que o o

Representacin de los circuitos lgicos o o

53

cada celda de la matriz contiene una tercia, tal como se muestra en la gura 4.1. Las compuertas que pueden estar codicadas en cada una de las tercias puede ser alguna de las siguientes: AND, OR, XOR, NOT o WIRE. Esta ultima en realidad no es una compuerta y no contribuye en la cuenta de compuertas presentes en la solucin, sino que se trata de un buer o reforo zador de corriente que es necesario para poder llevar a cabo la optimizacin o de las soluciones. Las dos entradas de cada compuerta provienen unicamente de la columna previa a la columna donde se encuentra la celda. Cabe mencionar que la primera columna no tiene columna previa as que para ella las entradas de la compuerta son precisamente las variables de entrada del circuito.

Celda 1 Celda 2 Celda 3 Celda 4 Celda 5

Celda 6 Celda 7 Celda 8 Celda 9 Celda 10

Celda 11 Celda 12 Celda 13 Celda 14 Celda 15

Celda 16 Celda 17 Celda 18 Celda 19 Celda 20

Celda 21 Celda 22 Celda 23 Celda 24 Celda 25

COMPUERTA

ENTRADA 1

ENTRADA 2

Figura 4.2: Matriz de 5 5 con un espacio de bsqueda de 575 . u El espacio de b squeda mximo debido a esta representacin depende u a o directamente del n mero de tipos de compuertas distintas que puedan ser u utilizadas en el dise o del circuito y del tama o de la matriz usada para la n n representacin de las soluciones. Si tenemos una matriz de n m entonces o la longitud necesaria para representarla es de 3 n m ya que cada una de las celdas es una tercia de informacin. Si adems tenemos k tipos de o a compuertas distintas entonces el espacio de bsqueda es de k 3nm . En la gura u 4.2 se muestra una matriz de 5 5 con 5 tipos de compuertas distintas y con un espacio de b squeda de tama o 5553 = 575 2.6 x 1052 . u n

54

3. Descripcin de la tcnica o e

4.1.1.

Representacin interna de las celdas o

Cada celda de la matriz necesita codicar la informacin del tipo de como puerta y de sus entradas. Para esto es necesario adoptar una representacin o sobre la que operar la optimizacin mediante c mulos de part a o u culas. Existen varios tipos de representacin que pueden utilizarse, como la representacin o o real, binaria o entera (gura 4.3).
0 1 1 0 1 1 0

Representacin Binaria 4 3 2 0 5 7 6

Representacin Entera 2.1 4.5 3.8 6.2 0.7 8.6 9.5

Representacin Real

Figura 4.3: Distintos tipos de representacin. o En cada una de las celdas, la primera parte de la tercia indica el tipo de compuerta y las dos partes restantes contienen sus entradas, las cuales provienen de la columna anterior a la columna donde se encuentra la celda. La forma ms sencilla de representar las compuertas y un identicador a de variable o de alguna celda en la matriz es mediante n meros enteros. u Por ejemplo, podemos asignar a las funciones booleanas AND, OR, XOR y NOT los valores de 0,1,2,3 respectivamente y el valor 4 a la compuerta de tipo WIRE. De igual forma, podemos asignar un nmero a cada celda u de la matriz en cada columna comenzando desde arriba y tambin podemos e asignar un identicador numrico a cada una de las variables de entrada. e
2 3 4

Figura 4.4: Una tercia de la matriz con representacin entera. o Si tenemos la tercia que se muestra en la gura 4.4 sabemos que si se est examinando una celda que no se encuentra en la primera columna de a la matriz entonces se trata de una compuerta XOR y que sus entradas son la celda 3 y la celda 4 de la columna anterior. En el caso de que la celda se

Representacin de los circuitos lgicos o o

55

encuentre en la primera columna la compuerta XOR es la misma, sin embargo sus entradas son las variables con el identicador 3 y el identicador 4. Para la representacin binaria es necesario saber el n mero de bits que o u se requieren para representar cada uno de los elementos de un conjunto. Como tenemos 5 tipos de compuertas distintas entonces necesitamos log2 5 = 2.32 bits. Como no es posible tener exactamente 2.32 bits utilizamos 3 los cuales nos proporcionarn 23 = 8 identicadores distintos. Ya que tenemos a ms identicadores de los necesarios podemos aplicar una funcin de mdulo a o o para obtener siempre uno de los 5 elementos del conjunto de compuertas. En el caso de los valores de entrada a la compuerta, quiz se tenga un conjunto a menor o mayor de celdas en cada columna o de identicadores de variables de entrada; sin embargo, se puede seguir el mismo procedimiento del conjunto de compuertas.
0 1 0 0 1 1 1 0 0

Figura 4.5: Una tercia de la matriz con representacin binaria. o Si por ejemplo tuviramos una celda como la de la gura 4.5 con represene tacin binaria, su decodicacin es igual a la de la gura 4.4, una compuerta o o XOR que tiene como entradas las celdas 3 y 4 o con las variables con identicadores 3 y 4. En la representacin real pueden existir muchas formas de asignar un o identifcador unico a cada uno de los elementos del conjunto (por ejemplo, un rango de valores). Sin embargo no es tan intuitiva como la representacin entera o binaria; por ello se opt por utilizar estas dos ultimas para el o o desarrollo de este trabajo.

4.1.2.

Cardinalidad

Con una representacin entera se puede tener exactamente el nmero de o u identicadores necesarios para representar los elementos de un conjunto, a diferencia de la representacin binaria que tendr ms identicadores siempre o a a que el n mero de elementos en el conjunto no sea una potencia de dos. u

56

3. Descripcin de la tcnica o e

La cardinalidad se reere a generar ms identicadores de los necesarios a en la representacin entera para tener un rango de valores ms amplio en o a cada posicin de las tercias de las celdas, para luego aplicar una funcin o o mdulo y obtener as alg n elemento del conjunto que es un enfoque similar o u al usado en [6].

Celda 1 Celda 2 Celda 3 Celda 4 Celda 5

Selecciona

Selecciona

Selecciona

Selecciona

Selecciona

Columna de la matriz

Nmeros Aleatorios

Figura 4.6: Uso de una cardinalidad de dos para la seleccin de celdas o

Si por ejemplo tenemos 5 renglones en la matriz entonces se podrn sea leccionar n meros aleatorios entre 0 y 4 para ser colocados en la posicin u o correspondiente a alguna de las entradas de la compuerta dentro de las tercias. Sin embargo, como se muestra en la gura 4.6, si se usa una cardinalidad de 2, los n meros que podr generarse ser entre 0 y 9 para aplicar desu an an pus el modulo y poder seleccionar alguno de los renglones de la matriz en e una determinada columna. Esto ayuda a que se haga una mejor distribucin de los valores seleccioo nados para cada una de las posiciones dentro de las tercias, pues los valores en los extremos del rango de los n meros no son seleccionados tan frecuenu temente como los internos. Pero si el rango crece entonces los valores en los extremos tambin estarn representados en alguna de las posiciones intere a nas y tendrn la misma oportunidad de ser seleccionados que el resto de los a n meros en el rango. u

Evaluacin o

57

4.2.

Evaluacin o

La evaluacin de un circuito codicado en la matriz se reere a la obteno cin de la tabla de verdad que produce dada su conguracin de compuertas. o o La tabla de verdad es importante debido a que es la forma en que est exa presada la entrada al programa (es decir la salida el circuito del cual se est buscando el dise o optimo y del que slo se conocen sus salidas mas no a n o la conguracin de compuertas) y por ello la unica manera en que podemos o saber si la salida de la solucin encontrada genera los valores deseados en o algunas o en todas las combinaciones de las variables de entrada. Si la tabla de verdad del circuito es idntica a la tabla de verdad de entrada entonces e decimos que el circuito es factible. Para poder obtener la tabla de verdad de todas las salidas del circuito, lo que se hace es evaluar cada celda de la matriz para cada una de las combinaciones de entrada. Si por ejemplo, se tienen 3 variables se tendrn 23 = 8 a diferentes combinaciones (ya que cada variable solamente puede tomar el valor 0 o 1) y 8 evaluaciones de cada una de las celdas.

0 1

1 0

1 1

Entradas

Salidas

Figura 4.7: Entradas a las celdas de la matriz. El proceso de evaluacin comienza por la columna que est ms a la o a a izquierda de la matriz. Como se ve en la gura 4.7, las entradas de las compuertas de cada celda de esta columna son los valores de las variables de entrada de cada una de las combinaciones.

58
A NOT 1 2 XOR 1 0

3. Descripcin de la tcnica o e
AND 0 1

S0 S1 S2
SALIDAS

WIRE

OR

XOR

AND

WIRE

NOT

ENTRADAS

Figura 4.8: Matriz de ejemplo para la obtencin de la expresin booleana. o o Sin embargo, como tambin muestra la gura 4.7 para la siguiente coe lumna, los valores de entrada de las compuertas son los valores de salida de las celdas de la columna previa. La evaluacin contin a hasta que se llega a o u la ultima columna, la cual contiene en cada celda la salida nal del circuito codicado. La celda superior derecha es la primera salida y la que est debajo a de ella en esa misma columna es la segunda salida y as sucesivamente, por lo cual en esta columna se obtiene el valor a la salida del circuito de la matriz para la combinacin de valores de entrada. o Durante el proceso de evaluacin se verica la cantidad de salidas de la o tabla de verdad de la solucin que son iguales a las salidas de la tabla de o verdad de entrada para poder as asignar un valor de aptitud a la solucin, o el cual se explica ms adelante. a

4.3.

Obtencin de expresiones booleanas o

La salida del programa es el diseo de un circuito lgico, el cual est dado n o a por una expresin booleana. En el caso de las expresiones booleanas en noo tacin preja, es necesario comenzar el proceso de obtencin en la columna o o que est ms a la derecha de la matriz, que es la que contiene las salidas del a a circuito. Como se mencion antes, las dos entradas de cada compuerta son celdas o de la columna previa. Para obtener las entradas de las compuertas se necesita siempre consultar la columna anterior a la celda que se est vericando. e Ntese que la columna de la extrema izquierda no tendr una columna preo a via. Por ello, las entradas de las compuertas de esta primera columna son

Obtencin de expresiones booleanas o

59

las variables de entrada del circuito que estarn expresadas mediante letras a may sculas como se muestra en la gura 4.8. u

S0
AND 0 1

XOR

OR

WIRE

NOT

WIRE

AND

Figura 4.9: Arbol de derivacin para la salida S0 de la expresin booleana en o o notacin preja de la matriz mostrada en la gura 4.8. o Para obtener la expresin booleana de alguna de las salidas del circuito o codicado, es necesario identicar la salida deseada en la columna de la extrema derecha de la matriz y a partir de ah se comienza la construccin o (gura 4.9).
1. 2. 3. 4. (AND (AND (AND (AND 0 1) (XOR 1 0) (OR 1 2)) (XOR (WIRE 0 1) (NOT 1 2)) (OR (WIRE 0 1) (AND 1 2))) (XOR (WIRE A B) (NOT B C)) (OR (WIRE A B) (AND B C)))

Figura 4.10: Derivacin completa de la expresin booleana para la salida S0 o o a partir de la matriz de la gura 4.8. Primero se tiene que colocar la funcin booleana (o compuerta) de la celda o y a continuacin el valor de sus entradas. Despus se necesitan decodicar las o e entradas de esta primera funcin booleana, para lo cual se toma la columna o anterior y se colocan las siguientes funciones en su posicin correspondiente o en la expresin. Para decodicar las entradas de estas funciones booleanas o

60

3. Descripcin de la tcnica o e

de segundo nivel se realiza el mismo procedimiento hasta que se llega a la primera columna. Por ultimo, en la gura 4.10 se muestra todo el proceso hasta la ultima decodicacin, que es la traduccin de las entradas de las o o celdas de la primera columna a variables de entrada del circuito, completando as la expresin booleana en notacin preja. o o

4.4.

Algoritmo de optimizacin mediante c muo u los de part culas para el dise o de circuin tos lgicos combinatorios o

El algoritmo de optimizacin mediante c mulos de part o u culas introducido en la seccin 3.3 es una tcnica de optimizacin numrica de funciones no o e o e lineales que ha tenido bastante xito gracias a que tiene un bajo costo come putacional, una fcil implementacin y un excelente desempe o [23], siendo a o n stas las principales motivaciones de usar este algoritmo para el dise o de e n circuitos lgicos combinatorios. o Tradicionalmente el algoritmo de PSO ha sido utilizado para representacin binaria [22] y real [23], teniendo un gran xito con esta ultima. A pesar o e de ello, en este trabajo no se utiliz la representacin real sino que se hicieron o o algunas modicaciones al algoritmo para que utilizara representacin entera. o Existen varias maneras de modelar el dise o de circuitos con esta repren sentacin, sin embargo slo se implementaron dos de ellas. La primera fue o o propuesta por Eberhart y Shi [17] para optimizacin combinatoria y la deo nominaremos representacin entera A. La segunda representacin es una de o o las contribuciones de este trabajo de tesis y ser denominada representacin a o entera B. En la gura 4.11 puede verse el algoritmo general implementado. El PSO tiene como idea principal simular el movimiento de un grupo de aves que buscan comida. En la simulacin, el comportamiento de cada individuo est afeco a tado por un factor individual y uno social. El factor individual Pbest se reere a las decisiones que ha tomado el individuo y que han funcionado mejor (en trminos de su aptitud) y las afectarn las nuevas decisiones que pueda toe a mar. El factor social Nbest se reere a las decisiones que han tomado el resto

Algoritmo de PSO para el dise o de circuitos lgicos combinatorios n o

61

Inicializar la poblacin P de part o culas aleatoriamente. Repetir { Para cada part cula i en la poblacin P { o Calcular el valor de aptitud de la part cula P [i] Si el valor de aptitud de P [i] es mejor que el valor de aptitud de la mejor part cula encontrada en su historia (Pbest[i] ) Actualizar el valor de Pbest[i] al valor de P [i] } Para cada part cula i en la poblacin P { o Seleccionar la part cula con el mejor valor de aptitud dentro del vecindario topolgico de P [i] y actualizar el valor de Nbest[i] o } Para cada part cula i en la poblacin P { o Calcular la nueva velocidad para cada dimensin de la part o cula V [i]nueva = V [i]anterior + 1 (P best[i] P [i]) + 2 (N best[i] P [i]) Actualizar la posicin de la part o cula P [i] } Aplicar la mutacin uniforme de acuerdo al porcentaje proporcionado. o } Hasta que la condicin de paro se alcance o

Figura 4.11: Pseudocdigo del algoritmo de optimizacin mediante c mulos o o u de part culas.

de los individuos de la poblacin (dentro de un cierto vecindario) que han o funcionado mejor y que afectarn las nuevas decisiones tomadas por los ina dividuos en el vecindario. En el algoritmo de la gura 4.11 el paso que diferenc a la representaa cin binaria, entera A y entera B es en el que se actualiza la posicin. Este o o proceso realiza la prueba de cada una de las dimensiones de la part cula y lleva a cabo la actualizacin de su posicin en caso de ser necesario. Para o o cada tipo de representacin el procedimiento que se lleva a cabo es diferente o y se explica a continuacin: o

62 Representacin binaria o

3. Descripcin de la tcnica o e

Si ip[s(Vd )] = 1 Establecer el valor de la posicin d al valor 1 o Si no Establecer el valor de la posicin d al valor 0 o Representacin entera A o Si ip[sig(Vd )] = 1 Establecer el valor de la posicin d al valor de Nbest en la misma posicin o o Representacin entera B o Si ip[sig(Vd )] = 1 Establecer el valor de la posicin d al valor de Nbest en la misma posicin o o Si no Si ip[1 - sig(Vd )] = 1 Establecer el valor de la posicin d al valor de P best en la misma posicin o o En los tres casos ip[] devuelve el valor 1 con una probabilidad igual a la que recibe como parmetro. La variable Vd se reere a la velocidad de a la part cula, que es la predisposicin individual del alelo d para seleccionar o una u otra de las opciones existentes (en este caso el valor 0 o 1) y que estar determinada por un valor de probabilidad en el rango [0.0,1.0]. Si Vd a tiene un valor grande, el individuo tender a escoger el valor 1 mientras que a cuando Vd tenga un valor pequeo se inclinar por el valor 0. La funcin n a o de la ecuacin 4.1 nos permite llevar a cabo la normalizacin de la variable o o a o a Vd adems de que a valores grandes de la funcin sig ser cercana a 1, mientras que para valores peque os estar cerca del 0 que es justamente el n a comportamiento deseado, es decir que para valores grandes de Vd se espera que haya una alta probabilidad de que sea seleccionado el valor 1 y que para valores peque os de Vd la probabilidad de seleccionar el 1 sea mucho menor. n La denicin de sig es la siguiente: o 1 (4.1) 1 + exp() En la gura 4.12 se muestra de forma grca el resultado de la aplicacin a o de la representacin entera A y entera B a los valores de una part o cula. sig() =

Mutacin uniforme o
Partcula 3 flip[sig (vd)]= 1 3 5 6 3 1 2 6 flip[ sig(v d)] = 0 y flip[ 1- sig(v d)] = 1 6

63

5 Nbest

1 Pbest

Entera A Entera B

Figura 4.12: Ejemplo del funcionamiento de la representacin entera A y o entera B.

4.5.

Mutacin uniforme o

La expresin principal de ajuste de la optimizacin mediante c mulos de o o u part culas puede ser vista como un tipo de mutacin. Sin embargo, para el o problema de dise o de circuitos se encontr que su poder exploratorio no era n o suciente, por lo que se agreg un operador de mutacin uniforme [14] con o o un cierto porcentaje. El operador recorre todas las posiciones del alelo (en nuestro caso, cada uno de los valores de las tercias en cada una de las celdas de la matriz) y para cada una de ellas aplica una funcin que devuelva el valor verdadero o con una probabilidad igual al porcentaje de mutacin dado por el usuario. o Si la funcin devuelve un valor verdadero entonces el valor de la posicin o o es cambiado por alg n otro dentro de su rango, como se ve en la gura 4.13. u En el caso de la representacin entera, el operador de mutacin es imporo o tante debido a que todas las soluciones tienen una mayor tendencia a igualar los valores de pbest y nbest y que de hecho no movern sus valores cuando a ya sean idnticas a alguna de ellas. e

64
4 3 2 0 5 7

3. Descripcin de la tcnica o e
6

Mutacin

Uniforme

Figura 4.13: Ejemplo de mutacin uniforme sobre una representacin entera. o o

4.6.

Funcin de aptitud o

Para determinar que un circuito es de costo m nimo se pueden tomar en cuenta varios criterios como el n mero de literales, el n mero de s u u mbolos presentes en la funcin booleana o el nmero de niveles del circuito. Tambin, o u e existen algunas restricciones f sicas de los circuitos lgicos como el fan-in que o especica el n mero mximo de entradas a una compuerta, el fan-out que u a especica la carga mxima a la salida y el retardo de la propagacin que es a o el tiempo necesario para que el cambio de valor de una se al se propague de n la entrada a la salida y que inuye directamente en la velocidad de operacin. Sin embargo, la complejdad de un circuito depende de su n mero de o u compuertas y la complejidad de una compuerta depende de su n mero de u entradas de manera que si el dise o del circuito est expresado mediante una n a funcin booleana, al reducir el nmero de literales en dicha expresin se reo u o ducir el n mero de entradas de cada compuerta y por ende el n mero total a u u de compuertas necesarias en el circuito reduciendo con esto la complejidad. Dadas las consideraciones anteriores se opt por intentar reducir el nmeo u ro de compuertas de un circuito vlido para obtener el dise o optimo. En [25] a n y [30] la funcin de aptitud slo trata de maximizar el n mero de correspono o u dencias entre la salida del circuito y la tabla de verdad de entrada, es decir que funciona en una sola etapa. Sin embargo, en esta propuesta se manej el o problema de dise o de circuitos como un problema de maximizacin en dos n o etapas, similar al adoptado por Coello en [6, 9]. En la primera etapa se trata de conseguir una solucin factible mediante o la maximizacin de la correspondencia entre la tabla de verdad de la solucin o o y la tabla de verdad de entrada. Es decir que para cada elemento de la tabla de verdad de la solucin que sea igual al mismo elemento en la tabla de o verdad de entrada se aumentar en uno la aptitud de la part a cula de manera

Funcin de aptitud o
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Entrada 1 1 0 1 0 1 0 0 Solucin o 1 1 0 0 0 1 1 0

65

Aptitud de la solucin : 6 o Figura 4.14: Aptitud de una solucin no factible. o que mientras la solucin no sea factible la aptitud ser menor que el n mero o a u total de combinaciones posibles de los valores de las variables de entrada (gura 4.14). En la gura 4.15 se muestra la segunda etapa, que es la que intenta optimizar una solucin factible. Debido a que es un problema de maximizacin, o o las soluciones factibles deben tener una mayor aptitud que las soluciones no factibles por lo que su aptitud estar dada por el n mero total de corresa u pondencias entre la tabla de verdad de la solucin y la de entrada (como o son tablas del mismo tama o este valor siempre ser mayor que el valor de n a aptitud de una solucin no factible) ms una bonicacin por cada WIRE o a o presente en la matriz y por cada compuerta que est en la matriz pero que e no participe en la solucin. o La maximizacin de WIREs en la matriz da como resultado una dismio nucin en el n mero de compuertas necesarias para la solucin ya que stas o u o e no implementan una funcin booleana sino que simplemente son buers o o reforzadores de corriente. Si por ejemplo tenemos una matriz de tama o 4 4 la cual sabemos que n contiene una solucin factible para una determinada tabla de verdad de 3 o entradas y 1 salida, adems de que tiene 6 WIREs y 6 compuertas que no a participan en la solucin entonces podr o amos decir que su aptitud ser 23 a (combinaciones distintas de entrada) 1 (salida) + 6 (WIREs) + 6 (compuertas que no participan en la solucin)= 20. De igual forma si se quiere o saber el n mero de compuertas necesarias para implementar una solucin u o

66
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Entrada 1 1 0 1 0 1 0 0

3. Descripcin de la tcnica o e
Solucin o 1 1 0 1 0 1 0 0

Aptitud de la solucin = 20 o 8(correspondencias) + 6(WIREs) + 6(compuertas que no participan en la solucin) o

Figura 4.15: Aptitud de una solucin factible. o dada su aptitud tendr amos que calcular primero el nmero de WIREs y de u compuertas que no se usan en la solucin que es 20 (aptitud) - 23 (como binaciones distintas de entrada) 1 (salida) = 12 (WIREs + compuertas no usadas) y luego obtener el n mero de compuertas, restando este ultimo u n mero al total de celdas en la matriz es decir 16 (celdas) - 12 (WIREs + u compuertas no usadas) = 4 (compuertas). Es importante contabilizar slo las celdas que participen en la solucin o o y no todas las presentes en la matriz ya que para una determinada salida puede ocurrir que no sean necesarias todas las celdas para implementar la funcin booleana. o

Cap tulo 5 Circuitos de una salida


El desempe o del algoritmo de optimizacin mediante c mulos de part n o u culas para el dise o de circuitos lgicos combinatorios se evalu mediante una n o o serie de experimentos en donde el objetivo principal era evaluar la consistencia del algoritmo para producir circuitos factibles que minimizaran el n mero u total de compuertas utilizadas. Cada experimento consta de una tabla de verdad de algunas variables de entrada y una sola salida que describe el comportamiento de un circuito en su totalidad. La tabla de verdad es introducida al programa y se lleva a cabo un conjunto de corridas para analizar el comportamiento estad stico del algoritmo. Se mostrarn nueve circuitos con distintos grados de dicultad y a por ende con una cantidad distinta de evaluaciones de la funcin objetivo. o Los resultados obtenidos sern presentados mediante tablas comparativas de a las tres representaciones. Por ultimo, se presentarn grcas de convergencia a a y los diagramas de los circuitos lgicos encontrados con menor nmero de o u compuertas. Los resultados obtenidos por las tres versiones del PSO son comparados con respecto a los resultados de otras dos tcnicas heur e sticas: el algoritmo gentico de cardinalidad n (NGA) y el algoritmo gentico multiobjetivo e e (MGA) as como por dise adores humanos que utilizaron mapas de Karnaugh n y el mtodo de Quine-McCluskey junto con la simplicacin algebraica. e o 67

68

4. Circuitos de una salida

5.1.

Experimentos

Las tablas de verdad para realizar los experimentos fueron tomadas de la literatura, principalmente de experimentos realizados con el algoritmo gentie co de cardinalidad N (llamado NGA) [6] y el algoritmo gentico multiobjetivo e (llamado MGA) [9] as como algunos ejemplos de archivos en el formato de nominado Berkeley Logic Interchange Format (blif) que han sido utilizados para optimizacin de redes de nodos lgicas multinivel [43]. Los ejemplos o o 1,2,3 y 8 fueron tomados de experimentos llevados a cabo con los algoritmos NGA y MGA y los ejemplo 4,5,6,7 y 9 fueron tomados de arhivos con formato blif y convertidos a tablas de verdad para que pudieran ser introducidos al programa. Conversin de archivos con formato blif a tablas de verdad o La conversin de archivos en formato blif a tablas de verdad se llev a o o cabo mediante un procedimiento en dos etapas. En la primera de ellas a partir del archivo blif se obtiene una expresin booleana en notacin preja. En la o o segunda etapa, la expresin booleana es introducida a un programa escrito o en el lenguaje funcional Scheme el cual realiza la evaluacin de la expresin o o para nalmente obtener la tabla de verdad. En la gura 5.1 se muestra el ejemplo de un archivo con formato blif. La estructura de los archivos blif puede denir una gran variedad de tipos de circuitos [36]. Sin embargo, para los nes de este trabajo slo se tomaron o los archivos que describ circuitos lgicos combinatorios y por ello slo se an o o resaltarn los puntos importantes de la estructura con relacin a este tipo de a o circuitos. As mismo slo se explicar el procedimiento de conversin realizado o a o para los archivos que describen circuitos lgicos combinatorios y no para todo o el conjunto de archivos con formato blif. El primer paso para la obtencin de la expresin booleana consiste en o o determinar las entradas y salidas del circuito as como sus identicadores. En las l neas b y c de la gura 5.1 se puede ver el identicador de entradas .inputs y los s mbolos A,B,C y D asociados a cada una de las variables de entrada. De forma similar las salidas estn identicadas mediante .outputs a y en este caso slo tenemos una salida del circuito con el s o mbolo z. El resto del archivo contiene l neas con el identicador .names seguidas de tres s mbolos y de algunas l neas con los s mbolos 1,0 y - hasta que se llega al nal del archivo indicado mediante el identicador .end. Cada una de

Experimentos

69

las l neas .names se procesa de la misma forma por lo que slo se explicarn o a algunas de ellas.

a. .model hard AZ1 b. .inputs A B C D c. .outputs z d. .names A C n1 e. 11 1 f. .names B D n2 g. 0- 1 h. -1 1 i. .names B C n3 j. 10 1 k. .names C D n4 l. 10 1 m. .names n1 n2 n5 n. 11 1 p. .names n2 C n6 q. 00 1 r. .names n3 n4 n7 s. 1- 1 t. -1 1 u. .names A n7 n8 v. 01 1 w. .names n8 n5 n9 x. 1- 1 y. -1 1 z. .names n9 n6 z A. 1- 1 B. -1 1 C. .end

Figura 5.1: Archivo con formato blif. Los dos primeros s mbolos a continuacin del identicador .name repreo sentan las dos entradas al nodo y el tercero representa la salida que es el

70

4. Circuitos de una salida

nombre del nodo. En la l nea z de la gura 5.1 tenemos los s mbolos de entrada n9,n6 y de salida z. Evidentemente la salida z es la salida del nodo, adems de ser la salida de todo el circuito tal como lo indica outputs por a lo que se debe comenzar en esta l nea para obtener la expresin booleana en o notacin preja del circuito. o La salida z depende de las dos variables de entrada n9 y n6. Para poder relacionar las entradas con la salida se tienen que tomar todas las l neas a continuacin de un identicador .name hasta que se encuentre otro de ellos o o un identicador .end. Cada rengln a continuacin de .name est relacioo o a nado mediante una compuerta OR mientras que los elementos en el mismo rengln estn relacionados mediante una compuerta AND. Si en el rengln o a o se presenta un s mbolo signica que la variable se tiene que colocar tal como est expresada en la l a nea de name; si es un 0 entonces la variable se encuentra negada y por ultimo si se trata de un s mbolo - signica que la variable no se encuentra presente en el trmino. Es importante resaltar que e las variables tienen que colocarse en el mismo orden en que aparecen en la l nea de .name. Para la l nea z de la gura 5.1 la expresin obtenida es z = n6 + n9 o o en notacin preja z = (OR n6 n9). Sin embargo, los s o mbolos n9,n6 no pertenecen a los s mbolos de las variables de entrada por lo que el siguiente paso consiste en obtener las expresiones que representan a estos nodos hasta que z pueda ser expresada slo en trminos de las variables de entrada. El o e s mbolo n6 se encuentra en la l nea p de la gura 5.1 en la tercera posicin despues del identicador .name que indica que n6 es la salida que se o est buscando. La expresin resultante para n6 es n6 = n2 C que a n no a o u est denida completamente en trminos de las variables de entrada por lo a e que se tiene que buscar la expresin para n2. La salida z ser hasta este o a momento z = (n2 C) + n9 o en notacin preja z = (OR (AND (NOT n2) o (NOT C)) n9). La expresin resultante despus de todo el proceso se muestra o e a continuacin: o
z=(OR (AND (NOT (OR D (NOT B))) (NOT C)) (OR (AND (AND A C) (OR D (NOT B))) (AND (NOT A) (OR (AND C (NOT D)) (AND B (NOT C))))))

El ultimo paso para obtener la tabla de verdad a partir de la expresin o booleana en notacin preja se realiza mediante un programa en el lenguaje o funcional Scheme que eval a la expresin para cada una de las combinaciou o nes de las variables de entrada. Para ello se dene una variable que contiene

Experimentos

71

todas las combinaciones posibles dependiendo del nmero de variables de u entrada, una funcin que tiene la expresin booleana a evaluar y un par de o o funciones ms para tomar cada una de las combinaciones y evaluarla en la a expresin booleana. El programa completo para evaluar una expresin de o o cuatro variables de entrada y una salida se muestra en la gura 5.2.

(define lista ( (0 0 0 0) (0 0 0 (0 1 0 0) (0 1 0 (1 0 0 0) (1 0 0 (1 1 0 0) (1 1 0

1) 1) 1) 1)

(0 (0 (1 (1

0 1 0 1

1 1 1 1

0) 0) 0) 0)

(0 (0 (1 (1

0 1 0 1

1 1 1 1

1) 1) 1) 1)))

(define evaluaTodo (lambda (ls) (if (null? ls) () (cons (funcbool (caar ls) (cadar ls) (caddar ls) (car (cdddar ls))) (evaluaTodo (cdr ls)))))) (define evalua (lambda () (evaluaTodo lista))) (define funcbool (lambda (D C B A) (OR (AND (NOT (OR D (NOT B))) (NOT C)) (OR (AND (AND A C) (OR D (NOT B))) (AND (NOT A) (OR (AND C (NOT D)) (AND B (NOT C)))))))) Figura 5.2: Programa en lenguaje Scheme que evala la expresin booleana u o obtenida del archivo blif de la gura 5.1.

72

4. Circuitos de una salida

5.2.

Ejemplo 1

El ejemplo 1 es un circuito sencillo de tres entradas y una salida cuya tabla de verdad se muestra en la tabla 5.1. Los resultados obtenidos por las tres representaciones en 20 corridas independientes se muestran en la tabla 5.2. Puede observarse que las tres representaciones encontraron circuitos factibles en todas las corridas. Sin embargo la representacin binaria encontr circuitos o o hasta con 6 y 7 compuertas mientras que la representacin entera A y B o produjeron circuitos con slo 4 y 5 compuertas adems de que esta ultima o a encontr circuitos de 4 compuertas un mayor nmero de veces. o u
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 0 0 1 0 1 1 0

Tabla 5.1: Tabla de verdad del ejemplo 1. Los parmetros utilizados para la obtencin de estos resultados se ena o cuentran en la tabla 5.3 adems de una comparacin ms detallada entre la a o a representacin binaria, entera A y entera B del PSO, el NGA, el MGA y un o dise ador humano. En la gura 5.3 se muestra una grca de convergencia n a comparativa (de la corrida en la mediana) de las tres representaciones donde puede verse que la representacin entera A fue la que convergi ms rpido o o a a para este ejemplo. En la gura 5.4 se muestra el diagrama lgico del mejor o circuito el cual requiere de 4 compuertas para su implementacin. o Para este ejemplo el MGA tuvo un desempe o muy similar al de las tres n versiones del PSO, aunque encontr un mayor nmero de veces el circuito o u con 4 compuertas y tuvo una aptitud promedio ligeramente mayor que la representacin entera B. El NGA no tuvo un muy buen desempeo en como n paracin con el PSO y el MGA ya que encontr la solucin de 4 compuertas o o o tan slo el 10 % de las veces y circuitos factibles slo el 80 % mientras que los o o dems encontraron circuitos factibles en todas las corridas. La expresin booa o leana encontrada por el dise ador humano fue S = A(B C) + C(AB) que n tiene 5 compuertas y se obtuvo mediante mapas de Karnaugh e identidades del algebra booleana. Esta expresin fue reportada por Coello [9]. o

Ejemplo 1
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1

73
AP1 19.13 16.98 16.75 18.37 18.11 15.29 18.24 15.71 14.67 15.73 17.14 17.70 16.23 17.44 15.71 18.07 16.27 18.14 15.95 16.11 Binaria MA2 NC3 28 5 29 4 28 5 28 5 28 5 27 6 28 5 26 7 27 6 27 6 29 4 29 4 27 6 29 4 28 5 28 5 28 5 28 5 27 6 28 5 Entera A AP MA NC 24.91 28 5 26.43 29 4 25.79 29 4 25.77 28 5 26.46 28 5 26.22 28 5 25.89 29 4 26.10 29 4 26.04 28 5 26.91 29 4 26.55 29 4 26.52 28 5 24.78 28 5 25.05 28 5 27.37 29 4 27.49 29 4 26.51 28 5 27.40 29 4 26.00 28 5 25.92 28 5 Entera B AP MA NC 24.40 29 4 25.80 29 4 24.63 29 4 25.19 29 4 23.96 28 5 24.90 28 5 25.13 29 4 21.61 28 5 22.48 29 4 23.89 29 4 22.50 28 5 25.72 28 5 24.49 28 5 23.31 28 5 23.28 29 4 24.90 29 4 22.56 29 4 25.95 29 4 20.63 29 4 26.62 29 4

Aptitud promedio 2 Mejor aptitud 3 N mero de compuertas u

Tabla 5.2: Anlisis comparativo de 20 corridas del ejemplo 1. a


30 25 20 15 10 5 0 0 100 200 Generacin 300 400
Binaria Entera A Entera B

Aptitud promedio

500

Figura 5.3: Grca de convergencia del ejemplo 1 de la corrida ubicada en la a mediana.

74

4. Circuitos de una salida

Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a

PSO B

PSO EA

PSO EB

MGA

NGA

DH

AND,OR,NOT,XOR y WIRE 55 50 500 25,000 0.8 3.0 0.2 0.4 20 90 300 27,000 0.6667 % 50 % 5 4 65 % 100 % 4.35 28.65 0.4893 4 75 % 100 % 4.25 28.75 0.4330 4 10 % 80 % 11.60 21.40 8.4380

5 -

10 % 3 3

4 20 % 100 % 5.15 27.85 0.8127

4 45 % 100 % 4.55 28.45 0.5104

Tabla 5.3: Comparacin de resultados entre el PSO, un dise ador humano, o n el MGA y el NGA para el ejemplo 1.

A C S

S = (A + C)(B AC) Figura 5.4: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 1.

Ejemplo 2

75

5.3.

Ejemplo 2

La tabla de verdad de este ejemplo consta de cuatro entradas y una salida y se muestra en la tabla 5.4. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.5. En este caso (a diferencia del ejemplo 1) no se encontraron circuitos factibles en todas las corridas adems de que a el mejor circuito encontrado mostrado en la gura 5.6 tiene 6 compuertas y slo se encontr una sola vez. A pesar de que en la grca de convergencia de o o a la gura 5.5 se puede apreciar que la representacin entera A converge ms o a rpidamente, la representacin entera B obtuvo mejores resultados globales a o como se muestra en la tabla 5.6.
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1

Tabla 5.4: Tabla de verdad del ejemplo 2. Para este ejemplo el MGA no tuvo tan buen desempeo como las dos n versiones enteras del PSO, ya que el mejor circuito que encontr tiene 7 o compuertas contra las 6 compuertas del mejor circuito encontrado por la representacin entera A. El MGA encontr el circuito de 7 compuertas el o o 15 % de las veces, mientras que la representacin entera B lo hizo el 30 % o adems de que esta ultima encontr circuitos factibles el 90 % de las veces a o contra el 35 % del MGA. En comparacin con el PSO binario el MGA tuvo o un desempe o similar a pesar de que el mejor circuito encontrado por el n PSO binario fue de 9 compuertas. La expresin booleana encontrada por el o dise ador humano fue S = ((A B) ((AD)(B + C))) + ((A + C) + D) que n tiene 9 compuertas y se obtuvo mediante mapas de Karnaugh. Esta expresin o fue reportada por Coello [9].

76
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1

4. Circuitos de una salida


Binaria MA NC 15 *1 30 11 15 * 30 11 15 * 15 * 15 * 32 9 32 9 29 12 32 9 15 * 31 10 29 12 15 * 15 * 28 13 15 * 15 * 15 * Entera A AP MA NC 22.31 31 10 30.92 33 8 29.51 34 7 30.30 34 7 31.88 34 7 14.94 15 * 29.60 33 8 20.19 32 8 29.12 34 7 14.90 15 * 14.93 15 * 18.77 31 10 32.42 35 6 14.93 15 * 29.39 34 7 14.90 15 * 14.77 15 * 29.62 32 9 14.91 15 * 30.44 33 8 Entera B AP MA NC 19.72 34 7 21.36 33 8 17.16 31 10 17.88 32 9 17.81 34 7 20.98 33 8 20.37 33 8 14.64 15 * 22.41 33 8 17.30 33 8 20.14 34 7 18.85 32 9 14.32 15 * 19.22 34 7 20.07 34 7 15.81 33 8 21.99 34 7 15.00 31 10 16.79 33 8 28.37 33 8

AP 14.12 14.45 14.17 14.80 14.11 13.94 14.09 15.34 15.45 14.09 15.58 14.27 14.77 14.47 14.08 14.31 14.12 13.93 14.32 14.10

Circuito no factible.

Tabla 5.5: Anlisis comparativo de 20 corridas del ejemplo 2. a


35 30 25 Aptitud promedio 20 15 10 5 0 0 500 1000 Generacin 1500 2000
Binaria Entera A Entera B

Figura 5.5: Grca de convergencia del ejemplo 2 de la corrida ubicada en la a mediana.

Ejemplo 2

77

Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a

PSO B

PSO EA

PSO EB

MGA

DH

AND,OR,NOT,XOR y WIRE 55 50 2000 100,000 0.8 3.0 20 0.2 0.4 170 600 102,000 0.6667 % 50 % 5 7 30 % 90 % 9.80 31.20 5.6157 7 15 % 35 % 19.95 21.05 8.9294

9 -

10 % 3 3

9 15 % 45 % 19.1 21.9 7.8867

6 5% 65 % 14.25 26.75 8.9022

Tabla 5.6: Comparacin de resultados entre el PSO, un dise ador humano y o n el MGA para el ejemplo 2.

A C

S = (B + (D A)) + (C D(D A)) Figura 5.6: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 2.

78

4. Circuitos de una salida

5.4.

Ejemplo 3

La tabla de verdad de este ejemplo se muestra en la tabla 5.7. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.8. Para este ejemplo la representacin binaria no encontr muchos circuio o tos factibles adems de que la mejor solucin que encontr fue un circuito de a o o 9 compuertas mientras que las otras dos encontraron un circuito con 7 compuertas que es mostrado en la gura 5.8. La grca de convergencia de la a gura 5.7 muestra que la representacin entera A tambin converge ms rpio e a a do pero la entera B tiene un mejor comportamiento global como lo muestra la tabla 5.9.
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1

Tabla 5.7: Tabla de verdad del ejemplo 3. En este ejemplo, el mejor circuito encontrado por las dos versiones enteras del PSO y por el MGA tiene 7 compuertas, el cual se obtuvo en ms o menos a el mismo n mero de corridas en las tres heur u sticas. Sin embargo, las dos representaciones enteras del PSO encontraron circuitos factibles en al menos 75 % de las veces mientras que el MGA slo lo consigui el 35 %. La aptitud o o promedio del MGA fue mayor que la aptitud promedio de la versin binaria o del PSO pero fue menor que las aptitudes promedio de las dos versiones enteras del PSO. La expresin booleana encontrada por el diseador humano o n fue S = BC + A (C + D ) + B (AD) que tiene 11 compuertas y se obtuvo mediante mapas de Karnaugh por la autora de esta tesis y el resultado se utiliz como referencia para evaluar los resultados obtenidos por el PSO. o

Ejemplo 3
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 14.30 14.28 14.16 14.44 13.89 14.26 14.11 13.95 14.01 14.05 14.05 13.97 13.85 14.44 14.24 14.16 14.33 15.15 14.67 14.22 Binaria MA NC 15 * 15 * 15 * 32 9 15 * 15 * 15 * 15 * 15 * 15 * 15 * 15 * 15 * 26 15 15 * 28 13 15 * 31 10 31 10 15 * Entera A AP MA NC 31.35 34 7 24.18 32 9 14.92 15 * 18.06 32 9 29.62 33 8 25.32 33 8 28.30 32 9 26.40 32 9 30.27 33 8 15.12 30 11 14.93 15 * 28.40 33 8 14.91 15 * 26.19 31 10 32.09 34 7 14.88 15 * 31.06 33 8 33.00 34 7 31.17 33 8 14.94 15 * Entera B AP MA 17.45 32 15.86 31 17.03 30 19.50 33 18.85 34 23.10 33 19.58 33 14.74 15 17.88 33 19.84 34 27.28 34 18.18 33 14.71 15 21.38 33 25.28 33 16.77 33 19.02 32 27.83 34 18.14 32 16.73 31

79

NC 9 10 11 8 7 8 8 * 8 7 7 8 * 8 8 8 9 7 9 10

Tabla 5.8: Anlisis comparativo de 20 corridas del ejemplo 3. a

35 30 25 Aptitud promedio 20 15 10 5 0 0 500 1000 Generacin 1500 Binaria 2000 Entera A Entera B

Figura 5.7: Grca de convergencia del ejemplo 3 de la corrida ubicada en la a mediana.

80
Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a PSO B PSO EA

4. Circuitos de una salida


PSO EB MGA DH

AND,OR,NOT,XOR y WIRE 55 50 2000 100,000 0.8 3.0 20 0.2 0.4 170 600 102,000 0.6667 % 50 % 5 7 25 % 90 % 10.10 30.90 5.5431 7 15 % 35 % 20.55 20.45 8.3759

11 -

10 % 3 3

9 5% 25 % 22.35 18.65 6.5877

7 15 % 75 % 14.25 28.2 7.8780

Tabla 5.9: Comparacin de resultados entre el PSO, un dise ador humano y o n el MGA para el ejemplo 3.
C

A B S

S = (((C A) + (B A))((B + D) (B A))) Figura 5.8: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 3.

Ejemplo 4

81

5.5.

Ejemplo 4

La tabla de verdad de este ejemplo se muestra en la tabla 5.10 y fue tomada del archivo blif nombrado miller. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.11. Para este ejemplo la representacin binaria y la entera B encontraron circuitos factibles en todas o las corridas mientras que la entera A fall en una sola (tabla 5.12). Por otro o lado las tres representaciones encontraron que el menor n mero de compueru tas necesarias para construir el circuito es de 6 (gura 5.10). La grca de a convergencia de la gura 5.9 muestra que la representacin entera A tuvo o una convergencia mucho ms abrupta que las otras dos representaciones. Sin a embargo, en trminos generales la representacin entera B tuvo un mejor e o desempe o. n
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0

Tabla 5.10: Tabla de verdad del ejemplo 4. Las cuatro tcnicas heur e sticas tuvieron un desempe o similar en cuanto n a la obtencin de circuitos factibles al encontraron circuitos factibles en al o menos el 90 % de las corridas. El mejor circuito encontrado por las cuatro tcnicas tiene 6 compuertas slo que para el caso del PSO binario y el PSO e o entero A se encontr el 75 % de las veces, para el PSO entero B el 85 % o mientras que el MGA slo lo consigui el 30 % del tiempo adems de que o o a su aptitud promedio fue menor que las tres versiones del PSO. La expresin o booleana encontrada por el diseador humano fue S = (A B) (C D) + n D (CA) + B(A D) que tiene 11 compuertas y fue obtenido por la autora de esta tesis mediante mapas de Karnaugh y algebra booleana.

82
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 16.52 15.06 14.59 16.97 16.08 16.86 19.58 17.50 16.60 18.38 19.80 17.53 18.52 18.60 16.47 20.81 17.65 18.01 19.01 18.16 Binaria MA NC 35 6 35 6 29 12 33 8 31 10 35 6 35 6 35 6 33 8 34 7 35 6 35 6 35 6 35 6 35 6 35 6 35 6 35 6 35 6 35 6 Entera A AP MA NC 29.59 35 6 27.10 34 7 29.33 34 7 33.19 34 7 31.60 35 6 34.08 35 6 33.21 35 6 34.05 35 6 34.16 35 6 33.71 35 6 27.79 32 9 33.21 35 6 33.24 35 6 33.19 35 6 29.25 35 6 33.85 35 6 14.87 15 * 33.96 35 6 33.60 35 6 34.06 35 6

4. Circuitos de una salida


Entera B AP MA NC 28.75 35 6 30.25 35 6 32.54 35 6 28.37 35 6 26.75 35 6 28.16 35 6 28.82 35 6 27.21 35 6 23.50 35 6 28.64 35 6 28.43 35 6 29.57 35 6 27.23 35 6 23.74 35 6 27.25 35 6 26.07 34 7 22.09 34 7 31.57 35 6 20.84 34 7 25.61 35 6

Tabla 5.11: Anlisis comparativo de 20 corridas del ejemplo 4. a


40 35 30 Aptitud promedio 25 20 15 10 5 0 0 500 1000 Generacin 1500
Binaria Entera A Entera B

2000

Figura 5.9: Grca de convergencia del ejemplo 4 de la corrida ubicada en la a mediana.

Ejemplo 4
Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a PSO B PSO EA PSO EB MGA DH

83

AND,OR,NOT,XOR y WIRE 55 50 2000 100,000 0.8 3.0 20 0.2 0.4 170 600 102,000 0.6667 % 50 % 5 6 85 % 100 % 6.15 34.85 0.3664 6 30 % 90 % 9.30 31.70 6.2669

11 -

10 % 3 3

6 75 % 100 % 6.75 34.25 1.6181

6 75 % 95 % 7.30 33.70 4.4615

Tabla 5.12: Comparacin de resultados entre el PSO, un dise ador humano o n y el MGA para el ejemplo 4.
B

C D

S = (C D)(B C) + ((B A) (C D)) Figura 5.10: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 4.

84

4. Circuitos de una salida

5.6.

Ejemplo 5

La tabla de verdad del archivo blif rnd4-1 de este ejemplo se muestra en la tabla 5.13. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.14. La representacin binaria encontr circuitos faco o tibles en todas las corridas mientras que la entera A y B no lo lograron (tabla 5.15). A pesar de que la representacin binaria y entera B encontraron que o un circuito de 6 compuertas, la representacin entera encontr un circuito o o vlido con 5 compuertas (gura 5.12) pero slo apareci una vez en todas las a o o corridas. A pesar de que la grca de convergencia de la gura 5.11 muesa tra que la representacin entera A tuvo una mejor aptitud promedio en la o mediana de la corrida, la representacin entera B tuvo un mejor desempeo o n global.
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1

Tabla 5.13: Tabla de verdad del ejemplo 5. MGA tambin encontr un circuito de 5 compuertas con la diferencia e o de que la representacin entera A lo hall el 5 % de las veces mientras que o o el MGA lo hizo en el 15 % de las corridas. Sin embargo, este ultimo slo o encontr circuitos factibles en el 65 % de las corridas mientras que el PSO o entero A hizo lo propio el 85 % de las veces. A pesar de que el PSO binario y entero B slo encontraron un circuito de 6 compuertas, la aptitud promedio o fue mucho mayor que el MGA. La expresin booleana encontrada por el o dise ador humano fue S = C((A B) D)) + D(A C) + AD C que tiene n 12 compuertas y fue obtenido por la autora de esta tesis mediante mapas de Karnaugh y algebra booleana.

Ejemplo 5
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 16.60 15.85 16.19 19.92 18.70 15.61 16.68 21.13 17.05 15.96 16.96 14.51 14.85 16.84 17.29 21.15 17.99 15.37 15.87 16.13 Binaria MA NC 34 7 34 7 35 6 34 7 34 7 31 10 34 7 35 6 32 9 32 9 34 7 15 * 31 10 34 7 32 9 34 7 34 7 34 7 34 7 31 10 Entera A AP MA NC 33.98 36 5 32.36 35 6 33.25 35 6 28.59 32 9 29.55 34 7 14.92 15 * 27.48 33 8 14.95 15 * 32.22 34 7 33.53 35 6 30.38 32 9 31.14 34 7 30.01 32 9 14.86 15 * 29.92 33 8 31.68 35 6 33.03 34 7 33.23 35 6 25.98 31 10 34.08 35 6 Entera B AP MA NC 14.92 15 * 17.65 33 8 22.71 34 7 28.35 34 7 14.91 15 * 24.70 35 6 14.88 15 * 27.26 34 7 25.37 35 6 23.15 35 6 23.27 34 7 21.82 34 7 20.37 35 6 21.98 34 7 28.89 34 7 27.88 35 6 28.19 35 6 26.62 35 6 19.04 34 7 20.95 34 7

85

Tabla 5.14: Anlisis comparativo de 20 corridas del ejemplo 5. a


35 30 25 Aptitud promedio 20 15 10 5 0 0 500 1000 Generacin 1500 2000
Binaria Entera A Entera B

Figura 5.11: Grca de convergencia del ejemplo 5 de la corrida ubicada en a la mediana.

86
Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a PSO B PSO EA

4. Circuitos de una salida


PSO EB MGA DH

AND,OR,NOT,XOR y WIRE 55 50 2000 100,000 0.8 3.0 20 0.2 0.4 170 600 102,000 0.6667 % 50 % 5 6 35 % 85 % 8.60 32.40 7.1117 5 15 % 65 % 14.80 26.20 9.1168

12 -

10 % 3 3

6 10 % 95 % 8.60 32.40 4.2969

5 5% 85 % 10 31.00 7.0187

Tabla 5.15: Comparacin de resultados entre el PSO, un dise ador humano o n y el MGA para el ejemplo 5.

B A D C S

S = C(AD + B) (A D)) Figura 5.12: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 5.

Ejemplo 6

87

5.7.

Ejemplo 6

La tabla de verdad de este ejemplo se muestra en la tabla 5.16 y fue tomada del archivo rnd4-4. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.17. La representacin entera B encontr circuitos o o factibles en todas las corridas (tabla 5.18) mientras que las otras dos fallaron en algunas. El mejor circuito encontrado por las tres representaciones tiene 5 compuertas (gura 5.14) y en la representacin entera B fue encontrado en o ms de la mitad de las corridas. La grca de convergencia de la gura 5.13 a a muestra que la representacin entera A tuvo una mejor aptitud. Sin embargo o la representacin entera B tuvo un mejor desempe o global. o n
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0

Tabla 5.16: Tabla de verdad del ejemplo 6. Para este ejemplo las tres versiones del PSO y el MGA encontraron un circuito de tan solo 5 compuertas. Sin embargo el MGA lo encontr slo el o o 10 % de las veces mientras que el PSO binario lo logr el 20 %, el PSO eno tero A 40 % y el PSO entero B el 55 % de las corridas. Por otro lado, las tres versiones del PSO encontraron circuitos factibles en al menos el 75 % de las corridas mientras que el MGA lo consigui slo el 70 % de las veces. La o o aptitud promedio del MGA fue de 27.30 (13.70 compuertas promedio) mientras que la mejor aptitud promedio del PSO fue de 35.10 (5.90 compuertas promedio) que es un valor mucho mejor. La expresin booleana encontrada o por el dise ador humano fue S = D(B + B(A C)) + C (B D) que tiene n 9 compuertas y fue obtenido por la autora de esta tesis mediante mapas de Karnaugh y algebra booleana.

88
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 14.01 14.98 15.70 16.26 16.54 14.50 14.55 17.16 17.35 14.17 16.58 18.52 15.02 16.67 14.18 17.36 14.35 14.14 14.10 14.74 Binaria MA NC 15 * 34 7 34 7 34 7 36 5 33 8 32 9 36 5 34 7 27 14 34 7 36 5 33 8 34 7 29 12 36 5 30 11 15 * 15 * 35 6 Entera A AP MA NC 32.72 35 6 29.84 33 8 14.69 31 10 35.12 36 5 29.22 34 7 30.05 36 5 14.78 15 * 29.43 36 5 14.89 15 * 33.69 35 6 28.62 35 6 32.69 36 5 34.53 36 5 34.70 36 5 34.10 36 5 30.64 33 8 31.12 33 8 32.42 34 7 33.16 34 7 34.77 36 5

4. Circuitos de una salida


Entera B AP MA NC 20.98 36 5 27.52 35 6 20.28 33 8 20.82 36 5 21.93 35 6 15.11 32 9 29.05 36 5 27.94 36 5 27.72 35 6 16.80 32 9 18.68 36 5 25.61 36 5 24.44 36 5 20.59 35 6 31.69 36 5 23.87 34 7 21.00 35 6 30.99 36 5 26.14 36 5 27.44 36 5

Tabla 5.17: Anlisis comparativo de 20 corridas del ejemplo 6. a

35 30 25 20 15 10 5 0 0 500 1000 Generacin 1500


Binaria Entera A Entera B

Aptitud promedio

2000

Figura 5.13: Grca de convergencia del ejemplo 6 de la corrida ubicada en a la mediana.

Ejemplo 6
Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a PSO B PSO EA PSO EB MGA DH

89

AND,OR,NOT,XOR y WIRE 55 50 2000 100,000 0.8 3.0 20 0.2 0.4 170 600 102,000 0.6667 % 50 % 5 5 55 % 100 % 5.90 35.1 1.3338 5 10 % 70 % 13.70 27.30 9.3982

9 -

10 % 3 3

5 20 % 85 % 10.40 30.60 7.1259

5 40 % 90 % 8.25 32.75 6.2313

Tabla 5.18: Comparacin de resultados entre el PSO, un dise ador humano o n y el MGA para el ejemplo 6.
C S B

D A

S = CB (DA + (B D)) Figura 5.14: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 6.

90

4. Circuitos de una salida

5.8.

Ejemplo 7

Este ejemplo fue tomado de un archivo blif llamado rnd4-9 y su tabla de verdad se muestra en la tabla 5.19. Los resultados obtenidos por las tres representaciones son mostrados en la tabla 5.20. En este ejemplo la representacin o entera A y B tuvieron un mucho mejor desempe o que la representacin bin o naria ya que esta ultima encontr circuitos factibles slo el 15 % de la veces o o (tabla 5.21) y el mejor de los circuitos que obtuvo tiene 9 compuertas. En contraste las representaciones enteras encontraron circuitos factibles el 60 % de las veces y adems se encontr un circuito que necesita slo 6 compuertas a o o (gura 5.16). En comparacin, las representacin entera A funcion mejor o o o que la entera B ya que en la primera de ellas se encontr el circuito de 6 o compuertas en 8 corridas mientras que la entera B apenas lo consigui en 4. o
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1

Tabla 5.19: Tabla de verdad del ejemplo 7. La grca de convergencia de la gura 5.15 muestra que la representacin a o entera A tambin tuvo cambios ms abruptos en relacin a la aptitud proe a o medio pero en este ejemplo su desempe o global s fue mejor que el de las n otras dos representaciones. En este caso las representaciones enteras del PSO fueron mucho mejores que el MGA ya que, a pesar de que el mejor circuito encontrado por las tres tcnicas requiere de 6 compuertas, las representacin e o entera A lo hall el 40 % de las veces y la representacin entera B el 20 % o o mientras que el MGA slo lo encontr en el 5 % de las corridas. o o Adems las representaciones enteras del PSO hallaron circuitos factibles a el 60 % del tiempo mientras que el MGA slo lo logr el 10 %. La aptitud o o

Ejemplo 7
35 30 25 Aptitud promedio 20 15 10 5 0 0 500 1000 Generacin 1500 2000 Binaria Entera A Entera B

91

Figura 5.15: Grca de convergencia del ejemplo 7 de la corrida ubicada en a la mediana.

Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 21.88 14.49 16.50 20.49 16.68 14.83 19.39 14.62 14.68 14.32 14.79 22.17 14.65 21.12 24.58 18.26 20.01 14.87 20.48 14.91

Binaria MA NC 35 6 15 * 30 11 35 6 34 7 15 * 33 9 15 * 15 * 15 * 15 * 35 6 15 * 34 7 33 8 32 9 35 6 15 * 33 9 32 9

Entera A AP MA NC 14.92 15 * 14.82 15 * 14.87 15 * 28.44 32 9 33.22 35 6 14.87 15 * 15.20 30 11 14.69 15 * 32.09 35 6 32.57 35 6 14.45 15 * 31.97 34 7 32.19 34 7 14.90 15 * 33.36 35 6 30.05 35 6 32.67 35 6 14.92 15 * 29.15 35 6 33.36 35 6

Entera B AP MA NC 21.88 35 6 14.49 15 * 16.50 30 11 20.49 35 6 16.68 34 7 14.83 15 * 19.39 33 8 14.62 15 * 14.68 15 * 14.32 15 * 14.79 15 * 22.17 35 6 14.65 15 * 21.12 34 7 24.58 33 8 18.26 32 9 20.01 35 6 14.87 15 * 20.48 33 8 14.91 32 9

Tabla 5.20: Anlisis comparativo de 20 corridas del ejemplo 7. a

92

4. Circuitos de una salida

B D S A

S = (C BD)((B D) + A) Figura 5.16: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 7. promedio del MGA fue menor que las tres versiones del PSO aunque el mejor circuito encontrado por el PSO binario requiere 9 compuertas. La expresin o booleana encontrada por el diseador humano fue S = C (B D)+A(D C + n DCB) que tiene 9 compuertas y fue obtenido por la autora de esta tesis mediante mapas de Karnaugh y algebra booleana.

Parmetros a Conjunto de compuertas Matriz Tama o de la poblacin n o N mero de generaciones u Evaluaciones N mero de corridas u 1 = 2 Vmax Pm Pc Tama o del vecindario n Cardinalidad N mero de compuertas u de la mejor solucin o Mejor solucin o Circuitos factibles N mero de compuertas u promedio Aptitud promedio Desviacin estndar o a

PSO B

0.8 3.0

PSO EA PSO EB MGA AND,OR,NOT,XOR y WIRE 55 50 170 2000 600 100,000 102,000 20 0.2 0.4 10 % 0.6667 % 50 % 3 3 5 6 40 % 60 % 14.50 26.50 9.7089 6 20 % 60 % 14.95 26.05 9.3328 6 5% 10 % 24.40 16.60 5.6606

DH 10 -

9 10 % 15 % 23.50 17.50 6.1087

Tabla 5.21: Comparacin de resultados entre el PSO, un dise ador humano o n y el MGA para el ejemplo 7.

Ejemplo 8

93

5.9.

Ejemplo 8

La tabla de verdad de este ejemplo se muestra en la tabla 5.22. Los resultados obtenidos por las tres representaciones se muestran en la tabla 5.23. Ninguna de las tres representaciones de PSO consigui encontrar circuitos o factibles en todas las corridas. Sin embargo la que obtuvo un porcentaje ms a alto fue la representacin entera B. Por otro lado, el mejor circuito encontrado o tiene 7 compuertas (gura 5.18) y fue encontrado en dos corridas de las tres representaciones. En la gura 5.17 se muestra una grca de convergencia a de las tres representaciones y puede apreciarse que la representacin entera o A tambin tuvo una mejor aptitud promedio; sin embargo la representacin e o entera B tuvo un mejor desempe o global. n
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0

Tabla 5.22: Tabla de verdad del ejemplo 8. El desempe o del MGA fue mejor que el de las tres versiones del PSO n ya que con un menor nmero de evaluaciones de la funcin objetivo enconu o tr circuitos factibles en todas las corridas y el mejor circuito de 7 como puertas lo hall el 15 % de las veces. Las tres versiones del PSO tambin o e encontraron un circuito de 7 compuertas pero encontraron circuitos factibles en a lo ms el 80 % de las corridas. La aptitud promedio del MGA tama bin fue superior a las tres versiones del PSO consiguiendo un n mero de e u compuertas promedio de 8.90. Sin embargo, el desempeo del NGA fue basn tante pobre. La expresin booleana encontrada por el diseador humano fue o n S = ((D B) (A C )) + ((B A)(D C )) que tiene 11 compuertas y se obtuvo mediante mapas de Karnaugh. Esta expresin fue reportada por Coello [9]. o

94
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 14.57 14.77 14.00 14.07 13.74 13.76 14.63 14.40 15.69 13.93 13.96 15.11 14.72 13.85 13.84 14.17 15.54 15.82 16.16 13.84 Binaria MA NC 32 9 33 8 15 * 15 * 15 * 15 * 33 8 29 12 30 11 15 * 15 * 33 8 32 9 15 * 15 * 33 8 34 7 34 7 33 8 15 * Entera A AP MA NC 14.91 15 * 30.01 33 8 14.60 15 * 14.94 15 * 23.95 33 8 14.13 15 * 14.90 15 * 31.37 33 8 31.65 34 7 31.89 33 8 30.00 34 7 13.97 14 * 28.98 32 9 28.46 32 9 14.91 15 * 14.85 15 * 29.90 33 8 30.48 32 * 31.19 33 8 25.10 32 *

4. Circuitos de una salida


Entera B AP MA 14.81 15 26.03 34 17.38 32 21.04 33 19.46 33 22.21 33 19.88 31 16.33 32 19.90 33 14.37 15 18.17 30 14.60 15 14.53 31 21.07 33 16.57 30 20.21 33 19.63 32 20.42 34 14.16 15 17.04 30

NC * 7 9 8 8 8 10 9 8 * 11 * 10 8 11 8 9 7 * 11

Tabla 5.23: Anlisis comparativo de 20 corridas del ejemplo 8. a

35 30 25 Aptitud promedio 20 15 10 5 0 0 1000 2000 Generacin 3000 4000


Binaria Entera A Entera B

Figura 5.17: Grca de convergencia del ejemplo 8 de la corrida ubicada en a la mediana.

Ejemplo 8
Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a PSO B PSO EA PSO EB MGA NGA DH

95

AND,OR,NOT,XOR y WIRE 55 50 4000 200,000 0.8 3.0 0.2 0.4 20 170 400 68,000 0.6667 % 50 % 7 10 % 80 % 12.30 28.70 7.1311 7 15 % 100 % 8.90 32.10 1.2523 10 5% 5% 25.45 15.55 3.6774

11 -

10 % 3 3

7 10 % 55 % 17.50 24.55 8.9353

7 10 % 60 % 15.35 25.65 9.0454

Tabla 5.24: Comparacin de resultados entre el PSO, un dise ador humano, o n el MGA y el NGA para el ejemplo 8.

C A B S

S = ((C + BA) (D B)(B + A)) Figura 5.18: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 8.

96

4. Circuitos de una salida

5.10.

Ejemplo 9

Este ejemplo fue tomado del archivo blif llamado Roth-2ip cuya tabla de verdad se muestra en la tabla 5.25.
E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0

Tabla 5.25: Tabla de verdad del ejemplo 9. Este ejemplo tiene una complejidad mayor ya que tiene cinco entradas y una salida por lo que se llevaron a cabo ms evaluaciones que en los circuitos a anteriores para encontrar los resultados que son mostrados en la tabla 5.26. Para este ejemplo la representacin binaria no tuvo un buen desempeo ya o n que no encontr ninguna solucin factible mientras que las representacioo o nes enteras encontraron soluciones factibles en poco ms de la mitad de las a corridas (tabla 5.27). El mejor circuito encontrado por las representaciones enteras fue de 10 compuertas (gura 5.20) y fue hallado ms frecuentemena te por la representacin entera A que la B. La grca de convergencia de o a

Ejemplo 9

97

la gura 5.19 muestra un comportamiento distinto al de los otros ejemplos ya que la representacin entera A converge ms lentamente que la entera B o a adems de que esta ultima tiene un mejor desempe o global. a n En este ejemplo la versin binaria del PSO no produjo ningn circuito o u factible. Las versiones enteras del PSO lograron mejores resultados que el MGA ya que a pesar de que las tres tcnicas encontraron un circuito con 10 e compuertas, el MGA slo lo logr el 5 % de las veces, mientras que el PSO o o entero A lo consigui el 10 % del tiempo y el PSO entero B en el 25 % de o las corridas. Por otro lado las representaciones enteras del PSO encontraron circuitos factibles en ms de las mitad de las corridas mientras que el MGA a slo produjo circuitos factibles el 25 % de las veces. La aptitud promedio o de la representacin entera B del PSO fue de 44.85 mientras que la aptitud o promedio del MGA fue de tan slo 35.60. La expresin booleana encontrada o o por el dise ador humano fue S = (C B)(E (D A) + A (E D)) + (B n A)(C (E D) + D (E C)) + EC (B (A D)) que tiene 23 compuertas y fue obtenido por la autora de esta tesis mediante algebra booleana.

Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 26.27 27.01 26.33 26.90 26.57 26.95 26.72 26.78 26.78 26.59 27.23 26.82 26.52 26.42 26.55 26.58 26.96 27.35 26.51 26.56

Binaria MA NC 29 * 28 * 29 * 30 * 28 * 29 * 28 * 28 * 30 * 29 * 30 * 29 * 28 * 28 * 31 * 28 * 28 * 31 * 29 * 29 *

Entera A AP MA 56.73 58 50.92 57 29.10 30 48.42 58 40.46 57 48.43 54 35.82 56 30.34 31 30.37 31 48.27 54 29.07 30 28.91 29 29.62 30 30.02 31 53.11 56 44.48 57 27.95 28 30.66 31 33.26 55 30.73 31

NC 10 11 * 10 11 14 12 * * 14 * * * * 12 11 * * 13 *

Entera B AP MA 42.06 57 45.07 58 35.34 56 29.32 31 35.66 55 42.14 57 28.65 30 29.61 31 30.27 31 34.50 55 29.07 31 31.01 54 43.34 58 28.45 31 28.79 30 28.96 30 39.28 55 36.95 58 29.15 31 39.76 58

NC 11 10 12 * 13 11 * * * 13 * 14 10 * * * 13 10 * 10

Tabla 5.26: Anlisis comparativo de 20 corridas del ejemplo 9. a

98
40 35 30 Aptitud promedio 25 20 15 10 5 0 0 2000 4000 Generacin 6000

4. Circuitos de una salida

8000

10000 Binaria Entera A Entera B

Figura 5.19: Grca de convergencia del ejemplo 9 de la corrida ubicada en a la mediana.

Parmetros a Conjunto de compuertas Matriz Tama o de la poblacin n o N mero de generaciones u Evaluaciones N mero de corridas u 1 = 2 Vmax Pm Pc Tama o del vecindario n Cardinalidad N mero de compuertas u de la mejor solucin o Mejor solucin o Circuitos factibles N mero de compuertas u promedio Aptitud promedio Desviacin estndar o a

PSO B

0.8 3.0

PSO EA PSO EB MGA AND,OR,NOT,XOR y WIRE 66 50 330 10000 1600 500,000 528,000 20 0.2 0.4 10 % 0.6667 % 50 % 3 3 5 10 10 % 50 % 24.80 43.20 13.3952 10 25 % 55 % 23.15 44.85 13.2119 10 5% 25 % 32.40 35.60 11.8028

DH 23 -

* 0% 0% * 28.95 0.9986

Tabla 5.27: Comparacin de resultados entre el PSO, un dise ador humano o n y el MGA para el ejemplo 9.

Ejemplo 9

99

E C S D

B A

S = (((B D) + (A B)) CE) (((B D) + (A B)) CE)((E (D C)) (A B)) Figura 5.20: Diagrama y ecuacin lgica del mejor circuito encontrado para o o el ejemplo 9.

100

4. Circuitos de una salida

Cap tulo 6 Circuitos de mltiples salidas u


El dise o de circuitos lgicos combinatorios de una salida es distinto al n o dise o de circuitos de m ltiples salidas debido a que para estos ultimos es n u necesario dise ar cada salida por separado y despus localizar las compuertas n e que puedan utilizarse en ms de una salida. a Para resolver el problema del dise o de circuitos de m ltiples salidas lo n u que se hizo fue que en lugar de usar una matriz para el diseo de cada salida n y despus buscar la reutilizacin de compuertas se combinaron todas las sae o lidas en la misma matriz de forma que cada salida pudiera utilizar cualquier celda para su implementacin consiguiendo con ello la reutilizacin de bloo o ques funcionales completos de compuertas. El algoritmo bsico utilizado en este trabajo para el dise o de circuitos a n de una y m ltiples salidas es el mismo. Sin embargo, al aumentar el nmero u u de salidas se incrementa la complejidad del circuito y por ello se requirieron ms evaluaciones de la funcin objetivo que las evaluaciones necesitadas para a o el dise o de circuitos de una sola salida. Al igual que para los circuitos de n una salida se llevaron a cabo 20 corridas independientes de cada una de las representaciones (binaria, entera A y entera B) y las comparaciones con respecto al algoritmo gentico de cardinalidad N (NGA) [6] y el algoritmo e gentico multiobjetivo (MGA) [9]. e

101

102

5. Circuitos de m ltiples salidas u

6.1.

Ejemplo 1

El ejemplo 1 fue tomado del archivo blif ieee adder 2ip y es un circuito de cuatro entradas y dos salidas cuya tabla de verdad se muestra en la tabla 6.1. En las tablas 6.2 y 6.3 se puede ver que la representacin binaria encono tr circuitos de 7 compuertas (gura 6.2) en varias de sus corridas adems o a de que se encontraron circuitos factibles el 95 % de las veces. Sin embargo, algunos de ellos contienen muchas ms compuertas que el mejor circuito ena contrado. Por otro lado la representacin entera A tambin encontr circuitos o e o de 7 compuertas pero en ms corridas que la representacin binaria aunque a o slo encontr circuitos factibles el 70 % de las veces. o o
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 S1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1

Tabla 6.1: Tabla de verdad del ejemplo 1. En este ejemplo la representacin que tuvo el mejor desempe o fue la o n representacin entera B ya que encontr siempre circuitos factibles. Adems, o o a encontr circuitos de 7 compuertas en ms de la mitad de las corridas. En la o a gura 6.1 se muestra una grca de convergencia comparativa (de la corrida a en la mediana) de las tres representaciones. Aqu puede observarse que la representacin entera A fue la que convergi ms rpido al igual que en la o o a a mayor de los ejemplos de los circuitos de una salida aunque no tuvo el mejor a desempe o global. n En este experimento las tres versiones del PSO tuvieron un mejor desempe o que el MGA ya que a pesar de que todas las tcnicas encontraron un n e circuitos de 7 compuertas, el PSO binario lo encontr el 30 % de las veces, el o PSO entero A y el 40 % y el PSO entero B en 60 % de las corridas mientras

Ejemplo 1

103

50

40 Aptitud promedio

30

20 10

0 0 1000 2000 Generacin 3000 4000 Binaria Entera A Entera B

Figura 6.1: Grca de convergencia del ejemplo 1 de la corrida ubicada en la a mediana.

Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1

AP1 30.15 30.30 31.49 31.03 30.85 30.82 31.16 32.29 29.53 31.07 29.98 31.02 31.06 29.78 30.48 30.62 29.23 29.74 30.20 29.82

Binaria MA2 NC3 47 10 49 8 49 8 50 7 47 10 50 7 49 8 50 7 42 15 50 7 45 12 50 7 50 7 48 9 47 10 45 12 31 * 46 11 47 10 47 10

Entera A AP MA 30.88 31 30.91 49 47.90 50 30.81 31 40.94 50 30.24 31 46.97 50 48.57 50 48.13 50 30.77 31 43.72 47 30.91 31 35.59 45 48.10 50 47.40 50 48.80 50 44.66 49 30.74 31 46.49 48 44.60 47

NC * 8 7 * 7 * 7 7 7 * 10 * 12 7 7 7 8 * 9 10

Entera B AP MA NC 36.53 48 9 42.16 50 7 35.85 49 8 35.93 47 10 45.36 49 8 39.93 50 7 38.45 50 7 44.82 50 7 44.78 50 7 39.96 49 8 40.47 50 7 44.98 50 7 42.72 50 7 44.24 50 7 34.37 50 7 40.05 50 7 44.28 48 9 44.42 49 8 47.53 50 7 33.61 46 11

Aptitud promedio 2 Mejor aptitud 3 N mero de compuertas u

Tabla 6.2: Anlisis comparativo de 20 corridas del ejemplo 1. a

104

5. Circuitos de m ltiples salidas u

que el MGA slo produjo este circuito 25 % del tiempo. Por otro lado, la o representacin entera B del PSO y la versin binaria encontraron circuitos o o factibles en al menos 95 % de las corridas y el MGA lo logr slo en el 70 %. o o Por ultimo, la aptitud promedio del MGA fue menor que la aptitud promedio del PSO entero B pues mientras el n mero de compuertas promedio del PSO u entero B fue de 7.75, del MGA fue de 13.40. Sin embargo la aptitud promedio del MGA fue ligeramente mayor que el PSO entero A. La expresin booleao na encontrada por el dise ador humano fue S0 = B D + C A (D + B ) y n S1 = BD(A+C) que en total requiere de 12 compuertas y se obtuvo mediante mapas de Karnaugh por la autora de esta tesis.

Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a

PSO B

PSO EA

PSO EB

MGA

DH

AND,OR,NOT,XOR y WIRE 55 50 4000 200,000 0.8 3.0 20 0.2 0.4 330 610 201,300 0.6667 % 50 % 5 7 60 % 100 % 7.75 49.25 1.16 7 25 % 75 % 13.40 43.60 8.09

12 -

10 % 3 3

7 30 % 95 % 10.05 46.95 4.33

7 40 % 70 % 13.45 43.55 8.53

Tabla 6.3: Comparacin de resultados entre el PSO, un dise ador humano y o n el MGA para el ejemplo 1.

Ejemplo 2

105

S0 B D S1 A C

S0 = ((CA)(B + D) + BD) S1 = (CA)(B + D)(BD) Figura 6.2: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 1.

6.2.

Ejemplo 2

El ejemplo 2 es un sumador de dos bits y es un circuito de cuatro entradas a y tres salidas S0 ,S1 y S2 siendo S0 el bit ms signicativo y cuya tabla de verdad se muestra en la tabla 6.4.
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 S1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 S2 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0

Tabla 6.4: Tabla de verdad del ejemplo 2. En las tablas 6.5 y 6.6 se puede ver que la representacin binaria no o encontr ning n circuito factible mientras que las representaciones enteras o u

106

5. Circuitos de m ltiples salidas u

A y B encontraron circuitos factibles en al menos la mitad de las corridas. Por otro lado, ambas representaciones encontraron un circuito con 7 compuertas (gura 6.2) en al menos dos de las 20 corridas. Cabe hacer notar que la representacin binaria en este ejemplo no encontr ning n circuito o o u vlido principalmente porque requiere de un mayor nmero de evaluaciones a u de la funcin objetivo que las otras dos representaciones para encontrar reo sultados satisfactorios. Finalmente, en la gura 6.3 se muestra una grca a de convergencia en donde puede observarse que el comportamiento de las representaciones enteras A y B fue muy similar mientras que la binaria se qued por debajo de ellas. o Para este ejemplo, la representacin binaria del PSO no encontr ning n o o u circuito factible. El mejor circuito encontrado por las representaciones enteras del PSO requiere de 7 compuertas para su implementacin mientras que o el mejor circuito encontrado por el MGA necesita 8 compuertas es decir una compuerta ms que las representacin entera A y la entera B del PSO. A a o pesar de que el MGA no encontr el circuito de 7 compuertas, produjo ciro cuitos factibles en el 65 % de las corridas y las representaciones enteras A y B lo lograron el 50 % de las veces. La aptitud promedio de estos tres enfoques fue muy similar, teniendo entre 7 y 9 compuertas promedio para la impleCorrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 41.05 40.84 40.47 39.73 41.08 40.61 41.06 41.59 40.40 39.97 40.20 41.09 40.88 41.54 40.74 40.01 39.77 41.02 40.45 41.01 Binaria MA NC 46 * 47 * 46 * 44 * 45 * 46 * 47 * 45 * 44 * 44 * 43 * 46 * 46 * 45 * 44 * 44 * 46 * 46 * 44 * 44 * Entera A AP MA 47.91 61 56.29 66 53.70 65 49.00 59 45.38 47 48.58 65 46.05 47 45.50 47 46.17 47 52.39 65 52.43 62 49.10 64 44.51 46 49.39 60 58.84 66 45.69 47 46.18 47 54.31 63 44.03 46 45.68 47 Entera B AP MA NC 44.83 47 * 55.66 64 9 43.69 47 * 50.75 66 7 46.65 65 8 44.37 47 * 44.28 47 * 45.04 47 * 45.39 47 * 50.83 64 9 45.21 47 * 45.39 47 * 56.57 66 7 45.22 61 12 58.45 66 7 49.82 65 8 45.26 64 9 45.75 47 * 44.91 47 * 45.95 64 9

NC 12 7 8 14 * 8 * * * 8 11 9 * 13 7 * * 10 * *

Tabla 6.5: Anlisis comparativo de 20 corridas del ejemplo 2. a

Ejemplo 2
70 60 50 Aptitud promedio 40 30 20 10 0 0 2000 4000 6000 8000 10000 Binaria Entera A Entera B

107

Generacin

Figura 6.3: Grca de convergencia del ejemplo 2 de la corrida ubicada en la a mediana.

Parmetros a Conjunto de compuertas Matriz Tama o de la poblacin n o N mero de generaciones u Evaluaciones N mero de corridas u 1 = 2 Vmax Pm Pc Tama o del vecindario n Cardinalidad N mero de compuertas u de la mejor solucin o Mejor solucin o Circuitos factibles N mero de compuertas u promedio Aptitud promedio Desviacin estndar o a

PSO B

0.8 3.0

PSO EA PSO EB MGA AND,OR,NOT,XOR y WIRE 55 50 490 10,000 1022 500,000 500,780 20 0.2 0.4 10 % 0.6667 % 50 % 3 3 5 7 10 % 55 % 17.15 55.85 8.61 7 15 % 50 % 17.25 55.75 9.04 8 5% 65 % 17.15 55.85 7.63

DH 11 -

* 0% 0% * 45.1 1.17

Tabla 6.6: Comparacin de resultados entre el PSO, un dise ador humano y o n el MGA para el ejemplo 2.

108

5. Circuitos de m ltiples salidas u

mentacin del circuito. La expresin booleana encontrada por el dise ador o o n humano fue S0 = (AC)(B D) + BD, S1 = C (B D) + C(A (B D)) y S2 = A C que en total requiere de 11 compuertas y se obtuvo mediante mapas de Karnaugh por la autora de esta tesis.

D B S0 A C S1

S2

S0 = (AC (B D)) ((D AC) + (B D)) S1 = AC (B D) S2 = C A Figura 6.4: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 2.

6.3.

Ejemplo 3

El ejemplo 3 fue tomado del archivo blif planar 11 que es un circuito de cinco entradas y tres salidas cuya tabla de verdad se muestra en la tabla 6.7. En las tablas 6.8 y 6.9 se puede ver que aunque este ejemplo tiene un mayor n mero de entradas y salidas que el ejemplo anterior, la representacin u o binaria pudo encontrar circuitos factibles adems de algunos circuitos con 7 a compuertas (gura 6.6) que fue la cantidad menor de compuertas necesarias para la implementacin de este circuito. o Por otro lado, la representacin entera A y B lograron que la mitad de las o corridas encontraran circuitos factibles y que en cuatro de las veinte corridas

Ejemplo 3

109

se tuviera un circuito con 7 compuertas. En la gura 6.5 se puede apreciar que las tres representaciones convergieron casi al mismo tiempo a pesar que el desempe o global de las representaciones enteras fue mejor que el de la n representacin binaria. o
E 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 S1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 S2 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0

Tabla 6.7: Tabla de verdad del ejemplo 3. En este ejemplo el desempe o del MGA fue ligeramente mejor que el n de las tres representaciones del PSO, principalmente porque se encontraron circuitos factibles en el 65 % de las corridas mientras que el PSO entero B lo hizo en el 50 %. El mejor circuito encontrado por las 4 tcnicas requiere e de 7 compuertas y fue encontrado el 20 % de las veces por el MGA y las representaciones enteras del PSO y slo el 10 % del tiempo por la versin o o binaria. La aptitud promedio del MGA fue ligeramente mejor que la aptitud promedio del PSO entero A ya que la primera requiri 17.05 compuertas o promedio y la segunda 18.65.

110
100

5. Circuitos de m ltiples salidas u

80 Aptitud promedio

60

40

20

0 0 5000 10000 Generacin 15000 20000 Binaria Entera A Entera B

Figura 6.5: Grca de convergencia del ejemplo 3 de la corrida ubicada en la a mediana.

Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 88.09 89.98 84.99 85.44 88.61 89.20 96.28 96.27 87.49 90.87 88.60 97.59 89.62 88.87 86.04 87.62 87.45 86.90 88.46 88.91

Binaria MA NC 92 * 111 10 92 * 109 12 92 * 92 * 114 7 114 7 92 * 92 * 92 * 113 8 92 * 92 * 92 * 92 * 92 * 92 * 92 * 92 *

Entera A AP MA NC 103.50 114 7 110.88 112 9 91.77 92 * 91.75 92 * 104.40 114 7 112.04 114 7 109.07 114 7 90.86 92 * 91.82 92 * 96.97 113 8 107.65 113 8 91.80 110 11 87.87 88 * 111.95 113 8 110.56 112 9 91.84 92 * 88.74 92 * 91.47 92 * 93.61 94 * 91.35 92 *

Entera B AP MA NC 89.04 92 * 89.45 92 * 89.27 92 * 99.71 114 7 94.06 114 7 89.52 92 * 103.44 113 8 91.53 92 * 86.13 88 * 102.82 114 7 94.58 110 11 90.14 112 9 90.57 92 * 90.50 92 * 97.18 112 9 92.97 111 10 96.20 114 7 87.14 88 * 88.83 92 * 90.50 92 *

Tabla 6.8: Anlisis comparativo de 20 corridas del ejemplo 3. a

Ejemplo 3

111

En este ejemplo no se hace la comparacin entre los resultados de las o heur sticas y los resultados obtenidos por el diseador humano pues al ser n un circuito con una mayor cantidad de entradas y salidas que los circuitos anteriores, el mtodo de mapas de Karnaugh y el mtodo de Quine McCluse e key (por no mencionar la simplicacin algebraica) se complican demasiado o logrando que la expresin simplicada obtenida mediante estos mtodos imo e plique un gran n mero de compuertas y entradas a ellas. u

Parmetros a Conjunto de compuertas Matriz Tama o de n la poblacin o N mero de u generaciones Evaluaciones N mero de u corridas 1 = 2 Vmax Pm Pc Tama o del n vecindario Cardinalidad N mero de u compuertas de la mejor solucin o Mejor solucin o Circuitos factibles N mero de u compuertas promedio Aptitud promedio Desviacin o estndar a

PSO B

PSO EA

PSO EB

MGA

AND,OR,NOT,XOR y WIRE 55 50 20,000 1,000,000 0.8 3.0 20 0.2 0.4 970 1032 1,101,040 0.6667 % 50 % 5 7 20 % 45 % 20.10 100.90 11.03 7 20 % 65 % 17.05 103.95 10.46

10 % 3 3

7 10 % 25 % 23.95 97.05 9.03

7 20 % 50 % 18.65 102.35 10.91

Tabla 6.9: Comparacin de resultados entre el PSO, un dise ador humano y o n el MGA para el ejemplo 3.

112

5. Circuitos de m ltiples salidas u

D C

S0

S1 B

S2

S0 = E + CD S1 = CB + A S2 = C CB Figura 6.6: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 3.

6.4.

Ejemplo 4

El ejemplo 4 es un multiplicador de dos bits que consta de cuatro entradas y cuatro salidas S0 , S1 , S2 y S3 siendo S0 el bit ms signicativo y cuya tabla a de verdad se muestra en la tabla 6.10. En las tablas 6.11 y 6.12 se puede ver que para este ejemplo la representacin binaria tampoco logr encontrar o o circuitos factibles mientras que las representaciones enteras lo consiguieron en un 30 % de las veces adems de encontrar un circuito con 7 compuertas a (gura 6.8) en dos de las veinte corridas. Los resultados nos muestran que el algoritmo no tuvo tan buen desempe o n como en ejemplos anteriores a pesar de que se han dise ado circuitos de un n mayor n mero de entradas que ste. En la gura 6.7 se puede apreciar que u e las tres representaciones convergieron casi al mismo tiempo a pesar de que el desempe o de la representacin binaria fue pobre en comparacin con las n o o representaciones enteras.

Ejemplo 4
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 S1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 S2 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 S3 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1

113

Tabla 6.10: Tabla de verdad del ejemplo 4. La representacin binaria de PSO no encontr ning n circuito factible o o u para este circuito. Las representaciones enteras del PSO, el MGA y el NGA encontraron un circuito que requiere de tan solo 7 compuertas para su implementacin. Sin embargo, las cuatro tcnicas slo lo produjeron en a lo ms o e o a 15 % de las corridas. La principal diferencia en el desempe o de las tcnicas se n e reere a la produccin de circuitos factibles ya que el MGA lo consigui en too o das las corridas mientras que las representaciones enteras del PSO y el NGA lo consiguieron en alrededor del 30 % de las veces. La aptitud promedio del MGA fue superior a las otras tcnicas pues se necesitaron slo 8.60 come o puertas promedio para la implementacin del circuito mientras que las otras o tres tcnicas requirieron de al menos 20 compuertas. La expresin booleana e o encontrada por el dise ador humano fue S0 = (DC)(BA), S1 = (DB)(CA) , n S2 = CB DA y S3 = CA que en total requiere de 8 compuertas. Esta expresin fue reportada por Coello [9]. o

114
Corrida 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 AP 57.45 57.78 57.85 58.52 58.36 58.03 58.20 57.59 57.89 57.63 58.03 57.90 58.45 58.00 57.70 58.73 58.43 58.12 58.53 58.22 Binaria MA NC 61 * 61 * 60 * 61 * 60 * 61 * 61 * 60 * 61 * 61 * 61 * 60 * 61 * 61 * 61 * 60 * 62 * 60 * 61 * 61 *

5. Circuitos de m ltiples salidas u


Entera A AP MA NC 62.43 63 * 62.85 63 * 60.81 61 * 63.54 80 9 60.93 61 * 60.56 61 * 61.02 62 * 61.83 62 * 60.88 61 * 61.73 62 * 79.02 82 7 60.76 61 * 60.92 61 * 77.20 81 8 79.43 81 8 76.07 82 7 60.64 61 * 70.72 78 11 60.88 61 * 62.23 63 * Entera B AP MA NC 73.60 82 7 60.02 61 * 60.00 61 * 66.72 82 7 60.25 62 * 61.13 62 * 64.67 82 7 60.90 62 * 60.97 73 16 63.53 78 11 65.56 80 9 59.18 61 * 61.14 62 * 60.29 62 * 60.37 61 * 61.16 62 * 60.38 61 * 60.78 61 * 60.05 61 * 61.15 63 *

Tabla 6.11: Anlisis comparativo de 20 corridas del ejemplo 4. a

Parmetros a Conjunto de compuertas Matriz Tama o de la poblacin n o N mero de generaciones u Evaluaciones N mero de corridas u 1 = 2 Vmax Pm Pc Tama o del vecindario n Cardinalidad N mero de compuertas u de la mejor solucin o Mejor solucin o Circuitos factibles N mero de compuertas u promedio Aptitud promedio Desviacin estndar o a

PSO B

0.8 3.0

PSO EA PSO EB MGA NGA AND,OR,NOT,XOR y WIRE 55 50 650 15,000 500 750,000 350,000 20 0.2 0.4 10 % 0.6667 % 50 % 3 3 5 7 10 % 30 % 21.65 67.35 9.00 7 15 % 35 % 22.05 66.95 8.64 7 15 % 100 % 8.60 80.40 1.14 9 10 % 30 % 22.35 66.65 7.63

DH 8 -

* 0% 0% * 60.75 0.55

Tabla 6.12: Comparacin de resultados entre el PSO, un dise ador humano, o n el MGA y el NGA para el ejemplo 4.

Ejemplo 4

115

80

60 Aptitud promedio

40

20

0 0 3000 6000 9000 12000 15000 Binaria Entera A Entera B

Generacin

Figura 6.7: Grca de convergencia del ejemplo 4 de la corrida ubicada en la a mediana.

B D S1 S0 A C S3 S2

S0 = (CA)(DB) S1 = DB (CA)(DB) S2 = DA BC S3 = CA Figura 6.8: Diagrama y ecuacin lgica del mejor circuito encontrado para el o o ejemplo 4.

116

5. Circuitos de m ltiples salidas u

Cap tulo 7 Conclusiones y trabajo futuro


Las tcnicas evolutivas han demostrado ser herramientas poderosas para e resolver problemas de optimizacin, ya que son capaces de obtener resultao dos competitivos con respecto a las tcnicas usadas tradicionalmente para e resolver cada uno de estos problemas. En este trabajo de tesis se presenta un tcnica de hardware evolutivo e extr nseco, que utiliza como tcnica evolutiva un algoritmo de optimizacin e o mediante c mulos de part u culas con tres enfoques distintos de representacin, o los cuales tienen dos objetivos principales: automatizar el proceso de diseo n de circuitos lgicos combinatorios y encontrar el circuito de costo m o nimo de acuerdo a una cierta mtrica. e Los tres enfoques propuestos representaron distintos retos a lo largo del desarrollo de esta tesis. El primer enfoque fue el algoritmo de optimizacin o mediante c mulos de part u culas con representacin binaria tuvo como princio pal problema el tiempo necesario para poder converger a una solucin factio ble, lo que hizo que esta propuesta requiriera ms evaluaciones de la funcin a o objetivo para poder competir con los resultados obtenidos por su contraparte entera. Por esta misma razn, en algunos de los experimentos, la represeno tacin binaria no logr encontrar ningn circuito factible y en algunos otros o o u qued muy por debajo del desempe o de la representacin entera. El seguno n o do y tercer enfoque fueron los algoritmos de optimizacin mediante c mulos o u de part culas con representacin entera (A y B) uno de los principales retos o fue conseguir el acoplamiento entre la heur stica y la representacin pues a o pesar de que la representacin entera A ya hab sido probada con probleo a mas de optimizacin combinatoria [17], no hab sido utilizada para el diseo o a n de circuitos lgicos combinatorios. La representacin entera B por su parte, o o 117

118

Conclusiones y trabajo futuro

es una de las principales aportaciones de este trabajo de tesis ya que fue nuestra propuesta la que en trminos globales obtuvo mejores resultados en e comparacin con las otras tcnicas presentadas. o e Con respecto a los experimentos de circuitos de una salida, la representacin binaria tuvo un buen desempeo aunque en la mayor de los casos o n a estuvo por debajo del desempe o alcanzado por las representaciones enteras n las cuales tuvieron un desempe o muy similar. Sin embargo, podr n amos decir que la representacin entera B logr conseguir ms circuitos factibles (y en o o a algunos casos con un menor nmero de compuertas) que la representacin u o entera A. Por otro lado, la rapidez de convergencia de la representacin enteo ra A fue ligeramente mayor de manera general que la representacin entera o B. En cuanto al trabajo futuro que se puede hacer en torno a la propuesta actual podemos mencionar que una mejora ser representar los circuitos a lgicos combinatorios mediante nmeros reales, lo cual no parece natural y o u quiz ser necesario introducir algunos mecanismos adicionales para consea a guirlo. La motivacin de utilizar esta representacin estriba en que el algorito o mo de PSO ha demostrado tener mucho ms xito en resolver problemas de a e optimizacin al usar una representacin real que con la representacin entera o o o o binaria [23]. Por otro lado, se podr trabajar en un enfoque multiobjetia vo similar al utilizado en [9] para mejorar las capacidades de bsqueda del u algoritmo. Con respecto al algoritmo de PSO, pueden introducirse algunos otros operadores como el operador de seleccin propuesto por Angeline en [2] adems o a de introducir tambin operadores de mutacin ms sosticados para mejorar e o a el desempe o del algoritmo. Por ultimo, se podr hacer un estudio ms den a a tallado del impacto de los parmetros del PSO en la obtencin de resultados a o [38] para poder seleccionarlos adecuadamente. En esta propuesta se present una codicacin de los circuitos mediante o o una matriz de tama o jo que trata de mantener un compromiso entre la pon derosa representacin de arbol de la programacin gentica y la relativamente o o e dbil representacin lineal utilizada comnmente. Sin embargo, esta repree o u sentacin requiere de un trabajo adicional para interpretar las soluciones que o est codicando. Por ello una propuesta viable ser una representacin de a a o matriz dinmica con la estructura general de la representacin de arbol de la a o programacin gentica. Esta propuesta tiene un problema similar al probleo e ma de la representacin entera usada en esta tesis, que es el del acoplamiento o entre el PSO y la representacin. Con la representacin de arbol es necesario o o

Conclusiones y trabajo futuro

119

modicar el algoritmo de PSO para poder llevar a cabo la manipulacin de los o individuos y lograr que puedan llegar a resultados satisfactorios. Sin embargo, hasta la fecha no se han reportado trabajos en la literatura especializada en donde se intente utilizar el algoritmo de PSO con una representacin de o a rbol. Por ultimo, es importante mencionar que la propuesta presentada en este trabajo de tesis es el primer intento de utilizar el algoritmo de optimizacin o mediante c mulos de part u culas para dise ar circuitos lgicos combinaton o rios. El algoritmo presentado parece prometedor ya que produjo resultados competitivos y en la mayor de los casos mejores en comparacin con las a o heur sticas contra las que se le compar. o

120

Conclusiones y trabajo futuro

Bibliograf a
[1] Peter J. Angeline. Evolutionary optimization versus particle swarm optimization: philosophy and performance dierences. In Waagen D. Por to V.W., SaravananN. and Eiben A.E., editors, Evolutionary Programming VII: Proceedings of the Seventh Annual Conference on Evolutionary Programming, pages 611618. Springer, 1998. [2] Peter J. Angeline. Using selection to improve particle swarm optimization. In Saravanan N. Waagen D. y Eiben A.E. Porto V.W., editor, Proceedings of the IEEE Congress on Evolutionary Computation (CEC 1998), pages 8489, Anchorage, Alaska, USA., 1998. [3] Eric Bonabeau, Marco Dorigo, and Guy Theraulaz. Swarm intelligence: from natural to articial systems. Oxford University Press, 1999. [4] Bill P. Buckles, Arturo Hernndez Aguirre, and Carlos Coello Coello. a Circuit design using genetic programming: An illustrative study. In Proceedings of the 10th NASA Symposium on VLSI Design, pages 4.1 14.110, Albuquerque NM, 2002. [5] Carlos A. Coello Coello. Introduccin a la computacin evolutiva (Notas o o de curso). CINVESTAV-IPN, Seccin de Computacin, Departamento o o de Ingenier Elctrica, 2003. a e [6] Carlos A. Coello Coello, Alan D. Christiansen, and Arturo Hernndez a 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 Articial Neural Nets and Genetic Algorithms, pages 335338. Springer-Verlag, University of East Anglia, England, April 1997. 121

122

Bibliograf a

[7] Carlos A. Coello Coello, Alan D. Christiansen, and Arturo Hernndez a Aguirre. Use of Evolutionary Techniques to Automate the Design of Combinational Circuits. International Journal of Smart Engineering System Design, 2(4):299314, June 2000. [8] Carlos A. Coello Coello, Alan D. Christiansen, and Arturo Hernndez a Aguirre. Towards Automated Evolutionary Design of Combinational Circuits. Computers and Electrical Engineering. An International Journal, 27(1):128, January 2001. [9] Carlos A. Coello Coello, Arturo Hernndez Aguirre, and Bill P. Buckles. a 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 161170. IEEE Computer Society, Los Alamitos, California, July 2000. [10] Carlos A. Coello Coello, Erika Hernndez Luna, and Arturo Hernndez a a Aguirre. Use of particle swarm optimization to design combinational logic circuits. In Pauline C. Haddow Andy M. Tyrell and Jim Torresen, editors, Evolvable Systems: From Biology to Hardware. 5th International Conference, ICES 2003, pages 398409, Trondheim, Norway, 2003. Springer, Lecture Notes in Computer Science Vol. 2606. [11] Ronald C. Emery. Digital circuits : logic and design. Marcel Dekker, New York, 1985. [12] Andries P. Engelbrecht. Computational intelligence. Wiley, 2002. [13] David B. Fogel. Evolutionary Computation. Toward a New Philosophy of Machine Intelligence. The Institute of Electrical and Electronic Engineers, New York, 1995. [14] David E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley, Reading, MA, 1989. [15] Venu G. Gudise and Ganesh K. Venayagamoorthy. Evolving digital circuits using particle swarm. In Proceedings of the INNS-IEEE International Joint Conference on Neural Networks, pages 468 472, Portland, OR, USA, 2003.

Bibliograf a

123

[16] John H. Holland. Adaptation in Natural and Articial Systems. Ann Harbor : University of Michigan Press, 1975. [17] Xiaohui Hu, Russell C. Eberhart, and Yuhui Shi. Swarm intelligence for permutation optimization: a case study on n-queens problem. In Proceedings of the IEEE Swarm Intelligence Symposium 2003 (SIS 2003), pages 243246, Indianapolis, Indiana, USA., 2003. [18] Charles H. Roth Jr. Fundamentals of logic design. West Pub., St. Paul, 1985. [19] Tatiana Kalganova. A new evolutionary hardware approach for logic design. In Annie S. Wu, editor, Proc. of the GECCO99 Student Workshop, pages 360361, Orlando, Florida, USA, 1999. [20] Tatiana Kalganova and Julian Miller. Evolving more ecient digital circuits by allowing circuit layout and multi-objective tness. In Adrian Stoica, Didier Keymeulen, and Jason Lohn, editors, Proceedings of the First NASA/DoD Workshop on Evolvable Hardware, pages 5463, Los Alamitos, California, 1999. IEEE Computer Society Press. [21] James Kennedy and Russell C. Eberhart. Particle Swarm Optimization. In Proceedings of the 1995 IEEE International Conference on Neural Networks, pages 19421948, Piscataway, New Jersey, 1995. IEEE Service Center. [22] James Kennedy and Russell C. Eberhart. A Discrete Binary Version of the Particle Swarm Algorithm. In Proceedings of the 1997 IEEE Conference on Systems, Man, and Cybernetics, pages 41044109, Piscataway, New Jersey, 1997. IEEE Service Center. [23] James Kennedy and Russell C. Eberhart. Swarm Intelligence. Morgan Kaufmann Publishers, San Francisco, California, 2001. [24] Edgar Galvn Lpez. a o Dise o de circuitos lgicos combinaton o rios utilizando programacin gentica postja con adaptacin en o e o l nea. Masters thesis, Facultad de F sica e Inteligencia Articial, Universidad Veracruzana, Mayo 2002. (Disponible en: http://delta.cs.cinvestav.mx/~ccoello/).

124

Bibliograf a

[25] Sushil J. Louis. Genetic Algorithms as a Computational Tool for Design. PhD thesis, Department of Computer Science, Indiana University, August 1993. [26] Sushil J. Louis and Gregory J. Rawlins. Using Genetic Algorithms to Design Structures. Technical Report 326, Computer Science Department, Indiana University, Bloomington, Indiana, February 1991. [27] Morris Mano and Charles R. Kime. Fundamentos de dise o lgico y n o computadoras. Prentice Hall, 1998. [28] Edward J. McCluskey. Logic design principles : with emphasis on testable semicustom circuits. Prentice Hall, 1986. [29] Benito Mendoza Garc and Carlos A. Coello Coello. Uso del Sistema de a la Colonia de Hormigas para el Diseo de Circuitos Lgicos Combinan o torios. In E. Alba, F. Fernndez, J.A. Gmez, F. Herrera, J.I. Hidalgo, a o J. Lanchares, J.J. Merelo, and J.M. Snchez, editors, Primer Congrea so Espa ol de Algoritmos Evolutivos y Bioinspirados (AEB02), pages n 294301, Mrida, Espa a, 2002. Universidad de la Extramadura. e n [30] J. F. Miller, P. Thomson, and T. Fogarty. Designing Electronic Circuits Using Evolutionary Algorithms. Arithmetic Circuits: A Case Study. In D. Quagliarella, J. Priaux, C. Poloni, and G. Winter, editors, Genetic e Algorithms and Evolution Strategy in Engineering and Computer Science, pages 105131. Morgan Kaufmann, Chichester, England, 1998. [31] Julian F. Miller, Dominic Job, and Vesselin K. Vassilev. Principles in the Evolutionary Design of Digital CircuitsPart I. Genetic Programming and Evolvable Machines, 1(1/2):735, April 2000. [32] Jorge Nocedal and Stephen J. Wright. Numerical optimization. Springer, New York, 1999. [33] Eduardo Serna Prez. Dise o de circuitos lgicos combinatorios usando e n o programacin gentica. Masters thesis, Facultad de F o e sica e Inteligencia Articial, Universidad Veracruzana, Febrero 2001. (Disponible en: http://delta.cs.cinvestav.mx/~ccoello/). [34] Colin B. Reeves. Modern Heuristics Techniques for Combinatorial Problems. John Wiley & Sons, Great Britain, 1993.

Bibliograf a

125

[35] J. David Schaer. Multiple Objective Optimization with Vector Evaluated Genetic Algorithms. In Genetic Algorithms and their Applications: Proceedings of the First International Conference on Genetic Algorithms, pages 93100. Lawrence Erlbaum, 1985. [36] Ellen M. Sentovich, Kanwar Jit Singh, Luciano Lavagno, and et al. Cho Moon. SIS: A system for sequential circuit synthesis. Technical report, University of California at Berkeley, 1992. [37] Claude E. Shannon. A symbolic analysis of relay and switching circuits. Transactions American Institute of Electrical Engineers, 57:713 123, March 1938. [38] Yuhui Shi and Russell C. Eberhart. Parameter selection in particle swarm optimization. In Waagen D. y Eiben A.E. Porto V.W., Sara vananN., editor, Evolutionary Programming VII: Proceedings of the Seventh Annual Conference on Evolutionary Programming, pages 591600. Springer, 1998. [39] Peter J. Bentley Timothy G. W. Gordon. On evolvable hardware. In Seppo J. Ovaska and Les m Sztandera, editors, Soft Computing in Industrial Electronics, pages 279323, Heidelberg, 2002. Eds,.Physica-Verlag. [40] Ronald. J. Tocci. Sistemas digitales: principios y aplicaciones. Prentice Hall, 1993. [41] Frans van den Bergh. An Analysis of Particle Swarm Optimizers. PhD thesis, Faculty of Natural and Agricultural Science, University of Pretoria, November 2001. [42] Xin Yao and Tetsuya Higuchi. Promises and Challenges of Evolvable Hardware. In Tetsuya Higuchi, Masaya Iwata, and W. Liu, editors, Proceedings of the First International Conference on Evolvable Systems: From Biology to Hardware (ICES96), Lecture Notes in Computer Science, Vol. 1259, pages 5578, Heidelberg, Germany, 1997. Springer-Verlag. [43] Andrej Zemva, Franc Brglez, and Baldomir Zajc. Multi-level logic optimization based on wave synthesis of permissible mutation functions. In In International Workshop on Logic Synthesis (IWLS98), June 1998.

126

Bibliograf a

[44] Demetrius Zissos. Logic design algorithms. Oxford University Press, London, 1972.

You might also like