Está en la página 1de 16

Unidad II, Lógica difusa

La información presentada es una recopilación de información de distintas referencias


bibliográficas, las que se pueden encontrar al final de este documento para ser consultadas y
ampliar los temas expuestos en estos apuntes.

Conceptos de lógica difusa y lógica booleana

La lógica difusa, también llamada fuzzy logic, es conocida en algunos países como lógica borrosa,
pero siempre con el mismo significado conceptual. La lógica con la que hemos trabajado de
manera tradicional funciona con valores bien establecidos y nos dice si algo es verdadero o falso.
Por ejemplo, nos dice que 5>6 es falso y que 6>5 es verdadero. Es decir que resulta estricta con
los valores que maneja y con los resultados que nos brinda.
Sin embargo, los seres humanos no trabajamos mucho con ese tipo de lógica. Vamos a hacer un
ejercicio mental: supongamos que estamos jugando a lanzar unas pelotas dentro de una caja
que se encuentra a unos metros de distancia. Intentamos por primera vez y fallamos. Nuestro
compañero de juegos no nos dice algo como: doce grados a la derecha con medio Newton
menos de fuerza. Lo que nos va a decir es algo como: muy poco a la derecha con menos fuerza.
¿Esto qué quiere decir? ¿Qué podemos deducir de lo que dice nuestro compañero? Es muy
sencillo, los seres humanos procesamos lógica que no tenga valores exactos. Es decir, podemos
procesar lógica con valores difusos como: muy poco, menos, casi todo, etcétera.
Esto es lo que queremos implementar con la lógica difusa. Un sistema que pueda trabajar con
valores no exactos. Que pueda calcular si se necesita mover un poco a la derecha o utilizar casi
toda la fuerza.
La lógica difusa desciende de los conjuntos difusos, que forman parte de la teoría de conjuntos.
En los conjuntos tradicionales, podemos decir Únicamente si un objeto pertenece o no al
conjunto. En los conjuntos difusos, podemos agregar qué tanto pertenece un objeto al conjunto,
es decir, su grado de membresía.
Veamos un ejemplo. En la lógica tradicional, podemos tener el conjunto de los animales salvajes
y el de los animales domésticos. El lobo, pertenece a los animales salvajes y no a los domésticos.
Pero si existiera un lobo criado como un perro en una casa, aparece el problema, ya que debería
pertenecer a ambos conjuntos. En la lógica tradicional tendríamos una incertidumbre, pero la
lógica difusa nos permite trabajar con esto. En la lógica difusa, nos manejamos con grados de
pertenencia a un conjunto, en nuestro ejemplo, el lobo podría ser un 40% salvaje y un 60%
doméstico. Ésta es una de las grandes ventajas que nos brinda la lógica difusa: permite una
membresía parcial.
Resulta importante recordar que la lógica difusa no dice las posibilidades de que un evento
ocurra, lo que nos indica es el grado de pertenencia a un conjunto. No es que la mascota tenga
un 40% de posibilidades de ser salvaje. Lo que indicamos es que pertenece en un 40% al conjunto
de los animales salvajes.
En la lógica difusa, la membresía la damos por medio de un valor entre 0 y 1. Si el objeto no
pertenece al conjunto, su valor de membresía es 0. Si el objeto pertenece en forma total al
conjunto, su valor de membresía es 1. Si pertenece parcialmente, se da un valor entre ellos. En
el ejemplo que hemos utilizado, el lobo tiene una membresía de 0.4 al conjunto de los animales
salvajes.
Para crear una aplicación de control usando lógica difusa, necesitamos tres pasos: fuzzificación,
reglas difusas y defuzzificación. Los nombres pueden parecer complejos, pero los conceptos son
muy sencillos.
En el primer paso, conocido como fuzzificación, se toma un dato del sistema y se convierte en
un dato difuso. El dato del sistema puede ser un número real obtenido del ambiente por medio
de un sensor, o calculado por alguna función o una entrada dada por el usuario.
El transformar el dato a un dato difuso se lleva a cabo al encontrar el grado de membresía de
ese valor contra una serie de conjuntos difusos. Si, por ejemplo, tenemos un vehículo que va a
determinada velocidad, podemos utilizar esa velocidad como nuestro dato y, al fuzzificarlo,
obtenemos qué tanto tiene de membresía en los conjuntos veloz, rápido, moviéndose, lento,
lentísimo.
La lógica booleana se basa en la idea de conjuntos nítidos (o convencionales), con pertenencia
de unos (1) y ceros (0).

