Sistema Logica Difusa para atravesar una Calle

16

Click here to load reader

description

Este trabajo fue presentado por Felipe Forero Lozano, dentro del curso de Sistemas Basados en el Conocimiento I, que se ofrece como parte de la carrera de Ingeniería de Sistemas en la Fundación Universitaria Konrad Lorenz ( FUKL-http://www.fukl.edu), Bogotá -Colombia

Transcript of Sistema Logica Difusa para atravesar una Calle

Page 1: Sistema Logica Difusa para atravesar una Calle

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

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ1

FACULTAD DE MATEMÁTICA E INGENIERÍAS PROGRAMA DE INGENIERÍA DE SISTEMAS

SISTEMAS BASADOS EN EL CONOCIMIENTO I Prof. Pervys Rengifo Rengifo([email protected])

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:

SISTEMA DE INFERENCIA

DIFUSA

velocidad vehículos

distancia vehículos

velocidad de paso

ELABORE UN MODELO DE LÓGICA DIFUSA, CON BASE EN SU EXPERIENCIA, PARA ESTE PROBLEMA.

FUSIFICADOR

velocidad vehículos

distancia vehículos

REGLAS DIFUSAS

SISTEMA DE INFERENCIA

DEFUSIFICADOR VELOCIDAD DE PASO

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

Page 2: Sistema Logica Difusa para atravesar una Calle

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

60; 110; 10; 1

30; 0 60; 010; 0

40; 130; 1

40; 00

0,2

0,4

0,6

0,8

1

1,2

0 10 20 30 40 50 60

LentoNormalRápido

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

100; 1

30; 0

0; 1

20; 0 80; 0

50; 1

70; 00

0,2

0,4

0,6

0,8

1

1,2

0 10 20 30 40 50 60 70 80 90 100

CercaLejosMuy Lejos

Propietario
Typewritten Text
FUNDACIÓN UNIVERSITARIA KONRAD LORENZ
Propietario
Typewritten Text
PROGRAMA DE INGENIERÍA DE SISTEMAS Sistemas Basados en el Conocimiento I
Propietario
Cross-Out
Page 3: Sistema Logica Difusa para atravesar una Calle

La salida, que es la velocidad de paso, esta dividida en:

3; 1 4; 1 5; 1

6; 0

6; 11; 10; 1

1; 0 3; 0

2; 1

2; 0 4; 0 5; 00

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotarCorrerCorrer Mucho

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

Page 4: Sistema Logica Difusa para atravesar una Calle

Velocidad

60; 1

25; 0

25; 0,25

25; 0,75

25; 110; 10; 1

30; 0 60; 010; 0

40; 130; 1

40; 00

0,2

0,4

0,6

0,8

1

1,2

0 10 20 30 40 50 60

LentoNormalRápidoVel = 25

Distancia

100; 1

22; 0,26666

22; 1

30; 0

0; 1

20; 0 80; 0

50; 1

70; 0

22; 022; 0,06666

0

0,2

0,4

0,6

0,8

1

1,2

0 10 20 30 40 50 60 70 80 90 100

CercaLejosMuy LejosDist = 22

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

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

Page 5: Sistema Logica Difusa para atravesar una Calle

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

Velocidad de Paso

3; 1 4; 1 5; 1

6; 0

6; 11; 1

3; 0

0; 1 1; 1 2; 1

1; 0 2; 04; 0

5; 0

4,93334; 0,066663,06666; 0,06666

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotarCorrerCorrer MuchoSerie7Regla

Velocidad de Paso

3; 1 4; 1 5; 1

6; 0

6; 11; 1

4; 0

0; 1 1; 1 2; 1

3; 01; 0 2; 0 4; 0 5; 06; 0

5,73334; 0,26666 4,26666; 0,26666

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotar CorrerCorrer Mucho

Regla

Page 6: Sistema Logica Difusa para atravesar una Calle

3. Velocidad = 'Lento' y Distancia = 'Lejos', entonces Velocidad de Paso = 'Lento'.

Velocidad de Paso

3; 1 4; 1 5; 1

6; 0

6; 11; 1

1; 0

0; 1 1; 1 2; 1

1; 0 2; 04; 0

3; 0

2,93334; 0,066661,06666; 0,06666

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotarCorrerCorrer MuchoSerie7Regla

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

Velocidad de Paso

3; 1 4; 1 5; 1

6; 0

6; 11; 1

2; 0

0; 1 1; 1 2; 1

1; 0 2; 04; 0

4; 0

3,75; 0,252,25; 0,25

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotar CorrerCorrer Mucho

Regla

Page 7: Sistema Logica Difusa para atravesar una Calle

Al unir las áreas de las reglas que se activan, nos quedaría:

Velocidad de Paso

4; 1 6; 1

6; 0

0; 1 1; 1

5,733334; 0,2666664,26666; 0,266666

3,933334; 0,066666 4,066666; 0,066666

3,75; 0,25

1; 0

2,25; 0,25

2,06666; 0,06666

1,06666; 0,066666

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotarCorrerCorrer MuchoRegla

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.

Page 8: Sistema Logica Difusa para atravesar una Calle

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

4; 1 6; 1

6; 03,8598; 0

3,8598; 0,5

0; 1 1; 1

5,733334; 0,2666664,26666; 0,266666

3,933334; 0,066666 4,066666; 0,066666

3,75; 0,25

1; 0

2,25; 0,25

2,06666; 0,066661,06666; 0,066666

0

0,2

0,4

0,6

0,8

1

1,2

0 1 2 3 4 5 6

Muy LentoLentoCaminarTrotarCorrerCorrer MuchoReglaCentroide

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.

Page 9: Sistema Logica Difusa para atravesar una Calle

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:

Page 10: Sistema Logica Difusa para atravesar una Calle

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

Page 11: Sistema Logica Difusa para atravesar una Calle

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.

Page 12: Sistema Logica Difusa para atravesar una Calle

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

Page 13: Sistema Logica Difusa para atravesar una Calle

Y seleccionamos el número de valores que queremos agregar: Finalmente la variable de salida quedaría:

Page 14: Sistema Logica Difusa para atravesar una Calle

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:

Page 15: Sistema Logica Difusa para atravesar una Calle

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.

Page 16: Sistema Logica Difusa para atravesar una Calle

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.