Вы находитесь на странице: 1из 16

Fundación Universitaria Konrad Lorenz-Programa de Ingeniería de Sistemas

Felipe Forero Lozano

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ 1


FACULTAD DE MATEMÁTICA E INGENIERÍAS
PROGRAMA DE INGENIERÍA DE SISTEMAS
SISTEMAS BASADOS EN EL CONOCIMIENTO I
Prof. Pervys Rengifo Rengifo(pervys2000@yahoo.es)
Realizado por: Felipe Forero Lozano

TALLER EN CLASE SOBRE SISTEMA DE INFERENCIA DIFUSA TIPO


MAMDANI

SE DESEA CONSTRUIR UN SISTEMAS DE LÓGICA DIFUSA PARA ATRAVESAR


UNA CALLE, CON BASE EN EL SIGUIENTE MODELO CONCEPTUAL:

velocidad vehículos
SISTEMA DE
INFERENCIA velocidad de paso
distancia vehículos DIFUSA

ELABORE UN MODELO DE LÓGICA DIFUSA, CON BASE EN SU EXPERIENCIA,


PARA ESTE PROBLEMA.

REGLAS DIFUSAS

velocidad vehículos
SISTEMA DE DEFUSIFICADOR VELOCIDAD DE PASO
FUSIFICADOR
INFERENCIA
distancia vehículos

PASO 1: FUSIFIQUE LAS VARIABLES DE ENTRADA Y DE SALIDA


PASO 2: CREE EL CONJUNTO DE REGLAS
PASO 3: SIMULE PARA VALORES DE PRUEBA EL VALOR DE LA SALIDA.

1
Dirección electrónica: http://www.fukl.edu. Ubicada en la cra 9ª bis No. 62-43 Bogotá-Colombia
FUNDACIÓN UNIVERSITARIA KONRAD LORENZ
PROGRAMA DE INGENIERÍA DE SISTEMAS
Sistemas Basados en el Conocimiento I

Felipe Forero L 534008

SISTEMA DE LOGICA DIFUSA


DETERMINAR LA VELOCIDAD DE PASO DE UNA CALLE

Procedimiento manual

Variables de Entrada:
Velocidad del automóvil.
Distancia a la que se encuentra el automóvil.

Salida:
Velocidad de Paso.

La velocidad del automóvil, la clasificamos en tres categorías así:

1,2

0; 1 10; 1 30; 1 40; 1


1 60; 1

0,8

Lento
0,6 Normal
Rápido

0,4

0,2

10; 0 30; 0 40; 0 60; 0


0
0 10 20 30 40 50 60

La distancia a la que viene al automóvil se clasifico de la siguiente manera:

1,2

0; 1 50; 1
1 100; 1

0,8

Cerca
0,6 Lejos
Muy Lejos

0,4

0,2

20; 0 30; 0 70; 0 80; 0


0
0 10 20 30 40 50 60 70 80 90 100
La salida, que es la velocidad de paso, esta dividida en:

1,2

0; 1 1; 1 2; 1
1 3; 1 4; 1 5; 1 6; 1

0,8 Muy Lento


Lento
Caminar
0,6
Trotar
Correr
0,4 Correr Mucho

0,2

1; 0 2; 0 3; 0 4; 0 5; 0
0 6; 0
0 1 2 3 4 5 6

Las reglas del sistema, determinadas por el experto, son:

• Velocidad = 'Lento' y Distancia = 'Cerca', entonces Velocidad de Paso =