Se aprecia el concepto de nitidez, el cual se puede definir con base en un número preestablecido.
Este número es el 700. ¿Por qué? Porque antes del 700 no se considera un número grande, y del
700 en adelante sí se considera un número grande. Hay “nitidez”. Con base en esto se puede
decir que el 699.999 es un número mediano y el 700.0001 es un número grande.
En otras palabras, en esta gráfica hay una escala de pertenencia, no hay ambigüedad. O es un
número “grande” o es “mediano”.

En esta gráfica hay una ambigüedad. ¿Por qué? Es muy evidente que antes del 500 es un número
mediano, y después del 700 es un número grande, pero en el rango entre 500 y 700 no se ha
definido si es un número grande o mediano. Hay ambigüedad, no está clara la pertenencia. En
este conjunto de elementos hay algunos que “medio pertenecen” tanto a los grandes como a
los pequeños.
Con esta idea se puede uno imaginar la necesidad de la lógica difusa para representar casos de
la vida cotidiana del ser humano. En la naturaleza es muy común ver distintos grados de
pertenencia de distintos elementos. En un conjunto difuso hay grados de pertenencia que están
entre cero (0) y uno (1).
Un conjunto convencional se define como aquel conjunto que sólo tiene dos grados de
pertenencia, 0 o 1.
Un conjunto difuso se define como aquel conjunto que muestra todos los grados de pertenencia
entre 0 y 1, incluidos éstos.
Lógica difusa
Primero es indispensable establecer cierta nomenclatura y terminología. Cuando se habla de
conjuntos nítidos, la variable típica a usar es la X. En conjuntos difusos la función de pertenencia
que se utiliza es la μ. Ésta toma los valores entre cero (0) y uno (1); como se mencionó, la forma
de representación de los conjuntos difusos puede ser de dos maneras: de forma continua o
discreta, como se presenta a continuación.
Un conjunto difuso se escribe con una tilde arriba del nombre del conjunto:

Ésta se utiliza para diferenciarlos de los conjuntos nítidos.


En la lógica difusa los conjuntos se pueden presentar en forma continua o discreta.

Conjunto difuso discreto:

En este punto es importante recordar que el signo (+) no indica suma sino unión. Dicha forma
de representación es muy empleada en los sistemas digitales como los microcontroladores,
computadoras, etcétera.

Conjunto difuso continuo:

Un conjunto convencional se define por una función característica, que se conoce también como
Representación de conjuntos difusos discretos

Se puede expresar en forma gráfica un conjunto difuso discreto como la unión de sus elementos;
el número de elementos depende del problema que se va a resolver. Es muy común que a través
de una interpolación de cada uno de los elementos se pueda construir una trayectoria con cada
uno de ellos, la cual es la base de una función de membresía o pertenencia. Tomemos como
ejemplo el conjunto difuso que se muestra a continuación:

El conjunto difuso à se define a partir de la gráfica. Como se puede observar, los elementos de
este conjunto están formados por fracciones, en las cuales el denominador es el elemento y el
numerador es el grado de pertenencia del elemento, pero con una cierta función de membresía.

Operaciones de conjuntos difusos

Existen operaciones básicas que se definen por operadores binarios para el caso de lógica
booleana; en el caso de la lógica difusa se presentan a continuación los operadores que se
emplean para realizar las operaciones básicas (unión, intersección y complemento).
Las operaciones básicas entre conjuntos difusos que se definirán son la unión, intersección y
complemento, de la siguiente forma:

Los operadores que podemos utilizar son AND, OR y NOT, los operadores lógicos básicos, desde
luego, en su versión difusa.
Su forma de trabajar es la siguiente: cuando hacemos uso de AND difuso, el resultado de la
expresión es el menor de los dos operandos; en el caso de OR difuso, el resultado de la expresión
es el mayor de los dos operandos; NOT es muy sencillo, simplemente, restamos a uno el valor
del operando que le corresponde.

Ejemplo 1:
Con los siguientes conjuntos difusos, hacer las operaciones de unión (a), intersección (b) y
complemento (c) (falta la d, que sería el complemento para el conjunto B)

Ejemplo 2:

De acuerdo con los siguientes conjuntos difusos:

