• No se han encontrado resultados

Arquitectura de alto rendimiento para procesadores difusos

N/A
N/A
Protected

Academic year: 2023

Share "Arquitectura de alto rendimiento para procesadores difusos"

Copied!
98
0
0

Texto completo

(1)

Instituto Politécnico Nacional

Centro de Investigación en Computación

Arquitectura de Alto Rendimiento para Procesadores Difusos

TESIS

Que para obtener el grado de:

Doctor en Ciencias de la Computación

Presenta:

M en C Antonio Hernández Zavala

Directores de tesis:

Dr. Oscar Camacho Nieto Dr. Ildar Zakirzjanovich Batyrshin

Enero de 2009

(2)
(3)
(4)

Resumen

La lógica difusa se ha convertido en una buena opción para representar modelos inciertos de sistemas complejos que no pueden ser representados fácilmente en términos de matemáticas convencionales. Específicamente, el hardware difuso se ha convertido en la mejor opción para alcanzar altas velocidades de inferencia, lo cual se ha presentado en aplicaciones de alto rendimiento como purificación de agua, robótica, reconocimiento de patrones, entre otras aplicaciones eficientes de sistemas difusos.

Existen dos formas de representar los valores del universo de membresía: la primera es cuando se utilizan números de punto flotante, la segunda es cuando se utiliza el universo de los enteros. En el primer caso el universo de membresía pertenece a [0, 1], en el segundo caso el universo de membresía pertenece al intervalo de enteros dado por [0, 12m], donde m es el número de bits utilizado de acuerdo a las demandas de resolución de la aplicación. Este segundo caso es totalmente compatible con computadoras digitales, dado que las operaciones con punto flotante consumen mucho más tiempo y recursos que las operaciones con enteros.

Este trabajo presenta un método para implementar mecanismos de inferencia difusa para implementaciones discretas, donde se incluye un nuevo método de defuzzificación, con el objetivo de reducir el número de instrucciones a ejecutar, obteniendo como consecuencia un menor tiempo de procesamiento y menor cantidad de recursos utilizados. Se presentan resultados de la simulación de los nuevos métodos.

Para sintonización de sistemas difusos existen diversos métodos que requieren del ajuste de las funciones de membresía, otros métodos de sintonización de sistemas difusos están basados en operaciones paramétricas para conjunción y disyunción. En este trabajo se formula el problema de construcción de nuevas clases paramétricas de conjunciones y disyunciones difusas para implementarse eficientemente en hardware y se propone una solución a éste. Se propone un nuevo método de generación de conjunciones paramétricas en términos de otras conjunciones, disyunciones y generadores difusos. El enfoque está basado en el uso de generadores paramétricos simples junto con operaciones de mínimo, máximo, t-normas y t-conormas de Lukasiewicz y drásticas que presentan una implementación hardware digital eficiente.

En ésta tesis, se proponen varias clases de generadores paramétricos digitales, además se presentan ejemplos de conjunciones paramétricas construidas con éstos generadores y con operaciones de t-normas y t-conormas. Los bloques de circuitos básicos son implementados en hardware VLSI utilizando dispositivos programables como FPGA, presentando resultados de simulaciones.

(5)

Abstract

Fuzzy logic has become a very good choice to represent uncertain models of complex systems that cannot be easily represented in terms of conventional mathematics.

Specifically fuzzy hardware has turned to be the choice to reach high speed inference rates, which has been presented on high performance applications such as water treatment, robotics, pattern recognition, among other efficient applications of fuzzy systems. There are two forms to represent membership values universe: first one is when floating point numbers are used, second form is when integer universe is used. In the first case result of operations belongs to [0, 1], in the second case results belong to interval of integers [0, 2m−1], where m is the number of bits used according to application resolution demands. This case is fully compatible with digital computers because floating point operations consume much more time and resources than integer operations.

This work presents a method to implement fuzzy logic inference engine for discrete implementations which includes a new method for defuzzification, with the objective of reducing the number of instructions to be executed, having as consequence fewer processing time and less resources consumed. Simulation results for new methods are considered.

For tuning fuzzy systems there are various methods that require adjustment of membership functions, another methods for tuning fuzzy systems are based on parametric operations for conjunction and disjunction. The problem of construction of parametric classes of fuzzy conjunction and disjunction operations suitable for effective digital hardware implementation is studied. The new method of generation of fuzzy parametric conjunctions by means of other fuzzy conjunctions, disjunctions and generators is proposed. The approach is based on the use of simple parametric generators together with min-max, Lukasiewicz and drastic t-norms and t-conorms that have effective digital implementation.

Several simple parametric classes of generators are proposed and examples of parametric conjunctions generated by means of these generators and basic t-norms and t- norms are considered. Circuits for basic construction blocks are implemented on VLSI hardware using FPGA programmable devices, simulation results are presented.

(6)

ÍNDICE

Índice de Figuras ……… i

Índice de Tablas ……… iii

Notación Utilizada ……… iv

j Capítulo 1 Introducción 1.1 Prefacio .………... 1

1.2 Aplicaciones de los Sistemas Difusos ………. 3

1.3 Tipos de Implementación de Sistemas Difusos ...……… 3

1.4 Justificación ……… 5

1.5 Objetivos ……….... 6

1.5.1 General ………... 6

1.5.2 Específicos ………... 6

1.6 Aportaciones ……… 7

1.7 Resumen de Contenido ………. 8

j Capítulo 2 Estado del Arte 2.1 Clasificación de Procesadores Difusos ………... 9

2.2 Breve Historia de Procesadores Difusos ……… 9

2.3 Conclusiones de Procesadores Difusos ……… 11

j Capítulo 3 Marco Teórico 3.1 Lógica Difusa ………... 22

3.2 Conceptos fundamentales ………... 22

3.2.1 Conjunto Difuso ………... 22

3.2.2 Variable Lingüística ……….. 23

3.2.3 Función de Membresía ………... 25

3.3 Definiciones y Propiedades Básicas de Conjuntos Difusos ………….. 26

3.4 Conjunciones, Disyunciones y Operaciones con Conjuntos Difusos ….. 27

3.4.1 Negación ………... 27

3.4.2 Normas Triangulares (t-normas) ………... 28

3.4.3 Co-normas Triangulares (t-conormas) ………... 28

3.4.4 Conjunciones y Disyunciones ……… 30

3.5 Sistemas Difusos ………. 31 j

(7)

Capítulo 4 Modelo Propuesto

4.1 Consideraciones para Sistemas Difusos Digitales ……….. 33

4.1.1 Fuzzificador ………... 34

4.1.2 Mecanismo de Inferencia ……… 35

4.1.3 Agregación ……….. 37

4.1.4 Defuzzificador ……… 38

4.2 Operaciones Paramétricas ……….. 39

4.3 Generadores Difusos ……….. 42

4.4 Ejemplos de Conjunciones Paramétricas ……….. 44

Jj Capítulo 5 Implementaciones en Hardware y Software de los Métodos Propuestos 5.1 Simulador de Sistemas de Inferencia Difusa ………. 47

