You are on page 1of 29

El Algoritmo básico de Lógica Fuzzy

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

Paso 1 Proceso de datos de Entrada

B
Motor de Evaluación de antecedentes
Inferencia Paso 2 variables fuzzy
Fuzzy C

Paso 3 cálculos LHS

Datos de Salida Paso 4 cálculos RHS

Paso 5 Salida datos procesados

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

Elegir un dato de entrada A3

Numerico Símbolo (lingüistico)


¿Tipo? A4

¿dentro del ¿El símbolo existe A5


universo? en el conjunto fuzzy ?

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.

Nivel B7 Condición fin del ciclo.

4
[I1, I2 ,I3, ... In](conjunto de datos de entrada)

Elegir un dato de entrada B1

Recuperar las propiedades B2


correspondientes a la variable
fuzzy de la memoria

¿Punto B3
único?

Evaluación de antecedentes Evaluación de antecedentes


fuzzy de la variable para fuzzy de la variable para
B4
un único punto de datos una distribución puntos.

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.

Lista de Variables Antecedente

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.

LHS Diseño de los índices de la matriz

Si bien la representación mencionada en la parte superior muestra el arreglo de los elementos en la


matriz, dictada por diseño y como esta es dinámicamente actualizada, nosotros iremos un paso mas
allá y definiremos el diseño LHS de la matriz, la cual únicamente contendrá e,l índice que referencia a
los valores de la matriz de membresía.


 


 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.

Logica Matriz de Operaciones

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

IF[Temperature IS High OR Flow IS Low] AND Valve IS Open THEN ...


S1 S2 S3

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.

[.........[........]....[....].....[...........[...]...]..] Regla original LHS

[...] <------- Primer nivel de operaciones o cálculos

[......] [......] [..........] <------- Segundo nivel de operaciones o cálculos

[.........................................................] <------- Nivel Final de operaciones o cálculos

Resultado LHS

8
Figura A.4 Agrupando varios operadores lógicos se requiere un esquema de solución jerárquico.

LHS Matriz de Parámetros Auxiliares

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 C8 El valor resultante de r es almacenado en la ubicación adecuada del vector correspondiente a


la regla seleccionada.

Nivel C9 El fin de ciclo de la condición es aplicado. Cuando todas las reglas esten procesadas, el ciclo
termina.

11
. C

Recuperar las propiedades establecidas en memoria C1

C2
Ciclo: Contador de reglas

Ciclo: Contador de operaciones C3


Encontrar el operador con el siguiente
grado de agrupación, k

Determinar el k-esimo operador de composición


Determinar el k-esimo y k+I-esimo indices de diseño C4
Usar los indices, sacar los valores correspondientes de la matiz de membresía

Cálculos LHS, composición de resultados para esta regla y para su operador C5

Almacenar el resultado intermedio de r C6

C7
¿Mas operaciones?

Almacenar el vector r para esta regla C8

¿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:

IF(Temperature IS High OR Flow IS Medium) AND Valve IS Open THEN


Operation IS Fine

IF Valve IS Closed THEN Operation IS Questionable

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

La matriz de predicados LHS en memoria es:

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

El elemento 1,2 en la matriz de membresía es 0.75, el elemento adyacente 2,2 en la misma


matriz es 0.66.
Nivel C5: La composición del cálculo es 0.75 OR 0.66= 0.75
Nivel C6: El resultado 0.75 es almacenado.
Nivel C7: Si aqui es operación mas en la primera regla. Regresa al principio del ciclo.
Nivel C3: El siguiente operador con mas alto grado de agrupación de orden k en la primera regla
en la matriz de operaciones es 1 en la ubicación 1,2.

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

Nivel C5: El DOF calculado es 0.06.


Nivel C6: El resultado 0.06 es almacenado.
Nivel C7: No hay mas operadores.
Nivel C8: El segundo elemento en el vector de resultados es 0.06 y es almacenado en memoria.
Nivel C9: No hay mas reglas a procesar.
Como resultado, el DOF arroja como resultado el vector para la iniciación del paso r es

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.

PASO 4: Operaciones o Cálculos RHS.

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

IF Temperature IS low THEN Valve IS Open


IF Flow IS High THEN Valve IS Half
IF Temperature IS Medium THEN Operation IS Bad
IF Temperature IS High THEN Valve IS Closed
IF Flow IS Low THEN Operation IS OK

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.

Matriz de Predicados Consecuente y Funciones de Membresía

La matriz de predicados consecuente esta establecida por el diseño en la misma manera en la


que el vector de variable consecuente y ésta residen en la memoria del sistema fuzzy. Esta definición es
útil en ambos casos durante las operaciones RHS y durante el proceso de la etapa de salida. El vector
de predicado consecuente PC esta expresado por

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.

RHS Diseño Matriz de Indices

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.

.... r1 THEN Valve IS Open


.... r2 THEN Valve IS Half
.... r3 THEN Operation IS Bad
.... r4 THEN Valve IS Closed
.... r5 THEN Operation IS OK

donde cada r es un valor de DOF. re nombrando el vector consecuente y la matriz de predicado