A continuación, se describe las operaciones más representativas entre conjuntos difusos,


ejemplificadas algunas de ellas gráficamente para su mejor apreciación.
Es posible considerar que el empleo de estas operaciones de lógica difusa afecta directamente
el grado de pertenencia de los elementos que conforman el conjunto difuso, por lo que se
tendría descripciones diferentes al emplear estos operadores.
Algunas operaciones son el resultado de operaciones con dos o más conjuntos, como es el caso
del producto del conjunto difuso.

Producto algebraico de dos conjuntos difusos

Se multiplica elemento a elemento


Mientras que la potencia es la manipulación de un solo conjunto, esto es elevarlo a una potencia
alterando los valores de membresía de cada elemento del conjunto.
Potencia de un conjunto difuso

Donde:
α: Número real positivo
Ãα: Conjunto difuso nuevo

Concentración

Eleva al cuadrado sólo el numerador (membresía), por ejemplo:

Esta operación es el equivalente al término lingüístico “muy” (“very”) que modifica la


característica de una función de pertenencia o membresía, concentrando los valores de la
misma, como se aprecia en el ejemplo de la figura

Bajo: {1,0/1, 0,8/2, 0,4/3, 0,1/4, 0,0/5}

Muy bajo = CON (bajo)


Muy bajo = {1,0/1, 0,64/2, 0,16/3, 0,01/4, 0,0/5}
Dilatación

Le saca la raíz sólo el numerador (membresía), por ejemplo:

Hace lo contrario de la concentración, equivale a la expresión lingüística de “más o menos”


(“more or less”), modificando los parámetros de la función según se muestra en el ejemplo de
la figura 2.9.

Bajo: {1,0/1, 0,8/2, 0,4/3, 0,1/4, 0,0/5}

Más o menos bajo = DIL (bajo)


Más o menos bajo = {1,0/1, 0,89/2, 0,63/3, 0,31/4, 0,0/5}

Intensificación

Incrementa la función de membresía donde los valores sean mayores a 0.5 y la disminuye para
valores menores a 0.5.

En la siguiente figura se presenta el efecto de dicha operación; cabe destacar que el punto de
variación se fija en 0.5. Pero no es la única alternativa, puede tener varias opciones de selección
para diferentes puntos.
Corte Alfa

El corte alfa se define como un conjunto nítido o difuso que contiene a los elementos
(denominadores) del conjunto à que tengan un valor de membresía mayor o igual al valor
escalar de la constante alfa; esta constante se define entre los valores de 0 a 1. En donde la
constante alfa define el valor de referencia, valor de membresía alfa, para decidir cuáles son los
elementos que pertenecen o no a dicho conjunto. En algunos casos se usan cortes alfa inversión,
que son todos los elementos con valor de membresía menor o igual al valor escalar alfa.

Ejemplo 1

Encontrar el corte alfa para el siguiente conjunto difuso tomando como valor alfa 0.5.

Ejemplo 2
Encontrar el corte alfa para el conjunto con alfa 0.3

A0.3= {1, 2, 3, 4, 5, 6}

Ejemplo 3
Encontrar el corte alfa para el conjunto con alfa 0.6

A0.6= {1, 2, 3}
Propiedades de los conjuntos difusos

Leyes de De Morgan
el complemento de la unión de A con B es igual a la intersección del complemento de A en
intersección con el complemento de B
el complemento de la intersección de A con B es igual al complemento de A en unión con el
complemento de B

Funciones de membresía

Para la representación de los grados de pertenencia de cada uno de los elementos que
conforman el conjunto difuso, lo más natural es extraer los datos de los fenómenos que se va a
representar y con ellos definir la forma de la función de membresía. De otra manera existen
metodologías que permiten asignar grados de membresía a cada uno de los elementos del
conjunto.
Existen funciones de membresía convencionales y no convencionales que permiten realizar un
mapeo de un universo nítido a un universo difuso (grados de membresía entre 0 y 1). Entre las
funciones de membresía convencionales se tienen las siguientes.

Función de saturación o función de membresía de grado