5.1.1 Fuzzificación ………. 49

5.1.2 Inferencia ……….. 49

5.1.3 Defuzzificación ……….. 49

5.1.4 Resultados de rendimiento ……….. 51

5.2 Implementación en Hardware de Bloques Fundamentales Difusos …... 54

5.2.1 Comparador ………... 54

5.2.2 Bloque de t-normas ……….. 55

5.2.3 Boque de t-conormas ………...58

5.2.4 Bloque de Generadores Difusos ………. 60

5.3 Conjunciones Paramétricas en Hardware ……… 67

j Capítulo 6 Conclusiones y Propuestas para Trabajo Futuro 6.1 Simulador de Inferencia Difuso .……… 72

6.2 Conjunciones y Disyunciones Paramétricas en Hardware ………. 72

6.3 Principal Aportación ……… 73

6.4 Productos Obtenidos ……….. 73

6.4 Propuestas para Trabajo futuro ……… 75

j Referencias ……….…... 76

(8)

Índice de Figuras

Figura 1. Tipos de implementación de procesadores difusos ……… 4

Figura 2. Clasificación de los procesadores difusos según su tecnología de construcción.9 Figura 3. Tipos de arquitecturas de procesadores difusos digitales ………. 10

Figura 4. Cuantificación vs. granulación ……… 24

Figura 5. Ejemplo de variable lingüística .………... 25

Figura 6. Distintas formas de función de membresía .………. 25

Figura 7. Definiciones para una función de membresía ………. 26

Figura 8. t-normas y t-conormas básicas ……….………… 29

Figura 9. Algunas operaciones con conjuntos difusos ……… 31

Figura 10. Conjunción y disyunción de complementos ……….. 31

Figura 11. Bloques de un sistema difuso ……… 32

Figura 12. Funciones de membresía para la variable lingüística A ………. 33

Figura 13. Discretización de una función de membresía trapezoidal en αlevels ……. 34

Figura 14. Operaciones básicas de t-normas en representación de 4 bits ……… 36

Figura 15. Primer caso de concatenación de α−levels, cuando están traslapados ……. 37

Figura 16. Segundo caso para concatenación de α−levels, cuando no intersectan …… 37

Figura 17. Tercer caso para concatenación de αlevels, con resta al inicio …………... 38

Figura 18. Defuzzificador por centro de áreas promedio COSAA ……….. 39

Figura 19. Generadores con parámetro p= 3 en representación digital de 4 bits ………. 44

Figura 20. Ejemplo de conjunción paramétrica difusa obtenida por (53) y (54) ………. 45

Figura 21. Ejemplo de conjunción paramétrica difusa obtenida por (53) y (55) ………. 45

Figura 22. Ejemplo de conjunción paramétrica difusa obtenida por (53) y (56) ………. 46

Figura 23. Ejemplo de conjunción paramétrica difusa obtenida por (61) ………….. 46

Figura 24. Simulador de sistemas de inferencia difusa ……… 47

Figura 25. Sistema difuso con dos entradas y una salida discretizado a 32 αlevels y 512 valores para el universo de entrada .………. 48

Figura 26. Matriz de reglas para dos entradas con 4 funciones de membresía cada una y una salida con 5 funciones de membresía ……….... 48

Figura 27. Diagrama de flujo para la evaluación de entrada o fuzzificación ………….. 49

Figura 28. Algoritmo para la realización de la etapa de inferencia utilizando min como conjunción ………..……….. 50

Figura 29. Algoritmo para la creación de la función agregada ……… 50

Figura 30. Algoritmo propuesto para la realización del defuzzificador COSAA ……… 51

Figura 31. Resultados de los tres tipos de agregación con (63, 327) ………51

Figura 32. Resultados de los tres tipos de agregación con (248, 248) ………. 51

Figura 33. Resultados de los tres tipos de agregación con (496, 477) ………. 51

Figura 34. Diagrama del circuito correspondiente al comparador con X, P y N como entradas ………..………..……… 55

Figura 35. Diagrama del circuito correspondiente a mínimo ……….. 55

Figura 36. Diagrama del circuito correspondiente a conjunción de Lukasiewicz …… 56

(9)

Figura 37. Diagrama del circuito correspondiente a producto drástico ………... 56

Figura 38. Implementación en hardware del bloque para t-normas ……… 57

Figura 39. Simulación de circuito para t-normas ………. 57

Figura 40. Diagrama del circuito correspondiente a máximo ……….. 58

Figura 41. Diagrama del circuito correspondiente a disyunción de Lukasiewicz …… 58

Figura 42. Diagrama del circuito correspondiente a suma drástica ………... 59

Figura 43. Simulación de circuito para t-conormas ………. 60

Figura 44. Implementación en hardware del bloque para s-normas ……… 60

Figura 45. Circuito para el generador difuso digital 0I-Step (71) ………. 61

Figura 46. Circuito para el generador difuso digital 0CI-Step (72) ……….. 61

Figura 47. Circuito para el generador difuso digital 0-Diagonal (73) ………... 61

Figura 48. Circuito para el generador difuso digital I-Diagonal (74) ……….….. 61

Figura 49. Circuito para el generador difuso digital 0C-Diagonal (75) ……...………. 62

Figura 50. Circuito para el generador difuso digital CI-Diagonal (76) ……… 62

Figura 51. Circuito para el generador difuso digital C-Diagonal (77) .………. 62

Figura 52. Circuito para el generador difuso digital 0I-Diagonal (78) ………. 63

Figura 53. Circuito para el generador difuso digital P-Diagonal (79) ……….. 63

Figura 54. Circuito para el generador difuso digital Bounded-Sum (80) ………. 64

Figura 55. Circuito para el generador difuso digital Bounded-Diff (81) ……….. 64

Figura 56. Circuito para el generador difuso digital Bounded-Diff-Sum (82) ……….. 65

Figura 57. Circuito correspondiente a los generadores difusos ………... 66

Figura 58. Simulación del circuito para los generadores 0-7 ……… 66

Figura 59. Simulación del circuito para los generadores 8-13 ………. 67

Figura 60. Circuito de conjunción paramétrica de la ecuación (83) ……… 68

Figura 61. Circuito de conjunción paramétrica de la ecuación (84) ………... 69

Figura 62. Circuito de conjunción paramétrica de la ecuación (85) ………... 70

Figura 63. Circuito de conjunción paramétrica para la ecuación (61) ………. 71

(10)

Índice de Tablas

Tabla 1. Comparativa entre las distintas implementaciones ………. 4

Tabla 2. Procesadores difusos comerciales ……… 11

Tabla 3. Principales características de procesadores difusos propuestos desde 1985 hasta el momento ……….……….13

Tabla 4. Características funcionales de procesadores difusos desde 1985 hasta el momento . ……….………... 18

Tabla 5. Tiempo consumido en la etapa de fuzzificación de las entradas x y y, finalmente, durante la evaluación de reglas ……… 52

Tabla 6. Tiempo consumido por los tres tipos de agregación ……….. 52

Tabla 7. Tiempo consumido en diferentes defuzzificadores ………... 52