tenemos que

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 {

Note que el peso no restringe las probabilidades o posibilidades.

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 {

(4) (5) (6) (7)

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)

donde t es el paso de inicio (no necesariamente un reloj de tiempo), y N es el número de variables


fuzzy consecuentes. Note que estos elementos del vector de salida son un nuevo conjunto fuzzy
producido por la relación de implicación. Paso 4 de el algoritmo básico de inferencia fuzzy mostrado
en la figura A.1 calcula el vector de la Ecuación (A.14)
El diagrama de representación implica los cálculos mostrados en la figura A.6. La descripción
de cada paso es explicada a continuación

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.

Nivel D3 Cada varaible consecuente fuzzy corresponde a un operador de agregación definido en


memoria. En este paso, el tipo de operador de agregación es determinado para esta variable.

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 D6 Utilizando toda la información recabada anteriormente, la operación de implicación es


realizada este paso, para cada predicado. Este paso involucra operaciones fuzzy y es definida por del
diseño.

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 D8 La condición de fin de ciclo es utilizada en este paso.

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 D11 El resultado para este consecuente es almacenado en memoria.

Nivel D12 El ciclo termina cuando todos las variables consecuentes fuzzy han sido procesadas.

20
r vector de resultado LHS

Recuperar las propiedades establecidas en memoria D1

Ciclo: Contador de reglón en matriz A D2

Determinar el operador de agregación para esta varaible D3

Ciclo: Contador de columna en matriz A D4

D5
Obtener los indices de los vectores r y λ, de la matiz A

Utilizar la función de membresía correspondiente a este predicado en los r y λ D6


vectores, calcular la implicación resultante

Almacenar el resultado intermedio D7

D8
¿Mas predicados?

Aplicar el umbral consecuente D9

Agregación de resultados para esta variable e incorporación de peso D10

Almacenar el resultado de esta variable en un vector de salida D11

¿Mas D12
varaibles?

Figura A.6 El procedimiento de operaciones de implicación en el algoritmo básico de inferencia fuzzy.


21
Ejemplo A.5

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í.

IF(Temperature IS High OR Flow IS Medium) AND Valve IS Open THEN


Operation IS Fine

IF Valve IS Closed THEN Operation IS Questionable.

El caso hipotético de entrada tuvo como resultado el vector composición.

r = J N
0.075
0.06

Ahora completemos el diseño de las definiciones siguientes. El vector consecuente tiene un


elemento que es la variable de operación.

X C = @Operation D

La matriz de predicados consecuente es:

PRHS = @Fine Questionable D

El diseño de la matriz de indices es:

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

Por esto, la función miembro original:

µ 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

Ha sido convertida a la forma:

µ 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 D7: Este nuevo conjunto fuzzy es almacenado en la memoria

Nivel D8: ¿Existe ahí algún predicado más? Si, vaya al Nivel D4.

Nivel D4: El contador de columnas as aumentado con 1, el cual ahora es 2.

Nivel D5: El segundo índice en la matriz A, es 2.

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

Ha sido convertida a la forma:

µ 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 D7: La función miembro recortada es almacenada en la memoria.

Nivel D8: No hay más predicados.

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

Nivel D10: La adición de la función miembro es mostrada abajo.

24
Debido a que la operación de agregación es un a unión, el conjunto fuzzy final es computado como
sigue:

µ Agg = (0.2/1) U µ Agg = (0.2/1) U


(0.4/2) U (0.4/2) U
(0.6/3) U (0.6/3) U
(0.75/4) U (0.75/4) U
(0.75/5) U (0.75/5) U
(0.75/6 v 0.06/6) U (0.75/6) U
(0.6/7 v 0.06/7) U (0.6/7) U
(0.4/8 v 0.06/8) U (0.4/8) U
(0.2/9 v 0.06/9) U (0.2/9) U
(0.06/10) U (0.06/10) U
(0.06/11) U (0.06/11) U
(0.06/12) U (0.06/12) U
(0.06/13) U (0.06/13) U
(0.06/14) (0.06/14) U

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:

µ Agg = [(0.2 x 0.9)/1] U µ Agg = (0.18/1) U


[(0.4 x 0.9)/2] U (0.36/2) U
[(0.6 x 0.9)/3] U (0.54/3) U
[(0.75 x 0.9)/4] U (0.675/4) U
[(0.75 x 0.9)/5] U (0.675/5) U
[(0.75 x 0.9)/6 v 0.06/6] U (0.675/6) U
[(0.75 x 0.9)/7 v 0.06/7] U (0.54/7) U
[(0.75 x 0.9)/8 v 0.06/8] U (0.36/8) U
[(0.75 x 0.9)/9 v 0.06/9] U (0.18/9) U
(0.06/10) U (0.06/10) U
(0.06/11) U (0.06/11) U
(0.06/12) U (0.06/12) U
(0.06/13) U (0.06/13) U
(0.06/14) (0.06/14) U

________________________________________________________

Paso 5: procesamiento de datos de salida


El procesamiento de salida es el paso final en el algoritmo de inferencia fuzzy básica. Esto incluye la
interpretación del resultado de implicación agregada. El método de “defuzzyficación”, es una de las
prácticas estándar para obtener un escalar de la implicación resultante (una colección o conjunto fuzzy).
Este proceso esta subrayado en la figura A.7.

26
Salida de conjuntos fuzzy
E

Recuperar el vector de peso para cada resultado implicación E1

Ciclo de variables consecuente E2

Defuzzyficación Comparación Lingüistica E3

Interfaz gráfica de usuario E4

Salida al mundo exterior


¿Mas variables?
E5

Figura A.7 Salida de procesamiento en el algoritmo básico de inferencia fuzzy.

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 E2: Contador consecutivo de pasos.

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.

Nivel E5: Condición de siclo terminal.

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.

Nivel E2: El conteo consecutivo es 1

Nivel E3: La defuzzyficación del centro de gravedad es realizada como sigue:

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

Y = _y1 = 24.525 = 5.468


y2 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

You might also like