La función de saturación es la más sencilla de ellas. Tiene un valor de 0 hasta cierto punto (x1) y
después crece con pendiente constante hasta alcanzar el valor de 1 (en x2), en donde se
estaciona. Se puede notar que esta gráfica tiene sus cambios de pendiente en los valores 5 y 10
(x1 y x2 respectivamente).
Este tipo de funciones describe muy bien situaciones en donde se alcanza un nivel máximo a
partir de cierto punto, por ejemplo, la estatura de las personas o el rendimiento académico de
un alumno. Se podría considerar que una persona es alta con grado de pertenencia unitario a
partir de
1.90 m, o que un alumno es excelente con grado de pertenencia unitario a partir de un promedio
general de 95.

Su representación matemática y gráfica es la siguiente:

Veamos un ejemplo. Supongamos que queremos saber si una persona es un adulto. Utilizamos
la función de membresía de grado. El eje X nos indica la edad. X0 puede ser colocado en 18 años
y X1, en 21 años. Si el valor de X es 12 años, entonces, la función nos indica que tiene 0 de
membresía. Si colocamos el valor de X en 19 años, entonces sabemos que hay un 0.333 de
membresía a la función adulto. Si en X se tienen 35 años, el valor de membresía será 1.
Función hombro o función de membresía de grado inverso
La siguiente función que se muestra es la función hombro, que es, por decirlo de alguna manera,
la contraparte de la función saturación. En este tipo de funciones se inicia en un valor unitario y
se desciende con constante pendiente hasta alcanzar el valor de 0. La gráfica de esta función de
membresía tiene sus cortes en 9 y 18 (x1 y x2 respectivamente)
Este tipo de función es útil cuando el grado de pertenencia es total en valores pequeños y decae
conforme el valor de la variable aumenta; por ejemplo: el nivel de oxígeno en una pecera;
mientras el número de peces no sobrepase un límite contemplado, el oxígeno es suficiente; a
medida que el número de peces aumente, el oxígeno será más limitado hasta que llegue el punto
en que no sea suficiente y los peces mueran.

Su representación matemática y gráfica es la siguiente:


Función triangular
A continuación, se muestra la función triangular. Su forma, como su nombre lo indica, consta de
una parte de pendiente positiva constante hasta alcanzar la unidad, y una vez que lo ha logrado
desciende de manera uniforme. La figura muestra un ejemplo de esta función, la cual tiene
comienzo en el valor 8 (x1) y termina en 12 (x3), teniendo el máximo en el valor 10 (x2)

La función triangular es muy adecuada para definir situaciones en las que se tiene un valor
óptimo central, el cual se va perdiendo conforme uno se aleja de él. Un ejemplo de esta situación
es la temperatura corporal, que tiene un valor óptimo de 37º centígrados, pero que por debajo
de 35º o por encima de 39º se considera peligrosa, es decir, el nivel de pertenencia al conjunto
de temperaturas seguras en el cuerpo humano es 0.

Su representación matemática y gráfica es la siguiente:


Función trapecio, trapezoide o Pi
Una generalización de la función triangular es la función trapecio o función Pi. En el caso de esta
función de membresía, no sólo se tiene un valor para el cual la pertenencia es unitaria, sino toda
una franja que varía su ancho dependiendo del fenómeno observado. En la figura se aprecia que
la gráfica empieza a crecer de manera constante en 6 (x1), llega al valor unitario en 8 (x2) donde
se conserva hasta 10 (x3) y decrece de manera uniforma hasta 12 (x4)

La forma de esta función es muy utilizada, ya que como se mencionó se emplea cuando hay un
rango de valores óptimos, alrededor de los cuales las condiciones no son adecuadas. Un buen
ejemplo de esto es la iluminación de un salón de clases. Existe un rango en el cual la iluminación
es agradable para las personas, pero por debajo de dicho rango la luz no es suficiente para leer
el pizarrón, y por encima de él es molesto para la vista de los estudiantes.

Su representación matemática y gráfica es la siguiente:


Funcionamiento de controlador de lógica difusa

Un controlador que trabaja en base a lógica difusa requiere una etapa de captación de datos,
una etapa que relacione las funciones de entrada con las de salida, para que finalmente la etapa
de salida genere la acción de control al actuador del proceso, las etapas de las que se compone
un controlador de lógica difusa son:

- Interfaz de fusificación
- Reglas difusas
- Interfaz de defusificación

Esquema general de controlador Fuzzy.