Tabla 8. Pruebas realizadas par el sistema ………... 52

Tabla 9. Bits de selección para el circuito de t-normas ………... 56

Tabla 10. Bits de selección para el circuito de t-conormas ………. 59

Tabla 11. Selección de generador difuso ……… 65

Tabla 12. Recursos consumidos por la conjunción paramétrica de la ecuación (83) ….. 68

Tabla 13. Recursos consumidos por la conjunción paramétrica de la ecuación (84) …. 69 Tabla 14. Recursos consumidos por la conjunción paramétrica de la ecuación (85) …. 70 Tabla 15. Recursos consumidos por la conjunción paramétrica de la ecuación (61) ... 71 q

(11)

Notación utilizada

S Sistema Difuso

X Universo de entrada A Variable lingüística A

Ai(x) i-esima función de membresía para A

T Conjunto de valores lingüísticos que puede tomar A.

M Relaciona entre valores lingüísticos y conjuntos difusos H(A) Altura de la función de membresía A

N(x) Negación de x T(x, y) t-norma S(s, y) t-conorma

Ri i-esima regla difusa gi (x) i-esimo generador difuso

L Universo de membresía discreto I Máximo valor de membresía en L Ci Constante i

x Dato de entrada real para la primera entrada y Dato de entrada real para la segunda entrada n Número de bits para el universo de entrada m Número de bits para el universo de membresía M Función de membresía difusa

in1 Variable lingüística de entrada 1 in2 Variable lingüística de entrada 2 out Variable lingüística de salida

agg Variable lingüística para agregación k_in1 Número de funciones de membresía en in1 k_in2 Número de funciones de membresía en in2 k_out Número de funciones de membresía en out k Contador de funciones de membresía por variable αi i-esimo αlevel

i

α0 Punto inicial en el intervalo con peso i

i

αf Punto final en el intervalo con peso i w_in1 Vector de peso para entrada 1 w_in2 Vector de peso para entrada 2

w_rules Matriz de pesos para evaluación de las entradas rules Matriz de reglas

αmax Máximo valor de membresía alcanzado β Diferencia entre dos niveles

COSAA Defuzzificación Center of Slice Area Average COG Defuzzificación Center of Gravity

(12)

Capítulo 1 Introducción

En este capítulo se hace una inducción a los sistemas difusos, contemplando los trabajos históricos más representativos de esta teoría. Se presenta un panorama de aplicaciones de sistemas difusos para posteriormente, abordar los tipos de implementaciones existentes. Una vez conociendo los antecedentes de los sistemas difusos se expone la propuesta del tema donde se centra el presente trabajo de investigación, resaltando necesidades y carencias en los sistemas difusos actuales.

Finalmente, se mencionan los objetivos planteados para el desarrollo del presente trabajo.

1.1 Prefacio

Al utilizar lógica clásica es prácticamente imposible crear un modelo que represente de forma matemática el razonamiento del ser humano, donde se hace uso del sentido común para razonar en un mundo donde las cosas son parcialmente verdaderas.

Dado que los postulados de dicha lógica clásica solo utilizan dos valores, verdadero o falso, a esto se le conoce como principio del Tercero Excluido.

Con la finalidad de expandir las capacidades de la lógica Aristotélica, en 1920 Jan Lukasiewicz de Polonia, rompe el esquema del principio de tercero excluido asignando a una premisa, una serie de valores entre el rango de falso y verdadero que reflejan el grado de verdad de dicha premisa, es decir, que tan cierto o que tan falso es, introduciendo el concepto clave: “todo es cuestión de grados”.

En 1937, Black [1] en su artículo “vaguedad”, propone otra alternativa para representar al inexacto mundo real, menciona:

Vaguedad no debe ser comparada con la igualdad, dado que la primera es aproximada más no exacta, entonces más que un defecto

del lenguaje es una importante fuente de creatividad [2].

Lotfi Asker Zadeh profesor de ingeniería eléctrica y ciencias computacionales de la universidad de Berkeley, publica en 1962 [3] un artículo donde resalta la incapacidad de las matemáticas convencionales para tratar sistemas reales.

Para tratar el análisis de sistemas biológicos, y lidiar efectivamente con éstos, que son generalmente ordenes de magnitud más complejos que los sistemas hechos por humanos, se

necesita un tipo de matemáticas radicalmente distintas, matemáticas que utilicen cantidades difusas o nubosas que no

pueden ser descritas en términos de distribuciones de probabilidad [4].

Posteriormente en 1965 Zadeh [5], presenta la idea de los Conjuntos Difusos, a partir de esto, surge la Lógica Difusa como una extensión de la teoría de conjuntos clásica y ha sido una forma de representar el razonamiento aproximado de la mente

(13)

valores reales que representan el grado de verdad para la variable con respecto a una función de pertenencia.

Al igual que cualquier otro tipo de lógica, la lógica difusa puede ser únicamente un sistema para inferir consecuencias de premisas

previamente establecidas y solamente de éstas. [6]

Zadeh menciona que la inteligencia artificial está basada en lógica, pero no se necesita lógica de primer orden sino lógica difusa para tratar con razonamiento inexacto o aproximado. Entonces

La lógica difusa es una generalización de la lógica bi-valuada llamada lógica multivaluada que tiene la propiedad de

graduar la verdad de la premisa haciendo uso de cuantificadores de lenguaje común.

La razón por que los humanos pueden hacer muchas cosas que las computadoras no pueden es porque las últimas utilizan lógica bi-valuada o binaria para realizar sus cálculos.

Zadeh, menciona tres principales áreas para aplicaciones de cómputo inteligente [6]: numérico, bases de datos masivos e ingeniería del conocimiento. En esta última se refiere a computadoras orientadas a inteligencia artificial que en lugar de tratar datos utilizan conocimiento, ya que lo importante es la habilidad para inferir utilizando información de una base de conocimiento inconsistente.

Mediante lógica difusa se puede describir un sistema utilizando reglas de sentido común que se refieren a cantidades indefinidas. Se han hecho investigaciones que muestran que la lógica difusa puede aplicarse para modelar cualquier sistema continuo.

A pesar de que la construcción de reglas básicas y funciones de membresía es relativamente fácil, el ajuste de estas, no es una tarea simple, de hecho esto es el tendón de Aquiles de un sistema difuso. El método de prueba y error es comúnmente utilizado para modificar la forma de las funciones de membresía, esto requiere bastantes iteraciones de prueba para llegar a una solución óptima.

De acuerdo a Zadeh [7] dentro de la concepción y desarrollo de Máquinas con Coeficiente de Inteligencia MIQ para obtener esta solución óptima, el factor más importante es el uso de lo llamado soft computing o cómputo suave, en particular la lógica difusa dada su habilidad de imitar la mente humana para emplear un razonamiento aproximado más que preciso, entonces se puede explotar la tolerancia para imprecisión e incertidumbre, aprender de la experiencia y adaptarse a los cambios en diversas condiciones de operación.

