scieee AI-readable full text Open interactive document viewer

Diseño e implementación de sistemas neuro-difusos simplificados

Gersnoviez, A.

Abstract

Esta Tesis se centra principalmente en la búsqueda y desarrollo de nuevas técnicas de simplificación para sistemas neuro-difusos, de modo que sistemas complejos puedan ser ejecutados de forma eficiente en software empotrado o hardware dedicado. Los algoritmos de extracción de reglas de tipo rejilla (grid) a partir de datos numéricos pueden dar lugar a sistemas que permitan una implementación eficiente y que estén dotados de interpretabilidad lingüística, pero, en general, podrán sufrir de “la maldición de la dimensionalidad", por lo que son necesarios métodos que mitiguen el efecto de esa maldición. La primera técnica desarrollada en la Tesis está basada en una simplificación tabular inspirada en el algoritmo de Quine-McCluskey de la lógica booleana. Se trata de un método bastante potente a la hora de disminuir el número de reglas que sirve, a su vez, para plantear una nueva técnica de clasificación de reglas. Esta nueva técnica da lugar a un método para el diseño de clasificadores neuro-difusos con bases de reglas incompletas, consiguiendo sistemas muy simples, que ofrecen un comportamiento mejor que el de otros sistemas con un número mayor de reglas. La segunda técnica desarrollada en esta Tesis presenta un nuevo método de descomposición jerárquica de sistemas neuro-difusos, que consigue una simplificación bastante superior a la de otros métodos aparecidos en la literatura. Los sistemas resultantes no solo son muy sencillos sino que, bajo ciertas condiciones, presentan un comportamiento lineal a tramos que permite aproximar comportamientos óptimos no lineales. El mayor obstáculo que deben superar los métodos de descomposición jerárquica es encontrar la estructura en la que descomponer el sistema. Sin embargo, en la Tesis se propone una metodología para encontrar dicha estructura, dando lugar a una técnica que consigue sistemas altamente simplificados, pero manteniendo los comportamientos de referencia. Las distintas técnicas desarrolladas en la Tesis se prueban sobre campos de aplicación muy distintos, como son el de reconocimiento de patrones, el de control y el de robótica móvil autónoma, obteniendo resultados relevantes en cada uno de ellos.

Full text

