Logo Studenta

Tutorial FIS -Español Windows

¡Este material tiene más páginas!

Vista previa del material en texto

Comenzaremos con un poco de motivación para donde nos dirigimos en este capítulo. El punto de la lógica difusa es mapear un espacio de entrada a un espacio de salida, y el principal mecanismo para hacer esto es una lista de declaraciones if-then llamadas reglas .Todas las reglas son evaluadas en paralelo, y el orden de las reglas no es importante. Las propias reglas son útiles porque se refieren a variables y los adjetivos que describen esas variables. Antes de poder construir un sistema que interprete las reglas, tenemos que definir todos los términos que planeamos usar y los adjetivos que los describen.Si queremos hablar de lo caliente que es el agua, tenemos que definir el rango que se puede esperar que la temperatura del agua varíe, así como lo que queremos decir con la palabra caliente. Estas son todas las cosas de las que hablaremos en las siguientes secciones del manual. El siguiente diagrama es algo así como una hoja de ruta para el proceso de inferencia fuzzy. Muestra la descripción general de un sistema fuzzy a la izquierda y un sistema fuzzy específico (el ejemplo de inclinación de la Introducción) a la derecha.
Para resumir el concepto de inferencia difusa representado en esta figura, la inferencia fuzzy es un método que interpreta los valores en el vector de entrada y, sobre la base de un conjunto de reglas, asigna valores al vector de salida.
Este capítulo está diseñado para guiarlo a través del proceso de lógica fuzzy paso a paso proporcionando una introducción a la teoría y la práctica de la lógica fuzzy. Las tres primeras secciones de este capítulo son las más importantes: pasan de lo general a lo específico, primero introducen ideas subyacentes y luego discuten detalles de implementación específicos de la caja de herramientas. Estas tres áreas son
	Fundamentos de la lógica fuzzy, que es una introducción a los conceptos generales. Si ya está familiarizado con la lógica difusa, puede omitir esta sección.
	Sistemas de inferencia difusa, lo que explica los métodos específicos de inferencia fuzzy utilizados en la Caja de herramientas de lógica fuzzy. Dado que el campo de la lógica fuzzy utiliza muchos términos que aún no tienen interpretaciones estándar, debería considerar la lectura de esta sección sólo para familiarizarse con el proceso de inferencia fuzzy como se emplea aquí.
	Creación de sistemas con la Caja de herramientas de lógica fuzzy, que entra en detalles sobre cómo construir y editar un sistema fuzzy utilizando esta caja de herramientas. Esto introduce las herramientas gráficas de la interfaz de usuario disponibles en el Fuzzy Logic Toolbox y le guía a través de la construcción de un sistema de inferencia fuzzy completo de principio a fin. Si sólo quiere ponerse al día lo más rápido posible, empiece aquí.
Después de esto, hay secciones que tocan una variedad de temas, como el uso de Simulink, generación automática de reglas y demostraciones. Pero desde el punto de vista de conocer la caja de herramientas, estas tres primeras secciones son las más cruciales.
Fundamentos de Lógica Fuzzy
	Todo es vago hasta cierto punto que no te das cuenta hasta que has tratado de hacerlo 	más 	preciso. -Bertrand Russell
Conjuntos difusos
La lógica difusa comienza con el concepto de un conjunto difuso. Un conjunto difuso es un conjunto sin un límite nítido y claramente definido. Puede contener elementos con sólo un miembro de afiliación parcial. Para entender lo que es un conjunto difuso, primero considere lo que se entiende por lo que podríamos llamar un conjunto clásico. Un conjunto clásico es un contenedor que incluye o excluye totalmente cualquier elemento dado. Por ejemplo, el conjunto de días de la semana incluye incuestionablemente lunes, jueves y sábado. Excluye incuestionablemente la mantequilla, la libertad y las aletas dorsales, y así sucesivamente.
Llamamos a este conjunto un conjunto clásico porque ha existido durante tanto tiempo. Fue Aristóteles quien primero formuló la Ley del Medio Excluido, que dice que X debe estar en el conjunto A o en el conjunto no-A. Otra versión funciona así:
De cualquier asunto, una cosa debe ser afirmada o negada.
He aquí una reafirmación de la ley con anotaciones: "De cualquier tema (digamos el lunes), una cosa (ser un día de la semana) debe ser afirmada o negada (afirmo que el lunes es un día de la semana)". La ley exige que los opuestos, las dos categorías A y no-A, deberían entre ellas contener todo el universo. Todo cae en un grupo o el otro. No hay nada que sea un día de la semana y no un día de la semana.
Ahora considere el conjunto de días que comprende un fin de semana. El siguiente diagrama es un intento de clasificar los días del fin de semana.
La mayoría estaría de acuerdo en que el sábado y el domingo pertenecen, pero ¿qué pasa con el viernes? Se "siente" como una parte del fin de semana, pero de alguna manera parece que debe ser técnicamente excluido. Por lo tanto, en el diagrama anterior, el viernes intenta sentarse en la valla. Los conjuntos clásicos o "normales" no tolerarían este tipo de cosas. O estás en o estás fuera. La experiencia humana sugiere algo diferente, sin embargo: la sesión de la cerca es una parte de la vida.
Por supuesto, estamos en un terreno complicado, porque estamos empezando a tener en cuenta las percepciones individuales y los antecedentes culturales cuando definimos lo que constituye el fin de semana. Pero este es exactamente el punto. Incluso el diccionario es impreciso, definiendo el fin de semana como "el período desde la noche del viernes o el sábado hasta el lunes por la mañana". Estamos entrando en el reino donde la lógica afilada de sí-no deja de ser útil. El razonamiento borroso se convierte en valioso exactamente cuando hablamos de cómo la gente realmente percibe el concepto de "fin de semana" en oposición a una clasificación simplista útil sólo para fines contables. Más que cualquier otra cosa, la siguiente declaración establece los fundamentos para la lógica difusa:
En la lógica difusa, la verdad de cualquier afirmación se convierte en una cuestión de grado.
Cualquier declaración puede ser difusa. La herramienta que el razonamiento difuso da es la capacidad de responder a una pregunta de sí-no con una respuesta no-absolutamente-sí-o-no. Este es el tipo de cosa que los seres humanos hacen todo el tiempo (creo que rara vez se obtiene una respuesta directa a una pregunta aparentemente simple), pero es un truco bastante nuevo para las computadoras.
¿Como funciona? Razonar en lógica difusa es sólo una cuestión de generalizar la lógica familiar de sí-no (booleana). Si damos "verdadero" el valor numérico de 1 y "falso" el valor numérico de 0, estamos diciendo que la lógica difusa también permite valores intermedios como 0,2 y 0,7453. Por ejemplo:
	P: ¿Es sábado un día de fin de semana?
	A: 1 (sí, o verdadero)
	P: ¿Es el martes un día de fin de semana?
	A: 0 (no, o falso)
	P: ¿Es viernes un día de fin de semana?
	R: 0,8 (en su mayor parte sí, pero no completamente)
	P: ¿El domingo es un día de fin de semana?
	R: 0.95 (sí, pero no tanto como el sábado).