Para realizar cómputo suave, se han realizado productos híbridos que proporcionen a un sistema basado en reglas la capacidad de ajustarse al sistema real ya sea a través de una red neuronal [8]; en otros casos se utilizan teorías como algoritmos genéticos [9], caos [10] y fractales [11], entre otras herramientas de aprendizaje [12]. Se pueden mencionar también nuevos métodos para la sintonización de sistemas difusos, como conjunciones paramétricas.

(14)

Cabe destacar que un grado difuso no es lo mismo que un porcentaje de probabilidad, la probabilidad determina cuando o no ocurrirá un suceso. En difuso, se mide el grado en que algo ocurrirá o alguna condición exista [13], entonces, la incertidumbre se estima por medio de posibilidad y necesidad, logrando representar estados de ignorancia parcial o total [14].

1.2 Aplicaciones de los Sistemas Difusos

La potencial aplicación de la lógica difusa en el campo del control automático es publicada por Zadeh en 1972 [15], y no es sino hasta 1974 cuando Ebrahim H. Mamdani del colegio Queen Mary en Londres [16] encuentra la forma de aplicar la lógica difusa al control de un motor de vapor desarrollando un modelo en donde se realiza la inferencia a través de una Base de Reglas o basado en reglas. Mas adelante en 1984, Sugeno [17], presenta un proyecto para estacionar un auto donde el esquema para el control difuso tiene un consecuente basado en ecuaciones lineales de primer orden, lo cual da mayor versatilidad a los sistemas difusos.

Los sistemas difusos han tenido gran aceptación a nivel mundial, en la literatura existen infinidad de aplicaciones que varían desde el control del tiempo de lavado en lavadoras automáticas, hasta el control de trenes electromagnéticos en Japón, y aun sigue incrementando la aplicación a productos de consumo. Se pueden mencionar casos de alto rendimiento como: purificación de agua [18], reactores nucleares [19], robótica [20], reconocimiento de patrones [21] y experimentos de física de alta energía [22], todas estas aplicaciones requieren de sintonización previa para llegar a un funcionamiento óptimo en sistemas difusos, es por ello que en éste trabajo se presenta una alternativa de hardware para agregar sintonización basada en conjunciones paramétricas.

1.3 Tipos de Implementación de Sistemas Difusos

En cuanto al tipo de implementación para un sistema difuso podemos distinguir notoriamente dos grandes ramas principales y una tercera que surge al fusionar las dos primeras:

• Implementación en Software. En éste tipo de implementación, se utiliza un lenguaje de programación de propósito general para realizar un algoritmo computacional que trabaje con el sistema específico. En esta implementación, y debido a que la ejecución del programa es secuencial, no es posible realizar la manipulación del proceso en tiempo real, pero es versátil para trabajar con procesos que no demandan una alta velocidad de respuesta [23] [24].

• Implementación en Hardware. La implementación se realiza a través de un circuito que puede variar en tecnología (FPGA, ASIC, CMOS, VLSI), al utilizar un procesador diseñado para propósito específico que hace uso del paralelismo y segmentación se puede alcanzar muy altas velocidades de operación, lo cual hace a éste tipo de implementación adecuada para aplicaciones de alto rendimiento [25] [26].

(15)

• Implementación Mixta, en ésta se hacen sistemas que constan de algún procesador de propósito general, al cual se agrega la capacidad de realizar operaciones difusas elementales dentro del conjunto de instrucciones [27] [28].

En la tabla 1, se presenta una comparativa entre los distintos tipos de implementación de sistemas difusos, en la columna referente a infraestructura de hardware (HW), se hace referencia al número de componentes que se involucran en la implementación, y al referirnos a la velocidad, se refiere a la velocidad a la cual realiza una inferencia. Cabe destacar que en una implementación software, se requiere del procesamiento de un programa secuencial lo cual limita el desempeño del sistema, en el caso de las implementaciones en hardware, tienen la ventaja de que se pueden realizar operaciones específicas utilizando paralelismo a nivel de operación reduciendo considerablemente el tiempo de procesamiento.

Tabla 1. Comparativa entre las distintas implementaciones.

Implementación HW Velocidad Estructura

Software Bajo Baja Programa Lineal

Mixta Medio Media Programa lineal con operaciones Difusas Hardware Alto Alta Dedicado a operaciones difusas con cierto

nivel de paralelismo y segmentación.

En la figura 1, se presentan las subdivisiones de los tipos de implementación de sistemas difusos, por el lado del software, se tienen diversos lenguajes de programación de uso general ya sean de alto nivel o ensambladores. Por el lado de las implementaciones en hardware, los distintos tipos están en función de la tecnología utilizada, que puede ser programable o fijo. Finalmente las implementaciones mixtas, hacen uso de algunas características o elementos de los tipos anteriores.

Figura 1. Tipos de implementación de procesadores difusos.

En aplicaciones donde el tiempo de respuesta es vital para ejecutar el algoritmo de lógica difusa y así obtener resultados instantáneos, la mejor opción es el hardware. Esta

Implementación

Software

Mixta

Hardware

Programas de modelación Generadores de Código para uC Lenguajes de uso general

VLSI CMOS FPGA

CORE Procesador + instrucciones FUZZY

(16)

digital [25], hasta éstos días es un campo de investigación activo y es una de las líneas de investigación del presente documento, un resumen detallado de estas implementaciones se expone en el capítulo 2. Por otro lado, como línea de investigación adicional, se aborda la sintonización de sistemas difusos basada en conjunciones paramétricas que se expone en el capítulo 4.

1.4 Justificación

Las implementaciones en hardware para sistemas difusos proporcionan una alta velocidad de respuesta en inferencias por segundo por esto son la mejor opción para procesos no lineales a alta velocidad en tiempo real. De acuerdo a la investigación realizada sobre implementaciones en hardware para sistemas difusos, que se detalla en el capítulo 2, en la mayoría de los casos se utilizan operaciones de punto flotante para realizar inferencias, destacando que éste tipo de operaciones al implementarse en hardware consumen una mayor cantidad de recursos, a diferencia de las operaciones con enteros.

Para sintonizar o ajustar un sistema difuso no existe una herramienta teórica que permita crear reglas difusas que proporcionen la mejor respuesta del sistema y además le permitan adaptarse a diversas condiciones de operación como es el caso de fallos. Dado esto, se han utilizado herramientas matemáticas que modifican la forma de las funciones de membresía como por ejemplo redes neuronales [29], algoritmos genéticos [30], entre otras.

Cabe destacar que la etapa de sintonización requiere una fuerte cantidad de hardware adicional, o de otra forma, se debe realizar en otro equipo el cálculo de sintonización y descargar parámetros optimizados al sistema físico.

Con la finalidad de proveer flexibilidad a los sistemas difusos para modelar procesos reales se tienen operaciones de conjunción paramétrica que pueden ser ajustadas para mejorar resultados en simulación de sistemas difusos [31]-[33]. Este esquema permite la sintonización de sistemas difusos sin modificar la forma de funciones de membresía, lo cual se logra agregando parámetros constantes a las operaciones de conjunción paramétricas.