Interfaz de fusificación
En esta etapa del controlador se captan todos los datos nítidos de entrada, estos datos se
evalúan en todas las funciones de pertenencia de entrada, donde en algunas puede darse el caso
de tener la máxima pertenencia y en otras no, incluso con valor 0.
Los resultados de cada función de pertenencia obtenidos en esta etapa (conjunto difuso de
entrada) se relacionarán con las funciones del conjunto difuso de salida, etapa de defusificación,
a través de las reglas difusas.
La interfaz de fusificación, la que es un conjunto difuso de entrada, puede tener funciones del
tipo hombro, saturación, triangulares y/o trapecio.

Reglas difusas
Esta etapa del controlador es la que hace la conexión entre las funciones de la interfaz de
fusificación y las funciones que están en la interfaz de defusificación, estas reglas se definen a
través de la estructura de programación IF – THEN, bajo la siguiente estructura:

IF Función_entrada THEN Función_salida

Pasada esta etapa, la interfaz de defusificación está en condiciones de tratar los datos difusos
que están dentro del controlador para generar un dato nítido de salida.

Interfaz de defusificación
La interfaz de defusificación se encarga del mapeo a escala que convierte el rango de valores de
las variables de salida a sus universos de discurso correspondientes. La defusificación es la
herramienta para obtener la acción de control nítida a partir de una acción de control difusa.
Las técnicas existentes para la obtención de la salida son varias, sin embargo, el método del
centro de gravedad (centroide) es uno de los métodos más utilizados para encontrar el valor
nítido del controlador difuso (salida de control, por ejemplo 0 a 10 V o 4 a 20 mA)
El método del centro de área o centro de gravedad se puede representar en forma discreta:

O continua:

Este método se utiliza para obtener el valor real de la salida. Su metodología es sencilla: corta la
función de membresía al grado de la membresía respectiva, es decir, segmenta las funciones de
membresía, generando en cada función dos áreas. El área inferior que se forma es la que se
toma para hacer el cálculo. Se sobreponen todas estas áreas y se saca el centroide de la
superposición, el cual nos dice la salida real del sistema. Para explicar mejor esto, se analizará
un ejemplo.
La variable lingüística de salida es la velocidad de un ventilador. Los valores positivos son giros
a la derecha y los negativos son a la izquierda. Las unidades del universo discurso están dadas
en m/seg.
Este ventilador tiene como salidas difusas 0.75 y 0.25, estos valores se obtienen luego de evaluar
la entrada con las reglas difusas ya antes vistas, para este caso, el resultado de dicha evaluación
nos entrega que la función “Sin velocidad” tiene una pertenencia de 0.25, la función “Alta
velocidad” en giros a la derecha tiene una pertenencia (o membresía) de 0.75 y las demás
funciones tienen una pertenencia 0, todas las reglas se presentan al momento de evaluar pero
en distinto grado

Se unen los valores de membresía con su respectiva función y el área que se forma bajo dicho
punto es la que se utilizará para calcular el centroide
Ahora bien, sacando el centroide de esta área (el área rayada) se obtiene el valor real de la
salida.
Para sacar el área se utilizan los puntos más significativos de la misma. En este caso, están
señalados con las líneas y sus coordenadas.

Al tener valores discretos (puntos finitos), se utiliza la función discreta

En el numerador es la sumatoria de los valores del eje x, multiplicado por la membresía de dicho
punto, por ejemplo, (-13, 0), el valor en el eje x es de -13 y su membresía es de 0, por lo tanto, -
13*0 = 0 para ese punto
En el denominador es la sumatoria sólo de los valores de membresía de dicho punto, por
ejemplo, para el punto (-13, 0), sólo se considera el 0 para la sumatoria, ya que la membresía en
ese punto es 0

Por lo tanto, el centroide está en 10 y la salida será de 10

Referencias bibliográficas

[1] Landa N. (2007). Inteligencia artificial. Buenos Aires, Argentina: Gradi S.A..

[2] Ponce P. (2010). Inteligencia artificial con aplicaciones a la ingeniería. Ciudad de México,
México: Alfaomega.

[3] Conjuntos difusos. 25/07/2016, de http://palmia.galeon.com Sitio web:


http://palmia.galeon.com/capitulo54.htm

[4] Resolviendo y Graficando Desigualdades de Valor Absoluto. 26/07/2016, de


www.montereyinstitute.org Sitio web:
https://www.montereyinstitute.org/courses/Algebra1/COURSE_TEXT_RESOURCE/U05_L1_T2_
text_final_es.html

También podría gustarte