'Caminar'.
• Velocidad = 'Lento' y Distancia = 'Lejos', entonces Velocidad de Paso =
'Lento'.
• Velocidad = 'Lento' y Distancia = 'Muy Lejos', entonces Velocidad de Paso =
'Muy Lento'.
• Velocidad = 'Normal' y Distancia = 'Cerca', entonces Velocidad de Paso =
'Correr'.
• Velocidad = 'Normal' y Distancia = 'Lejos', entonces Velocidad de Paso =
'Trotar'.
• Velocidad = 'Normal' y Distancia = 'Muy Lejos', entonces Velocidad de Paso
= 'Caminar'.
• Velocidad = 'Rápido' y Distancia = 'Cerca', entonces Velocidad de Paso =
'Correr Mucho'.
• Velocidad = 'Rápido' y Distancia = 'Lejos', entonces Velocidad de Paso =
'Correr'.
• Velocidad = 'Rápido' y Distancia = 'Muy Lejos', entonces Velocidad de Paso
= 'Trotar'.

Ingresamos entonces dos datos de prueba para ver que ocurre en un caso
específico.
Decimos entonces que la velocidad es 25 Km/h y la distancia son 22 metros.
Las gráficas se verían así:
Velocidad

1,2

0; 1 10; 1 30; 1 40; 1


1 25; 1 60; 1

0,8
25; 0,75 Lento
Normal
0,6
Rápido
Vel = 25
0,4

25; 0,25
0,2

10; 0 30; 0 40; 0 60; 0


0 25; 0
0 10 20 30 40 50 60

Distancia

1,2

0; 1 50; 1
1 22; 1 100; 1

0,8
Cerca
Lejos
0,6
Muy Lejos
Dist = 22
0,4

22; 0,26666
0,2

20; 0 22; 0,06666 70; 0 80; 0


0 22; 0 30; 0
0 10 20 30 40 50 60 70 80 90 100

Al evaluar estos valores, se activan las siguientes reglas de nuestro sistema:

1. Velocidad = 'Normal' y Distancia = 'Cerca', entonces Velocidad de Paso


= 'Correr'.
Velocidad de Paso

1,2

0; 1 1; 1 2; 1
1 1; 1 3; 1 4; 1 5; 1 6; 1

Muy Lento
0,8 Lento
Caminar
Trotar
0,6
Correr
Correr Mucho
0,4
4,26666; 0,26666 Regla
5,73334; 0,26666
0,2

1; 0 2; 0 3; 0 4; 0 5; 0
0 4; 0 6; 0
0 1 2 3 4 5 6

2. Velocidad = 'Normal' y Distancia = 'Lejos', entonces Velocidad de Paso =


'Trotar'.

Velocidad de Paso

1,2

0; 1 1; 1 2; 1
1 1; 1 3; 1 4; 1 5; 1 6; 1

Muy Lento
0,8 Lento
Caminar
Trotar
0,6
Correr
Correr Mucho
0,4 Serie7
Regla

0,2
3,06666; 0,06666 4; 0 4,93334; 0,06666
1; 0 2; 0
0 3; 0 5; 0 6; 0
0 1 2 3 4 5 6
3. Velocidad = 'Lento' y Distancia = 'Lejos', entonces Velocidad de Paso =
'Lento'.

Velocidad de Paso

1,2

0; 1 1; 1 2; 1
1 1; 1 3; 1 4; 1 5; 1 6; 1

Muy Lento
0,8 Lento
Caminar
Trotar
0,6
Correr
Correr Mucho
0,4 Serie7
Regla

0,2
1,06666; 0,06666 2,93334; 0,06666 4; 0
1; 0 2; 0
0 1; 0 3; 0 6; 0
0 1 2 3 4 5 6

4. Velocidad = 'Lento' y Distancia = 'Cerca', entonces Velocidad de Paso =


'Caminar'.

Velocidad de Paso

1,2

0; 1 1; 1 2; 1
1 1; 1 3; 1 4; 1 5; 1 6; 1

Muy Lento
0,8 Lento
Caminar
Trotar
0,6
Correr
Correr Mucho
0,4
2,25; 0,25 3,75; 0,25 Regla

0,2
4; 0
1; 0 2; 0
0 2; 0 4; 0 6; 0
0 1 2 3 4 5 6
Al unir las áreas de las reglas que se activan, nos quedaría:

Velocidad de Paso

1,2

0; 1 1; 1
1 4; 1 6; 1