Actualmente ninguna implementación en hardware incluye operaciones paramétricas en su diseño, dado que éste enfoque es poco conocido. Por esto, se encuentra la necesidad de proponer hardware capaz de realizar conjunciones paramétricas que puedan ser implementadas en hardware digital eficientemente sin sacrificar desempeño, considerando el tipo de operaciones que utilicen.

Las ecuaciones utilizadas en sistemas difusos hacen uso de operaciones como multiplicación, división o potencias, que además de que consumen mucho hardware, requieren de una etapa de normalización para ajustar los resultados al universo discreto en cuestión sin causar un desbordamiento, entonces, estas operaciones se deben evitar en lo posible con la finalidad de hacer un sistema difuso que reduzca y optimice los recursos de hardware digital.

Por tal motivo, en el presente trabajo se desarrollan nuevas formas para conjunciones paramétricas, que mejoran su desempeño en hardware digital evitando operaciones complejas, utilizando operaciones simples. Para evaluar su comportamiento, se desarrolló un simulador donde se permita probar distintos casos, para así finalmente

(17)

diseñar bloques de hardware para operaciones básicas útiles en la creación de conjunciones paramétricas.

1.5 Objetivos

1.5.1 General

Desarrollo de un nuevo método para implementaciones digitales de sistemas difusos, utilizando operaciones paramétricas como herramienta para sintonización, haciendo uso de operaciones básicas optimas que permitan una implementación digital eficiente.

1.5.2 Específicos

• Descripción del sistema difuso y las partes que lo componen en términos de números binarios en el universo de los enteros.

• Fuzzificación de un dato discreto a la entrada del sistema, representado como un número difuso formado por un conjunto de niveles-α .

• Formulación de ecuaciones para conjunción que eviten operaciones complejas como multiplicaciones y divisiones, para mejorar el tiempo de respuesta y reducir el número de componentes de hardware.

• Formulación de un método de agregación basado en suma de intervalos.

• Formulación de un método de defuzzificación que opere con el resultado obtenido de la agregación, en niveles alfa, para entregar como un resultado de salida del sistema difuso, un valor discreto.

• Formulación de generadores difusos paramétricos que se puedan implementar eficientemente en hardware digital y que pueden ser utilizados para construir operaciones de conjunción y disyunción paramétricas.

• Desarrollo de un simulador que permita realizar sistemas difusos con las características mencionadas anteriormente.

• Implementación en hardware de un bloque donde se realicen las operaciones de t-normas.

• Implementación en hardware de un bloque donde se realicen las operaciones de t-conormas.

(18)

• Implementación en hardware de un bloque donde se realicen las operaciones de generadores difusos.

• Implementación en hardware de operaciones de conjunción paramétricas en un dispositivo programable en campo FPGA.

1.6 Aportaciones

En este trabajo se generó un nuevo modelo matemático para la implementación de sistemas difusos haciendo uso de operaciones con enteros, utilizando el mínimo de operaciones complejas. Derivado de lo anterior se desarrollo un nuevo método de agregación basado en suma de intervalos al cual se le denomina con resta al final y con resta al inicio, también se propone un nuevo método de defuzzificación denominado COSAA que se adapta a las necesidades del modelo propuesto y serán explicados en extenso en la sección 4.1.

En [31]-[33] proponen operaciones de conjunción paramétricas simples, para sintonización de sistemas difusos pero la mayoría de éstas no tiene una implementación en hardware eficiente dado que están basadas en operaciones como producto o potencia.

Por esto, se propusieron nuevos bloques de operaciones de conjunción paramétricas basados en generadores difusos, éstos bloques están basados en operaciones como min y max, t-normas y t-conormas de tipo Lukasciewicz y Drásticos que tienen como característica su simpleza computacional [34]-[36].

También se desarrollaron ejemplos de conjunciones basadas en las clases de generadores paramétricos propuestos, unidos con t-normas y t-conormas.

Finalmente como infraestructura para el análisis y simulación del comportamiento de nuestras propuestas, se desarrollo un simulador en C++ que utiliza todas las etapas del método propuesto, incluyendo las nuevas operaciones. Lo cual permite obtener nuevos bloques de hardware para la realización de operaciones de conjunción difusa paramétricas que son de utilidad para cualquier implementación en hardware que desee incluir sintonización basada en operaciones paramétricas.

(19)

1.7 Resumen de contenido

En el capítulo 2 se presenta un panorama acerca de las implementaciones en hardware para sistemas difusos que se han realizado desde su aparición en 1985 hasta el momento, obteniendo una sistematización que se presenta en diversas tablas donde se muestran las características de diseño y funcionalidad más relevantes, donde se observa la necesidad de generar nuevos modelos que incluyan una etapa de sintonización paramétrica con operaciones simples.

El capítulo 3 trata los aspectos teóricos básicos en donde está sustentada la investigación, primeramente se abordan los fundamentos de lógica difusa y sistemas difusos, incluyendo las operaciones de negación, conjunción (t-normas) y disyunción (t- conormas) así como algunas propiedades matemáticas.

Posteriormente en el capítulo 4 se desarrolla la forma matemática de representación de números difusos en el universo de los enteros, cuyas operaciones deben ser simples para ser implementadas eficientemente en hardware digital. Tomando esto en consideración, se presentan las nuevas operaciones paramétricas de conjunción difusa basada en generadores difusos digitales, como herramienta para sintonización del sistema difuso.

El capítulo 5 corresponde a los resultados obtenidos en el presente trabajo, parte de éstos fueron obtenidos utilizando un simulador en C++, realizado para implementar un modelo de sistema difuso flexible con las características presentadas en el capítulo anterior, en éste simulador se analiza y evalúa las distintas conjunciones tanto básicas como paramétricas. De acuerdo a esto, se realiza la implementación en hardware digital de bloques básicos de t-normas, t-conormas y generadores difusos, utilizados para construir operaciones paramétricas difusas para sintonización en sistemas difusos.

Finalmente en el capítulo 6 se presentan las conclusiones derivadas de la investigación, se propone trabajo futuro y se presentan los productos obtenidos.

En el Apéndice A se presenta la terminología utilizada en el presente documento.

(20)

Capítulo 2. Estado del Arte

En el presente capítulo, se hará una revisión de los procesadores difusos que se han realizado desde su aparición en 1985 hasta la actualidad, primeramente se dará una clasificación de los procesadores difusos, para posteriormente hacer una breve reseña histórica del desarrollo de éstos procesadores. Finalmente se hace un resumen donde se presentan tablas que resaltan las características más importantes de éstos desarrollos así como los autores que han estado involucrados a lo largo de más de 20 años de procesamiento difuso en hardware. Con ello, se pretende contar con un panorama del estado del arte, que nos muestre, entre otras cosas, la problemática que presentan las aportaciones de hardware existentes, para así proponer una posible solución, motivo del presente trabajo

2.1 Clasificación de Procesadores Difusos

Dentro del área de procesadores difusos, se distinguen dos grandes tipos: digitales y analógicos. A partir de esto, investigadores de distintas partes del mundo han desarrollado versiones de arquitecturas de procesadores difusos, mismas que con el avance tecnológico en la fabricación de circuitos integrados y las constantes mejoras en sistemas difusos, se ha logrado a través de los años, crear dispositivos más rápidos, más eficientes y más flexibles, que adoptan la tecnología física e intelectual más avanzada hasta el momento.