Departamento de Electr´onica y Electromagnetismo Universidad de Sevilla Dise˜no e Implementaci´on de Sistemas Neuro-Difusos Simplificados Memoria presentada para optar al grado de Doctor por Andr´es A. Gersnoviez Milla Departamento de Electr´onica y Electromagnetismo Universidad de Sevilla Dise˜no e Implementaci´on de Sistemas Neuro-Difusos Simplificados Memoria presentada para optar al grado de Doctor por Andr´es A. Gersnoviez Milla Dirigida por: Dra. MaIluminada Baturone Castillo Sevilla, Junio 2015 Agradecimientos Esta Tesis ha sido financiada, en parte, por el programa FPU de la Direcci´on General de Universidades del Gobierno Espa˜nol y por los proyectos de investigaci´on nacionales TEC2005-04359/MIC, TEC2008-04920, TEC2011-24319, y regionales EXC/2005/TIC- 635, P09-TEP-4479, subvencionados todos con fondos FEDER. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados i Agradecimientos Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados ii Resumen Esta Tesis se centra principalmente en la b´usqueda y desarrollo de nuevas t´ecnicas de simplificaci´on para sistemas neuro-difusos, de modo que sistemas complejos puedan ser ejecutados de forma eficiente en software empotrado o hardware dedicado. Los algoritmos de extracci´on de reglas de tipo rejilla (grid) a partir de datos num´ericos pueden dar lugar a sistemas que permitan una implementaci´on eficiente y que est´en dotados de interpretabilidad ling¨u´ıstica, pero, en general, podr´an sufrir de “la maldici´on de la dimensionalidad”, por lo que son necesarios m´etodos que mitiguen el efecto de esa maldici´on. La primera t´ecnica desarrollada en la Tesis est´a basada en una simplificaci´on tabular inspirada en el algoritmo de Quine-McCluskey de la l´ogica booleana. Se trata de un m´etodo bastante potente a la hora de disminuir el n´umero de reglas que sirve, a su vez, para plantear una nueva t´ecnica de clasificaci´on de reglas. Esta nueva t´ecnica da lugar a un m´etodo para el dise˜no de clasificadores neuro-difusos con bases de reglas incompletas, consiguiendo sistemas muy simples, que ofrecen un comportamiento mejor que el de otros sistemas con un n´umero mayor de reglas. La segunda t´ecnica desarrollada en esta Tesis presenta un nuevo m´etodo de descomposici´on jer´arquica de sistemas neuro-difusos, que consigue una simplificaci´on bastante superior a la de otros m´etodos aparecidos en la literatura. Los sistemas resultantes no s´olo son muy sencillos sino que, bajo ciertas condiciones, presentan un comportamiento lineal a tramos que permite aproximar comportamientos ´optimos no lineales. El mayor obst´aculo que deben superar los m´etodos de descomposici´on jer´arquica es encontrar la estructura en la que descomponer el sistema. Sin embargo, en la Tesis se propone una metodolog´ıa para encontrar dicha estructura, dando lugar a una t´ecnica que consigue sistemas altamente simplificados, pero manteniendo los comportamientos de referencia. Las distintas t´ecnicas desarrolladas en la Tesis se prueban sobre campos de aplicaci´on muy distintos, como son el de reconocimiento de patrones, el de control y el de rob´otica m´ovil aut´onoma, obteniendo resultados relevantes en cada uno de ellos. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados iii Resumen Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados iv Pr´ologo El trabajo de investigaci´on de esta Tesis se ha centrado en combinar las t´ecnicas de la l´ogica difusa junto con las de sistemas neuronales para dise˜nar sistemas neuro-difusos. La mayor´ıa de los trabajos reportados en la literatura sobre sistemas neuro-difusos no est´an centrados en su implementaci´on, por lo que no llegan a realizaciones hardware o software eficientes. Por otro lado, la mayor´ıa de los sistemas neuro-difusos pierden la interpretabilidad ling¨u´ıstica del paradigma difuso tras aplicar t´ecnicas de aprendizaje neuronales. El objetivo fundamental en la realizaci´on de esta Tesis ha sido dise˜nar sistemas neuro-difusos lo m´as simples posibles para ser implementados eficientemente en hardware dedicado o software empotrado pero sin que la faceta “neuro” domine sobre la “difusa”, es decir, sin perder que el sistema resultante sea ling¨u´ısticamente interpretable. La interpretabilidad ling¨u´ıstica es una gran ventaja, ya que de ese modo se puede comprender con mayor facilidad lo que el sistema est´a haciendo en cada momento. Para el dise˜no de sistemas neuro-difusos, un paso fundamental es el de dominar t´ecnicas dedicadas al an´alisis y extracci´on de informaci´on a partir de datos num´ericos. Por ello, durante el desarrollo de esta Tesis, se estudian a fondo estas t´ecnicas, que pueden dividirse entre las basadas en m´etodos de agrupamiento (o clustering) y las basadas en particiones de tipo rejilla (o grid) de los universos de discurso de las variables de entrada del problema. Dentro de las dos opciones, se ha optado por las t´ecnicas de tipo grid porque permiten una implementaci´on m´as eficiente y facilitan una mejor interpretabilidad ling¨u´ıstica (en particular si utilizan funciones de pertenencia lineales a tramos para describir los conjuntos difusos en vez de las funciones gaussianas que se emplean habitualmente en los m´etodos de clustering). El principal problema surge cuando se pretenden solucionar problemas complejos, ya que una de las principales desventajas presentadas por las t´ecnicas de tipo grid, es que el n´umero de reglas que se extraen crece exponencialmente con el n´umero de entradas. Este es uno de los mayores problemas que aparecen en el dise˜no de sistemas neurodifusos y que es conocido como “la maldici´on de la dimensionalidad”. Por eso, uno de los objetivos de esta Tesis es la b´usqueda de t´ecnicas de simplificaci´on de bases de reglas Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados v ´ Indice de figuras Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados xii ´ Indice de tablas 1.1. Equivalencia entre sistemas neuro-difusos de tipo Takagi-Sugeno de orden cero con sistemas polin´omicos a tramos, seg´un el conectivo y funci´on de pertenencia elegidos para los antecedentes . . . . . . . . . . . . . . . . . . 17 1.2. Equivalencia entre sistemas neuro-difusos de tipo Takagi-Sugeno de orden uno con sistemas polin´omicos a tramos, seg´un el conectivo y funci´on de pertenencia elegidos para los antecedentes . . . . . . . . . . . . . . . . . . 17 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados xiii ´ Indice de tablas Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados xiv Cap´ıtulo 1 Introducci´on al dise˜no e implementaci´on de sistemas neuro-difusos En 1965, Lofti Zadeh introdujo en el trabajo [Zadeh 65] los principios de la l´ogica difusa, donde los conceptos de verdadero o falso de la l´ogica binaria cl´asica pasan a ser una cuesti´on de grado. Los sistemas difusos emulan los mecanismos de razonamiento aproximado utilizados por el cerebro humano, almacenando la base de conocimiento de forma simb´olica, pero proces´andola mediante t´ecnicas num´ericas [Zadeh 73] [Mizumoto 82]. Esta base de conocimiento est´a formada por una serie de reglas de tipo “si-entonces” como las que presentar´ıa un sistema experto convencional, pero utilizando t´erminos ling¨u´ısticos similares a los usados en el lenguaje natural. A lo largo de todos estos a˜nos, los formalismos matem´aticos de la l´ogica difusa han ido desarroll´andose gracias a las contribuciones de muchos autores [Tsukamoto 79] [Wang 97] [Pedrycz 98]. Algunas de estas contribuciones est´an relacionadas con aspectos te´oricos generales, mientras que otras van encaminadas a ´ambitos de aplicaci´on espec´ıficos [Mendel 95] [Patyra 96]. Otra rama importante de los sistemas inteligentes es la correspondiente a las redes o sistemas neuronales artificiales. Estos sistemas persiguen reproducir la potencia y flexibilidad del cerebro humano no emulando su forma de razonar, como en el caso de los sistemas expertos, sino su estructura y organizaci´on [Haykin 94]. El cerebro humano y, en general, los sistemas nerviosos de los seres superiores, est´an formados por una gran cantidad de neuronas altamente interconectadas y cuya conexi´on cambia con la experiencia y el aprendizaje. Imitando estas caracter´ısticas, los sistemas de c´omputo neuronales artificiales combinan una gran cantidad de elementos simples de procesado Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 1 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos altamente interconectados que realizan un procesado masivamente paralelo. Sus propiedades computacionales, que dependen de las interconexiones, se desarrollan mediante un proceso adaptativo de aprendizaje. Esta estructura contrasta con la de un computador convencional cuya operaci´on es secuencial y centralizada en un microprocesador relativamente complejo. A diferencia de los sistemas expertos, las redes neuronales artificiales procesan el conocimiento de forma num´erica, por lo que pueden implementarse mediante circuitos electr´onicos y dar lugar a computadores neuronales. Sin embargo, su mecanismo de procesado no maneja informaci´on simb´olica por lo que su operaci´on no es transparente o comprensible para el ser humano. La gran ventaja de los sistemas neuronales es que poseen m´etodos sistem´aticos de aprendizaje para su dise˜no sin necesidad de que un experto humano les proporcione el conocimiento estructurado. Los m´etodos de aprendizaje t´ıpicos de un sistema neuronal parten de una serie de datos num´ericos de entrenamiento, es decir, de un conjunto de valores de entrada y sus correspondientes salidas. Esto significa que emplean informaci´on num´erica sobre la relaci´on entrada-salida que debe reproducir el sistema neuronal. Estos m´etodos se denominan m´etodos oalgoritmos de aprendizaje supervisado. Su objetivo es minimizar el comportamiento err´oneo del sistema neuronal, que se cuantifica mediante una funci´on error (como el error cuadr´atico medio) entre la salida que proporciona el sistema y la salida que debe proporcionar, para cada patr´on de entrada. Aunque las causas y los objetivos que motivaron la aparici´on de los sistemas difusos fueron diferentes de los de los sistemas neuronales artificiales, lo cierto es que se ha detectado una enorme relaci´on entre los comportamientos de ambos sistemas. Por ello, la l´ınea que han seguido muchos investigadores es integrar ambos paradigmas en los denominados sistemas neuro-difusos para as´ı combinar las ventajas de unos y otros. Un sistema neuro-difuso es, b´asicamente, un sistema difuso (por lo tanto con conocimiento estructurado) que emplea m´etodos de aprendizaje tomados de los sistemas neuronales para ajustar sus par´ametros [Jang 97]. Por tanto, estos sistemas engloban las ventajas que ofrecen los sistemas difusos, como son la traducci´on de conocimiento heur´ıstico expresado ling¨u´ısticamente y de forma aproximada y/o incierta, la rapidez del dise˜no, la facilidad de comprensi´on del proceso de razonamiento (v´alido para un no experto), la facilidad de test, la robustez y la suavidad en la respuesta. Por otro lado, se pueden emplear los m´etodos de aprendizaje de los sistemas neuronales y as´ı poder ajustar un sistema definido a partir de conocimiento heur´ıstico, o bien, extraer bases de reglas a partir de datos num´ericos (sin conocimiento heur´ıstico). Dentro de las distintas propiedades que tienen los sistemas neuro-difusos, en este cap´ıtulo se har´a una revisi´on de aquellas que est´an m´as relacionadas con los contenidos desarrollados en esta Tesis. En primer lugar, una de las propiedades ya comentadas y m´as utilizadas en este trabajo, es la habilidad de estos sistemas de aprender a partir Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 2 Apartado 1.1.Extracci´ on de bases de reglas a partir de datos num´ ericos de datos num´ericos, por lo que el apartado 1.1 se encargar´a de realizar una revisi´on de distintas t´ecnicas de miner´ıa de datos (data mining) enmarcadas en este tipo de sistemas. Otra propiedad importante que ser´a explotada en cap´ıtulos posteriores es la equivalencia de este tipo de sistemas con los sistemas polin´omicos a tramos. Por ello, el apartado 1.2 describir´a c´omo y bajo qu´e condiciones los sistemas neuro-difusos se comportan como sistemas polin´omicos a tramos. Por ´ultimo, unos de los objetivos de esta Tesis es la simplificaci´on de sistemas neurodifusos para conseguir una implementaci´on microelectr´onica eficiente. Por esa raz´on, el cap´ıtulo finaliza con el apartado 1.3, donde se realiza una revisi´on de las distintas realizaciones hardware/software aparecidas en la literatura de este tipo de sistemas. 1.1. Extracci´on de bases de reglas a partir de datos num´ericos Las t´ecnicas dedicadas al an´alisis y extracci´on de informaci´on a partir de datos num´ericos son cada vez m´as necesarias porque son una forma de reducir y compactar informaci´on. Desde el punto de vista hardware, la realizaci´on de un sistema que respondiera con unas determinadas salidas frente a unas determinadas entradas siempre podr´ıa hacerse mediante una tabla de b´usqueda (lookup table). Sin embargo, esta soluci´on s´olo tiene sentido para pocos datos (de otro modo, se dispara la complejidad de la tabla) y si no se requiere excesiva continuidad entre los valores que toma la variable de salida. En cualquier otro caso, siempre es mejor recurrir a interpoladores que reproduzcan los datos usando menos recursos de memoria. Dentro de los interpoladores, cobran gran inter´es los basados en l´ogica difusa, debido a su capacidad de extraer conocimiento ling¨u´ıstico de f´acil comprensi´on por personas no expertas. Debido a la importancia de esta rama, se han desarrollado numerosas t´ecnicas dedicadas a la extracci´on de bases de reglas difusas a partir de datos num´ericos, dentro de las cuales se pueden distinguir las basadas en m´etodos de agrupamiento (o clustering) y las basadas en particiones de tipo rejilla (o grid) de los universos de discurso de las variables del problema. 1.1.1. M´etodos de clustering Las t´ecnicas de clustering se basan en la idea de que, dada una serie de datos (o puntos, si se representan gr´aficamente), se puede realizar una divisi´on entre ellos, es decir, se puede realizar una serie de “agrupamientos” o colecciones de datos dentro de la nube de puntos que representan los datos. Aquellos datos que est´en en el mismo grupo deben tener un cierto grado de cercan´ıa o de caracter´ısticas similares. A cada uno de esto grupos se les denomina cluster. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 3 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos De este modo, cualquier dato puede pertenecer a un ´unico cluster (teniendo un grado de pertenencia de 1 respecto a ese cluster) o a varios de ellos (teniendo un grado de pertenencia entre 0 y 1 respecto a cada uno de ellos). Cuando se impone la restricci´on de que cada dato pertenezca a un ´unico cluster, se habla de clustering no-difuso o hard clustering, donde uno de los algoritmos m´as utilizados es el denominado Hard C-Means o K-Means. Por otro lado, si se permite que un mismo dato pueda pertenecer a varios clusters, se habla de clustering difuso (fuzzy osoft clustering). En este ´ultimo caso, se puede cuantificar cu´an difuso es cada cluster, es decir, mientras m´as difusos sean los clusters, cada dato podr´a pertenecer a un n´umero mayor de ellos al mismo tiempo. La mayor ventaja que ofrecen las t´ecnicas de clustering es que se pasa de manejar un gran n´umero de datos a s´olo unos pocos representativos (o prototipos) de ellos, que vienen a ser los centros de cada cluster. A la hora de crear la base de reglas del sistema difuso, cada cluster obtenido por una t´ecnica de clustering se transforma en una regla mediante su proyecci´on en cada dimen- si´on de las variables de entrada [Sugeno 93] [Klawonn 97]. Por tanto, toda la descripci´on de la base de reglas se obtiene simult´aneamente. La extracci´on de informaci´on mediante clustering tiene la ventaja de conseguir un n´umero bajo de reglas, eliminando as´ı el problema denominado “la maldici´on de la dimensionalidad” que aparece con las t´ecnicas basadas en una partici´on de tipo grid, que consiste en que el n´umero de reglas aumenta exponencialmente con el n´umero de variables de entrada. Como contrapartida, las reglas obtenidas a partir de la proyecci´on de los clusters no suelen tener significado ling¨u´ıstico. Diversas aproximaciones han sido propuestas en la literatura para incrementar el significado ling¨u´ıstico de estas bases de reglas. Una de ellas es el uso de modificadores ling¨u´ısticos, que permiten reducir tanto el n´umero de funciones de pertenencia (muchas de ellas pueden ser obtenidas como modificaciones de otras) como el de las reglas (algunas de ellas pueden combinarse en otra m´as gen´erica) [Sugeno 93]. Otros autores se centran en simplificar las funciones de pertenencia obtenidas para conseguir un sistema difuso m´as transparente e interpretable [Setnes 98]. Las t´ecnicas de clustering pueden obtener un n´umero de clusters fijado de antemano o ir incrementando este n´umero para que se ajuste mejor al modelo planteado por los datos. As´ı, las t´ecnicas de clustering se pueden dividir en t´ecnicas que se denominar´an de fixed clustering (para el caso de un n´umero de clusters prefijado) y t´ecnicas que se denominar´an de incremental clustering (para cuando el n´umero de clusters var´ıa para conseguir un determinado grado de adaptaci´on a la informaci´on num´erica). Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 4 Apartado 1.1.Extracci´ on de bases de reglas a partir de datos num´ ericos 1.1.1.1. T´ecnicas de Fixed Clustering Consid´erese que se quiere obtener un sistema difuso con p−1 entradas y una salida. Sup´ongase, adem´as, que el fichero de datos correspondiente para obtener dicho sistema tiene npatrones de datos, representados en forma matricial: X=      x1,1x1,2. . . x1,p−1y1 x2,1x2,2. . . x2,p−1y2 . . .. . .. . .. . .. . . xn,1xn,2. . . xn,p−1yn       (1.1) Estos npatrones se pueden representar, a su vez, de forma vectorial: −→ x1= (x1,1, x1,2, . . . , x1,p−1, y1) −→ x2= (x2,1, x2,2, . . . , x2,p−1, y2) . . . −→ xn= (xn,1, xn,2, . . . , xn,p−1, yn) (1.2) Los algoritmos de clustering buscan minimizar una funci´on objetivo. En este sentido, la funci´on objetivo m´as utilizada para obtener un n´umero prefijado de cclusters es la siguiente: J[U, V ;X] = c X i=1 n X k=1 um ikd2 ik (−→ xk,−→ vi) (1.3) Donde: V= (−→ v1,−→ v2, . . . −→ vc), es la matriz formada por los centros de los cclusters. Cada uno de estos centros viene descrito por un vector de pelementos. Xes la matriz formada por los datos num´ericos de partida (1.1). Ues la matriz de grados de pertenencia (uik ∈[0,1]), siendo uik el grado de pertenencia del dato −→ xkal cluster i. dik (−→ xk,−→ vi) es la distancia entre el dato −→ xky el prototipo −→ vi. mes un exponente de ponderaci´on que indica lo difuso que es el cluster. Cuando m tiende a 1, los clusters tienden a ser no-difusos (hard clustering), porque entonces los uik tienden a valer 1 ´o 0. Por otro lado, si mtiende a infinito, los uik tienden a1 c, de forma que todos los datos pertenecen con el mismo grado a todos los clusters, es decir, que los clusters son totalmente difusos. La elecci´on de m = 2 es ampliamente aceptada como buen valor para un clustering difuso [Hathaway 01]. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 5 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos Derivando la funci´on objetivo Jrespecto a uik y−→ vie imponiendo que tales derivadas se anulen para llegar a un m´ınimo local, se obtiene que: −→ vi=Pn k=1 (uik)m·−→ xk Pn k=1 (uik)m(1.4) uik =  c X j=1 d2 ik d2 jk !1 m−1  −1 (1.5) Las t´ecnicas de fixed clustering parten de unos prototipos −→ viinicializados aleatoriamente o elegidos en base a unos determinados criterios. A partir de esos −→ vise calculan los uik de acuerdo con la ecuaci´on (1.5). Obtenidos los uik se vuelven a recalcular los −→ vide acuerdo con la ecuaci´on (1.4). Y as´ı sucesivamente hasta que la diferencia entre los nuevos −→ viy los antiguos sea inferior a un valor que fija la condici´on de parada del algoritmo. Tres algoritmos muy conocidos que pertenecen a estas t´ecnicas de fixed clustering son el algoritmo Fuzzy C-Means, el de Gustafson-Kessel y el de Gath-Geva. El primero de ellos, propuesto por Bezdek [Bezdek 84], utiliza la distancia eucl´ıdea para dik (−→ xk,−→ vi) por lo que genera clusters esf´ericos de aproximadamente el mismo tama˜no. Este algoritmo es apropiado a la hora de extraer reglas de tipo Takagi-Sugeno de orden cero o con MaxLabel. Este ´ultimo m´etodo de defuzzification (MaxLabel) aporta como salida el consecuente de la regla m´as activada y es utilizado en bases de reglas difusas que act´uan como clasificadores. Otros m´etodos de defuzzification, como Fuzzy Mean (explicado posteriormente), se utilizan en bases de reglas que act´uan como interpoladores. Los m´etodos de inferencia tipo Takagi-Sugeno [Takagi 85] tambi´en se explican m´as adelante. El algoritmo de Gustafson-Kessel [Gustafson 79] emplea la distancia de Mahalanobis en vez de la eucl´ıdea: d2 ik (−→ xk,−→ vi) = (ρidet Ci)1 p·(−→ xk−−→ vi)T·C−1 i·(−→ xk−−→ vi) (1.6) En donde se introducen los par´ametros ρiyCi, que representan el volumen del cluster y la matriz de covarianza del cluster i-´esimo, respectivamente. La matriz de covarianza viene descrita por la ecuaci´on: Ci=Pn k=1 (uik)m·(−→ xk−−→ vi)·(−→ xk−−→ vi)T Pn k=1 (uik)m(1.7) Al cambiar la distancia eucl´ıdea por la distanca de Mahalanobis, los cluster pasan de ser esf´ericos a ser hiperelipsoides. De este modo, el algoritmo de Gustafson-Kessel es apropiado a la hora de extraer reglas de tipo Takagi-Sugeno de orden uno. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 6 Apartado 1.1.Extracci´ on de bases de reglas a partir de datos num´ ericos En el caso del algoritmo de Gath-Geva [Gath 89] se utilizan los mismos par´ametros que en el algoritmo de Gustafson-Kessel, salvo que el par´ametro ρipasa a ser la probabilidad a priori de que un dato pertenezca al cluster i: ρi=1 n n X k=1 uik (1.8) La otra diferencia entre ambos m´etodos es la sustituci´on de la distancia de Mahalanobis por una distancia basada en distribuciones normales: d2 ik (−→ xk,−→ vi) = √det Ci ρi·e(−→ xk−−→ vi)T·C−1 i·(−→ xk−−→ vi) 2(1.9) El m´etodo de Gath-Geva, como el de Gustafson-Kessel, es preferible cuando los clusters tienen forma de hiperelipsoides. Mientras que el algoritmo de Gustafson-Kessel no funciona bien con clusters de distintos tama˜nos y orientaciones, el de Gath-Geva s´ı, porque puede variar el tama˜no de los clusters, adapt´andose a ellos. En cualquier caso, ambos algoritmos fallan cuando los datos est´an perfectamente alineados, ya que las matrices asociadas a los clusters tienen determinante cero, lo que impide que se puedan invertir. Otra distancia utilizada para dik (−→ xk,−→ vi) en la expresi´on (1.3) es la distancia de Minkowski. Concretamente, en [Groenen 01], partiendo del trabajo de [Bobrowski 91], para luego presentar una forma m´as generalizada en [Groenen 07], sustituyen el t´ermino d2 ik (−→ xk,−→ vi) de la ecuaci´on (1.3) por: d2λ ik (−→ xk,−→ vi) =   p X j=1 |xkj −vij|β  2λ β (1.10) Con 1 ≤β≤ ∞, 0 ≤λ≤1. Estudiando los distintos valores de βyλ, analizan tanto las formas de los clusters obtenidos, como los valores que aportan las soluciones m´as robustas. De este modo, presentan un m´etodo que da buenos resultados para reconstruir clusters de datos perturbados por errores. Un trabajo m´as actual relacionado con ´estos es el de [Srivastava 11], donde la utilizaci´on de distancias de Minkowski se combina con algoritmos evolutivos para conseguir una mejor partici´on inicial del espacio. Por otro lado, hay situaciones en las que los clusters no son f´acilmente identificables (por ejemplo, un par de clusters que no sean linealmente separables en el espacio original, tambi´en llamado espacio de caracter´ısticas). En este caso, algunos autores optan por transformar los datos del espacio de caracter´ısticas a un espacio de mayor dimensionalidad (incluso infinita), llamado espacio de kernel, con la esperanza de encontrar Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 7 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos 1.0 Min a1 Max (a) 0.5 0.0 a2 a3 a4 1.0 Min a1 Max (b) 0.5 0.0 a2 a3 a4 1.0 Min a1 Max (c) 0.5 0.0 a2 a3 a4 Figura 1.1: Familia de B-splines de orden: (a) cero; (b) uno; (c) dos 1.2.1. Sistemas neuro-difusos como sistemas constantes a tramos Para el caso particular de un sistema de tipo Takagi-Sugeno de orden cero, cuyos antecedentes son familias de B-splines de orden cero (Figura 1.1a), es inmediato comprobar que el sistema se comporta como un sistema constante a tramos. Cuando se utilizan B-splines de orden cero no hay solapamiento entre las funciones de pertenencia (s= 1), es decir, es un caso “no difuso”. Al no haber solapamiento entre las funciones de pertenencia de los antecedentes, s´olo habr´a una regla activa para un valor concreto de las entradas, cuyo grado de activaci´on siempre ser´a uno. Luego, una vez determinada la regla a la que pertenece el valor de las entradas, el sistema devolver´a el consecuente coj correspondiente a dicha regla que, al ser un sistema de tipo Takagi-Sugeno de orden cero, es un valor constante. 1.2.2. Sistemas neuro-difusos como sistemas multilineales a tramos Sup´ongase ahora el caso de un sistema tipo Takagi-Sugeno de orden cero en el que las funciones de pertenencia para los antecedentes son familias de B-splines de orden uno (Figura 1.1b). Se trata de funciones triangulares normalizadas con grado de solapamiento sigual a dos. Para un valor de una entrada dada, xi, perteneciente al intervalo [a(xi) o, a(xi) o+1], al ser sigual a dos, se activar´an hasta un m´aximo de dos etiquetas. El valor de los grados de activaci´on de estas etiquetas vendr´a dado por: µ(xi) o1=xi−ao+1 ao−ao+1 (1.17) µ(xi) o2= 1 −µ(xi) o1(1.18) Donde la expresi´on (1.18) se consigue a partir de la normalizaci´on existente entre las funciones de pertenencia de los antecedentes. Para simplificar el estudio, se puede suponer el caso particular de dos entradas, Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 14 Apartado 1.2.Sistemas neuro-difusos como sistemas polin´ omicos a tramos (x1, x2). Llevando todo esto a la expresi´on (1.16), y sabiendo que su denominador es uno debido a la normalizaci´on de las funciones de pertenencia de los antecedentes, se tiene que: yo=µ(x1) o1µ(x2) o1co11 +µ(x1) o1µ(x2) o2co12 +µ(x1) o2µ(x2) o1co21 +µ(x1) o2µ(x2) o2co22 = =µ(x1) o1µ(x2) o1co11+µ(x1) o1(1−µ(x2) o1)co12+(1−µ(x1) o1)µ(x2) o1co21+(1−µ(x1) o1)(1−µ(x2) o1)co22 = =co22 +µ(x1) o1(co12 −co22) + µ(x2) o1(co21 −co22) + µ(x1) o1µ(x2) o1(co11 −co12 −co21 +co22) Teniendo en cuenta que µ(xi) o1, a partir de la expresi´on (1.17), es lineal respecto a xi, se tiene que la forma de yoes del tipo: yo(x1, x2) = ax1x2+bx1+cx2+d(1.19) Donde a,b,cydson constantes relacionadas con los par´ametros que definen las funciones de pertenencia de los antecedentes y de los valores singleton de los consecuentes. Se concluye, por tanto, que el sistema neuro-difuso se comporta como un sistema multilineal a tramos con respecto a las entradas. Si, en vez de usar el producto como conectivo entre antecedentes, se utiliza el operador meet [Sasaki 94] [Rovatti 98]: meet(µ1, µ2) = m´ın(µ1, µ2) + m´ax(µ1+µ2−1,0) 2(1.20) El sistema resultante no es multilineal a tramos, sino lineal a tramos, de forma que, para cada tramo, la salida es: yo(x1, x2) = ax1+bx2+c(1.21) Los sistemas lineales a tramos se conocen como sistemas PWA, por las siglas en ingl´es de PieceWise Affine. 1.2.3. Sistemas neuro-difusos como sistemas multicuadr´aticos a tramos Un sistema neuro-difuso que se comporte como un sistema multicuadr´atico a tramos se puede obtener si los consecuentes son lineales respecto a las entradas del sistema (sistema Takagi-Sugeno de orden uno) y las funciones de pertenencia de los antecedentes son tambi´en lineales respecto a las entradas; o bien, que las funciones de pertenencia de los consecuentes sean constantes (Takagi-Sugeno de orden cero) y las de los antecedentes sean cuadr´aticas respecto a las entradas. Este ´ultimo caso sucede cuando se usan familias de B-splines de orden dos (Figura 1.1c). El grado de solapamiento entre las funciones s es igual a tres, es decir, se pueden activar a la vez hasta tres funciones de pertenencia por cada entrada. El valor de estos grados de pertenencia, para la entrada xi, viene dado Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 15 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos por: µ(xi) o1=(xi−ao)2 (ao+1 −ao)·(ao+2 −ao)(1.22) µ(xi) o2=(xi−ao+1)2 (ao+1 −ao)·(ao+1 −ao−1)(1.23) µ(xi) o3= 1 −µ(xi) o1−µ(xi) o2(1.24) Donde la expresi´on (1.24) se consigue a partir de la normalizaci´on existente entre las funciones de pertenencia de los antecedentes. Una vez m´as, con el objetivo de simplificar, se tiene en cuenta el caso particular de dos entradas (x1, x2). Analizando nuevamente la ecuaci´on (1.16), en la que su denominador vuelve a valer la unidad por la normalizaci´on de los B-splines, se tiene que: yo=µ(x1) o1µ(x2) o1co11 +µ(x1) o1µ(x2) o2co12 +µ(x1) o1µ(x2) o3co13 +µ(x1) o2µ(x2) o1co21 +µ(x1) o2µ(x2) o2co22 + µ(x1) o2µ(x2) o3co23+µ(x1) o3µ(x2) o1co31+µ(x1) o3µ(x2) o2co32+µ(x1) o3µ(x2) o3co33 =co33+µ(x1) o1(co13−co33)+ µ(x1) o2(co23 −co33) + µ(x2) o1(co31 −co33) + µ(x2) o2(co32 −co33) + µ(x1) o1µ(x2) o1(co11 −co13 −co31 + co33) + µ(x1) o1µ(x2) o2(co12 −co13 −co32 +co33) + µ(x1) o2µ(x2) o1(co21 −co23 −co31 +co33) + µ(x1) o2µ(x2) o2(co22 −co23 −co32 +co33) Teniendo en cuenta las expresiones (1.22) y (1.23), y llevadas a la expresi´on anterior, se tiene que la forma de yoes del tipo: yo(x1, x2) = ax2 1x2 2+bx2 1x2+cx1x2 2+dx2 1+ex2 2+fx1x2+gx1+hx2+i(1.25) Donde a, . . . , i son constantes relacionadas con los par´ametros que definen las funciones de pertenencia de los antecedentes y de los valores singleton de los consecuentes. Por tanto, vista la expresi´on (1.25), se deduce que el sistema neuro-difuso estudiado se comporta como un sistema multicuadr´atico a tramos con respecto a las entradas del sistema. Como ya se ha comentado, estos resultados se obtienen para sistemas de tipo Takagi- Sugeno de orden cero, junto con el operador producto como conectivo de antecedentes. En el caso de usar el operador meet, el sistema es cuadr´atico a tramos, de forma que, para cada tramo, la salida es: yo(x1, x2) = ax2 1+bx2 2+cx1x2+dx1+ex2+f(1.26) Donde a, . . . , f son constantes relacionadas con los par´ametros que definen las funciones de pertenencia de los antecedentes y de los valores singleton de los consecuentes. En las tablas 1.1 y 1.2 se resumen las equivalencias de los distintos sistemas neuro- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 16 Apartado 1.3.Realizaciones Hardware/Software de sistemas difusos y neuro-difusos Tabla 1.1: Equivalencia entre sistemas neuro-difusos de tipo Takagi-Sugeno de orden cero con sistemas polin´omicos a tramos, seg´un el conectivo y funci´on de pertenencia elegidos para los antecedentes Orden de la familia de B-splines para los antecedentes Conectivo 0 1 2 Meet Const. a tramos Lineal a tramos Cuad. a tramos Producto Const. a tramos Multilin. a tramos Multicuad. a tramos Tabla 1.2: Equivalencia entre sistemas neuro-difusos de tipo Takagi-Sugeno de orden uno con sistemas polin´omicos a tramos, seg´un el conectivo y funci´on de pertenencia elegidos para los antecedentes Orden de la familia de B-splines para los antecedentes Conectivo 0 1 Meet Lineal a tramos Cuadr´atica a tramos Producto Lineal a tramos Multicuadr´atica a tramos difusos con el tipo de sistema polin´omico a tramos correspondiente, seg´un si el sistema es de tipo Takagi-Sugeno de orden cero o uno, el grado de los B-splines usados como funciones de pertenencia en los antecedentes, o el operador utilizado para conectar los antecedentes. Analizando los distintos casos, el utilizar familias de B-splines de orden cero da como resultado una soluci´on “no difusa” al no existir solapamiento; por otro lado, los B-splines de orden dos tienen baja interpretabilidad ling¨u´ıstica, debido a que la pertenencia total a un conjunto no es posible. No s´olo eso, sino que, pensando en la progresi´on hacia una implementaci´on microelectr´onica, estos B-splines son m´as complejos que los de orden uno. Los B-splines de orden uno son los m´as adecuados para modelos ling¨u´ısticos y para ser integrados de forma eficiente en sistemas con hardware espec´ıfico. Usando este tipo de funciones pueden conseguirse sistemas neuro-difusos que se comporten como sistemas lineales a tramos, multilineales a tramos, cuadr´aticos a tramos y multicuadr´aticos a tramos [Rovatti 98] [Rovatti 99]. 1.3. Realizaciones Hardware/Software de sistemas difusos y neuro-difusos Los primeros sistemas difusos que se desarrollaron (sobre todo en aplicaciones de control) fueron implementaciones software en las que todo el proceso de fuzzification, inferencia y defuzzification se realizaba mediante un programa que se ejecutaba sobre Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 17 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos una determinada plataforma. Muchos de estos desarrollos se basaban en la utilizaci´on de ordenadores personales (PC) o controladores l´ogicos programables (PLC) en los que el programa a ejecutar se codificaba usualmente en lenguaje de alto nivel [Cabrera 02] [Chang 02]. Las ventajas m´as significativas de este tipo de implementaci´on radican, por una parte, en la gran flexibilidad de la que se dispone, puesto que permiten definir sistemas con un n´umero arbitrario de reglas, sin limitaci´on en el n´umero y tipo de las funciones de pertenencia y con una amplia gama de operadores difusos a seleccionar; y, por otra, en su facilidad de desarrollo. Muchas de las herramientas de dise˜no asistido por ordenador (CAD) existentes para el desarrollo de sistemas difusos ofrecen como opci´on de implementaci´on la generaci´on de un programa que realiza las tareas del m´odulo de inferencia difuso, simplificando as´ı el proceso de desarrollo de este tipo de sistemas. Este tipo de soluci´on es apropiado para aquellas aplicaciones en donde, sobre todo, los aspectos de peso, volumen, consumo de potencia, y coste no sean restrictivos, como es el caso de muchos controladores de procesos industriales. Pese a la gran potencialidad de los PCs actuales, las alternativas de implementaci´on software pueden verse limitadas en velocidad de respuesta. Esto puede deberse al inherente car´acter secuencial de la ejecuci´on de los programas (con excepci´on de las costosas implementaciones basadas en computadoras de arquitectura de ejecuci´on paralela [Lee 01]), pero, fundamentalmente, se debe a la forma en que se programan los diferentes algoritmos, la eficiencia del compilador empleado y la complejidad de los operadores difusos utilizados. Es com´un encontrar desarrollos software de sistemas difusos que procesan toda la base de reglas y no ´unicamente aquellas que pueden estar activas, o que utilizan m´etodos de defuzzification tradicionales que requieren recorrer todo el universo de discurso de las salidas para obtener el resultado, con lo cual se enlentece considerablemente la operaci´on del sistema [Baturone 00]. Las caracter´ısticas de las operaciones difusas que motivaron en los a˜nos 90 el desarrollo de otras estrategias de realizaci´on, para superar las limitaciones impuestas por los procesadores de prop´osito general de la ´epoca, fueron el paralelismo de los algoritmos difusos y el uso de operaciones b´asicas como m´aximo y m´ınimo, que no pod´ıan ser ejecutadas eficientemente por estos procesadores. En aplicaciones masivas de control, donde el controlador difuso estaba integrado con el resto del sistema, una alternativa de implementaci´on software que eliminaba muchas de las limitaciones anteriores se bas´o en la utilizaci´on de microcontroladores o procesadores digitales de se˜nal, dispositivos de bajo coste y consumo de potencia, as´ı como muy reducido peso y tama˜no. Estos dispositivos poseen entornos de desarrollo que facilitan todas las fases de simulaci´on, depuraci´on y programaci´on y, normalmente, pueden programarse desde lenguajes de alto nivel como C o BASIC gracias al desarrollo de compiladores espec´ıficos. Esta alternativa segu´ıa presentando la ventaja de la flexibilidad de la implementaci´on, aunque se ve´ıa limitada Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 18 Apartado 1.3.Realizaciones Hardware/Software de sistemas difusos y neuro-difusos por la disponibilidad de recursos de los procesadores utilizados, fundamentalmente los relativos a la unidad aritm´etica y l´ogica (ALU) y al espacio de memoria disponible. Adem´as, teniendo en cuenta las limitaciones en cuanto a frecuencias de operaci´on y arquitectura interna, la velocidad de inferencia pod´ıa ser considerablemente inferior a aquellas obtenidas en las soluciones basadas en PCs, por lo que era usual recurrir al uso de algunas restricciones similares a las que se utilizan en las implementaciones hardware con el objetivo de no degradar ostensiblemente la velocidad del m´odulo de inferencia [von Altrock 98]. Con este objetivo, fueron varias las empresas que desarrollaron herramientas para proporcionar una descripci´on del sistema difuso en c´odigo espec´ıfico que optimizaba la implementaci´on en sus microcontroladores. Optimizando el c´odigo generado se pueden conseguir tiempos de respuesta por debajo del milisegundo para sistemas difusos de complejidad media. Entre las compa˜n´ıas y productos m´as significativos cabe citar a Togai InfraLogic, que desarroll´o y comercializ´o a principios de los 90 productos como MicroFPL,TIL Shell,TILGen yFuzzyCLIPS. Aptronix Inc. introdujo en 1992 el sistema FIDE (Fuzzy Inference Development Language) para generar c´odigo ensamblador para distintos microcontroladores de Motorola, Intel, Siemens y Omron. La empresa alemana Inform desarroll´o una extensa gama de productos basados en el sistema Fuzzy- TECH para proporcionar tanto soluciones de prop´osito general, que generaban c´odigo C est´andar, como soluciones espec´ıficas, que generaban c´odigo ensamblador para diversos microcontroladores, DSPs, coprocesadores difusos, procesadores de prop´osito general con soporte difuso y PLCs [Nijhuis 94]. En esta misma l´ınea, la compa˜n´ıa Togai Infralogic comercializ´o a principios de los 90 el sistema MicroFPL para microcontroladores de Motorola, Oki, Intel, etc. [Yen 95]. Finalmente, la compa˜n´ıa Rigel Corporation, dedicada a la fabricaci´on de sistemas de control empotrados, distribuy´o el software rFLASH. Para aumentar m´as la velocidad de respuesta se modificaron algunas arquitecturas de procesadores y se desarrollaron otras espec´ıficas a las cuales se les incorpor´o alg´un soporte hardware para facilitar la ejecuci´on de algoritmos difusos. Esta ´ultima aproximaci´on para aumentar la velocidad de procesado difuso sobre plataformas de prop´osito general ten´ıa como objetivo incrementar la funcionalidad de un procesador est´andar incluyendo instrucciones que aceleraban los mecanismos de inferencia. Las primeras propuestas para a˜nadir soporte difuso en arquitecturas CISC y RISC se realizaron a principios de los 90 [Ungering 94] [Salapura 00], y se materializaron a nivel industrial con dos claros exponentes. En 1996 Motorola introdujo la familia de microcontroladores de 16 bits 68HC12, que inclu´ıa una serie de instrucciones espec´ıficas para el procesado de algoritmos difusos que proporcionaban un incremento de velocidad de un orden de magnitud en relaci´on a su predecesor, el 68HC11 [Bannatyne 96]. Uno de los desarrollos m´as interesantes lo constituy´o la familia ST FIVE, de ST Microelectronics, que ofrec´ıa una arquitectura de microcontrolador tradicional combinada con una arquitectura dedicada para algo- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 19 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos ritmos difusos [Fortuna 03]. Salvo estas soluciones, las grandes compa˜n´ıas fabricantes de microprocesadores fueron abandonado el inter´es en este tipo de realizaciones. En la actualidad, el potente desarrollo alcanzado por los procesadores ha provocado que no tenga sentido ninguna de las soluciones que fueron adoptadas en esa ´epoca. Otra forma de ampliar la funcionalidad de un procesador de prop´osito general consisti´o en el desarrollo de circuitos integrados capaces de acelerar las operaciones de un m´odulo de inferencia difuso (coprocesadores difusos), realizando total o parcialmente mediante hardware dichas operaciones. Estos coprocesadores, interconectados con un procesador convencional permit´ıan obtener realizaciones h´ıbridas de controladores difusos. La mayor parte de los “chips difusos” comercializados en la d´ecada de los 90 se encuadran en esta categor´ıa. Entre aquellos que alcanzaron mayor popularidad se pueden mencionar los chips FC110 yVY86C570 de Togai InfraLogic, el T/FC150 de Toshiba, las familias SAE 81C99 y81C991 [Eichfeld 98] de Siemens, los coprocesadores FP1000, FP3000,FP5000 [Eichfeld 96] y el m´odulo de procesador difuso para PLCs FZ001 de Omron, y la arquitectura W.A.R.P. de ST Microelectronics [Eichfeld 98]. Este tipo de soluciones eran adecuadas para aplicaciones que requer´ıan tiempos de respuesta de cientos a decenas de microsegundo. Sin embargo, aunque la mayor´ıa de los coprocesadores comerciales pose´ıan una arquitectura orientada a la ejecuci´on de algoritmos difusos, ´estas no eran totalmente eficientes o carec´ıan de las opciones de configuraci´on necesarias para adaptarlos a diversas aplicaciones [Eichfeld 96]. Adicionalmente, la interconexi´on entre los circuitos del procesador y el coprocesador pod´ıa resultar un inconveniente. El avance en velocidad de los procesadores de prop´osito general provoc´o que las principales compa˜n´ıas fabricantes de microprocesadores y microcontroladores abandonaran a finales de los 90 el desarrollo comercial de los coprocesadores difusos. Sin embargo, en la ´ultima d´ecada y dentro del ´ambito acad´emico, se han desarrollado algunos trabajos sobre coprocesadores difusos. Un ejemplo de esto lo constituye el trabajo presentado en [Garc´ıa 98] por Garc´ıa y De Pedro donde proponen una nueva versi´on del coprocesador ORBEX. Dentro de esta misma l´ınea otro trabajo es el propuesto por Thareja y coautores en [Thareja 07] donde presentan el desarrollo de un coprocesador en Handel-C para su conexi´on con un procesador de arquitectura RISC. Por otra parte, Raychev y coautores proponen en [Raychev 05] el desarrollo de un coprocesador modelado en lenguaje VHDL. Finalmente, Di Stefano y Giaconia presentan en [Di Stefano 05] el dise˜no de un coprocesador que puede ser f´acilmente conectado a un procesador de 32 bits. Los resultados experimentales recogidos en este trabajo demuestran un aumento de hasta 1.000 veces en la velocidad de ejecuci´on de un algoritmo difuso adaptativo usando el coprocesador propuesto frente a una implementaci´on software. Finalmente, en aplicaciones de rob´otica, aeron´autica, procesado de voz e imagen, electr´onica de automoci´on, etc., pueden ser necesarios tiempos de respuesta de unos cuantos microsegundos o por debajo del microsegundo, con consumos de ´area y potencia Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 20 Apartado 1.3.Realizaciones Hardware/Software de sistemas difusos y neuro-difusos restrictivos. En estas situaciones se requiere una implementaci´on totalmente hardware del sistema; por este motivo en la literatura han sido propuestas un gran n´umero de implementaciones hardware de sistemas difusos [Basterretxea 09] [Hern´andez 12] [Bosque 14]. Como queda reflejado en los anteriores trabajos, las mejores prestaciones en cuanto a tiempo de respuesta y consumo de ´area y potencia se consiguen mediante un circuito integrado de aplicaci´on espec´ıfica (ASIC). Dentro de las realizaciones de un ASIC difuso se pueden distinguir las basadas en t´ecnicas anal´ogicas y digitales. Las t´ecnicas anal´ogicas, aunque permiten realizaciones con un menor consumo de recursos y de potencia, tienen limitaciones en aspectos como la complejidad o la precisi´on que se puede conseguir. Otra importante limitaci´on de las t´ecnicas anal´ogicas frente a las t´ecnicas digitales se encuentra en la automatizaci´on del proceso de dise˜no. Mientras que para las t´ecnicas digitales existen herramientas que permiten automatizar muchos pasos del proceso de dise˜no, reduciendo el tiempo de desarrollo y aumentando la fiabilidad, para las t´ecnicas anal´ogicas el desarrollo de estas herramientas es mucho menor. En cualquier caso, los ASICs difusos son las implementaciones menos flexibles (por ejemplo, son las que menos complejidad soportan en cuanto al n´umero de reglas o interfaz de comunicaciones). Adem´as, su coste es elevado en tiempos de desarrollo y en t´erminos econ´omicos si la producci´on no es masiva [Baturone 00]. Los continuos avances en las tecnolog´ıas de fabricaci´on de circuitos integrados hacen hoy d´ıa posible la inclusi´on de todos los componentes de un sistema microelectr´onico en un ´unico chip de silicio, dando lugar a lo que se denomina com´unmente como System on Chip (SoC). Sin embargo, como consecuencia de la elevada complejidad de los sistemas actuales, la diferencia entre los recursos proporcionados por las tecnolog´ıas y la productividad alcanzada por los dise˜nadores se hace cada vez mayor. Para reducir este “gap de productividad” se han propuesto nuevas t´ecnicas de dise˜no que explotan la reutilizaci´on de bloques b´asicos previamente dise˜nados, denominados m´odulos de propiedad intelectual o m´odulos-IP [Savage 00] [Reyneri 03]. El dise˜no basado en m´odulos-IP, en combinaci´on con el uso de potentes herramientas de CAD que facilitan la realizaci´on de los sistemas, permite asimismo reducir la duraci´on del ciclo de desarrollo de nuevos productos y acelerar su introducci´on en el mercado, lo que representa ventajas importantes desde el punto de vista econ´omico. En este sentido, los dise˜nos que actualmente pueden ser costosos como ASICs difusos pueden tener m´as sentido como “hard IPs”, es decir, como m´odulos IP espec´ıficos dentro de un SoC. Otra gran l´ınea de investigaci´on y desarrollo es la basada en dispositivos l´ogicos programables complejos tipo FPGAs (Field Programmable Gate Arrays), como se pone de manifiesto por los numerosos trabajos propuestos en los ´ultimos a˜nos que utilizan las FPGAs como plataforma final en sus dise˜nos [Monmasson 07] [Rodr´ıguez 07] [Monmasson 11]. Concretamente, dentro del ´ambito de la l´ogica difusa, han surgido en la actualidad una gran cantidad de trabajos enfocados a la implementaci´on de siste- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 21 Cap´ ıtulo 1.Introducci´ on al dise˜ no e implementaci´ on de sistemas neuro-difusos mas difusos sobre estos dispositivos para distintos campos de aplicaci´on [Chowdhury 08] [Castro 09] [S´anchez 13]. Las ´ultimas familias de FPGAs disponibles en el mercado son cada vez m´as complejas incorporando una elevada cantidad de recursos gen´ericos (en forma de bloques l´ogicos configurables), espec´ıficos (generadores de reloj, multiplicadores, memorias, etc.), procesadores y bloques para DSP. Esto ha motivado la aparici´on de arquitecturas eficientes de codise˜no hardware/software basadas en combinar los bloques l´ogicos de la FPGA con un procesador empotrado sobre la misma FPGA, consiguiendo la implementaci´on de un sistema completo sobre un chip programable (SoPC). En sistemas difusos y neuro-difusos se han presentado diferentes trabajos que utilizan estas metodolog´ıas de codise˜no hardware/software. Algunas de estas propuestas utilizan procesadores “hard-core” como el procesador ARM incluido en la familia Excalibur de Altera [Echevarr´ıa 05] [Chowdhury 08] [del Campo 08]. Otras utilizan procesadores “soft-core” como los procesadores MicroBlaze de Xilinx [Castro 09] [S´anchez 13] y Nios de Altera [Huang 09] [Fu 10]. De forma paralela a la evoluci´on experimentada por las FPGAs, en las metodolog´ıas de dise˜no para estos dispositivos tambi´en se han producido una serie de cambios significativos en los ´ultimos a˜nos. Como alternativa a los flujos de dise˜no basados en esquem´aticos y lenguajes de descripci´on de hardware [Mill´an 08] [Oliveira 10] [Zhang 10], recientemente han aparecido una serie de herramientas, como el entorno System Generator de Xilinx, que facilitan el dise˜no de algoritmos de sistemas de procesado digital de se˜nal sobre FPGAs, y son cada vez m´as habituales de utilizar en la realizaci´on de hardware difuso [Liz´arraga 08] [Sep´ulveda 09] [Brox 13b]. Para automatizar el dise˜no de sistemas neuro-difusos se han desarrollado numerosas herramientas software. Comenzando por las ya nombradas TIL Shell de Togai Infralogic Inc., FIDE de Aptronix o FuzzyTECH de Inform, pasando por los m´odulos (toolboxes) de Matlab o Mathematica, se han desarrollado muchas herramientas m´as o menos generales o espec´ıficas. Entre ellas se encuentran las herramientas del entorno Xfuzzy 3 desarrollado en el Instituto de Microelectr´onica de Sevilla [Xfuzzy]. Una revisi´on reciente sobre software para el dise˜no de sistemas difusos puede verse en [Alcal´a 15]. 1.4. Conclusiones Los sistemas neuro-difusos pueden ser una soluci´on para multitud de problemas en diversos campos de aplicaci´on, porque combinan la capacidad de aprender de datos num´ericos de los sistemas neuronales y de conceptos simb´olicos de los sistemas difusos, la capacidad de procesar informaci´on de forma num´erica a la vez que ambigua y aproximada y, adem´as, la capacidad de representar el conocimiento de una forma estructurada, en forma de reglas “si-entonces”, que pueden ser entendidas por los usuarios de estos sistemas. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 22 Apartado 1.4.Conclusiones De entre la multitud de t´ecnicas que permiten obtener sistemas neuro-difusos a partir de datos num´ericos, en los cap´ıtulos siguientes se detallar´an aquellas que permiten obtener bases de reglas con pocas reglas, pocas funciones de pertenencia por entrada y, en general, bases de reglas que puedan ser entendidas. Puesto que, en una gran cantidad de casos, los sistemas neuro-difusos dise˜nados ser´an sistemas polin´omicos a tramos, las operaciones necesarias ser´an la suma y el producto y el n´umero de reglas activas simult´aneamente no ser´a muy elevado. En consecuencia, se ver´an realizaciones eficientes como software ejecutado en procesadores de prop´osito general de bajas prestaciones (un solo n´ucleo de procesado, arquitectura de 32 bits y sin unidad de punto flotante) y realizaciones como hardware dedicado que, fundamentalmente, har´an uso de sumadores y multiplicadores con aritm´etica de punto fijo. Los ejemplos de implementaci´on se ilustrar´an sobre FPGAs que podr´an ser de bajo coste. Los entornos de dise˜no empleados ser´an Xfuzzy 3, Matlab/Simulink e ISE Design Suite de Xilinx. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 23 Cap´ ıtulo 2.Simplificaci´ on de bases de reglas en sistemas neuro-difusos m´etodo selecciona las reglas m´as importantes bas´andose en la contribuci´on a la varianza de ´estas sobre la varianza de la salida. El problema que plantea este m´etodo es que, un valor de varianza bajo, no tiene por qu´e significar necesariamente que la regla correspondiente sea poco importante. Es por eso que, posteriormente, aparecieron trabajos para mejorar la aplicaci´on del m´etodo de m´ınimos cuadrados ortogonales [Setnes 00] [Mastorocostas 01]. De estos trabajos, el m´as actual es el propuesto por Destercke y coautores en [Destercke 07], para conseguir sistemas difusos de tipo Takagi-Sugeno de orden cero a partir de datos, con una base de reglas interpretable. Para ello, aplican el algoritmo de m´ınimos cuadrados dos veces: la primera vez para seleccionar las reglas m´as importantes y la segunda para optimizar los consecuentes de las reglas. Despu´es, mediante el algoritmo de Hard C-means, reducen el n´umero de consecuentes. Es habitual que los procesos de ajuste y simplificaci´on de funciones de pertenencia den lugar a reglas similares que pueden ser eliminadas a continuaci´on de la base de reglas. Las t´ecnicas com´unmente empleadas para ello son las denominadas t´ecnicas “de podado”. Consisten en llevar a cabo el tratamiento de una base de reglas para que, dado un conjunto de datos de entrada, determinar el grado de activaci´on de las reglas para esas entradas y poder eliminar las npeores reglas (con grado de activaci´on m´as bajo), seleccionar las nmejores (con grado de activaci´on m´as alto) o bien imponer un umbral fijo que deba ser superado por el grado de activaci´on de cada regla para que ´esta permanezca en la base de reglas. Varios autores han propuesto t´ecnicas de extracci´on de reglas que clasifican las reglas mediante otros ´ındices de comportamiento [Nauck 00] [Senhadji 02]. Por ejemplo, el ´ındice propuesto en [Nauck 00] es: Pr=1 sX p∈L αr(p)·er(p) (2.1) er(p) = (1 si pest´a bien clasificado por r −1 en otro caso (2.2) Donde Les el conjunto de datos del que se extraen las reglas; pes uno de los datos que pertenece a ese conjunto; s=|L|es la cardinalidad del conjunto de datos de entrenamiento L; y αr(p) es el grado de activaci´on de la regla rpara el patr´on p. Se puede ver en la expresi´on (2.2) que es un ´ındice aplicable a reglas para clasificaci´on. Definido este ´ındice de comportamiento, desarrollan el algoritmo NEFCLASS, que se encarga de calcular el ´ındice de comportamiento P∈[−1,1] para cada regla. Para P= 1 una regla se considera general y que clasifica todos los patrones de entrenamiento de forma correcta. Para P=−1, la regla clasifica todos los patrones de forma incorrecta. Para P= 0, bien el n´umero de clasificaciones correctas y err´oneas es igual, o bien la regla Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 30 Apartado 2.2.Referencias bibliogr´ aficas del autor no cubre ning´un patr´on. Por tanto, consideran ´unicamente las reglas con P > 0 como ´utiles. De forma an´aloga, para bases de reglas interpoladoras, en [Nauck 00] desarrollan el algoritmo NEFPROX. Por otro lado, Senhadji y coautores desarrollan en [Senhadji 02] el algoritmo NORFREA. Este algoritmo parte de clasificar las reglas con el mismo ´ındice de comportamiento propuesto en [Nauck 00]. La novedad consiste en que Senhadji y coautores se dieron cuenta que, tras seleccionar las nmejores reglas seg´un el ´ındice de comportamien- to de las ecuaciones (2.1) y (2.2), si se aplicaba entrenamiento a ese resultado algunas reglas se volv´ıan redundantes. Por tanto, proponen un m´etodo que detecta antes del entrenamiento cu´ales reglas ser´an redundantes despu´es del entrenamiento, siendo eliminadas y ocupando su lugar otras reglas que hab´ıan quedado fuera de las nmejores seg´un [Nauck 00]. Con esta nueva selecci´on de reglas, los resultados de NORFREA tras aplicar entrenamiento son mejores que los obtenidos por NEFCLASS. 2.2. Referencias bibliogr´aficas del autor Arjona R., Gersnoviez A., Baturone I., Fuzzy models for fingerprint description, Lecture Notes in Computer Science, vol. 6857, pp. 228-235, 2011. Baturone I., Gersnoviez A., Automatic extraction of linguistic models for image description, in Proceedings of the 2010 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’10), pp. 1-8, 2010. Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Barriga A., Brox P., Gersnoviez A., Brox M., Using Xfuzzy environment for the whole design of fuzzy systems, in Proceedings of the 2007 IEEE International Conference on Fuzzy Systems (FUZZIEEE’07), pp. 1-6, 2007. Baturone I., Moreno-Velo F.J., Gersnoviez A., A CAD approach to simplify fuzzy system descriptions, in Proceedings of the 2006 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’06), pp. 2392-2399, 2006. Barriga A., S´anchez-Solano S., Baturone I., Moreno-Velo F.J., Brox P., Montesino F., Hussein N.M., Brox M., Gersnoviez A., Fuzzy logic activities at the Microelectronics Institute of Seville, Lecture Notes in Computer Science, vol. 3931, pp. 157-162, 2006. Barriga A., S´anchez-Solano S., Baturone I., L´opez D., Moreno-Velo F.J., Brox P., Montesino F., Hussein N.M., Brox M., Gersnoviez A., New features of the fuzzy logic development environment Xfuzzy, in Proceedings of the 2006 International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems (IPMU’06), pp. 17-20, 2006. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 31 Cap´ ıtulo 2.Simplificaci´ on de bases de reglas en sistemas neuro-difusos Baturone I., Moreno-Velo F.J., Gersnoviez A., Identifying fuzzy systems from numerical data with Xfuzzy, in Proceedings of the 2005 Conference of the European Society for Fuzzy Logic and Technology (EUSFLAT’05), pp. 1257-1262, 2005. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 32 Cap´ıtulo 3 Simplificaci´on de sistemas neuro-difusos mediante el uso de jerarqu´ıa Como ya se explic´o en el cap´ıtulo 1, uno de los mayores problemas de los sistemas neuro-difusos con partici´on tipo rejilla de los universos de discurso de entrada es la maldici´on de la dimensionalidad. La inviabilidad de implementar sistemas demasiado complejos, no s´olo por la saturaci´on de los elementos de memoria, sino por la ralentizaci´on debida a la elevada cantidad de reglas a procesar, lleva a pensar en diversos m´etodos de simplificaci´on. En el cap´ıtulo anterior se abord´o la estrategia de simplificaci´on de bases de reglas, introduciendo un novedoso m´etodo de simplificaci´on tabular. A´un as´ı, no es la ´unica manera de conseguir simplificar sistemas neuro-difusos, existiendo otros m´etodos que pueden ser utilizados de forma complementaria. Un m´etodo que est´a en alza en los ´ultimos a˜nos es el de dividir un ´unico sistema neuro-difuso en varios subsistemas con un n´umero menor de reglas. Esta estrategia fue introducida por primera vez por Raju y coautores en [Raju 91], denominando a esta descomposici´on de sistemas como “sistemas jer´arquicos”. Una de las razones que hace tan atractiva esta t´ecnica es que se consigue evitar el aumento exponencial de las reglas a medida que se incrementa el n´umero de entradas, alcanzando un crecimiento lineal. Pero, como se ver´a a lo largo del cap´ıtulo, la mayor dificultad que plantea esta t´ecnica es encontrar la estructura m´as adecuada que permita una mayor simplificaci´on. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 33 Cap´ ıtulo 3.Simplificaci´ on de sistemas neuro-difusos mediante el uso de jerarqu´ ıa SND x1 x2 x3 x4 x1 x2 x3 x4 SND SND SND SND SND SND SND x1 x2 x3 x4 (a) (b) (c) Figura 3.1: Distintos tipos de organizaci´on jer´arquica 3.1. Trabajos previos Desde la propuesta de Raju en 1991, no son muchos los autores que han estudiado te´oricamente las propiedades de los sistemas jer´arquicos. En este apartado se realizar´a una revisi´on de las contribuciones m´as relevantes desde el art´ıculo de Raju hasta la actualidad. Como ya se ha comentado, el uso de la jerarqu´ıa consiste en descomponer un sistema en una serie de m´odulos m´as simples. Dicha descomposici´on no es trivial, ya que dado un n´umero de entradas, hay diversas arquitecturas posibles para descomponer el sistema [Torra 02], tal y como se puede ver en la Figura 3.1, aumentando considerablemente las posibilidades con el n´umero de entradas. Otras opciones no reflejadas en la Figura 3.1 son que distintos m´odulos compartan algunas entradas, o que los m´odulos tengan m´as de una salida. Las distintas estructuras pueden clasificarse en tres tipos distintos: estructura en serie, en paralelo e h´ıbrida [Aja 08]. En la estructura de tipo serie (tambi´en conocida como incremental) hay un ´unico bloque por nivel de jerarqu´ıa, en el que entran la salida del bloque del nivel anterior, junto con variables de entrada del sistema (Figuras 3.1a y 3.1c). En la estructura de tipo paralelo, todas las variables de entrada del sistema acceden a los bloques que componen el primer nivel de jerarqu´ıa. Las salidas de los bloques del primer nivel, ser´an las entradas de los bloques que componen el segundo nivel, y as´ı sucesivamente (Figura 3.1b). Por ´ultimo, la estructura de tipo h´ıbrida es una combinaci´on de las dos anteriores. Cuando se conoce la relaci´on entre las distintas entradas, uno puede orientarse para Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 34 Apartado 3.1.Trabajos previos SND x1 xn1 xn SND SND Salida y1 y2 yL-1 Figura 3.2: Tipo de jerarqu´ıa propuesta por Raju y coautores encontrar la arquitectura m´as adecuada, pero en muchas ocasiones no se conoce esta relaci´on, complicando en gran medida el problema. De hecho, no todas las funciones admiten una descomposici´on jer´arquica (como, por ejemplo, algunas funciones Booleanas [Kikuchi 02]). Por lo tanto, uno de los grandes retos es hallar una estrategia que permita encontrar una estructura jer´arquica adecuada para un sistema dado sin jerarqu´ıa, de modo que se mantenga su comportamiento, pero simplific´andolo en la mayor medida posible. 3.1.1. An´alisis de Raju, Zhou y Kisner Sup´ongase un sistema con nentradas y que cada una de esas entradas tiene metiquetas (se considera el mismo n´umero de etiquetas para todas las entradas para simplificar la notaci´on, obviamente no tiene por qu´e cumplirse). Si el sistema no es jer´arquico, el n´umero de reglas que puede llegar a tener es mn. La propuesta de Raju y coautores es una descomposici´on jer´arquica del sistema en m´odulos que no comparten entradas y tienen una ´unica salida. Si el n´umero de bloques jer´arquicos es L, es f´acil comprobar que el n´umero total de reglas del sistema jer´arquico ser´a: rJ= L X i=1 mni(3.1) Donde nies el n´umero de entradas para el bloque i-´esimo. El tipo de arquitectura propuesta es de tipo serie, como puede observarse en la Figura 3.2, en donde las variables m´as influyentes se agrupan en el primer nivel de jerarqu´ıa, las siguientes m´as influyentes se agrupan en el segundo nivel y as´ı sucesivamente. Teniendo en cuenta que, de las nientradas del bloque i-´esimo, una de ellas es la salida del bloque Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 35 Cap´ ıtulo 3.Simplificaci´ on de sistemas neuro-difusos mediante el uso de jerarqu´ ıa del nivel anterior (salvo para el caso del primer bloque), se debe cumplir la siguiente relaci´on: n1+ L X i=2 (ni−1) = n(3.2) Si se supone que nies un valor constante c(∀i= 1, . . . , L), sustituyendo en la ecuaci´on (3.2), queda lo siguiente: c+ (L−1) ·(c−1) = n⇒L=n−c c−1+ 1 = n−1 c−1(3.3) Llevando el resultado de (3.3) a (3.1), se obtiene: rJ= L X i=1 mni= L X i=1 mc=L·mc=n−1 c−1·mc(3.4) Como cymson valores constantes, se puede apreciar que el crecimiento del n´umero de reglas para el sistema jer´arquico es una funci´on lineal de n, en contraste con el crecimiento exponencial del sistema original. Raju y coautores formulan, adem´as, el siguiente teorema: Teorema 3.1 En la estructura jer´arquica del sistema con nvariables de entrada, m≥2 yni≥2, (a) el n´umero total de reglas alcanzar´a el valor m´ınimo cuando ni=c= 2 (∀i= 1, . . . , L),L=n−1; y (b) alcanzar´a el m´aximo cuando L= 1 y, por tanto, ni=n1=n. Para demostrarlo, consid´erese el nivel i-´esimo y sus nientradas y sup´ongase ni≥3 (para poder dividirlo en bloques jer´arquicos m´as peque˜nos). Este bloque, tal y como se ha comentado anteriormente, tendr´a un total de mnireglas. Si se divide este nivel en dos bloques jer´arquicos, de modo que uno de ellos s´olo tenga dos entradas, el segundo bloque tendr´a ni−1 (ya que ser´ıan las ni−2 entradas restantes del nivel i-´esimo, junto a la salida del bloque de dos entradas). Por tanto, el n´umero total de reglas de este nuevo sistema jer´arquico ser´a: rJ2/(ni−1) =m2+mni−1(3.5) Como se ha se˜nalado que ni≥3, se tiene que ni−1≥2. Por tanto, llevando esto a la ecuaci´on (3.5) junto a la relaci´on m≥2: rJ2/(ni−1) =m2+mni−1≤mni−1+mni−1= 2 ·mni−1≤mni(3.6) Con esto se concluye que, cogiendo un sistema cualquiera, al dividirlo en dos bloques jer´arquicos (siendo uno de esos bloques de dos entradas), el nuevo sistema tendr´a un Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 36 Apartado 3.1.Trabajos previos n´umero de reglas menor. Con lo cual, si se selecciona el bloque con m´as entradas del nuevo sistema y se vuelve a dividir siguiendo la misma estrategia una y otra vez, se puede llegar a la conclusi´on que el n´umero de reglas alcanzar´a el valor m´ınimo cuando el sistema est´e compuesto ´unicamente por bloques jer´arquicos de dos entradas. Este razonamiento es v´alido siempre y cuando se considere que los bloques tienen como m´ınimo dos entradas. Como ya se ver´a m´as adelante, existen estructuras jer´arquicas con menos reglas si los bloques tienen una ´unica entrada. Siguiendo con el teorema, falta por demostrar el caso contrario, es decir, que el m´aximo se consigue cuando no hay descomposici´on jer´arquica ninguna. Para ello consid´erense los bloques jer´arquicos i-´esimo y j-´esimo, para luego combinarlos en un sistema ´unico no jer´arquico. Si el bloque i-´esimo tiene nientradas y el j-´esimo nj, el nuevo sistema combinado tendr´a un total de ni+nj−1 entradas (ya que dentro de las njentradas se cuenta tambi´en la salida del bloque i-´esimo). Por tanto, el sistema no jer´arquico tendr´a un total de reglas: rij =mni+nj−1(3.7) Teniendo en cuenta que los bloques tendr´an como m´ınimo dos entradas, se tiene que ni≥2 y, de la misma manera, nj−1≥1. Manteniendo la relaci´on m≥2 y suponiendo ni≥nj, se puede partir del n´umero de reglas total del sistema jer´arquico inicial, tal que: ri/j =mni+mnj≤mni+mni= 2 ·mni≤mni+1 ≤mni+nj−1=rij (3.8) Por tanto, uniendo dos bloques jer´arquicos cualesquiera en un sistema no jer´arquico se obtiene un n´umero de reglas mayor. Si este nuevo sistema, a su vez, se combina con otro bloque jer´arquico, el sistema obtenido tendr´a un n´umero mayor de reglas. Continuando con este razonamiento, se llega a la conclusi´on que el n´umero m´aximo de reglas se conseguir´a cuando se hayan combinado todos los bloques jer´arquicos, es decir, cuando se llega al sistema completo sin jerarqu´ıa. 3.1.2. Sistemas jer´arquicos como aproximadores universales El que se pueda conseguir altos grados de simplificaci´on mediante el uso de jerarqu´ıa es bastante interesante, pero es fundamental que estos nuevos sistemas mantengan la propiedad de aproximaci´on universal. Desde la presentaci´on de los sistemas jer´arquicos por parte de Raju y coautores, estudios te´oricos posteriores se han centrado precisamente en las propiedades de aproximaci´on de estos sistemas. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 37 Cap´ ıtulo 3.Simplificaci´ on de sistemas neuro-difusos mediante el uso de jerarqu´ ıa 3.1.2.1. Teor´ıa de la aproximaci´on universal de Wang Una aportaci´on significativa a la hora de demostrar la propiedad de los sistemas jer´arquicos como aproximadores universales la desarroll´o Li-Xin Wang en sus trabajos [Wang 98] y [Wang 99]. Wang parte de la estructura planteada por Raju y coautores, pero utilizando sistemas difusos de tipo Takagi-Sugeno. Con esto, plantea el siguiente teorema de aproximaci´on universal para el caso de tres variables, pudi´endose generalizar al caso de nvariables: Teorema 3.2 Para cualquier funci´on continua y diferenciable g(x)en el conjunto compacto U=Q3 i=1 [αi, βi] (U⊂R3)y para cualquier  > 0, existe un sistema difuso jer´arquico f(x1, x2, x3)de la forma: f(x1, x2, x3) = f2(f1(x1, x2), x3) (3.9) Tal que: kg(x)−f(x)k∞<  (3.10) Donde f1yf2se corresponden con sistemas difusos de tipo Takagi-Sugeno y la norma infinito k∗k∞se define como kh(x)k∞= supx∈U|h(x)|. Para demostrar este teorema, Wang hace una demostraci´on previa, desarrollada en [Wang 98]: kg(x)−f(x)k∞≤ 3 X i=1 w w w w ∂g ∂xiw w w w∞ +w w w w ∂f ∂xiw w w w∞·βi−αi m−1(3.11) Siendo mel n´umero de etiquetas para cada una de las entradas del sistema. Como g(x) y f(x) son continuas y k∂g/∂xik∞,k∂f/∂xik∞,αiyβison valores finitos, s´olo hace falta elegir un n´umero de etiquetas mlo suficientemente alto para que (3.11) sea menor que cualquier  > 0. Quedando demostrado el teorema de aproximaci´on universal. Aunque Wang consigue demostrar la capacidad de aproximaci´on universal del modelo jer´arquico que propone, no consigue escapar de la maldici´on de la dimensionalidad. ´ El mismo concluye que, aunque el n´umero total de reglas en el sistema difuso jer´arquico es mucho menor, cada regla es m´as complicada, porque la parte de los consecuentes se convierte en polinomios de orden mde las variables de entrada. Teniendo en cuenta que la base de la demostraci´on de su teorema consiste en elegir un valor de mlo suficientemente alto, mientras m´as se quiera aproximar una funci´on, m´as complejas ser´an las reglas necesarias. Por tanto, Wang sustituye un modelo no jer´arquico con muchas reglas sencillas por un modelo jer´arquico con menos reglas pero m´as complejas. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 38 Apartado 3.1.Trabajos previos 3.1.2.2. Teor´ıa de la aproximaci´on universal de Joo y Lee Uno de los inconvenientes que preocupa a diversos autores, respecto a la estructura de la Figura 3.2, es la dificultad a la hora de otorgar interpretabilidad ling¨u´ıstica a las variables intermedias (y1, . . . , yL−1). Si estas variables carecen de interpretabilidad ling¨u´ıstica y son usadas como variables de entrada en subsistemas siguientes, las reglas de ´estos tendr´an escaso significado ling¨u´ıstico, implicando una dificultad a˜nadida a la hora de dise˜narlos. Para solucionar este problema, una opci´on que surge es la de no utilizar estas variables intermedias en la parte de los antecedentes. En su lugar, estas variables modificar´an las reglas en la parte de los consecuentes de los subsistemas en los que entren. De este modo, todos los antecedentes de todos los bloques estar´an compuestos por variables principales del sistema, todas con interpretabilidad ling¨u´ıstica. El aporte te´orico m´as relevante utilizando sistemas jer´arquicos de este tipo es el desarrollado por Joo y Lee en sus trabajos [Joo 02] y [Joo 05], en donde demuestran que su modelo tiene la propiedad de la aproximaci´on universal. La arquitectura planteada por Joo y Lee es la que se puede ver en la Figura 3.3, donde se aprecia una estructura de tipo h´ıbrida. Seg´un se puede ver en la figura, el sistema neuro-difuso SND-ij se refiere al sistema j-´esimo correspondiente a la capa i-´esima de jerarqu´ıa. Si X= (x1, x2, . . . , xn) es el conjunto de variables de entrada del sistema, el subconjunto Xij =x(ij) 1, x(ij) 2, . . . , x(ij) nij ,Xij ⊂X, representa aquellas entradas principales del sistema total que entran en el bloque SND-ij, formando ´ıntegramente la parte de los antecedentes de dicho bloque. En este bloque, a su vez, tambi´en entrar´an las salidas generadas por los bloques pertenecientes a la capa anterior de jerarqu´ıa, lo mismo que la salida generada por el bloque SND-ij (yij) entrar´a en los bloques pertenecientes a la capa siguiente. Como ya se coment´o, estas variables intermedias modificar´an las reglas en la parte de los consecuentes (lo cual se enfatiza en la Figura 3.3, entrando las variables principales del sistema por una zona distinta a la de las intermedias). El n´umero total de bloques jer´arquicos ser´a PL i=1 qi, donde qies el n´umero de bloques jer´arquicos que componen la capa i-´esima de jerarqu´ıa y Lel n´umero de capas. Por ´ultimo, en la jerarqu´ıa propuesta por Joo y Lee, una misma variable principal xk∈X, puede entrar en distintos bloques de la jerarqu´ıa, cosa que no ocurr´ıa en las jerarqu´ıas usadas por Raju y Wang, donde cada variable principal entraba ´unicamente en un bloque jer´arquico. Con esto, lo que pretenden Joo y Lee es conseguir reglas m´as simples, a costa de aumentar el n´umero de reglas. Para demostrar que su modelo tiene la propiedad de aproximaci´on universal, Joo y Lee se basan en el trabajo desarrollado por Huwendiek y Brockmann [Huwendiek 99]. Huwendiek y Brockmann proponen un modelo muy espec´ıfico de jerarqu´ıa (Red de nodos difusos adaptativos - NetFAN ), y hacen uso del teorema de Stone-Weierstrass para Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 39 Cap´ ıtulo 3.Simplificaci´ on de sistemas neuro-difusos mediante el uso de jerarqu´ ıa 3.2. Referencias bibliogr´aficas del autor Baturone I., Mart´ınez-Rodr´ıguez M.C., Brox P., Gersnoviez A., Digital implementation of hierarchical piecewise-affine controllers, in Proceedings of the 2011 IEEE International Symposium on Industrial Electronics (ISIE’11), pp. 1497-1502, 2011. Baturone I., S´anchez-Solano S., Gersnoviez A., Brox M., An automated design flow from linguistic models to piecewise polynomial digital circuits, in Proceedings of the 2010 IEEE International Symposium on Circuits and Systems (ISCAS’10), pp. 3317-3320, 2010. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 46 Cap´ıtulo 4 Dise˜no e implementaci´on de sistemas neuro-difusos aplicados a rob´otica m´ovil aut´onoma Para comprobar la versatilidad y potencia de las t´ecnicas de simplificaci´on descritas en los cap´ıtulos anteriores, el presente cap´ıtulo se centra en otro de los ´ambitos de aplicaci´on destacados para los sistemas neuro-difusos, como es el de la rob´otica. Los sistemas difusos han sido utilizados en diversas aplicaciones de control gracias a su capacidad para expresar ling¨u´ısticamente el conocimiento heur´ıstico aportado por un experto. La capacidad de los sistemas difusos para manejar informaci´on ling¨u´ıstica facilita no s´olo el desarrollo de los controladores, sino que, adem´as, tambi´en facilita su mantenimiento y depuraci´on de errores. En el caso de la rob´otica, los sistemas difusos ofrecen la ventaja de dotar al robot con la capacidad de procesar informaci´on simb´olica, que es t´ıpica de los sistemas cognitivos. De hecho, una interfaz de lenguaje natural podr´ıa facilitar la interacci´on entre robots y usuarios. Por un lado, los usuarios podr´ıan decidir qu´e deber´ıa hacer el robot, mientras que el robot ser´ıa capaz de explicar qu´e est´a haciendo y por qu´e. Un punto d´ebil en el proceso de dise˜no t´ıpico de controladores difusos es que los par´ametros de los controladores se ajustan mediante m´etodos de “ensayo y error” que, aparte de ser una tarea tediosa, no consiguen comportamientos ´optimos. Por ello, los m´etodos de “ensayo y error” han sido sustituidos en trabajos recientes por t´ecnicas de aprendizaje autom´atico, que van desde el uso de redes neuronales hasta m´etodos Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 47 Cap´ ıtulo 4.Dise˜ no e implementaci´ on de sistemas neuro-difusos aplicados a rob´ otica m´ ovil aut´ onoma evolutivos. El aprendizaje autom´atico es puramente num´erico y, por tanto, normalmente acaba transformando el sistema difuso y cognitivo inicial en un sistema emergente, la otra clase de sistemas cognitivos [Vernon 07]. El comportamiento del controlador mejora tras el aprendizaje, pero la informaci´on simb´olica desaparece y, por tanto, tambi´en lo hace la interacci´on natural y directa para los humanos. Por otro lado, el desarrollo de sistemas complejos para aplicaciones de control industrial demanda alta velocidad de respuesta, bajo consumo de potencia y ´area, adem´as de bajo coste. Concretamente, aplicaciones t´ıpicas en el marco de la rob´otica actual, abordan sistemas multi-robot que sean capaces de ejecutar misiones cooperativas, sobre escenarios heterog´eneos, de forma segura y fiable. Eso significa que los robots aut´onomos no s´olo deben navegar de forma segura en tiempo real (bajo tiempo de procesamiento), sino que, adem´as, deben comunicarse con otros robots y colaborar juntos en la resoluci´on de tareas durante posibles largos per´ıodos de tiempo (bajo consumo de potencia), llevados a cabo usando plataformas hardware que posiblemente tengan recursos limitados (como por ejemplo los microrobots o los robots a´ereos no tripulados y con baja capacidad de carga). Por tanto, el objetivo a alcanzar en este cap´ıtulo es triple: conseguir controlar un robot de forma que su comportamiento sea pr´oximo al proporcionado por un controlador basado en an´alisis geom´etrico; que posea interpretabilidad ling¨u´ıstica; y que, a su vez, sea lo suficientemente simple como para ser implementado eficientemente en hardware dedicado o software empotrado en plataformas hardware de bajo coste. La propuesta de dise˜no del controlador desarrollada en este cap´ıtulo consistir´a en partir de una soluci´on cl´asica: Reglas difusas de tipo “si-entonces” con interpretabilidad ling¨u´ıstica, que son definidas mediante conocimiento heur´ıstico. La novedad que plantea esta t´ecnica de dise˜no es que los s´ımbolos son obtenidos exclusivamente mediante aprendizaje autom´atico que mantiene la interpretabilidad ling¨u´ıstica. La informaci´on num´erica necesaria para el aprendizaje se obtiene a partir de un an´alisis geom´etrico aproximado que tiene en cuenta las caracter´ısticas cinem´aticas y din´amicas del robot. El resultado de aplicar este an´alisis geom´etrico da lugar a un conjunto de ecuaciones que contienen, entre otras operaciones, divisiones, funciones trigonom´etricas directas (senos y cosenos) e inversas (arco cosenos) y ra´ıces cuadradas. Para poder implementar este tipo de ecuaciones en hardware dedicado o software empotrado, una t´ecnica habitual es aproximarlas mediante una tabla de b´usqueda o una interpolaci´on. En la t´ecnica propuesta en este cap´ıtulo, en vez de aproximar estas operaciones, se aproxima la ecuaci´on completa mediante un interpolador que, adem´as, tenga una interpretaci´on ling¨u´ıstica. Para conseguirlo, se aplicar´an de forma combinada las t´ecnicas de simplificaci´on explicadas en los cap´ıtulos anteriores. Todo esto se ilustrar´a mediante el desarrollo de un controlador para un robot m´ovil de tipo-coche, encargado de conseguir que ´este navegue de forma segura, evitando posibles Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 48 Apartado 4.1.Aplicaciones en rob´ otica m´ ovil aut´ onoma obst´aculos por entornos no estructurados ni conocidos, desde una configuraci´on inicial a otra objetivo. 4.1. Aplicaciones en rob´otica m´ovil aut´onoma Uno de los objetivos m´as importantes en rob´otica es crear robots aut´onomos que sean capaces de realizar tareas sin necesidad de una intervenci´on humana. Un robot aut´onomo ha de realizar tres acciones b´asicas: explorar el entorno mediante sensores, procesar la informaci´on recopilada por ´estos, y decidir sus acciones futuras controlando adecuadamente sus actuadores. Dentro de los problemas que se abordan en rob´otica m´ovil, uno fundamental es el de la navegaci´on, que consiste b´asicamente en planificar y seguir una trayectoria entre una configuraci´on inicial y otra objetivo. Una extensi´on de este problema es considerar restricciones no hol´onomas, es decir, ecuaciones no integrables que contienen las derivadas de los par´ametros de configuraci´on, lo que conlleva que trayectorias admisibles en el espacio de configuraci´on puedan ser trayectorias no factibles para el robot. En el marco de la navegaci´on de robots no hol´onomos, los robots de tipo-coche han captado gran inter´es. El controlador de navegaci´on de este tipo de robots debe considerar las restricciones no hol´onomas consistentes en que la direcci´on del movimiento sea siempre tangente a la trayectoria. M´as a´un, el radio de curvatura est´a mec´anicamente limitado a un valor m´ınimo, que es equivalente a decir que la curvatura del veh´ıculo est´a acotada superiormente. Entre los problemas m´as abordados en el control de movimiento de robots aut´onomos de tipo-coche destacan los de navegaci´on con y sin obst´aculos. 4.1.1. Navegaci´on sin obst´aculos En ausencia de obst´aculos, un problema t´ıpico es el de aparcamiento [Paromtichk 98] [G´omez 01] [Cuesta 04]. ´ Este es equivalente al problema de encontrar el camino m´as cor- to que une dos configuraciones dadas, una inicial y otra final. Para el caso de un robot tipo-coche, el camino m´as corto consiste en una secuencia finita de dos componentes elementales: arcos de circunferencia (con radio de curvatura m´ınimo) y segmentos de l´ınea recta. Esto fue probado por Dubins para veh´ıculos que se desplazaban ´unicamente hacia adelante [Dubins 97], y por Reeds y Shepp para veh´ıculos que se mueven tanto hacia adelante como hacia atr´as [Reeds 90]. En cualquier caso, el problema reside en que la curvatura es discontinua entre dos componentes elementales, con lo que estas trayectorias cortas no pueden ser seguidas de forma precisa sin detenerse en cada punto de discontinuidad para reorientar las ruedas delanteras. Para evitar estas paradas, diversos autores han propuesto planificadores de trayectorias de curvatura continua mediante el Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 49 Cap´ ıtulo 4.Dise˜ no e implementaci´ on de sistemas neuro-difusos aplicados a rob´ otica m´ ovil aut´ onoma uso de m´etodos de geometr´ıa diferencial. Dichos planificadores generan splines c´ubicos, B-splines, β-splines, polinomios de orden 5, etc. Otros autores han propuesto planificadores basados en l´ogica difusa, inspirados en emular el conocimiento heur´ıstico de conductores expertos mediante reglas difusas y/o aprendiendo dichas reglas con la ayuda de datos de entrenamiento tomados del comportamiento humano del conductor [Sugeno 85] [Kong 92] [Jou 93]. Las ventajas de estos modelos difusos son su dise˜no simple, r´apido, barato y de f´acil mantenimiento, ya que las reglas pueden ser interpretadas de forma ling¨u´ıstica por un experto humano. Sin embargo, estos planificadores difusos no consideran restricciones no hol´onomas, y no son ´optimos en el sentido de que no tienen en cuenta ni los caminos de longitud m´ınima ni los requisitos de control con bajo consumo de energ´ıa. Los autores de [Chen 97] presentaron un controlador difuso para aparcar un cami´on con trayectorias de distancias sub-´optimas consistentes en arcos de circunferencia de radio m´ınimo conectados mediante curvas parab´olicas que deben ser dadas por el controlador; Los autores de [Li 03a] plantean el problema de aparcamiento para un robot m´ovil aut´onomo de tipo-coche buscando trayectorias factibles de referencia mediante control en modo deslizante difuso; Y, m´as recientemente, los autores de [Demirli 09] resuelven el problema del aparcamiento utilizando un Mazda 6, usando un controlador neuro-difuso que aproxima las distancias compuestas por arcos de circunferencia de radio m´ınimo y l´ıneas rectas mediante polinomios de orden 5, utilizando para el aprendizaje el m´etodo de “substractive clustering”. Por otro lado, los autores de [Baturone 04b] describieron m´odulos difusos que proporcionan caminos de curvatura continua cercanos a los de longitud m´ınima, que se aproximan a las trayectorias formadas por arcos de circunferencia de radio de curvatura m´ınima y segmentos de l´ınea recta, teniendo en cuenta restricciones no hol´onomas. Dichos m´odulos no necesitan saber los arcos o segmentos deseados (como en [Chen 97]), sino que los encuentran a partir de la configuraci´on inicial del robot. Tampoco buscan trayectorias calculadas de forma anal´ıtica (como en [Li 03a]), sino que consiguen que el robot siga trayectorias factibles dadas en forma difusa, reduciendo de esta forma el coste computacional. M´as a´un, estos m´odulos est´an compuestos por un bajo n´umero de reglas que, adem´as, son ling¨u´ısticamente interpretables. La estrategia para conseguir dichos resultados fue utilizar algoritmos de identificaci´on y aprendizaje supervisado, extrayendo las reglas a partir de archivos de datos de entrenamiento, conseguidos no de conocimiento heur´ıstico ni tampoco de conductores expertos, sino de consideraciones geom´etricas. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 50 Apartado 4.1.Aplicaciones en rob´ otica m´ ovil aut´ onoma 4.1.2. Navegaci´on con obst´aculos El problema b´asico de navegaci´on puede complicarse con la existencia de obst´aculos, debido a que el sistema de control debe considerar dos objetivos: evitar los obst´aculos y alcanzar la configuraci´on objetivo. Para resolver el problema de la navegaci´on con obst´aculos para un robot aut´onomo, se han reportado diversos tipos de estrategias en la literatura. Estas soluciones se engloban en tres grandes grupos: estrategias de navegaci´on deliberativa, estrategias de navegaci´on reactiva y estrategias de navegaci´on h´ıbrida [Fern´andez 01]. 4.1.2.1. Estrategias deliberativas Las estrategias deliberativas fueron las primeras en utilizarse; est´an basadas en la ejecuci´on c´ıclica de los procesos de percepci´on, planificaci´on y ejecuci´on [Nilsson 80], sin que haya conexi´on directa entre la percepci´on y la ejecuci´on. El proceso de percepci´on interpreta la informaci´on proporcionada por los sensores obteni´endose un modelo del entorno. La ejecuci´on permite navegar en un entorno real, generando consignas para los actuadores. Por ´ultimo, la planificaci´on coordina los procesos de percepci´on y actuaci´on, de modo que, con el modelo generado por el proceso de percepci´on, produce un plan de actuaci´on que es efectuado por el proceso de ejecuci´on. Una desventaja de estos m´etodos es que presentan problemas en la adaptaci´on a entornos din´amicos parcialmente conocidos. Esto es debido a que es muy dif´ıcil contar con modelos completos del entorno donde la tarea va a ser llevada a cabo y que permitan asegurar la ejecuci´on del plan generado. Por lo tanto, si aparece un objeto no recogido en el modelo es necesario reconstruir ´este y generar un nuevo plan, pudi´endose producir una colisi´on si no da tiempo a actualizar el modelo y generar el nuevo plan. Para conseguir minimizar el tiempo de estos procesos suelen realizarse normalmente actualizaciones parciales del modelo y modificaciones del plan generado inicialmente (planificaci´on local). El proceso de ejecuci´on, que realiza el seguimiento de las trayectorias, puede aplicar, entre otros, m´etodos como el de la persecuci´on pura [Amidi 90] o los basados en control predictivo [Ollero 91]. Diversos autores han abordado como estrategia para la planificaci´on de trayectorias la planificaci´on en espacios espacio-temporales, obteniendo directamente los caminos a seguir y sus perfiles de velocidad asociados. 4.1.2.2. Estrategias reactivas El segundo tipo de estrategias reportadas en la literatura son las reactivas. ´estas surgen debido al problema presentado por las deliberativas de no reaccionar r´apidamente ante variaciones del entorno. En los sistemas reactivos s´ı existe comunicaci´on directa entre los procesos de percepci´on y ejecuci´on. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 51 Cap´ ıtulo 4.Dise˜ no e implementaci´ on de sistemas neuro-difusos aplicados a rob´ otica m´ ovil aut´ onoma El componente b´asico de este tipo de sistemas es un proceso orientado a la realizaci´on de una acci´on sencilla llamada comportamiento. El uso de estos elementos permite que el robot reaccione con gran flexibilidad en su entorno, comport´andose de forma eficiente en entornos din´amicos donde no se posee un conocimiento a priori y preciso del mismo. Los esquemas de navegaci´on reactiva se basan en que en cada intervalo de navegaci´on el sistema sensorial adquiere informaci´on sobre el estado del entorno; en base a esta informaci´on extra´ıda, se activan uno o varios comportamientos simples sumando sus actuaciones, de modo que, el comportamiento final del sistema, es una combinaci´on de las acciones simples que han sido activadas. Uno de los esquemas de navegaci´on reactiva con mayor trascendencia ha sido el de inhibici´on de Brooks [Brooks 86] que se fundamenta en un sistema basado en flujo de datos donde las informaciones recogidas por los sensores son procesadas por los comportamientos que generan salidas hacia los actuadores; los comportamientos se agrupan en niveles de prioridad, donde la activaci´on de un nivel inferior o de mayor prioridad, inhibe las consignas generadas por un nivel superior o de menor prioridad. Una de las aplicaciones t´ıpicas en la navegaci´on reactiva ha sido la de evitaci´on de obst´aculos. Entre las soluciones reportadas en la literatura destacan las que se basan en el seguimiento del contorno del obst´aculo, en campos potenciales, en el empleo de l´ogica difusa y en optimizaci´on local. Todas ellas tienen en com´un no usar informaci´on previa del entorno ni realizar la planificaci´on de un camino como se realizaba en las estrategias deliberativas; utilizan para generar la reacci´on la informaci´on sensorial que se recibe. Aunque una soluci´on muy simple para evitar un obst´aculo es seguir su contorno, esta soluci´on presenta problemas en el seguimiento de obst´aculos con concavidades debido a que el robot puede quedar atrapado sin posibilidad de salir a causa de las restricciones cinem´aticas del veh´ıculo. Otra estrategia ampliamente usada es la navegaci´on basada en campos potenciales. En ella se considera al robot como una part´ıcula dentro de un campo de fuerzas que desea llegar a una configuraci´on destino. Se distinguen dos tipos de fuerzas: atractivas y repulsivas. Mientras que la configuraci´on destino ejerce una fuerza atractiva sobre el robot, las configuraciones ocupadas por alg´un obst´aculo ejercen una fuerza repulsiva que evitan que el robot colisione. El robot situado en una configuraci´on determinada se dirigir´a en la direcci´on de la fuerza resultante de la composici´on de las fuerzas repulsivas y atractivas. El problema de este m´etodo es que pueden aparecer m´ınimos locales en el potencial resultante, lo que puede provocar que el robot no llegue a la configuraci´on objetivo. Connoly [Connoly 90] propuso resolver este problema mediante el uso de funciones potenciales arm´onicas, aunque ´estas tienen un coste computacional muy elevado. Por otro lado, Borestein y Koren [Borestein 89] propusieron el m´etodo basado en histograma de vector campo. Hay otro tipo de estrategias basadas en la idea de los campos potenciales, que realizan el c´alculo de las consignas de control con sistemas di- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 52 Apartado 4.1.Aplicaciones en rob´ otica m´ ovil aut´ onoma fusos. Fabrizi [Fabrizi 99] eval´ua el coste de la elecci´on de una determinada direcci´on y velocidad en base a tres conjuntos difusos. Hay otros autores, como V´azquez y Garc´ıa [V´azquez 94] que tambi´en generan las consignas de reacci´on fusionando la informaci´on sensorial y el objetivo a alcanzar mediante l´ogica difusa. La l´ogica difusa tambi´en ha sido utilizada directamente para la generaci´on de reacciones de evitaci´on de obst´aculos pues es muy intuitivo plasmar el conocimiento humano en el problema de evitaci´on de obst´aculos. Entre los autores que han usado esta estrategia se encuentran Kubota y Hashimoto [Kubota 92], los cuales generan en cada instante las consignas necesarias para esquivar obst´aculos fijos en funci´on de reglas difusas cuyas entradas son la direcci´on y distancia a las que est´an situados los obst´aculos. Para el caso de obst´aculos m´oviles tambi´en son tenidas en cuenta la velocidad y direcci´on relativas del obst´aculo al robot. Otros ejemplos que emplean reglas difusas extra´ıdas de conocimiento heur´ıstico pueden verse en [Kimiaghalam 01] [Zhang 05]. Normalmente son controladores simples, pero suelen ir acompa˜nados de un tedioso ajuste del tipo prueba-error que no acaba obteniendo resultados ´optimos. Por otro lado, se han reportado varios m´etodos basados en paradigmas difusos y de redes neuronales [Fukuda 99] [Driankov 01] [Meng 05], por ejemplo, para aprender las trayectorias proporcionadas por un experto [Rusu 03] [Wang 03]. Incluso en este caso, las trayectorias que lleva a cabo el robot no son, por lo general, tan ´optimas como las obtenidas a partir del an´alisis geom´etrico del problema, y, adem´as, los controladores resultantes no suelen ser simples y pierden cualquier significado ling¨u´ıstico. 4.1.2.3. Estrategias de navegaci´on h´ıbridas Las estrategias deliberativas presentan como problema la rigidez y como ventaja la capacidad de navegar de forma ´optima. Las reactivas, por el contrario, se caracterizan por su flexibilidad y falta de capacidad de navegar de forma ´optima. De ah´ı que se hayan usado esquemas mixtos que combinen ambas estrategias, para as´ı conseguir las ventajas que ambas ofrecen y reducir los inconvenientes que ambas presentan. Este tipo de estrategias se conocen con el nombre de estrategias de navegaci´on h´ıbridas [Wooldridge 09]. Dentro de los esquemas de navegaci´on h´ıbridos, destacan aquellos que usan en los niveles inferiores mecanismos de control reactivo, mientras que en las capas superiores se sit´uan mecanismos de planificaci´on y deliberaci´on. La ventaja de estas estrategias reside en la combinaci´on de la planificaci´on global de trayectorias, donde se tiene en cuenta toda la informaci´on conocida antes del tiempo de navegaci´on, con la reacci´on tomada en base al conocimiento adquirido durante el seguimiento de la trayectoria inicial. Kant y Zucker [Kant 86] desglosan el problema de la planificaci´on de una trayectoria libre de obst´aculos en dos subproblemas. El primero representa una primera planificaci´on global, con todo el conocimiento que se tiene del entorno antes de comenzar la navega- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 53 Cap´ ıtulo 4.Dise˜ no e implementaci´ on de sistemas neuro-difusos aplicados a rob´ otica m´ ovil aut´ onoma ci´on; el segundo representa la modificaci´on de la trayectoria en tiempo de navegaci´on cuando se detecta un obst´aculo en la zona cercana al robot. El desv´ıo de la trayectoria inicialmente generada se realiza utilizando campos potenciales, sin tener en cuenta la din´amica del robot ni considerar el movimiento del obst´aculo. Kyriakopoulos y Saridis [Kyriakopoulos 93] usan campos potenciales para evitar obst´aculos considerando en detalle el modelo din´amico del robot para imponer los l´ımites de velocidad. Debido a que se centra en la variaci´on del perfil de velocidad del veh´ıculo y no en modificar el camino que sigue, s´olo se puede utilizar para la evitaci´on de obst´aculos conocidos a priori y obst´aculos m´oviles inesperados. Para evitar obst´aculos est´aticos inesperados es necesario combinar esta estrategia con otras. Griswold y Eem [Griswold 90] consideran que la evitaci´on de obst´aculos se puede realizar en dos fases: una primera en la que se genera un camino que evita todos los obst´aculos est´aticos y una segunda en tiempo de ejecuci´on, donde se generan los cambios de velocidad necesarios para la evitaci´on de obst´aculos m´oviles detectados por el sistema sensorial. No consideran las limitaciones de velocidad ni caracter´ısticas geom´etricas del obst´aculo como puede ser el tama˜no. Las estrategias analizadas en este cap´ıtulo para el dise˜no de controladores neurodifusos han sido las estrategias reactivas, como se ver´a en el apartado ??. 4.2. Realizaciones hardware de sistemas difusos para robots m´oviles aut´onomos La idea de un robot m´ovil aut´onomo es que lleve a bordo todo el hardware necesario para llevar a cabo sus tareas. Dentro de ellas, un grupo b´asico son las tareas de bajo nivel entre las que se incluyen las de acondicionamiento de las se˜nales de los sensores y actuadores, y las de control de bajo nivel de los actuadores. El hardware est´andar que se emplea para realizar estas tareas de bajo nivel se basa en microcontroladores comerciales, que poseen perif´ericos para recibir se˜nales anal´ogicas (como las que proporcionan muchos sensores tipo s´onar) y digitales (como las de muchos codificadores rotatorios, gir´oscopos, GPSs y l´aseres) y perif´ericos para proporcionar se˜nales anal´ogicas y digitales (como las que se emplean en el control de motores). En este ´ambito de tareas de bajo nivel se han propuesto muchos algoritmos basados en l´ogica difusa que mejoran las t´ecnicas convencionales. Ejemplos de este tipo son los controladores difusos que extienden las posibilidades de los PID (proporcional-integral-derivativo) o de los controladores basados en la teor´ıa “sliding mode” (modo deslizante). Estos controladores difusos de bajo nivel tambi´en se implementan normalmente sobre microcontroladores comerciales [Betin 07]. Otro grupo de tareas, que se pueden denominar de nivel intermedio, son las que incluyen la realizaci´on de comportamientos, como por ejemplo navegar hacia una con- Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 54 Apartado 4.2.Realizaciones hardware de sistemas difusos para robots m´ oviles aut´ onomos figuraci´on objetivo, evitar obst´aculos o perseguir a un m´ovil determinado. Tareas de nivel superior son las que combinan las tareas anteriores para cumplir misiones como, por ejemplo, el rescate de heridos o apagar incendios. Tambi´en en este nivel superior se incluyen tareas de comunicaci´on con otros robots (para realizar misiones cooperativas) o con seres humanos (por ejemplo, hospitales o centros de emergencia). Para este tipo de tareas intermedias y (sobre todo) para las superiores, el hardware que se ha empleado tradicionalmente han sido PCs industriales tipo PC104. Los PC104 son una versi´on de la arquitectura PC para aplicaciones empotradas e industriales donde el espacio, el consumo de energ´ıa y/o la fiabilidad son factores cr´ıticos. Por eso las tarjetas PC104 (90 x 96mm) son m´as peque˜nas que las tarjetas ISA, ya que pueden apilarse unas sobre otras sin necesidad de placas base, consumen menos y est´an dise˜nadas para ser m´as robustas que los sistemas PC. Una gran ventaja es que pueden ser programados con las mismas herramientas que los PCs, lo que reduce la necesidad de conocimientos y el costo de un desarrollo personalizado. La posibilidad de emplear una metodolog´ıa que reduzca el tiempo y precio en el desarrollo del sistema de control es particularmente interesante en el campo de la rob´otica m´ovil aut´onoma, en la que los algoritmos de control deben ser validados y refinados en pruebas de campo con el robot real, porque es muy dif´ıcil que las simulaciones contemplen todos los posibles efectos de no linealidades, ruidos, interferencias, etc. Por eso otras opciones que tambi´en se est´an empleando mucho en este campo son tarjetas con un hardware m´as espec´ıfico para tareas de control, pero que permiten un prototipado tan r´apido y c´omodo como es trabajar con un PC. En esta l´ınea se encuentran, por ejemplo, tarjetas como la DS1104 comercializada por dSPACE, que incluyen un microprocesador PowerPC junto con un DSP esclavo de Texas Instruments, adem´as de memoria, varios temporizadores, unidad de control de interrupciones, hardware para entradas y salidas tanto anal´ogicas como digitales, interfaz para encoders, interfaz serie para comunicaciones e interfaz PCI para conectarse a un PC [dSpace]. Esta tarjeta se puede programar c´omodamente desde el entorno Matlab/Simulink a trav´es de las rutinas del Real-Time Workshop (RTW). La utilizaci´on de este tipo de tarjetas para implementar estrategias de navegaci´on difusas basadas en comportamientos puede verse en [Cupertino 06]. Si el dise˜no de los algoritmos difusos se hace de forma adecuada, no es necesario el empleo de microprocesadores potentes para llevar a cabo tareas complejas en tiempo real. As´ı, por ejemplo, en [Wang 04] se describe c´omo un algoritmo de navegaci´on evitando obst´aculos se puede simplificar empleando 32 en vez de 625 reglas para implementarse con ´exito en una placa de control basada en el microcontrolador 86HC11 de Motorola. Otro trabajo en esta l´ınea, que se describe en [Baturone 04a], es la implementaci´on de un algoritmo difuso para navegar sin obst´aculos en la tarjeta de control LF2407 EVM de Spectrum Digital [TMS320LF2407a]. Esta tarjeta s´olo posee como procesador el TMS320LF2407, que es un DSP de punto fijo de Texas Instruments que combina la Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 55 Cap´ ıtulo 4.Dise˜ no e implementaci´ on de sistemas neuro-difusos aplicados a rob´ otica m´ ovil aut´ onoma Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 62 Conclusiones finales El objetivo primordial de esta Tesis ha sido desarrollar t´ecnicas de simplificaci´on para sistemas neuro-difusos, de modo que sistemas complejos puedan ser ejecutados de forma eficiente en software empotrado o hardware dedicado. A la hora de extraer conocimiento a partir de datos num´ericos, se ha optado por las t´ecnicas de tipo grid, para as´ı facilitar una implementaci´on hardware eficiente. Concretamente, se han utilizado sistemas neuro-difusos de tipo Takagi-Sugeno con familias de tri´angulos como funciones de pertenencia para cubrir las entradas, siempre que sea posible. Estos sistemas, con un n´umero de reglas y funciones de pertenencia reducido, no s´olo son aptos para una implementaci´on eficiente, sino que tambi´en facilitan su interpretabilidad ling¨u´ıstica. Sin embargo, estos sistemas presentan el fen´omeno de “la maldici´on de la dimensionalidad”, por lo que se han propuesto una serie de t´ecnicas para mitigar en lo posible dicho problema. Se ha desarrollado una t´ecnica basada en una simplificaci´on tabular inspirada en el algoritmo de Quine-McCluskey de la l´ogica booleana. El m´etodo no s´olo demuestra ser bastante potente a la hora de reducir el n´umero de reglas, sino que , al agrupar reglas, permite el dise˜no de clasificadores neuro-difusos cuyas regiones o fronteras de decisi´on no tienen por qu´e ser las t´ıpicas paralelas a los ejes de las variables de entrada sino que pueden ser no lineales, dependiendo de las t-normas, s-normas y funciones de pertenencia empleadas. Partiendo de la simplificaci´on tabular, se ha propuesto un m´etodo que permite ordenar las reglas obtenidas seg´un su grado de generalidad o particularidad, medido por un ´ındice que ha sido denominado ´ındice de cubrimiento. El m´etodo facilita el dise˜no de clasificadores neuro-difusos con bases de reglas incompletas, que se ha aplicado a diversos ejemplos de descripci´on de im´agenes sencillas (patrones) para probar su eficacia. Con esto, se ha conseguido describir caracter´ısticas de bajo nivel de im´agenes, utilizando bases de reglas muy simples, empleadas en sistemas de reconocimiento de patrones, que llegaron a mostrar un mejor comportamiento que el de otros sistemas con un n´umero mayor de reglas. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 63 Conclusiones finales Se ha revisado el estado del arte correspondiente a las t´ecnicas de simplificaci´on de sistemas difusos mediante el uso de jerarqu´ıa, analizando las propiedades demostradas por los trabajos previos, as´ı como las desventajas que arrastraban. Los estudios demostraban que este tipo de simplificaci´on consegu´ıa disminuir las reglas de un sistema de forma dr´astica. Sin embargo, el mayor problema consist´ıa en encontrar la forma de descomponer el sistema. Se ha propuesto un m´etodo de descomposici´on jer´arquica que consigue el mayor nivel de simplificaci´on hasta ahora reportado en la literatura. Los sistemas jer´arquicos propuestos, como se comportan como sistemas lineales a tramos bajo ciertas condiciones, son muy eficientes a la hora de aproximar comportamientos ´optimos no lineales. Tras estudiar las caracter´ısticas de estos sistemas, se ha propuesto una metodolog´ıa que permite evaluar si es posible o no encontrar una estructura jer´arquica como la propuesta, y, en caso de ser posible, c´omo encontrarla. La gran mayor´ıa de trabajos previos sobre sistemas jer´arquicos no propone ninguna metodolog´ıa de dise˜no. La metodolog´ıa se ha probado en el dise˜no de varios controladores predictivos basados en modelo. Comparando los controladores jer´arquicos dise˜nados con otros controladores reportados en la literatura, se concluye que los controladores jer´arquicos propuestos son los m´as sencillos y, por lo tanto, los m´as eficientes para ser implementados. En concreto, para implementaciones en FPGAs son los que menos slices ocupan, menos latencia y throughput presentan y menos recursos propios de la FPGA emplean. A pesar de su simplicidad, su eficacia en cuanto a control es elevada: son estables y su tiempo de establecimiento no se empeora significativamente, incluso se mejora en algunos casos. Como ejemplo de aplicaci´on final para ilustrar la problem´atica compleja que surge a la hora de dise˜nar sistemas neuro-difusos, se ha abordado el dise˜no de un controlador para la navegaci´on libre de obst´aculos de un robot aut´onomo tipo-coche. Puesto que el primer paso a la hora de dise˜nar un sistema neuro-difuso es disponer de datos num´ericos, el dise˜no parti´o de un an´alisis geom´etrico del problema, con consideraciones cinem´aticas y din´amicas, para alcanzar el mejor comportamiento de respuesta. El resultado obtenido fue el habitual cuando se abordan este tipo de problemas: las ecuaciones obtenidas fueron demasiado complejas para ser implementadas en hardware dedicado y carec´ıan de interpretabilidad ling¨u´ıstica. Al controlador anterior se le aplicaron las distintas t´ecnicas desarrolladas en esta Tesis, obteniendo como resultado un controlador simple con un n´umero de reglas Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 64 Conclusiones finales reducido con contenido ling¨u´ıstico f´acil de interpretar por un usuario no exper- to. La simplicidad del controlador hizo que la complejidad del c´alculo fuera muy reducida, pudiendo ejecutarse a gran velocidad o con bajo consumo de potencia por sistemas basados en procesadores con punto fijo. Y, junto a estas ventajas, se a˜nadi´o que el comportamiento alcanzado fue cercano al ´optimo. Con lo cual, adem´as de ser un controlador apto para una implementaci´on hardware eficiente y de poseer interpretabilidad ling¨u´ıstica, el comportamiento ofrecido fue cercano al de un controlador descrito por ecuaciones geom´etricas. Todas las t´ecnicas desarrolladas han demostrado una gran potencia a la hora de simplificar sistemas, consiguiendo sistemas de gran simplicidad muy aptos para una implementaci´on hardware de muy bajo coste. A pesar de la complejidad que conllevan este tipo de t´ecnicas, su desarrollo y pruebas se han llevado a cabo con facilidad gracias a la gran flexibilidad aportada por las herramientas de CAD del entorno de Xfuzzy 3. Con la ayuda de este entorno y la utilizaci´on de las t´ecnicas desarrolladas, se pueden conseguir sistemas neuro-difusos muy simples de forma r´apida y sencilla. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 65 Conclusiones finales Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 66 Bibliograf´ıa [Aja 08] Aja-Fern´andez S., Alberola-L´opez C., Matrix modeling of hierarchical fuzzy systems, IEEE Transactions on Fuzzy Systems, vol. 16, no. 3, pp. 585-599, 2008. 34 [Alcal´a 15] Alcal´a-Fern´andez J., Alonso J.M., A survey of fuzzy systems software: Taxonomy, current research trends and prospects, IEEE Transactions on Fuzzy Systems, dx.doi.org/10.1109/TFUZZ.2015.2426212. 22 [Alessio 09] Alessio A., Bemporad A., A survey on explicit model predictive control, chapter of Magni L., Raimondo D.M., Allg¨ower F. (Editors), Nonlinear model predictive control: Towards new challenging applications, Lecture Notes in Control and Information Sciences, vol. 384, pp. 345-369, Springer Berlin Heidelberg, 2009. [Amidi 90] Amidi O., Integrated mobile robot control, Carnegie Mellon University, Robotics Institute, 1990. 51 [Arroyabe 00] Arroyabe J.L., Aranguren G., Nozal L.A.L., Martin J.L., Autonomous vehicle guidance with fuzzy algorithm, in Proceedings of the 26th Annual Conference of the IEEE Industrial Electronics Society (IECON’2000), vol. 3, pp. 1503-1508, 2000. 56 [Bannatyne 96] R. Bannatyne, Motorola’s 68HC12 an evolution from 8-bit to 16-bit, Embedded-System Engineering, vol. 4, no. 4, pp. 32-33, 1996. 19 [Basterretxea 09] Basterretxea K., del Campo I., Electronic hardware for fuzzy computation, chapter of Laurent A., Lesot M.-J. (Editors), Scalable fuzzy algorithms for data management and analysis: Methods and design, Information Science Reference, Hershey-New York, USA, pp. 1-30, 2009. 21 [Battiti 92] Battiti R., First- and secondorder methods for learning: Between steepest descent and Newton’s method, Neural Computation, vol. 4, no. 2, pp. 141-166, 1992. 12 [Baturone 00] Baturone I., Barriga A., S´anchez-Solano S., Jim´enez C.J., L´opez D., Microelectronic design of fuzzy logic-based systems, CRC Press, Boca Rat´on, FL, USA, 2000. 18, 21 [Baturone 01] Baturone I., S´anchez-Solano S., Microelectronic design of universal fuzzy controllers, Mathware and Soft Computing, vol. 8, no. 3, pp. 303-319, 2001. 13 [Baturone 04a] Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Blanco V., Ferruz J., DSP-based fuzzy controllers: application to parking an autonomous robot, in Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 67 Bibliograf´ ıa Proceedings of the 19th Conference on Design of Circuits and Integrated Systems (DCIS’2004), 2004. 55 [Baturone 04b] Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Ollero A., Automatic design of fuzzy controllers for car-like autonomous robots, IEEE Transactions on Fuzzy Systems, vol. 12, no. 4, pp. 447-465, 2004. 50, 56 [Baturone 05] Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Blanco V., Ferruz J., Embedded fuzzy controllers on standard DSPs, in Proceedings of the 2005 IEEE International Symposium on Industrial Electronics (ISIE’05), vol. 3, pp. 1197-1202, 2005. 61 [Baturone 07] Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Barriga A., Brox P., Gersnoviez A., Brox M., Using Xfuzzy environment for the whole design of fuzzy systems, in Proceedings of the 16th IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’07), pp. 1-6, 2007. [Baturone 08] Baturone I., Moreno-Velo F.J., Blanco V., Ferruz J., Design of embedded DSP-based fuzzy controllers for autonomous mobile robots, IEEE Transactions on Industrial Electronics, vol. 55, no. 2, pp. 928-936, 2008. [Bayat 11] Bayat F., Johansen T.A., Jalali A.A., Using hash tables to manage the timestorage complexity in a point location problem: Application to explicit model predictive control, Automatica, vol. 47, no. 3, pp. 571-577, 2011. [Bellman 61] Bellman R.E., Adaptive control processes, Princeton University Press, 1961. 10 [Bemporad 02a] Bemporad A., Borrelli F., Morari M., Model predictive control based on linear programming - The explicit solution, IEEE Transactions on Automatic Control, vol. 47, no. 12, pp. 1974-1985, 2002. [Bemporad 02b] Bemporad A., Morari M., Dua V., Pistikopoulos E.N., The explicit linear quadratic regulator for constrained systems, Automatica, vol. 38, no. 1, pp. 3-20, 2002. [Betin 07] Betin F., Sivert A., Yazidi A., Capolino G.-A., Determination of scaling factors for fuzzy logic control using the sliding-mode approach: application to control of a DC machine drive, IEEE Transactions on Industrial Electronics, vol. 54, no. 1, pp. 296-309, 2007. 54 [Bezdek 84] Bezdek J.C., Ehrlich R., Full W., FCM: The fuzzy c-means clustering algorithm, Computers & Geosciences, vol. 10, no. 2-3, pp. 191-203, 1984. 6 [Bezdek 98] Bezdek J.C., Pal N.R., Some new indexes of cluster validity, IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, vol. 28, no. 3, pp. 301-315, 1998. 27 [Bobrowski 91] Bobrowski L., Bezdek J.C., C-means clustering with the l1and l∞norms, IEEE Transactions on Systems, Man, and Cybernetics, vol. 21, no. 3, pp. 545-554, 1991. 7 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 68 Bibliograf´ ıa [Borestein 89] Borestein J., Koren Y., Real time obstacle avoidance for fast mobile robots, IEEE Transactions on Systems, Man, and Cybernetics, vol. 19, no. 5, pp. 1179-1187, 1989. 52 [Bosque 14] Bosque G., del Campo I., Echanobe J., Fuzzy systems, neural networks and neuro-fuzzy systems: A vision on their hardware implementation and platforms over two decades, Engineering Applications of Artificial Intelligence, vol. 32, pp. 283-331, 2014. 21 [Breiman 93] Breiman L., Hinging hyperplanes for regression, classification, and function approximation, IEEE Transactions on Information Theory, vol. 39, no. 3, pp. 999-1013, 1993. [Brooks 86] Brooks R.A., A robust layered control system for a mobile robot, IEEE Journal of Robotics and Automation, vol. 2, no. 1, pp. 14-23, 1986. 52 [Broomhead 88] Broomhead D.S., Lowe D., Multivariate functional interpolation and adaptive networks, Complex Systems, vol. 2, pp. 321-355, 1988. [Brox 07] Brox P., Baturone I., S´anchez-Solano S., A fuzzy edge-dependent interpolation algorithm, chapter of Nachtegael M., van der Weken D., Kerre E.E., Philips W. (Editors), Soft computing in image processing: Recent Advances, Series Studies in Fuzziness and Soft Computing, Springer-Verlag, vol 210, pp. 155-185, 2007. [Brox 13a] Brox P., Castro-Ram´ırez J., Mart´ınez-Rodr´ıguez M.C., Tena E., Jim´enez C.J., Baturone I., Acosta A.J., A programable and configurable ASIC to generate Piecewise-Affine functions defined over general partitions, IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 60, no. 12, pp. 3182-3194, 2013. [Brox 13b] Brox M., S´anchez-Solano S., del Toro E., Brox P., Moreno-Velo F.J., CAD tools for hardware implementation of embedded fuzzy systems on FPGAs, IEEE Transactions on Industrial Informatics, vol. 9, no. 3, pp. 1635-1644, 2013. 22 [Cabrera 02] Cabrera A., Sendhadji R., S´anchez-Solano S., Barriga A., Jim´enez C.J., Llanes O., Development of level controllers based on fuzzy logic, in Proceedings of the 1st International ICSC-NAISO Congress on Neuro-Fuzzy Technologies (NF’02), pp. 81-86, 2002. 18 [Castellano 02] Castellano G., Fanelli A.M., Mencar C., Generation of interpretable fuzzy granules by a double-clustering technique, Archives of Control Sciences, vol. 12, no. 4, pp. 397-410, 2002. 28 [Castro 09] Castro C.Y., Llanos C.H., de Britto Vidal Filho W., dos Santos Coehlo, L., Fuzzy control for cyclist robot stability using FPGAs, in Proceedings of the 2009 International Conference on Reconfigurable Computing and FPGAs (ReConFig’09), pp. 410-415, 2009. 22 [Chang 02] Chang S.-J., Li T.-H.S., Design and implementation of fuzzy parallel-parking control for a car-type mobile robot, Journal of Intelligent and Robotics Systems, vol. 34, no. 2, pp. 175-194, 2002. 18 [Chen 97] Chen G., Zhang D., Back-driving a truck with suboptimal distance trajectories: a fuzzy logic control approach, IEEE Transactions on Fuzzy Systems, vol. 5, no. 3, pp. 369-380, 1997. 50 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 69 Bibliograf´ ıa [Chi 95] Chi Z, Wu J., Yan H., Handwritten numeral recognition using self-organizing maps and fuzzy rules, Pattern Recognition, vol. 28, no. 1, pp. 59-66, 1995. [Chiu 94] Chiu S.L., Fuzzy model identification based on cluster estimation, Journal of Intelligent and Fuzzy Systems, vol. 2, no. 3, pp. 267-278, 1994. 9 [Chowdhury 08] Chowdhury S.R., Chakrabarti D., Saha H., FPGA realization of a smart processing system for clinical diagnostic applications using pipelined datapath architectures, Microprocessors and Microsystems, vol. 32, no. 2, pp. 107-120, 2008. 22 [Comaschi 12] Comaschi F., Genuit B.A.G., Oliveri A., Heemels W.P.M.H., Storace M., FPGA implementations of piecewise affine functions based on multi-resolution hyperrectangular partitions, IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 59, no. 12, pp. 2920-2933, 2012. [Connoly 90] Connoly C.I., Burns J.B., Weiss R., Path planning using Laplace’s equation, in Proceedings of the 1990 IEEE International Conference on Robotics and Automation (ICRA’90), 1990. 52 [Cormen 01] Cormen T.H., Leiserson C.E., Rivest R. L., Stein C., Introduction to algorithms, MIT Press, Cambridge, MA, USA, 2001. [Cuesta 04] Cuesta F., G´omez-Bravo F., Ollero A., Parking maneuvers of industriallike electrical vehicles with and without trailer, IEEE Transactions on Industrial Electronics, vol. 51, no. 2, pp. 257-269, 2004. 49 [Cupertino 06] Cupertino F., Giordano V., Naso D., Delfine L., Fuzzy control of a mobile robot, IEEE Robotics & Automation Magazine, vol. 13, no. 4, pp. 74-81, 2006. 55 [Davies 79] Davies D.L., Bouldin D.W., A cluster separation measure, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. PAMI-1, no. 2, pp. 224-227, 1979. 27 [del Campo 08] del Campo I., Echanobe J., Bosque G., Tarela J.M., Efficient hardware/software implementation of an adaptive neuro-fuzzy system, IEEE Transactions on Fuzzy Systems, vol. 16, no. 3, pp. 761-778, 2008. 22 [Demirli 09] Demirli K., Khoshnejad M., Autonomous parallel parking of a car-like mobile robot by a neuro-fuzzy sensor-based controller, Fuzzy Sets and Systems, vol. 160, no.19, pp. 2876-2891, 2009. 50 [Desaulniers 96] Desaulniers G., On shortest paths for a car-like robot maneuvering around obstacles, Robotics and Autonomous Systems , vol. 17, no. 3, pp. 139-148, 1996. [Destercke 07] Destercke S., Guillaume S., Charnomordic B., Building an interpretable fuzzy rule base from data using ortogonal least squares - Application to a depollution problem, Fuzzy Sets and Systems, vol. 158, no. 18, pp. 2078-2094, 2007. 30 [Di Stefano 05] Di Stefano A., Giaconia C., An FPGA-based adaptive fuzzy coprocessor, chapter of Cabestany J., Prieto A., Sandoval F. (Editors), Computational intelligence and bioinspired systems, Lecture Notes in Computer Science, vol. 3512, pp. 590-597, 2005. 20 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 70 Bibliograf´ ıa [Driankov 01] Driankov D., Saffiotti A., eds., Fuzzy logic techniques for autonomous vehicle navigation, Springer-Physica Verlag, DE, 2001. 53 [dSpace] dSpace, GmbH, ds1104 Microcontroller Board Reference Manual, http://www. dspace.com 55 [Dubins 97] Dubins L.E., On curves of minimal length with a constrait on average curvature and with prescribed initial and terminal positions and tangents, American Journal of Mathematics, vol. 79, no. 3, pp. 497-516, 1997. 49 [Dunn 73] Dunn J.C., A fuzzy relative of the ISODATA process and its use in detecting compact well-separated clusters, Journal of Cybernetics, vol. 3, no. 3, pp. 32-57, 1973. 27 [Dunn 74] Dunn J.C., Well-separated clusters and optimal fuzzy partitions, Journal of Cybernetics, vol. 4, no. 1, pp. 95-104, 1974. 27 [Echevarr´ıa 05] Echevarr´ıa P., Mart´ınez M.V., Echanobe J., del Campo I., Tarela J.M., Design and HW/SW implementation of a class of piecewise-linear fuzzy system, en actas del XII Seminario Anual de Autom´atica, Electr´onica Industrial e Instrumentaci´on (SAAEI’05), pp. 360-364, 2005. 22 [Eichfeld 96] Eichfeld H., Kunemund T., Menke M., A 12b general-purpose fuzzy logic controller chip, IEEE Transactions on Fuzzy Systems. vol. 4, no. 4, pp. 460-475, 1996. 20 [Eichfeld 98] Eichfeld H., Mertens A., Brandmeier T., Waidelich F., Graumann R., Schwab M., Applications of SAE 81C99x fuzzy coprocessors, in Proceedings of the 7th IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’98), vol. 1, pp.19-24, 1998. 20 [Espinosa 00] Espinosa J., Vandewalle J., Constructing fuzzy models with linguistic integrity from numerical data-AFRELI algorithm, IEEE Transactions on Fuzzy Systems, vol. 8, no. 5, pp. 591-600, 2000. 28 [Fabrizi 99] Fabrizi E., Panzieri S., Ulivi G., An integrated sensing-guidance system for a robotized wheelchair, in Proceedings of the 14th World Conference of the International Federation of Automatic Control (IFAC’99), 1999. 53 [Fern´andez 01] Fern´andez-Ramos R., Navegaci´on aut´onoma de robots m´oviles en entornos parcialmente conocidos, Tesis Doctoral, Universidad de M´alaga, 2001. 51 [Ferruz 03] Ferruz J., Blanco V., Ollero A., Acevedo J.V., An embedded DSP-based controller for the ROMEO-4R vehicle, in Proceedings of the 5th IFAC International Symposium on Intelligent Components and Instruments for Control Applications (SICICA’03), pp. 101-106, 2003. 60 [Fortuna 03] Fortuna L., Lo Presti M., Vinci C., Cucuccio A., Recent trends in fuzzy control of electrical drives: An industry point of view, in Proceedings of the 2003 International Symposium on Circuits and Systems (ISCAS’03), vol. 3, pp. 459-461, 2003. 20 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 71 Bibliograf´ ıa [Reyneri 03] Reyneri, L.M., Implementation issues of neuro-fuzzy hardware: Going toward HW/SW codesign, IEEE-Transactions on Neural Networks, vol. 14, no. 1, pp. 176-194, 2003. 21 [Rodr´ıguez 07] Rodr´ıguez-Andina J.J., Moure M.J., Valdes M.D., Features, design tools, and application domains of FPGAs, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, pp. 1810-1823, 2007. 21 [Rovatti 98] Rovatti R., Fuzzy piecewise multilinear and piecewise linear systems as universal approximators in Sobolev norms, IEEE Transactions on Fuzzy Systems, vol. 6, no. 2, pp. 235-249, 1998. 15, 17 [Rovatti 99] Rovatti R., High speed implementation of piecewise-quadratic Takagi- Sugeno systems, in Proceedings of the 8th IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’99), vol. 1, pp. 292-297, 1999. 17 [Rovatti 00] Rovatti R., Fantuzzi C., Simani S., High-speed DSP-based implementation of piecewise-affine and piecewise-quadratic fuzzy systems, Signal Processing, vol. 80, no. 6, pp. 951-963, 2000. [Rudin 76] Rudin W., Principles of mathematical analysis. McGraw-Hill, 1976. 41 [Ruspini 98] Ruspini E.H., Bonissone P.P., Pedrycz W. (Editors), Handbook of fuzzy computation, Institute of Physics Publishing, Bristol, UK, and Philadelphia, PA, USA, 1998. 8 [Rusu 03] Rusu P., Petriu E.M., Whalen T.E., Cornell A., Spoelder H.J.W., Behaviorbased neuro-fuzzy controller for mobile robot navigation, IEEE Transactions on Instrumentation and Measurement, vol. 52, no. 4, pp. 1335-1340, 2003. 53 [Salapura 00] Salapura V., A fuzzy RISC processor, IEEE Transactions on Fuzzy Systems, vol. 8, no. 6, pp. 781-790, 2000. 19 [S´anchez 07] S´anchez-Solano S., Cabrera A.J., Baturone I., Moreno-Velo F.J., Brox M., FPGA implementation of embedded fuzzy controllers for robotic applications, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, pp. 1937-1945, 2007. 61 [S´anchez 13] S´anchez-Solano S., Brox M., del Toro E., Brox P., Baturone I., Modelbased design methodology for rapid development of fuzzy controllers on FPGAs, IEEE Transactions on Industrial Informatics, vol. 9, no. 3, pp. 1361-1370, 2013. 22, 56 [Sasaki 94] Sasaki M., Ueno F., A novel implementation of fuzzy logic controller using new meet operation, in Proceedings of the 3rd IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’94), vol. 3, pp. 1676-1681, 1994. 15 [Savage 00] Savage W., Chilton J., Camposano R., IP reuse in the system on a chip era, in Proceedings of the 13th International Symposium on System Synthesis (ISSS’00), pp. 2-7, 2000. 21 [Sch¨olkopf 98] Sch¨olkopf B., Smola A., M¨uller K.-R., Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, vol. 10, no. 5, pp. 1299-1319, 1998. 8 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 78 Bibliograf´ ıa [Scolari 03] Scolari A.G., Campestrini L., Fehlberg R., Pereira L.F.A., An integrated hardware and software design of a mobile robot, in Proceedings of the 29th Annual Conference of the IEEE Industrial Electronics Society (IECON’03), vol. 1, pp. 877- 881, 2003. 56 [Senhadji 02] Senhadji R., S´anchez-Solano S., Barriga A., Baturone I., Moreno-Velo F.J., NORFREA: An algorithm for non redundant fuzzy rule extraction, in Proceedings of the 2002 IEEE International Conference on Systems, Man and Cybernetics (SMC’02), vol. 1, pp. 604-608, 2002. 10, 30, 31 [Sep´ulveda 09] Sep´ulveda R., Montiel O., Liz´agarra G., Castillo O., Modeling and simulation of the defuzzification stage of a type-2 fuzzy controller using the Xilinx System Generator and Simulink, chapter of Castillo O., Pedrycz W., Kacprzyk J. (Editors), Evolutionary design of intelligent systems in modeling, simulation and control, Studies in Computational Intelligence, vol. 257, pp. 309-325, 2009. 22 [Setnes 98] Setnes M., Babuˇska R., Kaymak U., van Nauta Lemke H.R., Similarity measures in fuzzy rule base simplification, IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, vol. 28, no. 3, pp. 376-386, 1998. 4, 28, 29 [Setnes 00] Setnes M., Hellendroon H., Orthogonal transforms for ordering and reduction of fuzzy rules, in Proceedings of the 9th IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’00), vol. 2, pp. 700-705, 2000. 30 [Smeulders 00] Smeulders A.W.M., Worring M., Santini S., Gupta A., Jain R., Contentbased image retrieval at the end of the early years, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 12, pp. 1349-1380, 2000. [Snoeyink 97] Snoeyink J., Point location, chapter of Goodman J.E., O’Rourke (Editors), Handbook of discrete and computational geometry, pp. 559-574, CRC Press, Boca Rat´on, FL, USA, 1997. [Srivastava 11] Srivastava V., Tripathi B.K., Pathak V.K., An evolutionary fuzzy clustering with Minkowski distances, chapter of Lu B.-L., Zhang L., Kwok J. (Editors), Neural information processing, Lecture Notes in Computer Science, vol. 7063, pp. 753-760, 2011. 7 [Storace 11] Storace M., Poggi T., Digital architectures realizing piecewise-linear multivariate functions: Two FPGA implementations, International Journal of Circuit Theory and Applications, vol. 39, no. 1, pp. 1-15, 2011. [Sugeno 85] Sugeno M, Nishida M., Fuzzy control of model car, Fuzzy Sets and Systems, vol. 16, no. 2, pp. 103-113, 1985. 50 [Sugeno 93] Sugeno M., Yasukawa T., A fuzzy-logic-based approach to qualitative modeling, IEEE Transactions on Fuzzy Systems, vol. 1, no. 1, pp. 7-31, 1993. 4 [Takagi 85] Takagi T., Sugeno M., Fuzzy identification of systems and its applications to modeling and control, IEEE Transactions on Systems, Man, and Cybernetics, vol. SMS-15, no. 1, pp. 116-132, 1985. 6 [Tarela 99] Tarela J.M., Mart´ınez M.V., Region configurations for realizability of lattice piecewise-linear models, Mathematical and Computer Modelling, vol. 30, no. 11-12, pp. 17-27, 1999. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 79 Bibliograf´ ıa [Thareja 07] Thareja V., Bolic M., Groza V., Design of a fuzzy logic coprocessor using Handel-C, in Proceedings of the 2nd IEEE International Workshop on Soft Computing Applications (SOFA’07), pp. 83-88, 2007. 20 [TMS320LF2407a] TMS320LF2407 Evaluation Module. Technical Reference, Spectrum Digital, Inc., 2000. 55, 60 [TMS320LF2407b] TMS320LF2407 Reference Guides, Texas Instruments, Inc. 56 [Torra 02] Torra V., A review of the construction of hierarchical fuzzy systems, International Journal of Intelligent Systems, vol. 17, pp. 531-543, 2002. 34 [Tsukamoto 79] Tsukamoto, Y., An approach to fuzzy reasoning method, chapter of Gupta M.M., Ragade R.K., Yager R.R. (Editors), Advances in fuzzy set theory and applications, North-Holland, Amsterdam - New York - Oxford, pp. 137-149, 1979. 1 [Tzafestas 10] Tzafestas S.G., Deliparaschos K.M., Moustris G.P., Fuzzy logic path tracking control for autonomous non-holonomic mobile robots: Design of System on a Chip, Robotics and Autonomous Systems, vol. 58, pp. 1017-1027, 2010. 56 [Ungering 94] Ungering A.P., Bauer H., Goser K., Architecture of a fuzzy-processor based on an 8-bit microprocessor, in Proceedings of the 3rd IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’94), vol. 1, pp. 297-301, 1994. 19 [V´azquez 94] V´azquez F, Garc´ıa E., A local guidance method for low-cost mobile robots using fuzzy logic, Annual Review in Automatic Programming, vol. 19, pp. 203-207, 1994. 53 [Vernon 07] Vernon D., Metta G., Sandini G., A survey of artificial cognitive systems: implications for the autonomous development of mental capabilities in computational agents, IEEE Transactions on Evolutionary Computation, vol. 11, no. 2, pp. 151-180, 2007. 48 [Virtex-II] Virtex-II Pro and Virtex-II Pro X FPGA User Guide, Xilinx, 2007. [von Altrock 98] von Altrock C., Adapting existing hardware for fuzzy computation, in Handbook of Fuzzy Computation, Institute of Physics Publishing, 1998. 19 [Wang 92a] Wang L.-X., Mendel J.M., Fuzzy basis functions, universal approximation, and orthogonal least-squares learning, IEEE Transactions on Neural Networks, vol. 3, no. 5, pp. 807-814, 1992. 29 [Wang 92b] Wang L.-X., Mendel J.M., Generating fuzzy rules by learning from examples, IEEE Transactions on System, Man and Cybernetics, vol. 22, no. 6, pp. 1414-1427, 1992. 10 [Wang 97] Wang L.-X., A course in fuzzy systems and control, Prentice Hall, New York, NY, USA, 1997. 1 [Wang 98] Wang L.-X., Universal approximation by hierarchical fuzzy systems, Fuzzy Sets and Systems, vol. 130, no. 2, pp. 175-188, 2002. 38 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 80 Bibliograf´ ıa [Wang 99] Wang L.-X., Analysis and design of hierarchical fuzzy systems, IEEE Transactions on Fuzzy Systems, vol. 7, no. 5, pp. 617-624, 1999. 38 [Wang 03] Wang X., Yang S.X., A neuro-fuzzy approach to obstacle avoidance of a nonholonomic mobile robot, in Proceedings of the 2003 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM’03), vol. 1, pp. 29-34, 2003. 53 [Wang 04] Wang X., Yang S.X., Meng M.Q.-H., Intelligent obstacle avoidance for an autonomous mobile robot, in Proceedings of the 5th World Congress on Intelligent Control and Automation (WCICA’04), vol. 5, pp. 4656-4660, 2004. 55 [Wen 09] Wen C., Ma X., Ydstie B.E., Analytical expression of explicit MPC solution via lattice piecewise-affine function, Automatica, vol. 45, no. 4, pp. 910-917, 2009. [Wooldridge 09] Wooldridge M.J., An introduction to multiagent systems, John Wiley & Sons Ltd., 2009. 53 [Xfuzzy] Xfuzzy: Fuzzy Logic Design Tools,http://www.imse.cnm.es/Xfuzzy 22 [Yager 94] Yager R.R, Filev D.P., Approximate clustering via the mountain method, IEEE Transactions on Systems, Man, and Cybernetics, vol. 24, no. 8, 1994. 9 [Yen 95] Yen J., Langari R., Zadeh L.A., Industrial applications of fuzzy logic and intelligent systems, IEEE Press, New York, NY, USA, 1995. 19 [Yen 99] Yen J., Wang L., Simplifying fuzzy rule-based models using orthogonal transformation methods, IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, vol. 29, no. 1, pp. 13-24, 1999. 29 [Zadeh 65] Zadeh L.A., Fuzzy sets, Information and Control, vol. 8, no. 3, pp. 338-353, 1965. 1 [Zadeh 73] Zadeh, L.A., Outline of a new approach to the analysis of complex systems and decision processes, IEEE Transactions on Systems, Man, and Cybernetics, vol. SMC-3, no. 1, pp. 28-44, 1973. 1 [Zeng 05a] Zeng X.-J., Goulermas J.Y., Keane J.A., Liatsis P., Approximation capabilities of hierarchical neural-fuzzy systems for function approximation on discrete spaces, International Journal of Computational Intelligence Research, vol. 1, no. 1, pp. 29-41, 2005. 45 [Zeng 05b] Zeng X.-J., Keane J.A., Approximation capabilities of hierarchical fuzzy systems, IEEE Transactions on Fuzzy Systems, vol. 13, no. 5, pp. 659-672, 2005. 41, 44 [Zeng 08] Zeng X.-J., Goulermas J.Y., Liatsis P., Wang D., Keane J.A., Hierarchical fuzzy systems for function approximation on discrete input spaces with application, IEEE Transactions on Fuzzy Systems, vol. 16, no. 5, pp. 1197-1215, 2008. 45 [Zhang 03] Zhang D.-Q., Chen S.-C., Clustering incomplete data using kernel-based fuzzy c-means algorithm, Neural Processing Letters, vol. 18, no. 3, pp. 155-162, 2003. 8 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 81 Bibliograf´ ıa [Zhang 05] Zhang N., Beetner D., Wunsch D.C., Hemmelman B., Hasan A., An embedded real-time neuro-fuzzy controller for mobile robot navigation, in Proceedings of the 14th IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’05), pp. 319- 324, 2005. 53 [Zhang 10] Zhang N., Kamdem R., Ososanya E., Mahmoud W., Liu W., VHDL implementation of the hybrid fuzzy logic controllers with FPGA, in Proceedings of the 2010 International Conference on Intelligent Control and Information Processing (ICICIP’10), pp. 5-10, 2010. 22 [Zhou 06] Zhou S.-M., Gan J.Q., Constructing accurate and parsimonious fuzzy models with distinguishable fuzzy sets based on an entropy measure, vol. 157, no. 8, pp. 1057-1074, 2006. 29 [Zhou 08] Zhou S.-M., Gan J.Q., Low-level interpretability and high-level interpretability: A unified view of data-driven interpretable fuzzy system modelling, Fuzzy Sets and Systems, vol. 159, no. 23, pp. 3091-3131, 2008. 25, 29 Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 82 Breve Curriculum Vitae El autor recibi´o el t´ıtulo de Licenciado en F´ısica en la Universidad de C´ordoba en 2004 con la calificaci´on de Premio Extraordinario. En 2005 obtuvo una beca FPU adscrita a la Escuela T´ecnica Superior de Ingenier´ıa Inform´atica de la Universidad de Sevilla, que disfrut´o hasta 2007. En 2008 obtuvo el Diploma de Estudios Avanzados con la calificaci´on de Sobresaliente en el Programa de Doctorado de Microelectr´onica del Departamento de Electr´onica y Electromagnetismo de la Universidad de Sevilla. Desde 2007 hasta la actualidad, es profesor a tiempo completo del Departamento de Arquitectura de Computadores, Electr´onica y Tecnolog´ıa Electr´onica de la Universidad de C´ordoba. Publicaciones en revistas: Quiles F.J., Ortiz M., Gersnoviez A., Brox M., Olivares A., Gl¨osek¨otter P., Development of a wireless low power datalogger with high performance converter, Elektronika ir Elektrotechnika, vol. 21, no. 3, dx.doi.org/10.5755/j01.eee, 2015. Baturone I., Gersnoviez A., Barriga A., Neuro-fuzzy techniques to optimize an FPGA embedded controller for robot navigation, Applied Soft Computing, vol. 21, pp. 95-106, 2014. Arjona R., Gersnoviez A., Baturone I., Fuzzy models for fingerprint description, Lecture Notes in Computer Science, vol. 6857, pp. 228-235, 2011. Barriga A., S´anchez-Solano S., Baturone I., Moreno-Velo F.J., Brox P., Montesino F., Hussein N.M., Brox M., Gersnoviez A., Fuzzy logic activities at the Microelectronics Institute of Seville, Lecture Notes in Computer Science, vol. 3931, pp. 157-162, 2006. Participaciones en congresos internacionales: Baturone I., Mart´ınez-Rodr´ıguez M.C., Brox P., Gersnoviez A., Digital implementation of hierarchical piecewise-affine controllers, in Proceedings of the 2011 IEEE International Symposium on Industrial Electronics (ISIE’11), pp. 1497-1502, 2011. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 83 Breve Curriculum Vitae Baturone I., Gersnoviez A., Automatic extraction of linguistic models for image description, in Proceedings of the 2010 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’10), pp. 1-8, 2010. Baturone I., S´anchez-Solano S., Gersnoviez A., Brox M., An automated design flow from linguistic models to piecewise polynomial digital circuits, in Proceedings of the 2010 IEEE International Symposium on Circuits and Systems (ISCAS’10), pp. 3317-3320, 2010. Ortiz M., Brox M., Quiles F.J., Gersnoviez A., Moreno C., Montijano M., Using soft processors for component design in SOC: A case-study of timers, in Proceedings of the 2008 International Symposium on System-on-Chip (SOC’08), pp. 1-4, 2008. Baturone I., Gersnoviez A., A simple neuro-fuzzy controller for car-like robot navigation avoiding obstacles, in Proceedings of the 2007 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’07), pp. 1-6, 2007. Baturone I., Moreno-Velo F.J., S´anchez-Solano S., Barriga A., Brox P., Gersnoviez A., Brox M., Using Xfuzzy environment for the whole design of fuzzy systems, in Proceedings of the 2007 IEEE International Conference on Fuzzy Systems (FUZZIEEE’07), pp. 1-6, 2007. Baturone I., Moreno-Velo F.J., Gersnoviez A., A CAD approach to simplify fuzzy system descriptions, in Proceedings of the 2006 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE’06), pp. 2392-2399, 2006. Barriga A., S´anchez-Solano S., Baturone I., L´opez D., Moreno-Velo F.J., Brox P., Montesino F., Hussein N.M., Brox M., Gersnoviez A., New features of the fuzzy logic development environment Xfuzzy, in Proceedings of the 2006 International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems (IPMU’06), pp. 17-20, 2006. Baturone I., Moreno-Velo F.J., Gersnoviez A., Identifying fuzzy systems from numerical data with Xfuzzy, in Proceedings of the 2005 Conference of the European Society for Fuzzy Logic and Technology (EUSFLAT’05), pp. 1257-1262, 2005. Participaciones en congresos nacionales: Baturone I., Gersnoviez A., Dise˜no de sistemas neuro-difusos para control de robots mediante Xfuzzy 3, en Actas del IX Congreso de Tecnolog´ıas Aplicadas a la Ense˜nanza de la Electr´onica (TAEE’10), pp. 1-8, 2010. Gersnoviez A., Baturone I., Controlador para navegaci´on reactiva evitando obst´aculos mediante t´ecnicas neuro-fuzzy, en Actas del XIV Congreso Espa˜nol sobre Tecnolog´ıas y L´ogica Fuzzy (ESTYLF’08), pp. 551-556, 2008. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 84 Bibliograf´ ıa Brox M., S´anchez-Solano S., Brox P., Baturone I., Barriga A., Gersnoviez A., S´ıntesis hardware de m´odulos de inferencia difusos mediante herramientas de dise˜no de DSP, en Actas del VIII Congreso de Tecnolog´ıas Aplicadas a la Ense˜nanza de la Electr´onica (TAEE’08), pp. 152, 2008. Gersnoviez A., Baturone I., Moreno-Velo F.J., Extracci´on de bases de reglas simples y ling¨u´ısticamente interpretables, en Actas del XIII Congreso Espa˜nol sobre Tecnolog´ıas y L´ogica Fuzzy (ESTYLF’06), pp. 111-116, 2006. Brox M., Gersnoviez A., S´anchez-Solano S., Baturone I., Controlador difuso para problemas de navegaci´on en presencia de obst´aculos fijos, en Actas del XIII Congreso Espa˜nol sobre Tecnolog´ıas y L´ogica Fuzzy (ESTYLF’06), pp. 29-34, 2006. Brox M., Gersnoviez A., S´anchez-Solano S., Cabrera A., Baturone I., Desarrollo de m´odulos-IP de controladores difusos para el dise˜no de sistemas empotrados sobre FPGAs, en Actas del VII Congreso de Tecnolog´ıas Aplicadas a la Ense˜nanza de la Electr´onica, pp. 83-84, 2006. Dise˜ no e Implementaci´ on de Sistemas Neuro-Difusos Simplificados 85