Professional Documents
Culture Documents
Sobre el Algoritmo
Los detalles del algoritmo básico de lógica fuzzy y la manera en la cual trabaja, son descritos en este
apéndice. De manera general el algoritmo consiste en una serie de cinco pasos sucesivos, la manera el
la cual cada paso funciona puede ser programado de distinta forma. Nosotros presentamos un diagrama
de flujo que puede ser utilizado como referencia para el desarrollador.(Figura A.1)
Datos de Entrada A
B
Motor de Evaluación de antecedentes
Inferencia Paso 2 variables fuzzy
Fuzzy C
Figura A.1
Nivel A2 Transformación, si esta es necesaria e implementada en este paso. Dependiendo del diseño,
dos o mas datos de dimensión convertidos en sus posibles unidades.
Nivel A3 Un bucle empieza aquí, por selección de un dato de entrada por ciclo. Este bucle continuara
hasta que todos los elementos de el conjunto de entrada sean procesados.
Nivel A4 Una revisión trivial toma lugar en este nivel, identificando el tipo de dato(numérico o
simbólico).
1
Nivel A5 Para datos numéricos, el universo de discurso corresponde a la variable antecedente y es
utilizada para verificar si los datos se encuentran entre el limite superior e inferior del universo del
discurso. Los limites del universo de discurso para cada variable son cargados en la memoria del
sistema Fuzzy. Si los datos son plurales, esto es, si se tienen mas de un punto de entrada, la misma
operación es empleada. Para datos simbólicos, se realiza un paso de reconocimiento para cada símbolo,
cada símbolo generalmente es una sentencia lingüística, después convertida a una forma numérica. Esta
conversión es solo posible si el símbolo existe previamente en el sistema Fuzzy, es decir el símbolo fue
declarado durante su diseño. En otras palabras, si Alto es la entrada lingüística, antecedente de la
variable temperatura, esta tiene que ser conocida por el sistema Fuzzy donde Alto tiene un significado
en valores de temperatura. Esto es análogo al hablar cotidianamente para poder comprender el
significado de las palabras. De esta manera, un motor de inferencia, en general tiene una memoria de
lenguaje. Si el símbolo es reconocido, es convertido a un valor numérico contenido en el universo del
discurso, definido en la fase de diseño.
Nivel A6 En caso de encontrar un dato incongruente, un registro de fallo es guardado en este paso. El
registro de fallo es mantenido, en general esto representa , permite la opción de de continuar con las
operaciones Fuzzy en caso de un reconocimiento parcial de la entrada de un conjunto de datos.
Nivel A7 Bucle terminal de la condición de revisión, para ratificar que todas las entradas fueron
analizadas.
Nivel A8 El ultimo paso antes de declarar la validez del conjunto de entrada, esto implica mas que la
aplicación trivial de las operaciones explicadas en la parte anteriormente. Cuando todos los elementos
de entrada son encontrados como apropiados o aceptables. Sin embargo, cuando una fracción de esta
entrada resulta inapropiado, un criterio de aceptabilidad es aplicado. Para la aplicación en donde la
perdida de datos sea tolerable. El criterio de aceptabilidad tendría que ser flexible para permitir la
propagación de la entrada de los datos. En tales casos, la trasformación de los datos de una entrada no
aceptable producirá una entrada de cero, que es un valor valido para las inferencias. Cuando el conjunto
de entrada sea rechazado o catalogado como defectuoso el flujo del algoritmo regresara para recolectar
un nuevo conjunto de datos. Este procedimiento desición-elección basado en un registro de falla o
invalido, es denotado con lineas entrecortadas.
2
A
Entrada de conjuntos
de datos del mundo A1
exterior[I1, I2,...,Iλ]
Transformación de A2
los datos si es necesaria
Registro
A6
de error
¿Revisión de
todas las
A7
salidas?
¿Fallo en A8
A
registros OK?
Figura A.2 Procesamiento de entrada de los datos del algoritmo básico de lógica Fuzzy
3
Paso 2: Evaluando antecedentes de variables fuzzy
Figura A.3 se detalla e paso 2 de la figura A.1. Los eventos descritos en la figura A.3 se describen
debajo:
Nivel B1 Una conjunto de datos de entrada, los cuales fueron validados a través del paso anterior, son
obtenidos desde el mundo exterior para la inicialización
1. Una entrada de datos es elegido.
Nivel B2 Las propiedades correspondientes a los antecedentes de las variables Fuzzy son recuperadas o
revisadas de la memoria del sistema fuzzy. Estas propiedades incluyen el número de las funciones de
membresía, la forma de cada función de membresía (coordina), la presentación o salida en el universo
de discurso y el umbral de propiedades.
Nivel B3 Una simple prueba es aplicada para identificar si la entrada seleccionada contiene un único
punto de datos o una distribución de puntos(conjunto fuzzy).
Nivel B4 Las operaciones en este nivel involucran operaciones fuzzy y ellas están subordinadas al
diseño. La evaluación de antecedente en las variables para un único punto de datos o para una
distribución de puntos es ejecutada en este nivel. Ahí hay dos tipos de diseño en cuestión (1) diseño de
funciones de membresía y (2) método de evaluación de las entradas de datos dados. Si bien el primero
representa una basta variedad de diseño de operaciones, la siguiente es completamente estandar
Nivel B5 Para evitar las indeseables verdades residuales (valores muy pequeños de posibilidad), un
umbral es aplicado como filtro en este nivel.
Nivel B6 Un vector de membresía es obtenido en este nivel el último paso es almacenar en la memoria
del sistema fuzzy para su posterior uso.
4
[I1, I2 ,I3, ... In](conjunto de datos de entrada)
¿Punto B3
único?
B5
Filtrado de Umbral
Almacenar en memoria
los valores obtenidos B6
en el Vector de membresia
[μ1, μ2, ..., μj ]
B7
¿Mas
datos?
5
Paso 3: Operaciones LHS
Para llevar a cabo las operaciones LHS el diseño de la información en memoria tiene que ser
organizado de cierta manera. Aquí, nosotros definimos cuatro matrices esto es, la matriz de valores de
membresía, diseño del índice de la matriz, operador lógico de la matriz y parámetro auxiliar de la
matriz. Si bien aquí no se involucra álgebra matricial, la matriz facilita la representación en memoria y
el planteamiento del problema.
La lista de antecedentes de la variable incluye todas las variables fuzzy correspondientes al lado
izquierdo (LHS o Left-Hand-Side) para cada regla respecto a el operador THEN. Esta lista podría
definirse como un vector de caracteres en memoria, es solo importante para propósitos de
identificación. Esto sirve como guía para que todos los índices de definición son referenciados. Para
mantener una nomenclatura consistente, nosotros vamos a definir a X para ser un carácter(lingüístico)
variable, en la definición del vector de variables antecedentes.
i
j
X1 yz
j
j z
j
j
j
X2 zz
z
z
= j
j z
z
j
j z
z
XA
j z
(A.1)
j z
...
k N{
X
El orden en la Ecuación (A.1) es arbitrario en la memoria del sistema fuzzy y no esta relacionado con la
manera en el cual las reglas están compuestas. El índice N indica el número de antecedente fuzzy de
las variables contenidas en memoria.
i
j y
z
j z
m 1,1 m 1,2 m 1,j
j m 2,1 z
...
m =j
j
j
z
z
... z
m 2,2 ... m 2,j
j
j ... z
z
(A.2)
... ...
k m i,1 m i,2 ... m i,j {
El cálculo de un vector de valores de membresía para cada antecedente fuzzy fue mostrada en la
sección anterior. Si existen N antecedentes fuzzy entonces existen N vectores, cada uno con diferente
tamaño de vector, dependiendo del número de funciones de membresía definidas. Los valores de
membresía son obtenidos a través del proceso de incorporación durante la fase de inicialización. Los
valores numéricos serán diferentes dependiendo de la entrada de datos provista del mundo exterior.
Cada renglón de la matriz de membresía denotado por µ corresponde a una variable del antecedente
fuzzy. Cada columna corresponde a diferente función de membresía. Note que esta matriz podría
contener espacios vacios con base en el número de la función de membresía definido para cada variable
6
Antecedente Matriz de Predicados o Sentencias
Otro importante ejemplo que facilita los aspectos computacionales del algoritmo básico de inferencia
fuzzy, es el antecedente de matriz de predicados. Un predicado, puede ser un calificador o cuantificador
fuzzy y es identificado por P y toma valores lingüísticos. A diferencia de los valores la matriz de
membresía la matriz de predicados es fijada por el diseño y esto obedece a un direccionamiento en
memoria donde cada dato corresponde a las funciones de membresía allí almacenadas.
P 1,1
P 2,1
P 1,2 ... P 1,j
P 2,2 ... P 2,j
PLHS (A.3)
... ... ... ...
P i,1 P i,2 ... P i,j
La matriz de predicados de la ecuación (A.3) tiene las mismas dimensiones que la matriz de membresia
de la Ecuación (A.2) debido a que cada predicado corresponde a una función de membresía en la
misma ubicación de la matriz.
I 2,1
I 1,1 I 1,2 ... I 1,j
I 2,2 ... I 2,j
...
ILHS (A.4)
... ... ...
I i,1 I i,2 ... I i,j
Esta matriz exactamente corresponde a una regla de salida. Los elementos de I LHS puede tener un
signo menos al frente de la sentencia fuzzy, indicando un constructor negativo (por ejemplo: utilizando
IS NOT). Cada renglón es una nueva regla las columnas corresponden a las sentencias o declaraciones
fuzzy. Puesto que la longitud de una regla puede ser cualquiera, las columnas utilizan los indices l, m y
n y no son lo mismo. Note que todos los elementos en la Ecuación (A.4) son las mismas sentencias o
declaraciones antes del operador THEN.
Esta matriz contiene la composición de los índices de las operaciones tal como AND y OR. Note que
cada índice operacional contiene dos tipos de información (1) el tipo de operador y (2) orden del
cálculo u operación.
7
1,1
1,2 ... 1,j
2,1 2,2 ... 2,j
... ... ...
LHS (A.5)
...
i,1 i,2 ... i,j
El orden de las operaciones o cálculos esta relacionada a la agrupación de los diferentes operadores.
Agrupando diferentes operadores , los cuales son indicados normalmente con paréntesis en términos
computacionales esto implica una secuencia definida de operaciones. La secuencia es determinada por
las sentencias o declaraciones mas internas (el mas alto grado de anidamiento). Una de las formas mas
prácticas formas de determinar la secuencia consistente en contar de izquierda a derecha los paréntesis,
entonces numerar la composición de los operadores. Como un ejemplo considere la regla fuzzy
encontrada debajo
Esta regla es ta formada tal que las primera operación debe ser la operación OR entre S1 y S2 y
la segunda operación debe ser la operación AND entre el resultado de la primera operación y S3. La
jerarquía en el orden de soluciones esta ilustrado en la figura A.4 para una regla arbitraria con tres
paréntesis.
La lógica del índice de operaciones Θ, el cual es una variable simbólica puede ser creado para
conllevar ambos tipos de información para su simplicidad. Por ejemplo, los dos operadores lógicos en
la regla mostrada arriba serian
Θ1 = OR-001 Θ2 = AND-002
Este tipo de codificación es muy práctica desde el punto de vista del programador y no tiene
nada que ver con el diseño del motor de inferencia fuzzy.
Resultado LHS
8
Figura A.4 Agrupando varios operadores lógicos se requiere un esquema de solución jerárquico.
Cuando las sentencias fuzzy son sujetas a modificaciones por vaguedades lingüísticas o por algoritmos
adaptativos, el tipo de modificación debe ser almacenada en la memoria del sistema fuzzy. Puesto que
parámetros auxiliares son asignados a cada sentencia fuzzy, ellos son seguidos de los indices de
sentencias. El LHS matiz de parámetros auxiliares es descrita a continuación.
1,j
2,j
1,1 1,2 ...
...
2,1 2,2 ...
LHS (A.6)
... ... ...
i,1 i,2 ... i,j
Cada renglón es una nueva regla en tanto que las columnas corresponden a las sentencias
únicamente(no a los operadores o paréntesis). De este modo, los indices w, x, y h no son los mismos
que en I LHS .
LHS Cálculos
Consecuentemente, la parte LHS del sistema entero de reglas puede ser representado simbolicamente
por cuatro entidades: (1) la matriz de valores de membresía; (2)la matriz de predicados o sentencias;
(3) la matriz de operaciones; y (4) la matriz de parámetros auxiliares. Los indices en estas matrices
corresponden a la lista de variables antecedente(vector) inicialmente construido por el diseñador.
i
j y
z
j z
m 1,1 m 1,2 m 1,j
j m 2,1 z P 2,1
... P 1,1 P 1,2 ... P 1,j
m =j
j
j
z
z
... z
m 2,2 ... m 2,j P 2,2 ... P 2,j
j
j ... z
z
...
PLHS
... ... ... ... ...
k m i,1 m i,2 ... m i,j { P i,1 P i,2 ... P i,j
(1) (2)
Matriz de valores de Membresia Matriz de Predicados
1,j
i
j y
z
2,j j z
1,1 1,2 ... Q 1,1 Q 1,2 Q 1,j
j Q 2,1 z
...
=j
j z
z
... j ... z
2,1 2,2 ... Q 2,2 ... Q 2,j
j
j ... z
z
LHS Q LHS
... ... ... ... ...
i,1 i,2 ... i,j k Q i,1 Q i,2 ... Q i,j {
(3) (4)
LHS Matriz parametros auxiliares LHS Matriz de Operaciones
Las Operación LHS de cada regla es independiente de otras. Esto produce un vector de resultados de
todo el conjunto de reglas base con cada elemento por cada regla. Una vez el conjunto de operaciones
9
LHS son caracterizadas utilizando estas cuatro matrices se pasan por una función algorítmica Ψ(μ, I, λ,
Θ)LHS da como resultado en vector Expresado como
r1
r2
, I, , LHS
r (A.7)
...
Z
r
Donde el número total de reglas es Z. Paso 3 del algoritmo básico de lógica Fuzzy entre los puntos
terminales C y D (Fig A.1) calcula el vector r que contiene los valores DOF. Los elementos de este
vector son numéricos y ellos cambiaran para cada inicialización de un paso a otro como el sistema
fuzzy asimila nuevos conjuntos de datos provenientes del mundo exterior y produce los elementos
numéricos de la matriz membresía μ.
Utilizando las definiciones citadas anteriormente y la Ecuación (A.7), el diagrama de
representación de las Operaciones LHS del algoritmo básico de inferencia fuzzy ilustrado en la figura
A.5. Las operaciones entre las terminales C y D son explicadas de la manera siguiente.
Nivel C1 El primer paso es recuperar las propiedades establecida por el diseño de la memoria del
sistema fuzzy. Éstas incluyen la matiz de operaciones LHS, la matriz LHS de probabilidad fuzzy y el
diseño de la matriz de Indices LHS. Ente éstas matrices, la matriz de operaciones LHS es la guia del
camino a seguir.
Nivel C2 Un ciclo externo inicia de la primera linea(primera regla) de la matriz de operaciones LHS.
Nivel C3 Un ciclo interior toma un operador al tiempo que todas las operaciones son reservadas en la
regla seleccionada. Al ir seleccionando un operador éste es la elegido conforme al mas alto grado de
anidamiento para el caso de operadores de distintos tipos. Esta información puede se puede adjuntar a
el operador de datos en memoria, esto para facilitar las operaciones. Asumiendo tal una estructura, el
operador OR tomará el primero entre el AND-1 y OR-3 en una regla hipotética. Aquí, 1 y 3 indican el
orden de agrupación o el número de paréntesis. La posición (k) es seleccionada en la logica de la matriz
de operaciones será utilizado en los niveles C4 y C7.
Nivel C4 En este paso, toda la información necesaria para las operaciones LHS es recolectada para la
regla seleccionada y para el operador lógico seleccionado. Esto incluye la determinación de el tipo de
operador por los tipos de datos (por ejemplo extraer en AND desde AND001) cual pertenece a el k-
esimo indice operador en memoria. Habiendo encontrado la ubicación k los índices ( i , j ) k y ( i , j ) k+1
son extraídos del diseño de la matriz de índices en memoria. Los indices ( i , j ) k y ( i , j ) k+1 son
utilizados en la ubicación de los valores de memoria μ( i , j ) k y μ( i , j ) k+1 en la matriz de membresía
LHS.
Nivel C5 Este es el único bloque entre los puntos termina C y D que involucran operaciones fuzzy. La
Composición entre dos sentencias son calculadas utilizando μ( i , j ) k y μ( i , j ) k+1 , λ k y λ k+1 Θ k
durante este paso. Entre los dos operadores mas utilizados AND y OR, las operaciones min y max son
aplicadas, respectivamente. Si las sentencias fuzzy no son modificadas externamente λ k y λ k+1 son
iguales al la unidad. En el caso de estructuras anidadas el cálculo toma lugar en entre μ( i , j ) k y Θ k y
r', donde r' es el resultado previo, o entre Θ k y μ( i , j ) k+1 dependiendo en cual lado (k o k+1) haya
sido calculado anteriormente. Note que solo un resultado fue calculado en este paso.
10
Nivel C7 El fin de ciclo de la condición es aplicado. Cuando todos los operadores en la regla
seleccionada hayan sido procesados, el ciclo termina.
Nivel C9 El fin de ciclo de la condición es aplicado. Cuando todas las reglas esten procesadas, el ciclo
termina.
11
. C
C2
Ciclo: Contador de reglas
C7
¿Mas operaciones?
¿Mas C9
reglas?
Figura A.5 LHS Operaciones básicas del algoritmo básico de inferencia fuzzy.
12
Ejemplo A.1
Un hipotético motor de inferencia sera examinado en este ejemplo para ilustrar completamente el
calculo de operaciones LHS. Suponga entonces que estamos analizando dos reglas fuzzy como se
muestra abajo:
Debido a que estamos lidiando con las operaciones LHS, el operador THEN y las sentencias
posteriores no son consideradas. Las variables fuzzy en memoria(o la lista de antecedentes variables)
son:
temperature
flow
valve
i
j y
z i low y
j z j
j z
j z high z
P 1,1 P 1,2 P 1,3
j low z
high
j
j z
z j z
k open closed {
P 2,1 P 2,2 P 2,3 = medium
k P 3,1 P 3,1 P 3,3 { half
Note que esta matriz contiene elementos mas alla de lo definido en las reglas base con proposito
de puntualizar la matriz de predicados LHS, puede ser diseñada para incluir definiciones o un substituto
o elementos reservados. Cada renglón de arriba corresponde a una variable fuzzy en la memoria. Cada
columna indica el nombre de la función de membresía. Por tanto, la primera variable es temperature
tiene dos funciones de membresía acorde al diseño son low, medium y high, y la variable valve tres
funciones de membresía acorde al diseño y son open, half y closed. Estas propiedades están
almacenadas en memoria para ser utilizadas durante el proceso de asimilación de datos de entrada.
El diseño de la matriz de indices es:
J N = J N
I 1,1 I 1,2 I 1,3 1, 2 2, 2 3, 1
I 2,1 3, 3
Ésta Matriz coincide exactamente con las reglas base. Cada renglón arriba corresponde o una
regla fuzzy mientras que cada columna corresponde a una sentencia fuzzy. Los indices describen las
reglas. El primer índice I1,1 es 1,2 indicando el renglón y columna en la matriz de membresía. Esto
significa en la regla 1 Temperature IS High.
La lógica de los índices de la matriz de operaciones en memoria es:
J N=J N
Q 1,1 Q 1,2 OR - 2 AND - 1
Q 2,1 0
13
y representa todas las posibles variaciones. El primer operador en la regla es un OR teniendo éste un
nivel de agrupación de orden 2. El segundo operador en la primera regla es un AND teniendo un nivel
de agrupación de orden 1. En la segunda regla no hay operadores.
Toda la información de arriba esta arreglada según el diseño y reside en memoria de manera
permanente. Ahora, implementaremos el bloque C-D para la fase de inicialización.
Permitamos suponer la entrada de los datos para las variables antecedentes en la fase de
inicialización del paso T es:
temperature = 27°F
flow = 10 m/s
valve = 30% open
También supongamos que los valores de membresía calculados durante la fase de asimilación
de datos produjo la siguiente matriz de membresía:
i
j y
z i y
j z j
j z
z
m 1,1 m 1,2 m1,3
j z = j 0.21 z
0.12 0.75 0.0
j
j
m 2,1 m 2,2 m2,3 z
z j z
{ k 0.77 {
0.66 0.0
k m 3,1 m 3,2 m3,3 0.14 0.06
Esta matriz tiene la misma estructura que la matriz de predicados. Note que el último elemento en el
primer renglón es 0.0 debido al número de la función de membresía en la primer variable antecedente
es 2 y no hay una tercera función de membresía en las reglas. Este elemento será cero en todos los
casos. Otros ceros, cada vez que ello aparezca, será el resultado en el proceso de absorción de datos de
entrada.
Nivel C2: El algoritmo empieza desde la primera regla (la primera linea el índice de matriz de
operaciones).
Nivel C3: El mas alto nivel de agrupación de orden k en la primera regla de la matriz de
operaciones es 2 en la ubicación 1,1.
J N=J N
Q 1,1 Q 1,2 OR - 2 AND - 1
Q 2,1 0
Nivel C4: El tipo de operador en esta dirección es OR. El índice de la dirección 1,1 bajo el
diseño de la matriz es 1,2. Los índices adyacentes en la ubicación son 2,2.
J N = J N
I 1,1 I 1,2 I 1,3 1, 2 2, 2 3, 1
I 2,1 3, 3
14
J N=J N
Q 1,1 Q 1,2 OR - 2 AND - 1
Q 2,1 0
Nivel C4: El tipo de operador en la ubicación es un AND. Los índices en la dirección 1,2 según
el diseño de la matriz son 2,2. No obstante, este índice ya fue previamente utilizado para producir
r'(0.75) . El índice adyacente en la ubicación es 3,1
J N = J N
I 1,1 I 1,2 I 1,3 1, 2 2, 2 3, 1
I 2,1 3, 3
El valor del elemento 3,1 en la matriz de membresía es 0.77, el cálculo anteriormente obtenido
fue r'(0.75).
Nivel C5: La composición del cálculo es 0.75 AND 0.77 = 0.75
Nivel C6: El resultado 0.75 es almacenado.
Nivel C7: No hay mas operaciones.
Nivel C8: El primer elemento en el vector de resultados es 0.75 y es almacenado en memoria
Nivel C9: Hay una regla mas para procesar. Regresa al principio del ciclo.
Nivel C3: El mas alto nivel de agrupación de orden k en la segunda regla de la matriz de
operaciones es 0 en la ubicación 2,1.
J N=J N
Q 1,1 Q 1,2 OR - 2 AND - 1
Q 2,1 0
Nivel C4: No hay un operador en esta ubicación. Los indices en la matriz bajo el diseño es 3,3.
No existe una ubicación adyacente.
J N = J N
I 1,1 I 1,2 I 1,3 1, 2 2, 2 3, 1
I 2,1 3, 3
r = J N
0.075
0.06
El cual lo utilizaremos en las operaciones RHS descritas a continuación. Note que los valores
numéricos en el vector cambiaran como el sistema fuzzy absorba nuevos datos provenientes del
mundo exterior.
15
Vector Variable Consecuente
Todos los consecuentes variables fuzzy son mantenidos en memoria del sistema fuzzy desde el
principio con sus propiedades, tal como la estructura de las funciones de membresía y sus umbrales. El
orden en el cual se listan esas variables en memoria significan la constitución de un vector, un mapeo
en el cual todos los indices de las definiciones están referenciados.
i X1
j y
z
j
j z
z
j
j X2 z
z
= j
j
j
z
z
z
j
j z
z
XC
j z
(A.8)
j z
...
k XN {
El orden en la ecuación (A.8) es arbitraria y no esta relacionada con la forma en el cual las
reglas están dispuestas. Note que el índice N, indica el numero de la variable consecuente fuzzy en la
memoria. N no tiene porque se igual al número de reglas.
Ejemplo A.2
Suponga que tenemos un motor de inferencia fuzzy descrito por las siguientes cinco reglas
fuzzy
Recuerde que estamos analizando el lado derecho del Operador THEN. El vector de varaible
consecuente en memoria es
XC = J N
Valve
Operation
donde el orden es arbitrariamente seleccionado. No obstante una vez seleccionado el resto del proceso
de implicación tendrá base en ese orden.
i
j y
z i
j y
z
j z j z
m 1,1 m1,2 m 1,x
j P 2,1 z j z
P 1,1 P 1,2 ... P 1,x ...
=j
j
j
z
z
z
j
j
j
z
z
... z
P 2,2 ... P 2,y m 2,1 m2,2 ... m2,y
j
j ... z
z j
j ... z
z
P RHS ® (A.9)
... ... ... ... ...
k P N,1 P N,2 ... P N,w { k m N,1 mN,2 ... m N,w {
16
donde N es el número de variables consecuente y los indices x, y, w son el número de
predicados(funciones de membresía) para cada variable. Como es ilustrado en la parte superior, la
matriz de predicados consecuente corresponde a las funciones de membresía de los consecuentes que
residen en memoria.
Ejemplo A.3
Utilizando las mismas reglas del ejemplo A.1, la matriz de predicados consecuente en memoria es
P RHS = J N
Open Half Closed
Bad OK ----
donde cada renglón corresponde a una variable consecuente fuzzy. De modo que los predicados en la
primer linea pertenecen a la variable Valve, mientras la segunda corresponde a Operation.
Esta matriz refleja la composición de la estructura de las reglas y tiene como base las dos definiciones
previas. Los elementos de ésta matriz son el número de renglones del vector resultado r dado por la
ecuación (A.7).
i
j y
z
j
j z
z
A 1,1 A 1,2 ... A 1,k
A =j
j
j
z
z
z
A 2,1 A 2,2 A 2,l
j
j z
z
k £ Z , l £ Z, m £ Z (A.10)
...
k A N,1 A N,2 A N,m {
En la ecuación (A.10), cada renglón corresponde a una variable consecuente fuzzy en el vector,
y cada columna corresponde a una función de membresía consecuente. Debido a la longitud del vector
LHS es limitado el número de reglas Z, la anchura de la matriz no puede exceder Z. Esta matriz es la
guia para las operaciones de implicación justo como la matriz lógica de operaciones es la guia para las
operaciones LHS.
Ejemplo A.4
Utilizando el ejemplo A.1, nosotros definiremos el diseño de la tabla de indices RHS examinando las
sentencias RHS. Supongamos que LHS tiene un vector de resultado [r1 ,r2 ,r3 ,r4 ,r5] y ha sido calculado
hasta el punto mostrado abajo.
17
XC = J N P RHS = J N
Valve Open Half Closed
Operation Bad OK ----
indicando que el primer consecuente del predicado A1,1 (función de membresía) será sujeta del proceso
de implicación mientras se utilice r1.
Vector de Agregación
Este conector determina el tipo de agregación para cada variable consecuente fuzzy.
1
2
(A.12)
N
...
La dimensión de este vector es igual al número de reglas Z. Note que esta representación generalizada
no impone ninguna restricción en como calcular los parámetros auxiliares para efectos de un motor de
inferencia fuzzy.
Vector de Peso
En ciertas aplicaciones algunas reglas pueden ser consideradas de mayor importancia que otras. El
algoritmo básico de inferencia fuzzy en su manera mas generalizada, permite la asignación de pesos
durante el diseño.(o durante la implantación adaptativa de un sistema fuzzy). El peso de los elementos
de un vector corresponde a una regla expresada como:
i
j y
z
j
j W2 z
z
W1
W = j
j z
z
j
j ... z
z
(A.13)
k WZ {
Operaciones RHS
Primero recordemos que esta residiendo en memoria del sistema fuzzy para poder asi llevar a cabo los
cálculos implicados. El RHS es representado simbólicamente por siete entidades: (1) Vector de
variables Consecuente; (2)Matriz RHS de Consecuentes; (3) Diseño RHS Matriz de Indices (4)Vector
de agregación; (5) Vector RHS de parámetros auxiliares;(6) Vector de peso; (7) vector LHS de
resultado
i P 1,1
j y
z
i
j y
z j
j P 2,1 z
z
P 1,2 ... P 1,x
j z
X1
j z
=j z
j z
j X2
= j
j
z
z
z j
j z
z
P 2,2 ... P 2,y
j
j
j
z
z
z j
j ... z
z
XC P RHS
j
j z
z
... ... ...
k P N,1 {
...
k XN { P N,2 ... P N,w
(1) (2)
18
i
j y
z
j
j z
z
A 1,1 A 1,2 ... A 1,k
A =j
j
j
z
z
z
A 2,1 A 2,2 A 2,l
j
j z
z
k £ Z , l £ Z, m £ Z
...
k A N,1 A N,2 A N,m {
i y i y i y i r 1 HtL y
j
j z
z j
j z
z j
j z
z j
j z
z
(3)
j r 2 HtL
z1 l1
z = j z = j z j W2 z z
W1
j
j z
z j
j z
z W = j
j z
z r HtL = j
j z
z
j z j z j z j z
z2 l2
j ... z j ... z j ... z j ... z
l RHS
k zN { k lZ { k WZ { k r Z HtL {
La importancia de incrustar estas definiciones desde el punto de vista de la solución Algorítmica, los
indices definen el diseño la salida de los datos y marcan la distinción entre datos
estáticos(determinados por el diseño) y dinámicos(obtenidos de entradas externas.). El diseño de la
matriz de indices RHS es la guia del algoritmo básico de inferencia fuzzy. Si describimos el algoritmo
como una función de implicación Φ, entonces tenemos como resultado las operaciones descritas en el
vector siguiente:
i O 1 HtL y
j
j z
z
O 2 HtL
F H PLHS, A , lLHS, z , W , r HtLL = O Ht L = j
j
j
z
z
z
j
j ... z
z
k O N HtL {
(A.14)
Nivel D1 El diseño de este algoritmo incluye la matriz de indices RHS, matriz de predicados, el vector
de parámetros auxiliares LHS, el vector de peso, el umbral de la información para cada variable
consecuente, la matriz de membresía de los consecuentes y el vector de operadores de agregación son
leidos de la memoria del sistema fuzzy.
Nivel D2 El ciclo de la variable comienza aqui. Esto es las variables fuzzy consecuentes definidas
dentro del vector de varaibes consecuentes. Cada variable consecuente constituye una salida del motor
de inferencia. Note la diferencia entre los algoritmos LHS y RHS. En el ciclo externo del algoritmo
cuenta el número de reglas mientras, en el ciclo exterior del algoritmo RHS se cuentan las variables
consecuentes.
19
Nivel D4 El contador de columna opera sobre el diseño de la matriz de indices de RHS, en donde cada
columna corresponde a un predicado(y a una función de membresía) en la matriz de predicados RHS.
Nivel D5 Los elementos de la matriz A contienen datos simbólicos indicando en sus indices una
referencia al vector de resultados LHS. Este indice también indica los elementos que corresponden en
el vector de parámetros auxiliares. La ubicación de cada elemento en la matriz A(contador de columna)
indica cual predicado(cual función de membresía) se utilizará en las implicaciones junto con el
resultado LHS, valor de peso, y parámetro auxiliar. Por ejemplo, A(1,3) = 2 significa que la operación
de implicación involucra un segundo elemento en el vector de resultados LHS, el segundo parámetro
auxiliar y la función de membresía correspondiente al elemento P(1,3) en la matriz de predicados RHS.
Nivel D7 El resultado del paso previo es un nuevo conjunto fuzzy y es almacenado en memoria para
su posterior uso en el proceso de agregación.
Nivel D9 Este paso involucra operaciones fuzzy y es sujeto del diseño. Un límite es aplicado para todos
los resultados de las implicaciones de forma individual, con el fin de evitar una verdad residual. Note
que el umbral de las variables fuzzy consecuentes es diferente de las variables fuzzy antecedentes, esto
porque producen diferentes efectos.
Nivel D10 Este paso involucra operaciones fuzzy y es sujeto del diseño. Todos los resultados
individuales(conjuntos fuzzy) permaneciendo para esta variable consecuente, son agregados, en este
paso el operador de agregación es determinado previamente. Los factores de peso son incorporados
mediante la obtención de valores numéricos del vector de peso. Cada elemento de peso utilizado del
vector de peso es determinado por el diseño de la matriz de índices RHS. El resultado es un nuevo
conjunto fuzzy, será procesado en el siguiente paso de proceso.
Nivel D12 El ciclo termina cuando todos las variables consecuentes fuzzy han sido procesadas.
20
r vector de resultado LHS
D5
Obtener los indices de los vectores r y λ, de la matiz A
D8
¿Mas predicados?
¿Mas D12
varaibles?
Refiriéndose al ejemplo A.1, nosotros analizaremos las operaciones RHS guiados por el algortimo
ilustrado en la figura A.6. Las reglas fueron establecidas así.
r = J N
0.075
0.06
X C = @Operation D
A = [1 2 ]
Nosotros asumimos que el vector de agregación contiene la operación de unión, el vector de
parámetros auxiliares es unitario, y el vector de peso contiene elementos todos iguales a 1.0. Todas
estas funciones son recuperadas de la memoria en el paso D.1. Ahora nosotros vamos a avanzar a
través del algoritmo.
Nivel D2. En el ciclo en contador es 1, la variable es Operation.
Nivel D3. La operación ELSE es la unión.
Nivel D4. El contador de columna en la matriz A es 1.
Nivel D5. El índice en la matriz A es 1, los otros no aplicaran.
Nivel D6. Considerando el primer valor r (0.75) y la primer función de membresía Fine la
implicación resultante es calculada mediante un corte de la función de membresía al nivel 0.75.
Esto es el operador de implicación de Mandami, y el corte de rendimiento es ilustrado en la siguiente
figura.
22
0.75
µ fine= 0.2/1 U 0.4/2 U 0.6/3 U 0.8/4 U 1.0/5 U 0.8/6 U 0.6/7 U 0.4/8 U 0.2/9
µ finee= 0.2/1 U 0.4/2 U 0.6/3 U 0.75/4 U 0.75/4 U 0.75/4 U 0.6/7 U 0.4/8 U 0.2/9
Note que: El cuarto, quinto y sexto singletons de arriba, han sido redondeados en 0.75
Nivel D8: ¿Existe ahí algún predicado más? Si, vaya al Nivel D4.
Nivel D6: Tomando el segundo valor r (0.06) y la segunda función miembro Questionable, la
implicación resultante es computada by clipping la función miembro al nivel 0.06. El recorte muestra el
siguiente perfil.
23
Por esto la función miembro original
µ Quest= 0.06/5 U 0.06/6 U 0.06/7 U 0.06/8 U 0.06/9 U 0.06/10 U 0.06/11 U 0.06/12 U 0.06/13
µ Quest = 0.2/5 U 0.4/6 U 0.6/7 U 0.8/8 U 1.0/9 U 0.8/10 U 0.6/11 U 0.4/12 U 0.2/13
Note que: Todos los singletons son debido al bajo nivel del recorte. Note también que estas
funciones miembro ocupan diferente espacio en el universo de discurso.
Nivel D9: Umbral consecutivo, si es aplicado en este caso asumiendo que el nivel 0.2 es el alpha-
cut, puede resultar en la eliminación de la última función miembro recortada debido a que el singleton
es menor a 0.2. De cualquier modo, eliminaremos esta cresta para ilustrar la adición
24
Debido a que la operación de agregación es un a unión, el conjunto fuzzy final es computado como
sigue:
Note el efecto del operador de unión en donde ambas colecciones recortadas se traslapan. El conjunto
fuzzy de la derecha es el resultado obtenido de este proceso. Para ilustrar los efectos del peso,
asumimos que el vector peso es como se muestra a continuación.
W=J N A = H 1 2L
0.9
1.0
La matriz A nos dice cual elemento de la columna del vector peso afecta a cual función miembro. En
este caso, un peso de 0.9 corresponde a Fine y 1.0 corresponde a Questionable. De acuerdo a esto, la
altura de la función miembro recortada, será ajustada a su valor de 90 por ciento, esto es 0.75 X 0.9 =
0.675. El resultado agregado por lo tanto, tiene la siguiente apariencia.
25
Lo cual es computado como sigue:
________________________________________________________
26
Salida de conjuntos fuzzy
E
Nivel E1: Si los pesos han sido elegidos para ser computados durante la defuzzyficación, entonces el
vector peso es regresado desde la memoria hasta su posición. Note que la matriz de agregación es
incluso necesaria junto con el vector peso para determinar cual resultado de implicación da cual valor
de peso.
Nivel E3: La defuzzyficación es implementada en esta etapa. Si de este motor de inferencia se espera
también una salida lingüística, entonces se emplea un método apropiado de comparación. Los dos
métodos más ampliamente usados (la defuzzyficación centro de gravedad y la comparación lingüística
de máxima posibilidad están ilustradas en la figura A.6.
Nivel E4: Los resultados obtenidos a través de los pasos anteriores son procesados en una GUI
(Interfaz Gráfica de Usuario), para ser presentados en el mundo exterior.
27
Ejemplo A.6.
Continuemos el ejemplo examinado en el caso anterior. Debido a que solo hay una variable
consecuente en este ejemplo, el procesador de salida recibe un conjunto fuzzy de salida, como se
muestra abajo.
µAgg = (0.18/1) U
(0.36/2) U
(0.54/3) U
(0.675/4) U
(0.675/5) U
(0.675/6) U
(0.54/7) U
(0.36/8) U
(0.18/9) U
(0.06/10) U
(0.06/11) U
(0.06/12) U
(0.06/13) U
(0.06/14) U
Nivel E1: Los pesos ya están incorporados en la formación del conjunto fuzzy de salida mostrado
arriba.
Y1 = 0.18 x 1.0 + 0.36 x2.0 + 0.54 x 3.0 + 0.675 x 4.0 + 0.675 x 5.0 + 0.375 x 6.0 + 0.54 x 7.0 +0.36 +
8.0 + 0.18x 9.0 +0.06 x 10.0 + 0.06 x 11.0 + 0.06 x 12.0 + 0.06 x 13.0 + 0.06 x 14.0 = 24.525
Y2 = 0.2 + 0.4 + 0.6 + 6.675 + 0.675 + 0.675 + 0.6 + 0.4 + 0.2 + 0.06 + 0.06 + 0.06 + 0.06 + 0.06 =
4.485
28
Note que el rango activo de acción entre los dos centros (5.0 – 10.0) considerando el perfil de las dos
funciones de membresía consecuentes in este ejemplo. La salida lingüística es el predicado. Perfecto
con la posibilidad de de 0.675.
Nivel E4: La interfaz grafica de usuario presenta las salidas obtenidas en el paso de iniciación hacia el
mundo externo:
Entradas Salidas
Temperatura = 270 F Operación = 5.468 (numerica)
Flujo = 10 m/seg. Operación = Perfecta (lingüística), posibilidad = 0.675
Válvula = 30 % abierta
29