La clasificación de procesadores difusos según su tecnología de construcción distingue tres categorías principales que son: Analógico, Digital e Hibrido, como se muestra en la figura 2. En el primer caso se utilizan operaciones entre señales analógicas de voltaje o corriente; en el caso de las implementaciones digitales se utilizan datos binarios para realizar las operaciones. Finalmente el enfoque hibrido hace una mezcla de señales tanto digitales como analógicas.

Figura 2. Clasificación de los procesadores difusos según su tecnología de construcción.

2.2. Breve Historia de Procesadores Difusos

En 1985 Yamakawa y Miki, desarrollan el primer procesador difuso analógico CMOS que realiza operaciones difusas a través de comparaciones entre niveles de corriente [26], fue puesto en el mercado y patentado para OMRON. El enfoque analógico se ha utilizado en [37] [38] [39] entre otros. También se han creado híbridos que manejan

ANALÓGICOS

HÍBRIDOS DIGITALES

Implementaciones Hardware para Sistemas Difusos

(21)

señales tanto digitales como analógicas en la estructura del procesador, como en [40]

[41].

Los procesadores digitales difusos aparecieron paralelamente en 1985, cuando Watanabe y Togai desarrollan el primer chip difuso con tecnología VLSI [25], fue patentado y comercializado por Togai Infralogic. A partir de éste, se han creado nuevas versiones de arquitecturas difusas digitales, por ejemplo, Manzoul y Serrate realizan un procesador de alta capacidad de procesamiento de tipo sistólico difuso [42], y posteriormente DeSalvador y Gutiérrez un arreglo sistólico multinivel [43]. Morisue y Kogure, utilizan una arquitectura tipo Josephson [44]; Morisue y Sakamoto, utilizan bloques de neuronas para formar operaciones difusas [45] [46] y distintas arquitecturas más se han reportado utilizando técnicas avanzadas como segmentación y paralelismo a nivel de operación, entre éstas [47] [48] [49].

De acuerdo al tipo de implementación visto en la sección 1.3, se tienen implementaciones mixtas donde se utiliza un bloque lógico de algún procesador RISC convencional, y se añaden bloques de operaciones difusas básicas al conjunto de instrucciones, una arquitectura de éste tipo fue propuesta por Watanabe en 1992 [27].

Esta implementación puede realizar un algoritmo de lógica difusa haciendo uso de operaciones tanto ordinarias como difusas, a esto se le llama arquitectura hibrida ya que incluye modificaciones en el hardware para realizar instrucciones de software eficientemente. Entre otros trabajos similares, Costa y DeGloria [50], Salapura [28]. El co-diseño en esta parte se encarga de comparar operaciones e implementarlas de la forma más eficiente, ya sean en hardware o en código ejecutable por el mismo procesador [51]

[52].

Otra forma de implementación mixta es donde se maneja el uso de un co- procesador difuso unido a un procesador de uso general, el primero se encarga de realizar el cómputo difuso y el segundo realiza la interacción con los demás periféricos [53].

Con la reciente aparición de dispositivos lógicos programables, que permiten crear una arquitectura digital completa a través de bloques de circuitos lógicos conectados de tal manera que representen el comportamiento del modelo planteado y la facilidad de representar reglas difusas utilizando lenguajes de descripción de datos [54], se han presentado diversas implementaciones de hardware difuso realizadas en FPGA, en 1992 Surmann, et. Al., [55] realizaron la primera implementación de éste tipo, campo que en la actualidad está activo para la investigación y ha sido trabajado por [49] [56] [57]

[58] [59], entre otros. En la figura 3 se resumen los tipos de arquitecturas de procesadores difusos digitales.

Figura 3. Tipos de arquitecturas de procesadores difusos digitales.

Utilizando como modelos los diseños anteriores, se han presentado nuevas versiones tanto de los mismos autores como de otros proyectos que han mejorado o implementado alguna nueva característica o corregido algunas deficiencias anteriores. Se puede mencionar que la reducción del número de componentes, lleva a reducir el costo de

ASIC - FUZZY RISC+FUZZY CO-PROCESADOR Procesadores

Difusos

Digitales FPGA

(22)

fabricación aunque no siempre lleva a un mejor desempeño. También se ha tratado el incrementar la velocidad de operación, facilidad de uso, versatilidad, etc. Algunos de estos trabajos de investigación han sido patentados y comercializados por grandes compañías como se muestra en la tabla 2.

Tabla 2. Procesadores Difusos Comerciales

Autores Compañía Modelo Año

Takeshi Yamakawa OMRON Taetsi Electronics FP-3000 1986 Masaki Togai TOGAI Infralogic --- 1986 Rodney J. Corder,

Mark E. Miller TOGAI Infralogic FC-110 1991

--- Neuralogix NLX230 1992

Andrea Pagni, Rinaldo Poluzzi,

Guianguido Rizzotto

SGS Thomson Microelectronics

WARP 1993

Herbert Eichfeld, Thomas Künemund

Michael Loner

SIEMENS AG.

Semiconductor

SAE- 81C99

1993

Greg J. Viot, James Sibigroth,

James L.

Broseghini

MOTOROLA Inc. 68HC12

(CPU12) 1993

Massimo Abruzzese, Biagio Giacalone

Cons Ric Microelettronica --- 1995

Vicenzo Catania, Marco Russo

ST Microelectronics ST52Fxx 1996

2.3 Conclusiones de Procesadores Difusos

En las tablas 3 y 4 se podrá apreciar las características más relevantes de los procesadores difusos que han sido desarrollados, resaltando que en la mayoría de ellos se manejan resoluciones fijas para el universo de entrada y número de valores de membresía, éstos varían desde 4 hasta 32 bits.

Todos los procesadores son sincronizados por reloj, y utilizan segmentación en diversas etapas desde 2 hasta 8 etapas, aplicando paralelismo a nivel de operación, aunque hay quienes adoptan un procesamiento serial.

El número de entradas y salidas está en función de la arquitectura difusa y varía desde 2 hasta 8 entradas y desde 1 hasta 4 salidas. El número de funciones de membresía está limitado a un máximo de hasta 16 funciones por cada entrada y hasta 256 singletons para la salida. En todos los trabajos, el número máximo de funciones de membresía traslapadas es de 2.

(23)

El método de inferencia más utilizado es el propuesto por Mamdani, basado en la composición MAX-MIN, tiene como característica el ser simple, este modelo será utilizado para el desarrollo del presente trabajo. El método de defuzzificación más usado es el de Centro de Gravedad o COG por sus siglas en ingles, que proporciona buenos resultados, pero consume bastante tiempo de procesamiento.

