scieee AI-readable full text Open interactive document viewer

Controladores difusos. Ejemplo de extracción automática de bases de conocimiento para controladores difusos desarrollados con Fuzzy-CLIPS (LSI-2000-05)

Peña Siles, Joaquín; Leal, Francisco; Ruiz Cortés, Antonio

Full text

& 21752/$'25(6 ' ,)8626 ( -(03/2'( ( ;75$&&,Ï1 $ 8720È7,&$'( % $6(6'( & 212&,0,(1723$5$ & 21752/$'25(6 ' ,)8626 ' (6$552//$'26&21 ) 8==< &/,36 -RDTXtQ3HxD)UDQFLVFR/HDO\$QWRQLR5XL] ,QIRUPH7pFQLFR 'SWR/HQJXDMHV\6LVWHPDV,QIRUPiWLFRVGHOD8QLYHUVLGDGGH6HYLOOD $YGDGHOD5HLQD0HUFHGHVVQ6HYLOOD (PDLOMSHQD#OVLXVHV 2 ,1',&(  ,1752'8&&,Ï187,/,=$&,Ï1'(/$/Ï*,&$',)86$(1/26 352%/(0$6'(&21752/   &21752/$'25(6',)8626 2.1 ESTRUCTURA DE UN CONTROLADOR DIFUSO .....................................................5 2.2 BASE DE CONOCIMIENTO...................................................................................6  5HJODV'LIXVDV%DVHGH5HJODV  )XQFLRQHVGH3HUWHQHQFLD%DVHGH'DWRV 2.3 INTERFAZ DE FUZZIFICACIÓN. ...........................................................................9 2.4 MOTOR DE INFERENCIA. INFERENCIA DIFUSA..................................................11 2.5 INTERFAZ DE DEFUZZIFICACIÓN. .....................................................................15 2.6 EJEMPLO DE DISEÑO DE UN CONTROLADOR DIFUSO .........................................16  $/*25,702'(:$1*<0(1'(/  (-(03/2'($3/,&$&,Ï16,67(0$(;3(572'(',$*1Ï67,&2 0e',&2 4.1 GENERACIÓN DE LA BASE DE CONOCIMIENTO..................................................24 4.2 FUNCIONAMIENTO DE LA APLICACIÓN:.............................................................27  3XHVWDUiSLGDHQIXQFLRQDPLHQWR  ([SOLFDFLyQGHWDOODGDGHOIXQFLRQDPLHQWRGHODDSOLFDFLyQ  %,%/,2*5$)Ë$ 3   ,QWURGXFFLyQ 8WLOL]DFLyQ GH OD /yJLFD 'LIXVD HQ ORV SUREOHPDVGH&RQWURO La Lógica Difusa, basada en la Teoría de Conjuntos Difusos [3], hace uso de dichos conjuntos para modelar la incertidumbre y los conceptos imprecisos o ambiguos. Mientras que en la Teoría de Conjuntos Clásica un elemento pertenece o no a un conjunto, la Teoría de Conjuntos Difusa reconoce que puede haber distintos grados de pertenencia a uno o más conjuntos. Los conjuntos difusos permiten, gracias a esto, hacer un tratamiento lingüístico de los elementos y, aunque ésta no sea la manera perfecta de describir la realidad, se aproxima mucho más que cualquier otra existente. Una de las formas básicas de representar el conocimiento es bajo la forma de reglas de decisión o control del tipo “Si (condición)...Entonces..(decisión)...”. Pero, generalmente, el conocimiento de un experto (o la información que se obtiene de un proceso) se explica en términos de conceptos imprecisos e implica operaciones y decisiones no bien definidas o concretas. Los conjuntos difusos representan, en cierta manera, “valores lingüísticos” de una determinada magnitud. De este modo surge el concepto de “variable lingüística” como aquella que toma valores lingüísticos, por ejemplo, Temperatura=”muy baja”,”alta”... frente a la variable numérica clásica, que sólo admite valores concretos, como Temperatura=20ºC., 40ºC., etc... El elemento primario de la Lógica Difusa es el Lenguaje Natural, y sus esquemas de razonamiento son esquemas de “razonamiento aproximado” con proposiciones imprecisas, típicamente de carácter lingüístico, como podrían ser las reglas que se obtienen a partir de la expresión lingüística del conocimiento de un operador humano versado en el control de un determinado proceso. Uno de las principales aportaciones de la aplicación de la lógica difusa en la automatización de procesos es la inclusión de la heurística y de la experiencia acumuladas por un operador experto. Esto ha llevado a pensar en la posible sustitución de leyes de control poco efectivas por soluciones basadas en consideraciones heurísticas sobre el proceso a controlar. En principio, se podría pensar que los datos que se utilizan en un sistema de control son objetivos y precisos, pero no siempre es así. En suma, la Lógica Difusa, o más adecuadamente la Teoría de Conjuntos Difusos, encuentra sus aplicaciones más importantes en sistemas complejos que no tienen linealidades en su forma de operar, y que por extensión ha encontrado sus principales aplicaciones en el control de: · Sistemas no lineales. · Sistemas con perturbación no predecible, o sensores poco precisos, y · Sistemas donde se necesita incorporar la experiencia humana. Además, los datos de entrada incluso pueden ser subjetivos y vagos (ej.: los que se obtienen de la observación humana). Es precisamente debido a estas imprecisiones por lo que se incluye la heurística. 4 El Control de Procesos es el campo en que la lógica difusa ha tenido mayor auge, ya que la inclusión de lógica heurística permite obtener soluciones simples y eficientes para el control de determinados procesos. La introducción de heurística en forma de reglas puede contemplar y mejorar el comportamiento de un algoritmo de control discreto, introduciendo reglas “clásicas” basadas en la Lógica Binaria clásica. Pero en el diseño y obtención de reglas que involucran los esquemas vagos de razonamiento de un experto, la heurística no puede ser transferida o asimilada, al menos de manera directa, en forma de reglas desarrolladas según la Lógica Clásica y la Teoría Clásica de Conjuntos. La experiencia de un experto puede aparecer recogida en un conjunto de reglas del tipo: “SI (la Humedad es BAJA) Y (la Temperatura es MUY ALTA) ENTONCES (aumentar CONSIDERABLEMENTE la Potencia del sistema)”. Estas reglas pueden entenderse como combinaciones de ciertas variables y magnitudes lingüísticas dentro del ámbito de la Teoría de los Conjuntos Difusos y la Lógica Difusa. Los esquemas de razonamiento aproximado se implementarán a partir de operadores y relaciones construidos según las propiedades y operaciones básicas definidas sobre los conjuntos difusos. Los Controladores basados en Lógica Difusa (FLCs) [1] pueden considerarse como controladores digitales en los que la señal de control que se aplica sobre el proceso se obtiene tras una “inferencia difusa” a partir de las variables actuales del proceso (normalmente salida y consigna actuales), y una matriz de reglas, obtenida como protocolo lingüístico proporcionado por ingenieros u operadores del proceso. En un controlador basado en reglas, el principal esfuerzo de diseño reside fundamentalmente en la adquisición adecuada de la heurística del experto en forma de reglas de control. El éxito de los Controladores Difusos no radica en sí en la utilización de conjuntos difusos, sino en su naturaleza basada en reglas. Esto no quiere decir que la teoría de conjuntos difusos no sea importante. Ésta hace que la implementación de un controlador basado en reglas de carácter heurístico sea mucho más fácil que por cualquier otro método. En definitiva, el desarrollo de los controladores basados en reglas de naturaleza heurística necesita de los conjuntos difusos para modelar los conceptos e informaciones vagas e imprecisas, necesita de una Teoría de Conjuntos Difusos que defina las propiedades y operaciones características de este nuevo tipo de conjuntos, que permitan desarrollar operadores y conectivos lógicos adecuados para combinar la información cualitativa formando proposiciones lógicas que reflejen la heurística de control (reglas), así como implementar los esquemas de inferencia o “razonamiento apropiado” que requiere esta nueva concepción lógica (Lógica Difusa). 5   &RQWURODGRUHV'LIXVRV   (VWUXFWXUDGHXQ&RQWURODGRU'LIXVR La figura 2.1 muestra la estructura genérica de un FLC. Un FLC es un tipo de Sistema Basado en Reglas Difusas que está compuesto por una ,QWHUID]GH)X]]LILFDFLyQ , una %DVHGH &RQRFLPLHQWR , un 6LVWHPDGH,QIHUHQFLD y la ,QWHUID]GH'HIX]]LILFDFLyQ Figura 2.1. Estructura genérica de un FLC. La ,QWHUID]GH)X]]LILFDFLyQ realiza un escalado (no siempre necesario) de los valores de las entradas para adecuarlos a los valores típicos para los que se define el controlador, y posteriormente realiza la IX]]LILFDFLyQ . La IX]]LILFDFLyQ consiste en la conversión de los datos de la entrada en valores lingüísticos apropiados para ser utilizados como entidades difusas. La %DVHGH&RQRFLPLHQWR está constituída por una %DVHGH'DWRV y una %DVHGH 5HJODV . La Base de Datos contiene las definiciones de las etiquetas lingüísticas, es decir, la funciones de pertenencia de los Conjuntos Difusos en que se dividen las variables de entrada y de control. La Base de Reglas es una colección de reglas de control difuso que representa el conocimiento experto del sistema a controlar. El 6LVWHPD GH,QIHUHQFLD inferirá las acciones de control difuso empleando alguna representación de la implicación difusa, así como de los procedimientos de la lógica difusa. La ,QWHUID] GH 'HIX]]LILFDFLyQ convierte la acción difusa de control actualmente inferida en una acción concreta susceptible de aplicación sobre el proceso, y realiza un escalado (cuando sea necesario) para adecuar los rangos de salida para los que se ha definido el controlador con las entradas del proceso. 6   %DVHGH&RQRFLPLHQWR   5HJODV'LIXVDV%DVHGH5HJODV Considérese como ejemplo ilustrativo un problema genérico que puede ser resuelto en términos de razonamiento aproximado por un ser humano experto en la materia, generalmente siguiendo el esquema del modus ponens generalizado. Esto quiere decir que el experto es capaz, mediante un conjunto de reglas o pautas de actuación que constituyen su experiencia sobre el tema, de elaborar unas conclusiones o consecuentes a partir de unos hechos observados o antecedentes. El experto podrá transmitir sus conocimientos, al menos parcialmente, mediante un conjunto de N reglas del tipo “IF-THEN”, con antecedentes relacionados por el conectivo “AND” en la mayoría de los casos. IF A1AND B1THEN C1 IF A2AND B2THEN C2 ·· ·· ·· IF ANAND BNTHEN CN Supóngase que Ai, Bi y Ci son números difusos en los universos $ , % y & , cuyas funciones de pertenencia estarán determinadas también por el experto. Cada una de las reglas se puede expresar como una relación difusa definida mediante los conectivos “AND” y “THEN”. El conectivo AND es la conjunción y el conectivo THEN representa la implicación. La representación de estos conectivos se puede realizar mediante el uso del mínimo, obteniendo la siguiente expresión: μRi=min{μAi(a), μBi(b), μCi(c)} donde H , GH y X son elementos pertenecientes a los universos $ , % y & respectivamente. Esta expresión determina el grado de verdad de la variable lógica formada por la proposición lógica (regla). La experiencia total del experto estará formada por la unión de todas las reglas. Como cada regla heurística de control está representada por una relación difusa, el comportamiento global del Controlador Difuso podrá caracterizarse por una única relación difusa que será una combinación adecuada de las relaciones que constituyen cada regla. La combinación puede realizarse con un conectivo “OR”. Es decir, podrá considerarse que es la relación difusa que resulta de aplicar el conectivo “OR” a cada una de las relaciones que expresan las reglas individuales. Simbólicamente, R=OR (R1, R2,.....,RN) Desde un punto de vista práctico, los aspectos de eficiencia y computabilidad exigibles a un controlador industrial requieren una simplificación del algoritmo difuso. Se optará como el máximo para la implementación del conectivo “OR”: 7 R=R1∪R2∪...RN= ∪Ri (i=1...n) μR(a,b,c)=max {min{μAi(a), μBi(b), μCi(c)}} siendo 1≤i≤N. La experiencia del ser humano, recogida y almacenada en este tipo de reglas, es lo que se denomina Base de Reglas. Existen varios modos de derivación de las reglas de control, siendo este punto fuente de numerosas investigaciones actualmente. Entre éstos se pueden destacar: • Los basados en la experiencia de un experto, generalmente a través de la expresión verbal de su experiencia como experto, o a partir de cuestionarios cuidadosamente organizados. • Los basados en las acciones de control de un operador, en función de los datos de entradasalida observados o muestreados. • Los basados en un modelo difuso del proceso. • Los basados en el aprendizaje (controladores autorganizados). Para ilustrar lo explicado anteriormente sobre la Base de Reglas, se propone el siguiente ejemplo: Supóngase un sistema que controla la potencia de un sistema de aire acondicionado en base a la temperatura y a la humedad ambientes. Supóngase que el sistema de refrigeración se desea controlar con una serie de reglas definidas mediante la observación de un experto. El experto generará las reglas que determinan los valores de la salida ( SRWHQFLD ) en función de las variables de entrada ( WHPSHUDWXUD y KXPHGDG La siguiente figura representa la estructura de la %DVHGH5HJODV en que se apoya el sistema. Esta %DVHGH5HJODV , como se puede observar en la figura, correspondería al sistema presentado anteriormente, con sus variables de entrada ( WHPSHUDWXUD y KXPHGDG ambientes). La variable de salida ( SRWHQFLD que se le suministra al sistema) no aparece en la tabla expresamente. Su valor se determina mediante la intersección de un valor de WHPSHUDWXUD y uno de KXPHGDG . Ahora se explicará el procedimiento para obtener el valor de la salida a partir de cualesquiera valores en las entradas. Figura 2.2. Tabla correspondiente a la Base de Reglas. 8 Los valores que se representan a la derecha de la tabla (VL,L,H,VH) son las etiquetas lingüísticas que se hacen corresponder a los valores de cada una de las variables (de entrada y de salida). La tabla sintetiza las reglas que ha generado el experto. Por ejemplo, la correspondencia entre el valor de WHPSHUDWXUD H (temperatura alta) y el de valor de KXPHGDG L (humedad baja) da lugar, según la tabla, a un valor de la potencia de L (baja potencia para el sistema). La regla generada sería : ,) 7HPSHUDWXUD ,6 + $1' +XPHGDG ,6 / 7+(1 3RWHQFLD ,6 / Otras posibles reglas serían: ,) 7HPSHUDWXUD ,6 + $1' +XPHGDG ,6 9/ 7+(1 3RWHQFLD ,6 / ,) 7HPSHUDWXUD ,6 + $1' +XPHGDG ,6 9+ 7+(1 3RWHQFLD ,6 9+ · · ·   )XQFLRQHVGH3HUWHQHQFLD%DVHGH'DWRV Las reglas de un Controlador Difuso se caracterizan mediante la cuantificación y normalización de los Universos de Discurso, el número de Conjuntos Difusos o categorías lingüísticas de entrada o de control, así como las funciones de pertenencia asociadas a cada uno de estos conjuntos. El número de niveles de cuantificación determina la exactitud del control obtenido. El número de categorías lingüísticas determina la granularidad del control que se puede obtener con un Controlador Difuso. A la hora de definir los Conjuntos Difusos y sus funciones de pertenencia existen dos posibilidades: a) que los universos sean GLVFUHWRV : la función de pertenencia de un Conjunto Difuso se representa mediante un vector de números cuya dimensión depende del grado de discretización. b) que los universos sean FRQWLQXRV : las funciones de pertenencia se representan mediante funciones regulares, normalmente triangulares o trapezoidales. La elección de la forma de la función de pertenencia se decidirá según el proceso a realizar. Por ejemplo, si los datos medibles van a estar afectados por ruídos, las funciones de pertenencia deberían ser suficientemente anchas para poder reducir la sensibilidad del controlador frente a estos. De lo anterior se deduce que la especificación de las funciones de pertenencia será un aspecto fundamental a la hora de proporcionar robustez al controlador. Posteriormente se explicará con más detalle la importancia de que las funciones de pertenencia sean lo suficientemente anchas. En la figura 2.3 se pueden observar las funciones de pertenencia para diferentes clasificaciones lingüísticas, también llamadas variables lingüísticas o Conjuntos Difusos. Las 9 variables lingüísticas son, en este caso: 9/ , / , + , 9+ (ver ejemplo anterior sobre la  %DVH GH 5HJODV ). Dichas variables lingüísticas están definidas por las funciones trapezoidales definidas por el experto (de ahí su irregularidad) que se observan en la figura 2.3. La variable particionada en Conjuntos Difusos será la WHPSHUDWXUD (ver ejemplo anterior sobre la  %DVH GH 5HJODV ). La figura indica, por tanto, a qué variable o variables lingüísticas corresponde un determinado valor lingüístico de la variable WHPSHUDWXUD . Un valor lingüístico de la variable puede pertenecer a varios Conjuntos Difusos, pero la función de pertenencia tomará diferentes valores según la variable lingüística que se esté considerando. Ejemplo: Supóngase que el valor numérico de la variable temperatura es 43º. En la figura 2.3 se observa que dicho valor se encuentra dentro de dos clasificaciones lingüísticas: H y VH. El valor 43º tendrá distintos grados de pertenencia para cada una de estas clasificaciones lingüísticas: se puede observar que el grado de pertenencia al Conjunto Difuso VH es mayor que el grado de pertenencia al conjunto H. Como se verá posteriormente, el grado de pertenencia determina la actitud del controlador, ya que a cada valor lingüístico de la variable ( WHPSHUDWXUD se le asignará la clasificación lingüística 9//+9+ cuya función de pertenencia (función trapezoidal en este caso) se ajuste más a dicho valor de variable (es decir, la clasificación lingüística cuya función de pertenencia obtenga el máximo valor para cada valor lingüístico de la variable). Figura 2.3. Funciones de Pertenencia para diferentes clasificaciones lingüísticas.   ,QWHUID]GH)X]]LILFDFLyQ 16 Normalmente, el operador de agregación que modela al conector WDPELpQ (G) es el mínimo o el máximo. Tras esto, el conjunto difuso B’ se defuzzifica usando cualquier estrategia como puede ser “Media de los Máximos”. Media de la Máxima (normalmente llamada MOM): y0= (y1 + y2)/2 cuando y1=Min{z/μb’(z)=Max μb’(y)} ; y2=Max {z/μb’(z) = Max μb’(y)} Â 0RGR% : 3ULPHUR'HIIX]LILFDFLyQ'HVSXpV$JUHJDFLyQ Evita el cálculo del conjunto difuso final %¶ considerando la contribución de cada salida de la regla individualmente, obteniendo la acción final de control mediante el cálculo (una media, una suma ponderada o una selección de alguna de ellas) de un valor concreto característico asociado a cada uno de ellos. Por ejemplo, 9DORU0i[LPRSRQGHUDGRSRUHOHPSDUHMDPLHQWR 7,13,28: y0=Σ i (hi*Gi )/Σ ihi siendo hi el grado de emparejamiento y Gi Históricamente, el modo A fue por primera vez propuesto y utilizado en las aproximaciones iniciales al control difuso 19,20 . Por otro lado, el modo B es uno de los más usados hoy en día en los sistemas de tiempo real más avanzados (que necesitan una respuesta lo más rápida posible) y en muchas otras clases de sistemas, debido a su simplicidad.   (MHPSORGHGLVHxRGHXQ&RQWURODGRU'LIXVR Hasta ahora se han explicado los diferentes pasos que realiza un Controlador Difuso. Este apartado presenta un ejemplo de realización de un Controlador Difuso desde el principio, tratando los diferentes pasos a seguir para su diseño. El sistema elegido es el del control de la potencia suministrada a un sistema de aire acondicionado propuesto anteriormente. El primer paso es definir las variables de entrada y de salida del sistema: las entradas serán, como se explicó en apartados anteriores, la WHPSHUDWXUD y la KXPHGDG . La salida del sistema será la SRWHQFLD que se le proporciona al aparato de aire acondicionado. El muestreo será realizado mediante un operador humano que tome periódicamente muestras de la temperatura ambiente mediante un termómetro y de la humedad mediante un higómetro. La potencia que se le suministra al sistema se medirá mediante un polímetro. Existen, por tanto, tres Universos de Discurso, uno por cada variable. En cada universo se definirán cuatro Conjuntos Difusos, cada uno correspondiente a una variable lingüística. Las variables lingüísticas serán VL, L, H y VH (muy bajo, bajo, alto y muy alto). 17 Una vez definidas tanto las variables del sistema como los Universos de Discurso y sus categorías lingüísticas, se puede pasar a la definición de las funciones de pertenencia de cada uno de los Conjuntos Difusos. En este caso se suponen las siguientes funciones de pertenencia para las variables de estado T y H (ver figura 2.6) Figura 2.6. Funciones de Pertenencia para las variables de estado T y H y ésta otra para la variable P (ver figura 2.7): Figura 2.7. Función de Pertenencia para la variable de control P. En este caso las funciones de pertenencia han sido definidas por el experto. También podrían haber sido definidas arbitrariamente. Como se puede observar en la figura, los Conjuntos Difusos se solapan entre sí. Esto es así para que no existan zonas muertas entre los Conjuntos Difusos y siempre se activen dos Conjuntos Difusos por universo. Esto provoca la activación de cuatro reglas en el mismo periodo de muestreo, ya que si a un valor de T le corresponden dos Conjuntos Difusos y a un valor de H le corresponden otros dos, se generarán cuatro posibles reglas. Ejemplo: Para los valores concretos de los sensores de 8.5º de temperatura y 81% de humedad se obtendrían las siguientes reglas: ,) 7HPSHUDWXUD ,6 9/ $1' +XPHGDG ,6 + 7+(1 3RWHQFLD ,6 / ,) 7HPSHUDWXUD ,6 9/ $1' +XPHGDG ,6 9+ 7+(1 3RWHQFLD ,6 + ,) 7HPSHUDWXUD ,6 / $1' +XPHGDG ,6 9+ 7+(1 3RWHQFLD ,6 / 18 ,) 7HPSHUDWXUD ,6 / $1' +XPHGDG ,6 9+ 7+(1 3RWHQFLD ,6 9+ ya que t0=8.5º pertenece a los Conjuntos Difusos VL y L, y h0=81% a los conjuntos H y VH (ver figuras 2.8 y 2.9). Figura 2.8. Correspondencia del valor de temperatura t0=8.5º. Figura 2.9. Correspondencia del valor de humedad h0=81%. Si únicamente se activara un Conjunto Difuso por universo, se generaría una sola regla por cada combinación de valores. La existencia de varias reglas permite realizar una selección de la más adecuada entre las mismas (se elige la de mayor grado). Si la temperatura es, por ejemplo, de 8.5º, no tiene sentido clasificarla únicamente como “temperatura muy baja” ya que está cerca de ser simplemente “baja”. Es esta la razón por la que se realiza el solapamiento. Hay que hacer notar también que los Conjuntos Difusos VL y VH están acotados para la variable P ya que, si no fuera así, el procedimiento de defuzzificación mediante el método del centro de gravedad o mediante el método del máximo grado de pertenencia no sería posible. Una vez se han definido las funciones de pertenencia, se procede a generar las reglas de la Base de Conocimiento. Las reglas se obtienen, en este ejemplo, de las acciones del controlador sobre la variable de salida ante las variables de entrada. Se genera una tabla como la siguiente (ver figura 2.10): 19 Figura 2.10. Base de Reglas Posteriormente se generan los diferentes grados de activación de las reglas según los valores de las variables del sistema. Para ello, se recorren cada una de las reglas de la Base de Reglas, realizando la inferencia según la tabla de la figura 2.10. Aquí se representan dos de las cuatro posibles reglas cuyo grado de emparejamiento no es 0 (ver figura 2.11): Figura 2.11. Base de Reglas Las reglas representadas son: ,) 7HPSHUDWXUD ,6 / $1' +XPHGDG ,6 9+ 7+(1 3RWHQFLD ,6 9+ ,) 7HPSHUDWXUD ,6 9/ $1' +XPHGDG ,6 + 7+(1 3RWHQFLD ,6 / Se ha utilizado la t-norma del mínimo como conectivo AND, de forma que αi=min{μTi(t), μHi(h)}. Como operador de implicación se ha utilizado el Mínimo. Tras esto, se realiza el proceso de defuzzificación. Se utilizará el Modo A (Agregación primero y defuzzificación después), obteniendo el resultado siguiente (ver figura 2.11): 20 Figura 2.11. Base de Reglas 21   $OJRULWPRGH:DQJ\0HQGHO Una de las técnicas más conocidas para poder construir las reglas de control de un sistema basado en Lógica Difusa es el algoritmo de Wang y Mendel [4]. Mediante dicho algoritmo, se obtiene una Base de Reglas de control difusas partiendo de un conjunto de ejemplos y, opcionalmente, de la experiencia aportada por un experto humano (en caso de disponer de ella). Estos dos aspectos se relacionan íntimamente: el conjunto de ejemplos (proporcionado al algoritmo mediante un muestreo del sistema) complementa a las reglas del operador experto, ya que éste puede no ser capaz de expresar todas y cada una de las reglas que realmente utiliza para controlar su sistema. Por otro lado, la obtención de las reglas mediante un muestreo puede ser apoyada mediante reglas concretas creadas por el experto. En un principio, el algoritmo de Wang y Mendel no surgió con este fin, sino que pretendía ser un Controlador Difuso que aprendiera por sí mismo a generar las reglas que lo controlaran. Para la generación de la mencionada Base de Reglas Difusas, se parte de un conjunto de ejemplos que consiste en los pares numéricos “estado del sistema” y “acción de control a ejecutar” en tal estado. Este conjunto de ejemplos es obtenido como una matriz de datos procedente del muestreo en el tiempo de las variables, tanto de estado como de control, del sistema que se desea controlar mientras el experto actúa sobre el sistema de modo satisfactorio. El algoritmo de Wang y Mendel cubre el vacío producido por la probable incapacidad, por parte del experto humano, de expresar de manera certera y eficiente todas y cada una de las reglas que utiliza realmente a la hora de controlar un sistema determinado. Además, el algoritmo permite la posibilidad de incorporar la experiencia de un experto humano en la medida de lo posible (o lo que es igual “en qué situación se realizan acciones”) expresada en forma de reglas “IF-THEN”. Gracias a esto último se puede complementar la Base de Reglas procedente del conjunto de ejemplos con la Base de Reglas generada por el experto. Este algoritmo, por tanto, es un método de obtención de Bases de Reglas para un FLC que sustituya a un controlador humano, ya que necesita los ejemplos de actuación del experto humano en forma numérica. 'HVFULSFLyQGHO$OJRULWPR El Algoritmo de Wang y Mendel se divide en cuatro pasos claramente diferenciados. Tras la ejecución secuencial de cada uno es los pasos se obtendrá la Base de Reglas que contiene las reglas por las que se regirá el Controlador Difuso correspondiente. •  3DVR  'HILQLFLyQGHODVSDUWLFLRQHVGLIXVDVGHODVYDULDEOHVGHHVWDGR\FRQWURO 22 La primera operación en la definición de las particiones difusas es tomar la primera variable de estado presente en la matriz. Se realiza entonces un recorrido de todos los valores presentes en la matriz para esta variable, y se tomarán el valor máximo y el valor mínimo (rango de valores de la variable en la matriz). Una vez hecho esto, se procederá a realizar una división del rango de valores en 2N+1 regiones, correspondiendo cada una de ellas a un Conjunto Difuso. Cada Conjunto Difuso, además, se define mediante una función de pertenencia. Las anteriores operaciones se repetirán de manera análoga para el resto de las variables de estado y de control presentes en la matriz, pudiendo ser tanto el valor de N como el tipo de función de pertenencia distintos para cada una de las variables. Del párrafo anterior se puede deducir que el algoritmo de Wang y Mendel no genera por sí sólo la Base de Datos que utiliza el Controlador Difuso, ya que requiere que tanto el parámetro N como los tipos de funciones de pertenencia sean definidos por el usuario. •  3DVR  *HQHUDFLyQGH5HJODV'LIXVDVGHVGHORVHMHPSORV Una vez obtenida la Base de Datos procedente del paso anterior, se podrán generar las reglas difusas a partir de los ejemplos. Cada ejemplo, formado por el par YDULDEOHVGHHVWDGR y YDULDEOHVGHFRQWURO produce una regla. La etiqueta difusa que corresponde a cada antecedente u consecuente de la regla es la función de pertenencia con la que mejor empareje el valor numérico de esa variable en cada ejemplo, es decir, la variable lingüística cuya función de pertenencia obtenga un mayor valor en ese punto. •  3DVR $VLJQDFLyQGHJUDGRVDFDGDUHJODJHQHUDGD . A cada regla generada por su correspondiente ejemplo se le asocia un grado (de 0 a 1). Para calcular el grado que le corresponde a cada regla, se realizarán las dos operaciones siguientes: • Recorrer cada una de las variables de estado y de control que la componen, calculando el valor de la función de pertenencia para la etiqueta difusa que se le ha asignado en el paso anterior. De este modo, se obtiene un grado de pertenencia para cada una de las variables que constituyen la regla, tanto antecedentes (variables de estado) como consecuentes (variables de control). • Una vez ejecutada la operación anterior, el grado de la regla en cuestión se puede calcular como el producto de los grados de pertenencia de todas las variables que componen la regla. Una vez se ha calculado el grado de todas las reglas, éste se utilizará para Reducir el conjunto de reglas, que en principio contiene tantas reglas como ejemplos. 23 La reducción se realiza de la siguiente forma: · Si en el conjunto de reglas hay más de una regla con los mismos antecedentes, se eliminan las que tengan menor grado. Esto resuelve conflictos entre reglas, ya que a iguales antecedentes (parte “IF”) con distintos consecuentes (parte “THEN”) constituyen acciones contradictorias que son resueltas manteniendo únicamente la regla de mayor grado. Tal elección es razonable en tanto otorga confianza a la regla que cuenta con mayor HPSDUHMDPLHQWR de sus variables a las etiquetas difusas de la partición. · Cuando existan más de una regla iguales (partes “IF” y “THEN” iguales), permanecerá en la Base de Reglas la de mayor grado asociado, eliminándose las ocurrencias que lo tengan menor. • 3DVR  &RQIRUPDFLyQGHOD%DVHGH5HJODVFRPELQDGD En este paso se procederá a la fusión de las reglas incluidas en la Base de Reglas de naturaleza numérica procedente de los pasos anteriores y las reglas de naturaleza lingüística aportadas por el experto. Esta fusión se realizará de forma que en la Base de Reglas final se encuentren tanto las reglas de experto como las reglas procedentes de ejemplos. Si se representa la Base de Reglas en una tabla con una dimensión de entrada por cada antecedente, las reglas obtenidas de los ejemplos ocuparán una sola entrada por cada regla, ya que se trata de reglas AND. Del mismo modo ocurre con las reglas del experto. El conjunto de ejemplos consiste en los pares numéricos “estado del sistema” y “acción de control a ejecutar” en tal estado. La experiencia del experto se expresa en forma de reglas “IF-THEN”. 24   (MHPSOR GH DSOLFDFLyQ 6LVWHPD ([SHUWR GH 'LDJQyVWLFR 0pGLFR Para mostrar la utilidad de la lógica difusa a la hora de realizar un sistema, se partirá de los conceptos anteriormente mencionados para diseñar una Base de Conocimiento que determine las decisiones de un 6LVWHPD([SHUWRGH'LDJQRVWLFRPHGLFRSDUDE\SDVVFRURQDULR >@ .Se generará una Base de Conocimiento a partir de datos proporcionados por médicos especialistas en dicha materia. La Base de Conocimiento se utilizará posteriormente a la hora de decidir que tratamiento es posible aplicar sobre un determinado paciente cuyos datos proporciona el usuario.   *HQHUDFLyQGHOD%DVHGH&RQRFLPLHQWR A la hora de realizar la Base de Conocimiento se partirá de un fichero de ejemplos con el siguiente formato (extraído de las tablas con datos reales ya existentes): A A A A A A C C C C C ; 0 1 1 0 0 60 2 2 0 2 2 ; 0 1 1 0 0 40 2 2 0 2 2 ; 0 1 1 0 0 20 2 2 0 2 2 ; · · · Las variables de entrada del sistema están representadas mediante la letra $ y las de salida mediante la letra & . Cada linea del fichero contiene un conjunto de valores (un valor por cada variable). El fichero representa, por tanto, los valores que deben tomar las variables de salida del sistema para unos determinados valores de entrada. Es así como expresa su conocimiento un experto: mediante unas acciones concretas de salida para un estado del sistema que sirve como entrada (en este caso el estado de un paciente). A continuación se realiza una breve explicación de cada una de las variables que intervienen en este sistema experto: 9DULDEOHVGHHQWUDGD 5LHVJRTXLU~UJLFR Puede tomar el valor S o N, dependiendo de si existe riesgo a la hora de realizar la intervención quirúrgica en el paciente. 5HVXOWDGR GHO WHVW GH HVIXHU]R Previamente a la decisión de intervenir al paciente éste debe realizar un test de esfuerzo. Esta variable representa el resultado de 25 dicho test. Puede tomar el valor P (positivo) o el valor N (negativo) (1 ó 0 en el fichero de ejemplos, respectivamente). /7&' Esta variable representa si el paciente padece o no Enfermedad del Tronco Común Izquierdo (Left Common Trunk Disease). (1 ó 0 en el fichero de ejemplos, respectivamente). %9' Representa el grado en que el paciente padece Enfermedad de los Vasos Sanguíneos (Blood Vessel Disease). Tomará el valor 0 si no la padece. En caso contrario tomará los valores 1, 2 o 3 según el grado en que la padezca. 3$'$ Representa si en la familia del paciente existen o no antecedentes de la enfermedad (1 ó 0 en el fichero de ejemplos, respectivamente). /)9' Indica la Fracción de Expulsión del Ventrículo Izquierdo. Esta variable puede tomar cualquier valor entre 0 y 100 (expresa un porcentaje). 9DULDEOHVGHVDOLGD 3RVLELOLGDG GH DSOLFDU OD WpFQLFD GH 5HYDVFXODUL]DFLyQ Mediante esta variable se indica lo adecuado de aplicar la técnica de Revascularización. Puede tomar los valores  (es una técnica adecuada para el estado del paciente), - (no se debe aplicar la técnica) ó " (existen dudas sobre si la técnica puede o no aplicarse). 1RWD El valor + se representa con el valor numérico  , el valor – con  y las posible duda con  . 37&$ Indica lo mismo que la variable anterior para la técnica de PTCA. &$%* Idem para la técnica de CABG. *UDGRGHDFXHUGRHQODDSOLFDFLyQGHOD5HYDVFXODUL]DFLyQ Esta variable indica en qué grado están de acuerdo los especialistas médicos a la hora de aplicar o no la técnica de revascularización. Puede tomar los valores ' (los especialistas están en desacuerdo), , (hay una considerable diversidad de opiniones) ó $ (los especialistas están de acuerdo). 1RWD Los valores D, I y A se representan como  ,  y  respectivamente. *UDGRGHDFXHUGRHQODDSOLFDFLyQGHO37&$R&$%* Representa lo mismo que la variable anterior, pero para la aplicación de la técnica PTCA o CABG (sólo es posible aplicar una de estas dos técnicas, de ahí que sólo exista una variable). Todas estas variables están presentes en cada una de las reglas que genera el sistema en la Base de Conocimiento. Tras generar la Base de Conocimiento se obtiene un fichero .clp con el siguiente formato: (deftemplate A_0 -0.5 1.5 ((A_0_0 (-0.5 0)  (0.5 0)) (A_0_1 (0.0 0) (0.5 1) (1.0 0)) (A_0_2 (0.5 0)  (1.5 0)) 32 ?s<-(C_4 ?var) => (retract ?r ?s) (printout t crlf) (printout t "No se debe aplicar CABG con grado de acuerdo (0 1 ó 2) " (momentdefuzzify ?s) crlf)) (defrule resultado-CABG-1 ?r<-(C_3 C_3_1) ?s<-(C_4 ?var) => (retract ?r ?s) (printout t crlf) (printout t "Indecisión a la hora de aplicar CABG con grado de acuerdo (0 1 ó 2) " (moment-defuzzify ?s) crlf)) (defrule resultado-CABG-2 ?r<-(C_3 C_3_2) ?s<-(C_4 ?var) => (retract ?r ?s) (printout t crlf) (printout t "Se debe aplicar CABG con grado de acuerdo (0 1 ó 2) " (momentdefuzzify ?s) crlf)) (defrule error (resultado) => (reset) (printout t crlf) (printout t "El sistema no puede proporcionar un diagnostico para este paciente, ... !!" crlf) (printout t crlf)) Mediante este conjunto de reglas de control, el sistema puede responder con un diagnóstico basado en el conocimiento unificado de especialistas médicos al posible estado de los pacientes que el usuario le proporcione. Además, el sistema es fácilmente modificable, siendo posible introducir nuevos tratamientos o parámetros de entrada.   %LEOLRJUDItD [1] E.H. Mamdani, S. Assilian. An experiment in linguistic synthesis with a fuzzy logic controller, Int. J. of Man-Machine Studies 7 (1975) 1-13. [2] L. M. Laita, E. Roanes-Lozano, V. Maojo. $&RPSXWHU$OJHEUD%DVHG6WXG\RI,QIHUHQFH DQG 9HULILFDFWLRQ $SSOLFDWLRQ WR 0HGLFDO $SSURSULDWHQHVV &ULWHULD . Fuzzy Sets and Systems. 1997. [3] L.A. Zadeh, )X]]\6HWV , Information and Control 8 (1965) 338-353. [4] L.X. Wang and J. Mendel, *HQHUDWLQJ)X]]\5XOHVE\/HDUQLQJIURP([DPSOHV , IEEE Transactions on Systems, Man, and Cybernetics 22, 6 (1992) 1414-1427. 33 [5] R. A. Orchad. )X]]\&/,36 YHUVLRQ $ . User’s Guide. National Research Council Canada. 1998