Debajo de la izquierda hay un gráfico que muestra los valores de verdad para "fin de semana" si nos vemos obligados a responder con una respuesta absoluta de sí o no. A la derecha hay un gráfico que muestra el valor de la verdad para el fin de semana si se nos permite responder con valores difusos intermedios.
graf
Técnicamente, la representación a la derecha procede del dominio de la lógica multivaluada (o lógica multivalente). Si hago la pregunta "¿Es X un miembro del conjunto A?", La respuesta podría ser sí, no, o cualquiera de mil valores intermedios entre ellos. En otras palabras, X podría tener una participación parcial en A. La lógica de valores múltiples está en contraste directo con el concepto más familiar de la lógica de dos valores (o sí-no bivalente). La lógica de dos valores ha desempeñado un papel central en la historia de la ciencia desde que Aristóteles lo codificó por primera vez, pero ha llegadoel momento de compartir el escenario.
Para volver a nuestro ejemplo, considere ahora una escala de tiempo de escala continua del fin de semana que se muestra a continuación.
Graf
Al hacer la trama continua, estamos definiendo el grado al cual cualquier instante dado pertenece en el fin de semana en lugar de un día entero. En la trama a la izquierda, observe que a la medianoche del viernes, justo cuando la segunda mano barre los últimos 12, el valor de la verdad del fin de semana salta discontinuamente de 0 a 1. Esta es una forma de definir el fin de semana y, Útil para un contador, no se conecta realmente con nuestra experiencia en el mundo real de fines de semana.
La trama de la derecha muestra una curva que varía suavemente, lo que explica el hecho de que todo el viernes y, en menor medida, partes del jueves, participan de la calidad del fin de semana y, por lo tanto, merecen una afiliación parcial en el conjunto borroso del fin de semana Momentos La curva que define el fin de semana de cualquier instante en el tiempo es una función que asigna el espacio de entrada (tiempo de la semana) al espacio de salida (fin de semana). Específicamente se conoce como función de pertenencia. Discutiremos esto con más detalle en la siguiente sección.
Como otro ejemplo de conjuntos difusos, considere la cuestión de las estaciones. ¿Qué estación es ahora? En el hemisferio norte, el verano comienza oficialmente en el momento exacto en la órbita de la tierra cuando el Polo Norte se señala más directamente hacia el sol. Ocurre exactamente una vez al año, a finales de junio. Utilizando las definiciones astronómicas de la temporada, obtenemos límites definidos como se muestra a la izquierda en la figura de la página siguiente. Pero lo que experimentamos como las estaciones varía más o menos continuamente como se muestra a la derecha abajo (en climas templados del hemisferio norte).
Graf
Funciones de pertenencia
Una función de pertenencia (MF) es una curva que define cómo cada punto en el espacio de entrada se asigna a un valor de pertenencia (o grado de pertenencia) entre 0 y 1. El espacio de entrada se refiere a veces como el universo del discurso, Nombre para un concepto simple.
Uno de los ejemplos más comúnmente usados ​​de un conjunto difuso es el conjunto de personas altas. En este caso el universo del discurso es todas las alturas potenciales, digamos de 3 pies a 9 pies, y la palabra "alto" correspondería a una curva que define el grado en que cualquier persona es alta. Si el conjunto de personas altas recibe el límite bien definido (crujiente) de un conjunto clásico, podríamos decir que todas las personas mayores de seis pies son oficialmente consideradas altas. Pero tal distinción es claramente absurda. Puede tener sentido considerar el conjunto de todos los números reales mayores de seis porque los números pertenecen a un plano abstracto, pero cuando queremos hablar de personas reales, no es razonable llamar a una persona corta y otra alta cuando difieren en altura Por la anchura de un pelo.
Graf
Pero si el tipo de distinción mostrada arriba es inviable, entonces ¿cuál es la manera correcta de definir el conjunto de personas altas? Al igual que con nuestra trama de días de fin de semana, la figura a continuación muestra una suave y variada curva que pasa de no alto a alto. El eje de salida es un número conocido como el valor de pertenencia entre 0 y 1. La curva se conoce como función de pertenencia y a menudo se le da la designación de μ. Esta curva define la transición de no alto a alto. Ambas personas son altas hasta cierto punto, pero una es significativamente menos alta que la otra.
Las interpretaciones subjetivas y las unidades apropiadas se construyen directamente en conjuntos difusos. Si digo "Ella es alta", la función de membresía "alto" ya debería tener en cuenta si me refiero a una mujer de seis años o una mujer adulta. Del mismo modo, las unidades se incluyen en la curva. Ciertamente no tiene sentido decir "¿Es alta en pulgadas o en metros?"
Funciones de pertenencia en la caja de herramientas de lógica difusa
La única condición que una función de pertenencia debe satisfacer realmente es que debe variar entre 0 y 1. La función en sí puede ser una curva arbitraria cuya forma podemos definir como una función que nos conviene desde el punto de vista de la sencillez, conveniencia, velocidad, Y eficiencia. Un conjunto clásico podría expresarse como
A = {x | x> 6}
Un conjunto difuso es una extensión de un conjunto clásico. Si X es el universo del discurso y sus elementos son denotados por x, entonces un conjunto difuso A en X se define como un conjunto de pares ordenados:
A = {x, μA (x) | x ∈ X}
μA(x) se denomina función de pertenencia (o MF) de x en A. La función de pertenencia asigna cada elemento de X a un valor de pertenencia entre 0 y 1.
El Fuzzy Logic Toolbox incluye 11 tipos de funciones de pertenencia integradas. Estas 11 funciones son, a su vez, construidas a partir de varias funciones básicas: funciones lineales por trozos, la función de distribución gaussiana, la curva sigmoide y curvas polinomiales cuadráticas y cúbicas. Para obtener información detallada sobre cualquiera de las funciones de membresía que se mencionan a continuación, consulte el Capítulo 3, "Referencia". Por convención, todas las funciones de membresía tienen las letras mf al final de sus nombres.
Las funciones de pertenencia más simples se forman usando líneas rectas. De estos, la más simple es la función de pertenencia triangular, y tiene el nombre de la función trimf. No es más que una colección de tres puntos que forman un triángulo. La función de pertenencia trapezoidal, trapmf, tiene una parte superior plana y realmente es sólo una curva triangular truncada. Estas funciones de membresía en línea recta tienen la ventaja de la simplicidad.
Graf
Dos funciones de pertenencia se construyen sobre la curva de distribución gaussiana: una simple curva gaussiana y un compuesto a dos caras de dos curvas gaussianas diferentes. Las dos funciones son gaussmf y gauss2mf.
La función de membresía de campana generalizada se especifica mediante tres parámetros y tiene el nombre de función gbellmf. La función de membreo de la campana tiene un parámetro más que la función de pertenencia gaussiana, por lo que puede acercarse a un conjunto no difuso si se ajusta el parámetro libre. Debido a su suavidad y su notación concisa, las funciones Gaussian y bell son métodos populares para especificar conjuntos difusos. Ambas curvas tienen la ventaja de ser lisas y no nulas en todos los puntos.
Graf
Aunque las funciones de pertenencia gaussiana y las funciones de membrete de la campana logran suavidad, no pueden especificar funciones asimétricas de pertenencia, que son importantes en ciertas aplicaciones. A continuación definimos la función de pertenencia sigmoidal, que está abierta tanto a la izquierda como a la derecha. Las funciones de adscripción asimétrica y cerrada (es decir, no abierta a la izquierda o a la derecha) pueden ser sintetizadas usando dos funciones sigmoidales, así que además de la sigmf básica, también tenemos la diferencia entre dos funciones sigmoides, dsigmf, y el producto de dos funciones sigmoidales Psigmf.
Graf
Las curvas basadas en polinomios representan varias de las funciones de pertenencia en la caja de herramientas. Tres funciones de pertenencia relacionadas son las curvas Z, S y Pi, todas nombradas por su forma. La función zmf es la curva polinómica asimétrica abierta a la izquierda, smf es la función de espejo que se abre a la derecha y pimf es cero en ambos extremos con un aumento en el centro.
Graf
Hay una selección muy amplia para elegir cuando seleccionas tu función de membresía favorita. Y el Fuzzy Logic Toolbox también le permite crear sus propias funciones de membresía si considera que esta lista es demasiado restrictiva. Por otro lado, si esta lista parece desconcertante, sólo recuerde que probablemente podría llevarse muy bien con sólo uno o dos tipos de funciones depertenencia, por ejemplo las funciones de triángulo y trapecio. La selección es amplia para aquellos que quieran explorar las posibilidades, pero exóticas funciones de pertenencia no son necesarios para los sistemas de inferencia fuzzy perfectamente bien. Por último, recuerde que hay más detalles disponibles sobre todas estas funciones en la sección de referencia, que constituye la segunda mitad de este manual.
Sigue Sumary pag 12
……
Sistemas de Inferencia Fuzzy
La inferencia difusa es el proceso de formular el mapeo de una entrada dada a una salida usando lógica difusa. La cartografía proporciona entonces una base a partir de la cual se pueden tomar decisiones o patrones discernidos. El proceso de inferencia difusa implica todas las piezas que se describen en las secciones anteriores: funciones de pertenencia, operadores de lógica difusa y reglas if-then. Existen dos tipos de sistemas de inferencia difusa que se pueden implementar en la Caja de herramientas de lógica difusa: Tipo Mamdani y Sugeno. Estos dos tipos de sistemas de inferencia varían algo en la forma en que se determinan los resultados. Las descripciones de estos dos tipos de sistemas de inferencia difusa se pueden encontrar en las referencias, [Jan97, Mam75, Sug85].
Los sistemas de inferencia difusa se han aplicado con éxito en campos como el control automático, la clasificación de datos, el análisis de decisiones, los sistemas expertos y la visión por ordenador. Debido a su naturaleza multidisciplinaria, los sistemas de inferencia difusa están asociados con varios nombres, como sistemas basados en reglas difusas, sistemas expertos difusos, modelado difuso, memoria asociativa borrosa, controladores de lógica difusa y sistemas fuzzy simplemente (y ambiguamente). Dado que los términos utilizados para describir las diversas partes del proceso de inferencia difusa están lejos de ser estándar, trataremos de ser lo más claro posible sobre los diferentes términos introducidos en esta sección.
El método de inferencia difusa de Mamdani es la metodología fuzzy más comúnmente vista. El método de Mamdani fue uno de los primeros sistemas de control construidos usando la teoría de conjuntos difusos. Fue propuesta en 1975 por Ebrahim Mamdani [Mam75] como un intento de controlar una combinación de motor de vapor y caldera sintetizando un conjunto de reglas de control lingüístico obtenidas de operadores humanos experimentados. El esfuerzo de Mamdani se basó en el trabajo de 1973 de Lotfi Zadeh sobre algoritmos difusos para sistemas complejos y procesos de decisión [Zad73]. Aunque el proceso de inferencia que describimos en las siguientes secciones difiere algo de los métodos descritos en el documento original, la idea básica es casi la misma.
La inferencia de tipo Mamdani, tal como la hemos definido para la Caja de herramientas de lógica difusa, espera que las funciones de pertenencia de salida sean conjuntos difusos. Después del proceso de agregación, hay un conjunto difuso para cada variable de salida que necesita defuzzification. Es posible, y en muchos casos mucho más eficiente, utilizar un único punto como la función de pertenencia de salida en lugar de un conjunto difuso distribuido. Esto se conoce a veces como una función de membresía de salida singleton, y puede ser pensado como un conjunto difuso pre-defuzzified. Mejora la eficiencia del proceso de defuzzificación porque simplifica en gran medida el cálculo requerido por el método más general Mamdani, que encuentra el centroide de una función de dos imensiones. En lugar de integrar a través de la función bidimensional para encontrar el centroide, se utiliza el promedio ponderado de unos pocos puntos de datos. Los sistemas tipo Sugeno soportan este tipo de modelo. En general, los sistemas de tipo Sugeno se pueden usar para modelar cualquier sistema de inferencia en el que las funciones de pertenencia de salida sean lineales o constantes.
Cena para dos, Reprise
En esta sección, proporcionamos el mismo problema de vuelco de tres reglas de una entrada y dos entradas que se ve en la introducción, sólo con más detalle. La estructura básica de este ejemplo se muestra en el siguiente diagrama.
Cena para dos
Un sistema de 2 entradas, 1 salida, 3 reglas
Entradas:
	 Servicio (0-10)
	 Comida (0-10)