En cuanto a las posibles formas de funciones de membresía existentes, la más utilizada es el trapezoide, auque existen implementaciones que no limitan esta forma dado que se puede representar de dos maneras, la primera es asignando un valor de membresía para cada punto en el universo de entrada; la segunda forma es asignar a un intervalo de valores de entrada un nivel de membresía, a esto se le conoce como representación en niveles-α. Para ahorrar cálculo al procesador, se han tratado enfoques donde las funciones de membresía son mapeadas a memoria, conteniendo esta el nivel de membresía correspondiente a una entrada, reduciendo así el cálculo en la etapa de Fuzzificación.

Algunos autores señalan el uso de “reglas activas” [69], como una herramienta para ahorrar cálculos innecesarios en la parte de inferencia, este concepto se ha mantenido hasta el momento en diversos trabajos.

En cuanto a desempeño y velocidad, se han presentado arquitecturas de hasta 300 MFLIPS, esto está en función del tipo de tecnología utilizada y de las etapas de segmentación que se apliquen, obteniendo una vez cargadas todas las etapas, una inferencia con cada ciclo de reloj. Esto también depende del número de entradas, del número de funciones de membresía para cada entrada y de la resolución utilizada.

Las formas más flexibles que se presentan son las implementaciones de co- procesadores difusos, dado que son bloques de operaciones difusas especializadas que trabajan en conjunto con un procesador de uso general y con una memoria de donde obtienen los parámetros necesarios para su operación, brindando así la flexibilidad de programar a través del procesador de uso general diversas configuraciones de sistemas difusos. Cabe mencionar que este tipo de implementaciones no es la más veloz pero si la más flexible.

Con la finalidad de proveer flexibilidad sin sacrificar desempeño, es necesario contar con bloques en hardware de operaciones básicas simples, modulares y configurables, para construir conjunciones paramétricas útiles en sintonización de sistemas difusos, tema del presente trabajo.

(24)

Tabla 3. Principales Características de Procesadores Difusos Propuestos Desde 1985 Hasta el Momento.

Año Autores Tecnología Arquitectura Velocidad en FLIPS

Inferencia Defuzzificación Características Relevantes de 1985-

1986

Togai, Watanabe [25],[60],[61]

Digital CMOS

Paralelo- Serial

80K Max-Min COG Uso de memoria ROM para almacenamiento de las reglas, mismas que se ejecutan todas en paralelo, lo cual lleva un gran tiempo de procesamiento.

1986- 1995

Yamakawa, Miki

[26],[62]-[65]

Analógico 2

procesadores dedicados

1M Max-Min COG Realiza el procesamiento por manejo de voltajes

1987- 1988

Manzoul, Serrate [42]

Digital Segmentada con

procesadores en paralelo

Relación Total

N/D Realiza un arreglo sistólico para calcular toda la relación difusa.

1986- 1991

Watanabe, Detloff, Yount [66]-[68]

Digital Max-Min COG

1991 Ikeda, Hiramoto, Nakamura [69]

Digital Paralelo Segmentada

Max-Min Variable Presentan el concepto de reglas activas y almacenan las funciones de membresía en RAM.

1992 Morisue, Kogure [44]

Mixto Arquitectura Segmentada

tipo Josephson

790M Max-Min COG Defuzzificación por Centro de Gravedad con Comparaciones, sin suma ni multiplicación

1992 Watanabe [27]

Digital RISC con operaciones difusas

N/D Variable Variable Agrega instrucciones vectoriales al conjunto de instrucciones de un procesador RISC, creando una FALU (Fuzzy Aritmetic and Logic Unit)

1993- 1995

Surmann Ungering, Goser

Digital FPGA

Segmentado 3 etapas

Max-Min COG Fuzzificación mediante Look Up Table (LUT)

(25)

[70]-[72]

1993 Nakamura, Sakashita et al [73],[74]

Digital Co-

procesador

200K Max-Min COG Incluye un generador de funciones de membresía

1993- 1994

Fattaruso, Mahant- Shetti, Barton [75],[76]

Mixto Paralelo 500K Max-Min COM Calcula 32 reglas en paralelo

1993 Ho, Lim, Lau [77]

Digital Max-Min Trata las entradas como singletons simplificando la circuitería 1994-

1999

Massetti, Gabrielli, Gandolfi [22],[48],[78]- [82]

Digital Segmentada en 5 etapas

50M Max-Min Yager Selector de Reglas Activas

1994 Eichfeld, Klimke, et.

Al.

[83]

Digital FPGA

10M Max/Bsum COG

MOM

Procesa hasta 4 reglas en paralelo

1994 Costa, DeGloria, et.

al.

[50]

Digital RISC segmentada en 4 etapas

Variable Max-Min Variable Procesador RISC extendido con operaciones difusas

1995- 2000

Ascia, Catania, et.

Al.

[47],[84]-[90]

Digital Paralelo Segmentada

52K - 16.7M

Max-Min COG Utiliza Unidades de Detección de Reglas, además de manejar representación en niveles alfa.

1995 Basch, Zagar

[55] Digital Segmentada

en 8 etapas 200K Max-Min COG Uso de memoria de contenido direccionable para almacenar al conjunto difuso

1995 Civera, Demarchi, Masera [56]

Digital Paralelo Serial

250K Max-Min Presenta una arquitectura paralelo-serial para realizar inferencias.

(26)

1995 Ramirez- Angulo, Treece, Andrews [91]

Analógico Paralelo Max-Min COG Procesador que opera en modo voltaje, y realiza defuzzificación en modo de corriente,

1995 De Salvador, Gutiérrez [43]

Digital FPGA

Sistólica multinivel VHDL

14M Max-Min N/D las reglas se incluyen en la unidad de inferencia

1996 Salapura, Hamann [92]

Digital FPGA

Segmentada Max-Min Yager El sistema difuso es representado por medio de diagramas de estado

1996 Jacomet, Walti [57]

Digital Segmentada 86M Max-Min MAX COA

Cualquier forma de función de membresía mapeada mediante LUT

1996 Guo, Peters, Surmann [38]

Analógico CMOS

Paralelo 6M Max-Min COG Etapas realizadas con operaciones en voltaje.

1997-

2000 Gshwind, Salapura, Maurer [28],[93],[94]

Digital

FPGA Coprocesador

segmentado Variable Software Variable Utiliza un procesador MIPS-I unido con un procesador difuso dedicado en FPGA basado en maquinas de estado cooperativas

1997 Sakamoto, Morisue [95], [96]

Digital Ternario neuronal

Max-Min Utiliza lógica trivaluada y bloques de redes neuronales para operaciones de máximo.

1995- 2002

Barriga, Baturone, et.

Al.

[97]-[101]

Digital FPGA

Paralelo 3M Variable COG optimizado

Realiza las operaciones de manera, Análoga y Digital.

1995- 1998

Barriga, Baturone, et.

Al.

[102]-[106]

Mixto Paralelo 500K Max-Min COG Realiza inferencias totalmente en paralelo, puede conectarse directamente con sensores.

1996 Patyra, Digital Paralelo 300M Max-Min N/D Propone DDS direct data stream para

(27)

Granter, Koster [107]

FPGA Segmentada acelerar el procesamiento de

Utiliza elementos de procesamiento PE max- min en paralelo.