Muy Lento
0,8
Lento
Caminar
0,6 Trotar
Correr
Correr Mucho
0,4
Regla
2,25; 0,25 3,75; 0,25 4,26666; 0,266666 5,733334; 0,266666

0,2
1,06666; 0,066666

2,06666; 0,06666 3,933334; 0,066666 4,066666; 0,066666


0 6; 0
1; 0
0 1 2 3 4 5 6

Se debe hallar el centroide de esta figura, para lo cual la dividimos en figuras


conocidas para poder sacar el centroide de cada una y luego calcular el de
todas como una sola figura.
Centroide
figura 1 1,0444444
figura 2 1,53333265
figura 3 2,0444434
figura 4 2,16666567
figura 5 2,989999
figura 6 3,89666567
figura 7 4,00222117
figura 8 4,15777523
figura 9 4,9866635
figura 10 5,90444123

Centroide de toda la figura = 3.8598

Velocidad de Paso

1,2

0; 1 1; 1
1 4; 1 6; 1

Muy Lento
0,8 Lento
Caminar
Trotar
0,6
Correr
3,8598; 0,5 Correr Mucho
0,4 Regla
2,25; 0,25 3,75; 0,25 4,26666; 0,266666 5,733334; 0,266666Centroide

0,2
2,06666; 0,06666
1,06666; 0,066666

0 3,8598; 0 6; 0
1; 0 3,933334; 0,0666664 4,066666; 0,066666
0 1 2 3 5 6

Lo que quiere decir, que la acción que se realiza en este caso, con velocidad
25 Km/h, y 22 metros de distancia, es Caminar.
Procedimiento en MatLab 7
Fuzzy Logic Toolbox

Estando en Matlab 7, ejecutamos el comando fuzzy en la consola principal

Nos abrirá la ventana del toolbox de lógica difusa:


Para este caso, tenemos dos entradas y una salida, para hacer esto en el
toolbox, en el menú de edición encontramos un ítem para agregar una
variable de entrada o de salida. En nuestro caso es de entrada
En esta ventana podemos escoger las diferentes operaciones que se van a
realizar con la implicación, la conjunción, la disyunción, la agregación, y el
método de “Defuzzyfication”, que para nuestro caso la configuración es como
se muestra en la figura.

Al hacer doble click en cada una de las variables, abrimos la ventana de


propiedades de la entrada o la salida, en donde se puede personalizar las
variables y sus valores:

Podemos manipular el rango, lo que se va a ver en la grafica, el número de


valores que tiene la variable, y la forma de la función que describe estos
valores:

En este caso, los valores


de las variables de las
entradas toman forma de
trapecio, entonces lo
seleccionamos en la
parte derecha del
cuadro, debajo del
nombre de la variable, y
en el siguiente campo
damos los valores de
donde se encuentran
ubicados los vértices de
la función en el eje x,
como se muestra en la
figura.
De igual manera, personalizamos la otra variable de entrada y la de salida:

Para agregar más valores a una variable, entramos en la siguiente opción del
menú:
Y seleccionamos el número de valores que queremos agregar:

Finalmente la variable de salida quedaría:


Al tener las variables definidas, se puede seguir con la definición de las reglas
del modelo, entrando por este ítem del menú editar:

En donde podremos crear fácilmente las reglas:


Para ver como se comporta el modelo de lógica difusa en un caso especifico,
debemos entrar en el menú View y entrar en el ítem Rules

En esta parte podemos ver el caso que se desarrollo manualmente en el


ejercicio que se desarrollo en este documento, y vemos las reglas que se
activan por estos valores de una manera grafica, similar a la que observamos
anteriormente.
En la parte inferior derecha, se ingresan los valores de las dos variables de
entrada, para este caso son 25 y 22 correspondientes a la distancia y la
velocidad respectivamente:

De esta manera se puede modelar casos de lógica difusa por medio del
Toolbox de lógica difusa que trae MatLab 7.