Salida:
	Propina (5-25%)
Reglas:
	Regla 1: Si el servicio es pobre o la comida es rancia, entonces propina es barato
	Regla 2: Si el servicio es bueno, entonces propina es promedio
	Regla 3: Si el servicio es excelente o la comida es deliciosa entonces propina es generoso
	Las entradas son números nítidos (no difusos) limitados a un rango específico.
	Todas las reglas se evalúan en paralelo utilizando el razonamiento difuso.
	Los resultados de las reglas se combinan y destilan (defuzzified).
	El resultado es un número nítido (no difuso).
La información fluye de izquierda a derecha, de dos entradas a una sola salida. La naturaleza paralela de las reglas es uno de los aspectos más importantes de los sistemas de lógica difusa. En lugar de un cambio brusco entre modos basados en puntos de interrupción, nos deslizaremos suavemente desde regiones donde el comportamiento del sistema está dominado por una regla u otra.
En la Caja de Herramientas de la Lógica Fuzzy hay cinco partes del proceso de inferencia fuzzy: fuzzificación de las variables de entrada, aplicación del operador fuzzy (AND o OR) en el antecedente, implicación del antecedente a la consecuente, agregación de los consecuentes a través del Reglas, y defuzzification. Estos nombres a veces crípticos e impares tienen un significado muy específico que definiremos con cuidado a medida que pasemos por cada uno de ellos con más detalle a continuación.
Paso 1. Fuzzificación de Entradas
El primer paso es tomar las entradas y determinar el grado en el que pertenecen a cada uno de los conjuntos difusos adecuados a través de funciones de pertenencia. En la Caja de herramientas de la lógica difusa, la entrada es siempre un valor numérico nítido limitado al universo del discurso de la variable de entrada (en este caso el intervalo entre 0 y 10) y la salida es un grado difuso de pertenencia al conjunto lingüístico calificado Siempre el intervalo entre 0 y 1). La fuzzificación de los valores de entrada es una búsqueda de tabla o una evaluación de función.
El ejemplo que estamos usando en esta sección se basa en tres reglas, y cada una de las reglas depende de la resolución de los insumos en un número de diferentes conjuntos lingüísticos difusos: servicio es pobre, el servicio es bueno, el alimento es rancio, y así. Antes de que las reglas puedan ser evaluadas, las entradas deben ser fuzzificadas de acuerdo con cada uno de estos conjuntos lingüísticos. Por ejemplo, ¿en qué medida la comida es realmente deliciosa? La figura siguiente muestra cómo la comida de nuestro hipotético restaurante (calificada en una escala de 0 a 10) califica, como función variable, como la variable lingüística "deliciosa". En este caso, calificamos la comida como un 8 , Que, dada nuestra definición gráfica de delicious, corresponde a μ = 0,7 para la función de membresía "deliciosa".
(El cumplido para el chef sería "su comida es deliciosa hasta el grado 0.7"). De esta manera, cada entrada es fuzzificada sobre todas las funciones de membresía que califican requeridas por las reglas.
Paso 2. Aplique el operador difuso
Una vez que los insumos han sido fuzzificados, sabemos el grado en que cada parte del antecedente ha sido satisfecha para cada regla. Si el antecedente de una regla dada tiene más de una parte, el operador difuso se aplica para obtener un número que representa el resultado del antecedente para esa regla. Este número se aplicará entonces a la función de salida. La entrada al operador difuso es dos o más valores de pertenencia de las variables de entrada fuzzificadas. La salida es un valor de verdad único.
Como se describe en la sección sobre operaciones lógicas difusas, cualquier número de métodos bien definidos puede rellenarse para la operaciónAND o la operación OR. En el Fuzzy Logic Toolbox, se soportan dos métodos AND: min (mínimo) y prod (producto). También se soportan dos métodos OR incorporados: max (máximo) y el probor de método probabilístico OR. El método probabilístico OR (también conocido como la suma algebraica) se calcula de acuerdo con la ecuación
Probor (a, b) = a + b - ab
Además de estos métodos integrados, puede crear sus propios métodos para AND y OR escribiendo cualquier función y configurando que sea el método de elección. Habrá más información sobre cómo hacer esto más adelante.
A continuación se muestra un ejemplo del operador OR max en el trabajo. Estamos evaluando el antecedente de la regla 3 para el cálculo del depósito. Las dos piezas diferentes del antecedente (el servicio es excelente y la comida es deliciosa) produjo los valores de membresía difusa 0.0 y 0.7 respectivamente. El operador fuzzy OR simplemente selecciona el máximo de los dos valores, 0,7, y la operación difusa para la regla 3 está completa. Si estuviéramos usando el método probabilístico OR, el resultado sería 0.7 en este caso.
Graf
Paso 3. Aplicar Método de Implicación
Antes de aplicar el método de implicación, debemos cuidar el peso de la regla. Cada regla tiene un peso (un número entre 0 y 1), que se aplica al número dado por el antecedente. Generalmente este peso es 1 (como es para este ejemplo) y por lo tanto no tiene ningún efecto en absoluto en el proceso de implicación. De vez en cuando usted puede querer peso una regla relativa a los otros cambiando su valor del peso a algo con excepción de 1.
Una vez asignada la ponderación apropiada a cada regla, se implementa el método de implicación. Consecuente es un conjunto difuso representado por una función de pertenencia, que pesa apropiadamente las características lingüísticas que se le atribuyen. El consecuente se remodela utilizando una función asociada con el antecedente (un solo número). La entrada para el proceso de implicación es un solo número dado por el antecedente, y la salida es un conjunto difuso. Implicación se implementa para cada regla. Se soportan dos métodos integrados y son las mismas funciones que utilizan el método AND: min (mínimo), que trunca el conjunto difuso de salida y prod (product), que escala el conjunto difuso de salida.
Graf
Paso 4. Agregue todas las salidas
Dado que las decisiones se basan en la prueba de todas las reglas en un SIF, las reglas deben combinarse de alguna manera para tomar una decisión. La agregación es el proceso por el cual los conjuntos difusos que representan las salidas de cada regla se combinan en un solo conjunto difuso. La agregación sólo ocurre una vez para cada variable de salida, justo antes del quinto y último paso, defuzzificación. La entrada del proceso de agregación es la lista de funciones de salida truncadas devueltas por el proceso de implicación para cada regla. La salida del proceso de agregación es un conjunto difuso para cada variable de salida.
Observe que mientras el método de agregación sea conmutativo (lo que siempre debería ser), entonces el orden en el que se ejecutan las reglas no es importante. Se soportan tres métodos integrados: max (máximo), probor (probabilístico o) y sum (simplemente la suma del conjunto de salidas de cada regla).
En el siguiente diagrama, las tres reglas se han agrupado para mostrar cómo la salida de cada regla se combina o agrega en un único conjunto difuso cuya función de pertenencia asigna una ponderación para cada valor de salida.
Graf
Paso 5. Defuzzificación
La entrada para el proceso de defuzzificación es un conjunto difuso (el conjunto difuso de salida agregada) y la salida es un número único. En la medida en que la difuminación ayuda a evaluar las reglas durante los pasos intermedios, la salida final deseada para cada variable es generalmente un solo número. Sin embargo, el agregado de un conjunto difuso abarca un rango de valores de salida, por lo que debe defuzzified para resolver un único valor de salida del conjunto.
Quizás el método de defuzzificación más popular es el cálculo del centroide, que devuelve el centro del área bajo la curva. Hay cinco métodos integrados soportados: centroide, bisectriz, medio del máximo (el promedio del valor máximo del conjunto de salida), mayor de máximo y menor de máximo.
Graf
El Diagrama de Inferencia Difusa
El diagrama de inferencia difuso es el compuesto de todos los diagramas más pequeños que hemos estado viendo hasta ahora en esta sección. Muestra simultáneamente todas las partes del proceso de inferencia difusa que hemos examinado. La información fluye a través del diagrama de inferencia difusa como se muestra a continuación.
Graf
Observe cómo el flujo procede de las entradas en la parte inferior izquierda, luego a través de cada fila o regla, y luego hacia abajo las salidas de regla para terminar en la parte inferior derecha. Esta es una forma muy compacta de mostrar todo a la vez, desde la fuzzificación de la variable lingüística hasta la defuzzificación de la salida agregada.
A continuación se muestra el diagrama de inferencia fuzzy de tamaño real. Hay mucho que ver en un diagrama de inferencia borroso, pero una vez que te acostumbras a él, puedes aprender mucho sobre un sistema muy rápidamente. Por ejemplo, a partir de este diagrama con estas entradas particulares, puede ver fácilmente que el método de implicación es el truncamiento con la función min. La función max está siendo utilizada para la operación F borrosa. La regla 3 (la fila inferior en el diagrama mostrado al lado) tiene la influencia más fuerte en la salida. Y así. El Visor de reglas descrito en "El visor de reglas" en la página 2-59 es una implementación de MATLAB del diagrama de inferencia difuso.
Graf
Personalización
Uno de los objetivos principales de la Caja de Herramientas de la Lógica Difusa es tener una estructura de sistema de inferencia fuzzy abierta y fácilmente modificada. Por lo tanto, el Fuzzy Logic Toolbox está diseñado para brindarle la mayor libertad posible, dentro de las limitaciones básicas del proceso descrito aquí, para personalizar el proceso de inferencia difusa para su aplicación. Por ejemplo, puede sustituir sus propias funciones MATLAB por cualquiera de las funciones predeterminadas que se utilizan en los cinco pasos detallados anteriormente: puede crear sus propias funciones de pertenencia, métodos AND, métodos O, métodos de implicación, métodos de agregación y métodos de defuzzificación. La siguiente sección describe exactamente cómo construir e implementar un sistema de inferencia difusa usando las herramientas proporcionadas.
Sistemas de construcción con la caja de herramientas de lógica difusa
Cena para dos, desde arriba
  Ahora vamos a trabajar a través de un ejemplo similar de inflexión, sólo vamos a construir con las herramientas gráficas de interfaz de usuario (GUI) proporcionados por el Fuzzy Logic Toolbox. Aunque es posible utilizar el Fuzzy Logic Toolbox trabajando estrictamente desde la línea de comandos, en general es mucho más fácil construir un sistema gráficamente. Existen cinco herramientas GUI principales para construir, editar y observar sistemas de inferencia difusa en el Fuzzy Logic Toolbox: el Sistema de Inferencia Fuzzy o el Editor de FIS, el Editor de Funciones de Socios, el Editor de Reglas, el Visor de Reglas y el Visor de Superficies. Estas interfaces gráficas de usuario están vinculadas dinámicamente, ya que los cambios que realice en el FIS utilizando uno de ellos pueden afectar a lo que ve en cualquiera de las otras GUI abiertas. Usted puede tener cualquiera o todos ellos abiertos para cualquier sistema dado.
Además de estas cinco GUIs principales, la caja de herramientas incluye la GUI gráfica del Editor de ANFIS, que se utiliza para construir y analizar los sistemas de inferencia neural fuzzy de tipo Sugeno. La interfaz gráfica de usuario de ANFIS Editor se describe más adelante en este capítulo, en la sección "Sugeno-Type Fuzzy Inference" en la página 2-86.
Graf 
El Editor de FISmaneja los problemas de alto nivel para el sistema: ¿Cuántas variables de entrada y salida? ¿Cuáles son sus nombres? El Fuzzy Logic Toolbox no limita el número de entradas. Sin embargo, el número de entradas puede estar limitado por la memoria disponible de su máquina. Si el número de entradas es demasiado grande, o el número de funciones de pertenencia es demasiado grande, también puede ser difícil analizar el FIS utilizando las otras herramientas GUI.
El Editor de funciones de membresía se utiliza para definir las formas de todas las funciones de pertenencia asociadas a cada variable.
El editor de reglas sirve para editar la lista de reglas que definen el comportamiento del sistema.
El Visor de reglas y el Visor de superficies se utilizan para mirar, en lugar de editar, el FIS. Son estrictamente herramientas de sólo lectura. El Visor de reglas es una pantalla basada en MATLAB del diagrama de inferencia difuso mostrado al final de la última sección. Utilizado como un diagnóstico, puede mostrar (por ejemplo) qué reglas están activas o cómo las formas de la función de membresía individual influyen en los resultados. El visor de superficie se utiliza para mostrar la dependencia de una de las salidas en una o dos de las entradas, es decir, genera y traza un mapa de superficie de salida para el sistema.
Este capítulo comenzó con una ilustración similar a la que se describe a continuación de las partes principales de un sistema de inferencia fuzzy, sólo el siguiente muestra cómo los tres editores encajan. Los dos espectadores examinan el comportamiento de todo el sistema.
Graf
Las cinco GUI principales pueden interactuar e intercambiar información. Cualquiera de ellos puede leer y escribir tanto en el espacio de trabajo como en el disco (los espectadores de sólo lectura pueden intercambiar parcelas con el espacio de trabajo y / o el disco). Para cualquier sistema de inferencia difusa, cualquiera o todas estas cinco GUI pueden estar abiertas. Si más de uno de estos editores está abierto para un único sistema, las distintas ventanas GUI son conscientes de la existencia de los otros y, si es necesario, actualizarán las ventanas relacionadas. Por lo tanto, si los nombres de las funciones de pertenencia se cambian usando el editor de la función de membresía, estos cambios se reflejan en las reglas que se muestran en el Editor de reglas. Los editores de cualquier número de diferentes sistemas FIS pueden estar abiertos simultáneamente. El Editor de FIS, el Editor de Funciones de Socios y el Editor de Reglas pueden leer y modificar los datos de FIS, pero el Visor de Reglas y el Visor de Superficie no modifican los datos del FIS de ninguna manera.
Empezando
Comenzaremos con una descripción básica de un problema de volcado de dos entradas y una salida (basado en las prácticas de depósito en los Estados Unidos).
El problema básico de volcar. Dado un número entre 0 y 10 que representa la calidad de servicio en un restaurante (donde 10 es excelente), y otro número entre 0 y 10 que representa la calidad de la comida en ese restaurante (otra vez, 10 es excelente), que propina debería dar?
El punto de partida es anotar las tres reglas de oro de la propina, basadas en años de experiencia personal en restaurantes.
1. Si el servicio es pobre o la comida es rancia, entonces la propina es barata.
 2. Si el servicio es bueno, entonces propina es promedio.
 3. Si el servicio es excelente o la comida es deliciosa, entonces propina es generoso.
Asumiremos que una propina promedio es del 15%, una propina generosa es del 25%, y una propina barata es del 5%. También es útil tener una vaga idea de cómo debe ser la función de volcado.
Graf
Obviamente, los números y la forma de la curva están sujetos a tradiciones locales, prejuicios culturales, etc., pero las tres reglas son bastante universales.
Ahora conocemos las reglas, y tenemos una idea de cómo debe ser el resultado. Comencemos a trabajar con las herramientas GUI para construir un sistema de inferencia difusa para este proceso de decisión.
El Editor FIS
(De izquierda a derecha todos)
	Estos elementos de menú le permiten guardar, abrir o editar un sistema difuso utilizando cualquiera de las cinco herramientas GUI básicas 
	Haga doble clic en un icono de variable de entrada para abrir el Editor de funciones de membresía.
	Haga doble clic en el diagrama del sistema para abrir el Editor de reglas.
	Aquí se muestra el nombre del sistema. Se puede cambiar usando una de las opciones de menú Guardar como ....
	Haga doble clic en el icono de la variable de salida, sugerencia, para abrir el Editor de funciones de membresía.
	Estos menús emergentes se utilizan para ajustar las funciones de inferencia difusa, como el método de defuzzificación.
	Este campo de edición se utiliza para nombrar y editar los nombres de la variable de entrada y salida.
	Esta línea de estado describe la operación más reciente.
La siguiente discusión le guía a través de la construcción de un nuevo sistema de inferencia fuzzy desde cero. Si desea ahorrar tiempo y seguir adelante rápidamente, puede cargar el sistema ya construido escribiendo
		fuzzy tipper
Esto cargará el FIS asociado con el archivo tipper.fis (el .fis está implícito) y lanzará el Editor de FIS. Sin embargo, si carga el sistema preconstruido, no creará reglas ni construirá funciones de membresía.
El editor FIS muestra información general sobre un sistema de inferencia difusa. Hay un diagrama simple en la parte superior que muestra los nombres de cada variable de entrada a la izquierda, y los de cada variable de salida a la derecha. Las funciones de membresía de muestra que se muestran en los cuadros son sólo iconos y no representan las formas reales de las funciones de pertenencia.
Debajo del diagrama está el nombre del sistema y el tipo de inferencia utilizado. El defecto, la inferencia de tipo Mamdani, es lo que hemos estado describiendo hasta ahora y lo que vamos a seguir usando para este ejemplo. Otro tipo de inferencia ligeramente diferente, llamado Sugeno-tipo de inferencia, también está disponible. Este método se explica en "Sugeno-Type Fuzzy Inference" en la página 2-86. Debajo del nombre del sistema de inferencia fuzzy, en el lado izquierdo de la figura, están los menús emergentes que le permiten modificar las diversas piezas del proceso de inferencia. En el lado derecho en la parte inferior de la figura se muestra el área que muestra el nombre de una variable de entrada o de salida, su tipo de función de pertenencia asociada y su rango. Los dos últimos campos se especifican sólo después de haber sido las funciones de pertenencia. Debajo de esa región están los botones de Ayuda y Cerrar que llaman la ayuda en línea y cierran la ventana, respectivamente. En la parte inferior hay una línea de estado que transmite información sobre el sistema.
Para iniciar este sistema desde cero, escriba
	fuzzy
En el indicador MATLAB. Se abre el Editor de FIS sin título genérico, con una entrada, etiquetada como entrada1, y una salida, denominada salida1. Para este ejemplo, vamos a construir un sistema de dos entradas, un sistema de salida, así que vaya al menú Edición y seleccione Agregar entrada. Aparecerá una segunda caja amarilla con la etiqueta input2. Las dos entradas que tendremos en nuestro ejemplo son el servicio y la comida. Nuestra salida es una propina. Sin embargo, nos gustaría cambiar los nombres de las variables para reflejarlo.
	 Haga clic una vez en la casilla izquierda (amarilla) marcada como entrada1 (la casilla se resaltará en rojo).
	 En el campo de edición blanco de la derecha, cambie la entrada1 al servicio y presione Intro.
	 Haga clic una vez en la caja izquierda (amarilla) marcada como entrada2 (la casilla se resaltará en rojo).
	 En el campo de edición blanco a la derecha, cambie la entrada 2 a la comida y pulse Retorno.
	 Haga clic una vez en la casilla derecha (azul) marcada como salida1.
	 En el campo de edición blanco de la derecha, cambie la salida1 a la punta.
	 En elmenú Archivo, seleccione Guardar en área de trabajo como ....
Graf
	Introduzca el nombre de la variable tipper y haga clic en Aceptar.
Verá el diagrama actualizado para reflejar los nuevos nombres de las variables de entrada y salida. Ahora hay una nueva variable en el espacio de trabajo llamado tipper que contiene toda la información sobre este sistema. Al guardar en el espacio de trabajo con un nombre nuevo, también cambia el nombre del sistema completo. Su ventana se verá algo como esto.
	
	Graf
Deje las opciones de inferencia en la parte inferior izquierda en sus posiciones predeterminadas por ahora. Has ingresado toda la información que necesitas para esta GUI en particular. A continuación se definen las funciones de pertenencia asociadas a cada una de las variables. Para ello, abra el Editor de funciones de membresía. Puede abrir el Editor de funciones de membresía de una de las siguientes maneras:
• Tire hacia abajo del elemento de menú Ver y seleccione Editar funciones de afiliación ....
• Haga doble clic en el icono de la variable de salida, punta.
• Escriba mfedit en la línea de comandos.
El Editor de funciones de membresía
	(Izquierda a derecha)
	Estos elementos de menú le permiten guardar, abrir o editar un sistema difuso utilizando cualquiera de las cinco herramientas GUI básicas.
	Este es el área de "Paleta Variable". Haga clic en una variable aquí para actualizarla y editar sus funciones de pertenencia.
	Este campo de gráfico muestra todas las funciones de pertenencia de la variable actual.
	Haga clic en una línea para seleccionarla y puede cambiar cualquiera de sus atributos, incluyendo nombre, tipo y parámetros numéricos. Arrastre el ratón para mover o cambiar la forma de una función de pertenencia seleccionada.
	Estos campos de texto muestran el nombre y el tipo de la variable actual.
	Este campo de edición le permite cambiar el nombre de la función de pertenencia actual.
	Este campo de edición le permite establecer el rango de la variable actual.
	Este menú emergente le permite cambiar el tipo de la función de pertenencia actual.
	Este campo de edición le permite establecer el rango de visualización del gráfico actual.
	Este campo de edición le permite cambiar los parámetros numéricos para la función de pertenencia actual.
	Esta línea de estado describe la operación más reciente.
El Editor de funciones de membresía comparte algunas funciones con el Editor de FIS. De hecho, todas las cinco herramientas GUI básicas tienen opciones de menú similares, líneas de estado y botones de ayuda y cierre. El Editor de funciones de membresía es la herramienta que le permite mostrar y editar todas las funciones de pertenencia asociadas con todas las variables de entrada y salida para todo el sistema de inferencia difusa.
Cuando abre el Editor de funciones de membresía para trabajar en un sistema de inferencia difusa que aún no existe en el área de trabajo, no hay aún ninguna función de pertenencia asociada con las variables que acaba de definir con el Editor de FIS.
En la parte superior izquierda del área de gráfico del Editor de funciones de membresía se encuentra una "paleta de variables" que le permite establecer las funciones de pertenencia para una variable determinada. Para configurar sus funciones de pertenencia asociadas con una entrada o una variable de salida para el FIS, Seleccione una variable FIS en esta región haciendo clic en ella.
A continuación, seleccione el menú desplegable Editar y elija Añadir MF. Aparecerá una nueva ventana que le permitirá seleccionar tanto el tipo de función de pertenencia como el número de funciones de pertenencia asociadas a la variable seleccionada. En la esquina inferior derecha de la ventana se encuentran los controles que permiten cambiar el nombre, el tipo y los parámetros (forma) de la función de pertenencia una vez que se ha seleccionado.
Las funciones de pertenencia de la variable actual se muestran en el gráfico principal. Estas funciones de pertenencia pueden ser manipuladas de dos maneras. En primer lugar, puede utilizar el ratón para seleccionar una función de pertenencia particular asociada a una variable de calidad determinada (como, por ejemplo, pobre, para la variable, servicio) y, a continuación, arrastre la función de pertenencia de lado a lado. Esto afectará a la descripción matemática de la calidad asociada con esa función de pertenencia para una variable dada. La función de pertenencia seleccionada también se puede etiquetar para dilatación o contracción haciendo clic en los pequeños puntos de arrastrar cuadrados en la función de pertenencia y arrastrando la función con el ratón hacia el exterior, para la dilatación, o hacia el interior, para la contracción. Esto cambiará los parámetros asociados con esa función de pertenencia.
Debajo de la paleta de variables hay información sobre el tipo y el nombre de la variable actual. Hay un campo de texto en esta región que le permite cambiar los límites del rango de la variable actual (universo del discurso) y otro que le permite establecer los límites del gráfico actual (que no tiene ningún efecto real en el sistema).
El proceso de especificar las funciones de pertenencia de entrada para este problema de dos volquetes de entrada es el siguiente:
	Seleccione la variable de entrada, servicio, haciendo doble clic en ella. Ajuste el Range y el Display Range al vector [0 10].
	Seleccione Añadir MFs ... en el menú Editar. La ventana de abajo se abre.
Graf
	Utilice la pestaña desplegable para elegir gaussmf para MF Type y 3 para Number of MFs. Esto suma tres curvas gaussianas al servicio de variables de entrada
	Haga clic una vez en la curva con la joroba más a la izquierda. Cambie el nombre de la curva a pobre. Para ajustar la forma de la función de pertenencia, utilice el ratón, como se describió anteriormente, o escriba un cambio de parámetro deseado y, a continuación, haga clic en la función de pertenencia. La lista de parámetros por defecto para esta curva es [1.5 0].
	Nombre la curva con la joroba media, buena, y la curva con la joroba más a la derecha, excelente. Restablezca los parámetros asociados si lo desea.
	Seleccione la variable de entrada, comida, haciendo clic en ella. Ajuste el Range y el Display Range al vector [0 10].
	Seleccione Añadir MFs ... en el menú Edición y añada dos curvas de trampf a la variable de entrada de alimentos.
	Haga clic una vez directamente en la curva con el trapazoid más a la izquierda. Cambie el nombre de la curva a rancio. Para ajustar la forma de la función de pertenencia, utilice el ratón, como se describió anteriormente, o escriba un cambio de parámetro deseado y, a continuación, haga clic en la función de pertenencia. El listado de parámetros por defecto para esta curva es [0 0 1 3].
	Nombre la curva con el trapazoid más a la derecha, delicioso, y restablecer los parámetros asociados si se desea
A continuación, debe crear las funciones de pertenencia para la variable de salida, propina. Para crear las funciones de pertenencia a las variables de salida, utilice la paleta de variables a la izquierda, seleccionando la variable de salida, punta. Las entradas variaban de 0 a 10, pero la escala de salida va a ser una punta entre 5 y 25 por ciento.
Utilice tipos de función de pertenencia triangular para la salida. Primero, ajuste el rango (y el rango de visualización) en [0 30], para cubrir el rango de salida. Inicialmente, la función de membresía barata tendrá los parámetros [0 5 10], la función de membresía promedio será [10 15 20], y la función de membresía generosa será [20, 25, 30]. Su sistema debe ser algo como esto.
Graf
Ahora que las variables han sido nombradas, y las funciones de membresía tienen formas y nombres apropiados, estás listo para anotar las reglas. Para llamar al editor de reglas, vaya al menú Ver y seleccione Editar reglas ... o escriba ruleedit en la línea de comandos.
El editor de reglas
	Los elementos del menú le permiten guardar, abrir o editar un sistema difusoutilizando cualquiera de las cinco herramientas GUI básicas.
	Menús de selección de entrada o salida.
	Las reglas se introducen automáticamente utilizando las herramientas GUI.
	Enlace las declaraciones de entrada en las reglas.
	El botón Ayuda proporciona información sobre cómo funciona el Editor de reglas y el botón Cerrar cierra la ventana.
	Esta línea de estado describe la operación más reciente.
	Negar declaraciones de entrada o salida en reglas.
	Cree o edite reglas con los botones GUI y las opciones de los menús de selección de entrada o salida
Construir reglas usando la interfaz gráfica del Editor de Reglas es bastante evidente. Basado en las descripciones de las variables de entrada y salida definidas con el Editor de FIS, el Editor de Reglas le permite construir las sentencias de regla automáticamente, haciendo clic en y seleccionando un ítem en cada cuadro de entrada de variables, un ítem en cada caja de salida y uno Elemento de conexión. Escoger ninguno como una de las cualidades variables excluirá esa variable de una regla dada. Elegir no bajo ningún nombre de variable negará la calidad asociada. Las reglas pueden ser cambiadas, borradas o agregadas, haciendo clic en el botón apropiado.
El Editor de Reglas también tiene algunos puntos de referencia conocidos, similares a los del Editor de FIS y el Editor de Funciones de Membresía, incluyendo la barra de menús y la línea de estado. El menú emergente Formato está disponible en el menú desplegable Opciones de la barra de menú superior, que se utiliza para configurar el formato de la pantalla.
Del mismo modo, Language se puede configurar desde bajo Options. El botón Ayuda mostrará una ventana de Ayuda de MATLAB.
Para insertar la primera regla en el Editor de reglas, seleccione lo siguiente:
• pobre en la variable Servicio
• rancio en la variable Alimento
• el botón de opción Or, en el bloque Conexión
• barato, en la variable de salida, propina.
La regla resultante es:
1. Si (el servicio es pobre) o (el alimento es rancio) entonces (la propina es barata) (1)
Los números entre paréntesis representan pesos que pueden aplicarse a cada regla si se desea. Puede especificar las ponderaciones escribiendo un número deseado entre cero y uno bajo el ajuste Peso:. Si no los especifica, se supone que los pesos son unidad (1).
Siga un procedimiento similar para insertar la segunda y tercera reglas en el Editor de reglas para obtener:
1. Si (el servicio es pobre) o (el alimento es rancio) entonces (la propina es barata) (1)
2. Si (el servicio es bueno) entonces (la propina es promedio) (1)
3. Si (el servicio es excelente) o (la comida es deliciosa) entonces (propina es generoso) (1)
Para cambiar una regla, primero haga clic en la regla que se va a cambiar. A continuación, haga los cambios deseados a esa regla y, a continuación, haga clic en Cambiar regla. Por ejemplo, para cambiar la primera regla a
1. Si (servicio no es pobre) o (comida no rancio) entonces (la propina no es barata) (1)
El menú emergente Formato del menú Opciones indica que está mirando la forma detallada de las reglas. Intente cambiarlo a simbólico. Ya verás
1. (servicio == pobre) => (punta = barato) (1)
2. (servicio == bueno) => (punta = promedio) (1)
3. (servicio == excelente) => (tip = generoso) (1)
No hay mucha diferencia en la pantalla realmente, pero es un poco más neutral en el lenguaje, ya que no depende de términos como "si" y "entonces". Si cambia el formato a indexado, verá una versión extremadamente comprimida De las reglas que ha exprimido todo el lenguaje.
1, 1 (1): 1
2, 2 (1): 1
3, 3 (1): 1
Esta es la versión que la máquina trata. La primera columna de esta estructura corresponde a la variable de entrada, la segunda columna corresponde a la variable de salida, la tercera columna muestra el peso aplicado a cada regla y la cuarta columna es una abreviatura que indica si se trata de una regla OR (2) o Una regla AND (1). Los números de las dos primeras columnas se refieren al número de índice de la función de pertenencia. Una interpretación literal de la regla 1 es: "si la entrada 1 es MF1 (la primera función de pertenencia asociada con la entrada 1) entonces la salida 1 debería ser MF1 (la primera función de pertenencia asociada con la salida 1) con el peso 1." Una entrada para este sistema, el conectivo Y implicado por el 1 en la última columna no tiene ninguna consecuencia.
El formato simbólico no se preocupa con los términos, si, entonces, y así sucesivamente. El formato indexado ni siquiera se preocupa con los nombres de sus variables. Obviamente la funcionalidad de su sistema no depende de lo bien que haya nombrado sus variables y funciones de membresía. El punto de nombrar variables de forma descriptiva es, como siempre, hacer que el sistema sea más fácil de interpretar. Por lo tanto, a menos que tenga algún propósito especial en mente, probablemente será más fácil para usted seguir con el formato detallado.
En este punto, el sistema de inferencia difusa ha sido completamente definido, en el que las variables, las funciones de pertenencia y las reglas necesarias para calcular las puntas están en su lugar. Sería bueno, en este punto, mirar un diagrama de inferencia borroso como el presentado al final de la sección anterior y verificar que todo se está comportando de la manera que creemos que debería. Éste es exactamente el propósito del Visor de reglas, el siguiente de las herramientas GUI que veremos. En el menú Ver, seleccione Ver reglas ....
Graf
El visor de reglas
	
	(izquierda a derecha)
	Los elementos del menú le permiten guardar, abrir o editar un sistema difuso utilizando cualquiera de las cinco herramientas GUI básicas.
	Cada columna de gráficos (amarillo) muestra cómo se usa la variable de entrada en las reglas. Los valores de entrada se muestran aquí en la parte superior.
	Esta columna de gráficos (azul) muestra cómo se usa la variable de salida en las reglas.
	Cada fila de parcelas representa una regla (aquí hay 3). Haga clic en una regla para mostrarla en la barra de estado.
	Esta línea proporciona un valor defuzzified.
	Deslice esta línea para cambiar los valores de entrada y genere una nueva respuesta de salida.
	El gráfico de abajo a la derecha muestra cómo la salida de cada regla se combina para hacer una salida agregada y luego defuzzified.
	Este campo de edición le permite configurar la entrada de forma explícita.
	Cambie los gráficos a la izquierda, derecha, arriba o abajo con estos botones.
	Esta línea de estado describe la operación más reciente.
El visor de reglas muestra una hoja de ruta de todo el proceso de inferencia difusa. Se basa en el diagrama de inferencia difuso descrito en la sección anterior. Usted ve una ventana de una sola figura con 10 pequeñas parcelas anidadas en ella. Las tres pequeñas parcelas en la parte superior de la figura representan el antecedente y consecuente de la primera regla. Cada regla es una fila de tramas, y cada columna es una variable. Las primeras dos columnas de las parcelas (las seis parcelas amarillas) muestran las funciones de pertenencia a las que hace referencia el antecedente, o la si-parte de cada regla. La tercera columna de parcelas (las tres parcelas azules) muestra las funciones de pertenencia referidas por el consecuente, o la entonces-parte de cada regla. Si hace clic una vez en un número de regla, la regla correspondiente se mostrará en la parte inferior de la figura. Tenga en cuenta que en los alimentos, hay una parcela que está en blanco. Esto corresponde a la caracterización de ninguno para la variable alimento en la segunda regla. El cuarto gráfico en la tercera columna de gráficos representa la decisión ponderada agregada para el sistema de inferencia dado. Esta decisión dependerá de los valores de entrada para el sistema.
También hay los elementos ahora familiares como la línea de estado y la barra de menús. En la parte inferior derecha hay un campo de texto en el que puede introducir valores de entrada específicos. Parael sistema de dos entradas, ingresará un vector de entrada, [9 8], por ejemplo, y luego haga clic en oninput. También puede ajustar estos valores de entrada haciendo clic en cualquier lugar en cualquiera de los tres gráficos para cada entrada. Esto moverá la línea roja del índice horizontalmente, al punto donde usted ha hecho clic. También puede hacer clic y arrastrar esta línea para cambiar los valores de entrada. Al liberar la línea, (o después de especificar manualmente la entrada), se realiza un nuevo cálculo, y se puede ver que todo el proceso de inferencia difusa tiene lugar. Cuando la línea de índice que representa el servicio cruza la línea de función de pertenencia "servicio es pobre" en el gráfico de la parte superior izquierda, determinará el grado en que se activa la regla 1. Un parche amarillo de color bajo la curva de función de membresía real se utiliza para hacer que el valor de pertenencia difusa aparezca visualmente. Cada una de las caracterizaciones de cada una de las variables se especifica con respecto a la línea de índice de entrada de esta manera. Si seguimos la regla 1 en la parte superior del diagrama, podemos ver que la consiguiente "punta es barata" se ha truncado exactamente al mismo grado que el antecedente (compuesto) -este es el proceso de implicación en acción. La agregación se produce en la tercera columna, y la parcela agregada resultante se muestra en la parcela única que se encuentra en la esquina inferior derecha del campo de parcela. El valor de salida defuzzified se muestra por la línea gruesa que pasa a través del conjunto fuzzy agregado.
El Visor de reglas le permite interpretar todo el proceso de inferencia difusa a la vez. El Visor de reglas también muestra cómo la forma de ciertas funciones de pertenencia influye en el resultado general. Dado que representa todas las partes de cada regla, puede llegar a ser difícil de manejar para sistemas particularmente grandes, pero, para un número relativamente pequeño de entradas y salidas, funciona bien (dependiendo de cuánto espacio de pantalla le dedicas) con hasta 30 reglas Y hasta 6 o 7 variables.
El visor de reglas muestra un cálculo a la vez y con gran detalle. En este sentido, presenta una especie de micro visión del sistema de inferencia fuzzy. Si desea ver toda la superficie de salida de su sistema, es decir, toda la extensión del conjunto de salidas basada en todo el intervalo del conjunto de entradas, debe abrir el Visor de Superficie. Esta es la última de nuestras cinco herramientas GUI básicas en el Fuzzy Logic Toolbox y lo abre seleccionando Ver superficie ... en el menú Ver.
El visor de superficie
	(Izquierda a Derecha)
	Los elementos del menú le permiten guardar, abrir o editar un sistema difuso utilizando cualquiera de las cinco herramientas GUI básicas.
	Utilice el ratón para girar los ejes.
	Este gráfico muestra la superficie de salida para cualquier salida del sistema frente a una o dos entradas al sistema
	Estos menús emergentes le permiten especificar las una o dos variables de entrada visualizadas.
	Este menú emergente le permite especificar la variable de salida visualizada.
	Estos campos de edición le permiten determinar la densidad de la cuadrícula del espacio de entrada.
	Pulse este botón cuando esté listo para calcular y trazar.
	Este campo de edición le permite configurar la entrada de forma explícita para las entradas no especificadas en el gráfico de superficie.
	El botón Ayuda proporciona información sobre cómo funciona el Visor de Superficie y el botón Cerrar cierra la ventana.
	Esta línea de estado describe la operación más reciente.
Al abrir el visor de superficie, se nos presenta una curva bidimensional que representa el mapeo de la calidad del servicio a la cantidad de punta. Puesto que se trata de un caso de una entrada de una salida, podemos ver el mapeo completo en una parcela. Los sistemas de dos entradas de una salida también funcionan bien, ya que generan tramas tridimensionales que MATLAB puede administrar de manera adecuada. Cuando nos movemos más allá de tres dimensiones en general, empezamos a encontrar problemas para mostrar los resultados. Por lo tanto, el visor de superficie está equipado con menús emergentes que le permiten seleccionar cualquier dos entradas y cualquier salida para el trazado. Justo debajo de los menús emergentes hay dos campos de entrada de texto que le permiten determinar cuántas líneas de cuadrícula del eje x y del eje Y desea incluir. Esto le permite mantener el tiempo de cálculo razonable para problemas complejos. Al presionar el botón Evaluar se inicia el cálculo y la trama aparece poco después de que se haya completado el cálculo. Para cambiar el eje x o la cuadrícula del eje y después de que la superficie esté a la vista, simplemente cambie el campo de texto apropiado y haga clic en X-grids: o Y-grids :, según el campo de texto que cambió, para volver a dibujar el trama.
El visor de superficie tiene una capacidad especial que es muy útil en casos con dos (o más) entradas y una salida: en realidad puede agarrar los ejes y cambiarlos de posición para obtener una vista tridimensional diferente de los datos. La Ref. El campo Input: se utiliza en situaciones en las que hay más entradas requeridas por el sistema que la superficie está cartografiada. Supongamos que tiene un sistema de una entrada de cuatro entradas y le gustaría ver la superficie de salida. El Visor de Superficie puede generar una superficie de salida tridimensional donde dos de las entradas varían, pero dos de las entradas deben mantenerse constantes ya que los monitores de computadora no pueden mostrar una forma de cinco dimensiones. En tal caso, la entrada sería un vector de cuatro dimensiones con NaNs que mantiene el lugar de las entradas variables, mientras que los valores numéricos indican aquellos valores que permanecen fijos. Un NaN es el símbolo IEEE para "no un número".
Esto concluye el recorrido rápido de cada una de las herramientas GUI principales. Observe que para el problema de inflexión, la salida del sistema difuso coincide con nuestra idea original de la forma del mapeado difuso del servicio a la punta bastante bien. En retrospectiva, podría decir: "¿Por qué molestarse? Sin embargo, si usted está interesado en resolver una clase entera de problemas similares de toma de decisiones, la lógica difusa puede proporcionar una herramienta apropiada para la solución, dada su facilidad con Que un sistema puede ser rápidamente modificado.
Importar y exportar desde las herramientas GUI
 Cuando guarda un sistema difuso en disco, está guardando una representación de archivo FIS de texto ASCII de ese sistema con el sufijo .fis del archivo. Este archivo de texto puede ser editado y modificado y es fácil de entender. Cuando guarda su sistema difuso en el espacio de trabajo de MATLAB, está creando una variable (cuyo nombre elija) que actuará como estructura MATLAB para el sistema FIS. Los archivos FIS y las estructuras FIS representan el mismo sistema.
Nota: Si no guarda su FIS en su disco, pero sólo lo guarda en el espacio de trabajo de MATLAB, no podrá recuperarlo para su uso en una nueva sesión de MATLAB.
Personalización de su sistema difuso
  Si desea incluir funciones personalizadas como parte de su uso de la Caja de herramientas de lógica difusa, hay algunas directrices que debe seguir. El método AND, el método OR, el método de agregación y las funciones del método de defuzzificación que proporciona deben funcionar de manera similar a max, min o orprod en MATLAB. Es decir, deben poder funcionar abajo de las columnas de una matriz. Por ejemplo, el método de implicación hace una operación de matriz elemento por elemento, similar a la función min, como en
	a=[1 2; 3 4];
	b=[2 2; 2 2]; 
	min(a,b) ans = 
		1	 2
		2	 2
Funciones de membresía personalizadas
Puede crear sus propias funciones de membresía utilizando un archivo M. Los valores que estas funciones pueden tomar deben estar entre 0 y 1. Hay una limitación en las funciones de membresíapersonalizadas en que no pueden utilizar más de 16 parámetros.
Para definir una función de pertenencia personalizada llamada custmf:
1 Cree un archivo M para una función, custmf.m, que toma valores entre 0 y 1, y depende de como máximo 16 parámetros.
2 Elija el elemento Agregar MF personalizado en el menú Edición de la GUI del Editor de funciones de membresía.
3 Ingrese su nombre de archivo de la función de membresía personalizada, custmf, en el cuadro de texto del nombre de la función de archivo-M.
4 Introduzca el vector de parámetros que desea utilizar para parametrizar su función de pertenencia personalizada en el cuadro de texto junto a Lista de parámetros.
5 Asigne a la función de membresía personalizada un nombre diferente al de cualquier otro nombre de función de membresía que utilizará en su FIS.
6 Seleccione Aceptar
He aquí un ejemplo de código para una función de membresía personalizada, testmf1, que depende de ocho parámetros entre 0 y 10.
function out = testmf1(x, params)
 for i=1:length(x)
 if x(i)<params(1)
 y(i)=params(1);
 elseif x(i)<params(2)
 y(i)=params(2);
 elseif x(i)<params(3) 
y(i)=params(3);
 elseif x(i)<params(4) 
y(i)=params(4);
 elseif x(i)<params(5) 
y(i)=params(5);
 elseif x(i)<params(6)
 y(i)=params(6);
 elseif x(i)<params(7)
 y(i)=params(7);
 elseif x(i)<params(8)
 y(i)=params(8); 
 else y(i)=0;
 end
 end
 out=.1*y';
Puede intentar nombrar este archivo testmf1.m y cargarlo en el Editor de funciones de membresía utilizando los parámetros de su elección.
Working from the command Line (aquí me quedé)

Más contenidos de este tema