1998 Cardarilli, Lojacono [108]

Digital Segmentado 400K Max-Min COG Funciones Trapezoidales con potencias de dos como pendientes.

1998 Song, Quigley, Pammu [109]

Analógico Paralelo 500K Max-Min COG

1998 Bin Qiu; Pak L Woon [110]

Digital FPGA

Segmentada Max-Min CEN SOM, MOM

Permite seleccionar operaciones de defuzzificación además de formas de funciones de membresía

1999- 2000

D’Amore, Kienitz Saotome [111], [112]

Digital Segmentado en dos etapas

Max-min COG Utiliza una matriz de asociación de reglas

2002 Acosta, Toccini [29]

Digital

FPGA Segmentada 818K Max-min COG 2003 Garrigós

Guerrero Merino [113]

Digital FPGA

Segmentado 170K COG Distribución de la base de reglas como redes de petri

2003 Gaona, Olea, Melgarejo [114]

Digital FPGA

Secuencial con modulos paralelo

45M Max-Min COA Utiliza aritmética distribuida para defuzzificación

2004 Shih-Hsu Huang; Jian- Yuan Lai [115]

Digital Segmentada 4M Max-Min COG Presentan mejoras en la detección de reglas activas haciendo uso de una unidad de asignación, (scheduling)

2004 Melgarejo, Pena Reyes

Dgital Segmentada 30M Tipo2 Tipo2 Implementa sistemas difusos de tipo 2

(28)

[116]

2005 Raychev, Mtibaa y Abid [53]

Digital Co-

procesador FPGA

Max-Min El co-procesador interactúa con u procesador y una RAM donde se almacenan las reglas.

Operaciones de punto flotante 2005 Shih-Hsu

Huang Jian- Yuan Lai [117]

Digital Paralelo Segmentado

7M Max-Min COG Utiliza funciones de membresía tipo trapezoidal

2006 Deliparaschos, Nenedakis, Tzafestas [118]

Digital FPGA

Segmentada 200M Prod-Min Weighted Average

Sistema difuso tipo Takagi-Sugeno de orden cero y generador de funciones de membresía trapezoidales.

2007 Tamukoh, Horio, Yamakawa [119]

Digital Segmentada SOR Generador de funciones de membresía basada en corrimiento de bits, uso de redes neuronales para defuzzificación con unidades activas.

(29)

Tabla 4. Características Funcionales de Procesadores Difusos desde 1985 Hasta el Momento.

Año Autores Número de Entradas

Número de Salidas

Número de funciones

para Entrada

Número de Funciones para Salida

Traslapes Número de Bits en Universo

Entrada

Número de Bits para Valor de Membresía 1985-

1986

Togai, Watanabe [25],[60],[61]

1 1 31 31 2 5-6 4

1986- 1995

Yamakawa, Miki [26],[62]-[65]

3 1 7 7 2 N/D N/D

1987- 1988

Manzoul, Serrate [42]

2 1 Hasta 7 Hasta 7 2

1986- 1991

Watanabe, Detloff, Yount

[66]-[68]

2 1 7 7 2 6 6

1991 Ikeda, Hiramoto, Nakamura

[69]

9 1 8 8 2 8 6

1992 Morisue, Kogure [44]

2 1 2 4 1992 Watanabe

[27]

Variable Variable 2-16 2-16 2 32 6

1993- 1995

Surmann Ungering, Goser

[70]-[72]

4 1 8 8 2 8 8

1993 Nakamura, Sakashita et al

[73],[74]

2 1 6 7 2 12 8

1993- 1994

Fattaruso, Mahant- Shetti, Barton [75],[76]

8 4 28 28 2 8 6

1993 Ho, Lim, Lau 3 1 2 7 8

(30)

[77]

1994- 1999

Massetti, Gabrielli, Gandolfi

[22],[48],[78]-[82]

4 1 7 8 2 7 4

1994 Eichfeld, Klimke, et.

Al.

[83]

256 64 2 8 6

1994 Costa, DeGloria, et. al.

[50]

variable Variable Variable Variable Variable Variable Variable 1995-

2000

Ascia, Catania, et. Al.

[47],[84]-[90]

8 1 8 8 2 8 6 1995 Basch, Zagar

[55]

8 2 15 15 8 8 1995 Civera, Demarchi,

Masera [56]

2 1 16 16 2 5 4

1995 Ramirez-Angulo, Treece, Andrews [91]

5 1 5 5 2 N/D N/D

1995 De Salvador, Gutiérrez [43]

4 1 7 7 2 8 6 1996 Salapura, Hamann

[92]

2 1 7 7 2 8 8 1996 Jacomet,

Walti [57]

4 1 7 8 6 8 6

1996 Guo, Peters, Surmann [38]

3 1 3 5 2 N/D N/D

1997- 2000

Gshwind, Salapura, Maurer

[28],[93],[94]

variable Variable Variable Variable Variable Variable Variable

1997 Sakamoto, Morisue

(31)

[95], [96]

1995- 2002

Barriga, Baturone, et.

Al.

[97]-[101]

3 1 8 8 2 8 6

1995- 1998

Barriga, Baturone, et.

Al.

[102]-[106]

2 1 2 N/D N/D

1996 Patyra, Granter, Koster [107]

4 2 Variable Variable Variable 6 4

1998 Cardarilli, Lojacono [108]

2 1 16 7 2 8 8

1998 Song, Quigley, Pammu [109]

2 1 7 4 2 N/D N/D

1998 Bin Qiu; Pak L Woon [110]

3 3 5 5 2 8 8 1999-

2000

D’Amore, Kienitz Saotome

[111], [112]

2 1 9 7 2 7-16 4-13

2002 Acosta, Toccini [29]

2 1 7 7 2 8 8 2003 Garrigós

Guerrero Merino [113]

2003 Gaona, Olea, Melgarejo

[114]

2 1 4 16 2 8 8

2004 Shih-Hsu Huang; Jian- Yuan Lai

[115]

2 1 8 8 2 6 4

2004 Melgarejo, Pena Reyes [116]

2 1 3 9 2 8 32

(32)

2005 Raychev, Mtibaa y Abid

[53]

Variable Variable Variable Variable Variable 16 16

2005 Shih-Hsu Huang Jian- Yuan Lai

[117]

8 4 8 8 2 8 6

2006 Deliparaschos, Nenedakis, Tzafestas [118]

2 1 7 49 2 8 4

2007 Tamukoh, Horio, Yamakawa

[119]

2 1 Vector Vector -- 8 12

Referencias

Documento similar

SECUNDARIA COMPRENDE LOS

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

La primera opción como algoritmo de compresión para secuencias biológicas que sugirió la directora del proyecto fue la adaptación de los algoritmos de Lempel-Ziv al alfabeto formado

En esta sección se tratan las características que debe tener un compresor de secuencias biológicas para poder ser usado como herramienta en la construcción de los árboles de

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

[r]

El Programa de Mecenazgo organiza un concurso para "Amigos del IAC" en el cual podrán realizar una propuesta de observación para un telescopio robótico 1. Aquellas que

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones