30734378 guia xfl para sistemas fuzzy
Post on 06-Jul-2015
88 Views
Preview:
TRANSCRIPT
LOGICA FUZZY CASO: CRUZAR UNA CALLE SOTWARE: Xfuzzy 3.0
Descripcin del caso: Cruzar una calle
Objetivo: Un peatn debe decidir de que manera cruza una calle.
Descripcin del caso: Cruzar una calleObjetivo: Un peatn debe decidir de que manera cruza una calle. ----------------------------------------------------------
En esta presentacin desarrollamos paso a paso el cdigo en lenguaje XFL para disear Sistemas Fuzzy.
Descripcin del caso: Cruzar una calleObjetivo: Un peatn debe decidir de que manera cruza una calle. ---------------------------------------------------------En esta presentacin desarrollamos paso a paso el cdigo en lenguaje XFL para disear Sistemas Fuzzy. ------------------------------------------------------------
El estudiante debe conocer el caso Cruzar calle mostrado en una presentacin previa
AUTO
AUTO
velocidad
distanciaAUTO
velocidad
distanciaAUTO
velocidad
distanciaAUTO
velocidad
distanciaAUTO
velocidad?
velocidad
Velocidad del autoLENTO NORMAL RAPIDO 1,0
0,8
0,6
0,4
0,2
10
20
30
40
50
60
Lenguaje XFL para Velocidad del autoEn lenguaje XFL primero se crea el TIPO con los trminos lingusticos y luego se crea la variable de entrada
type TvaPalabra reservada (tipo) Denominacin del tipo de variable (Tipo variable auto)
Lenguaje XFL para Velocidad del autoEn lenguaje XFL primero se crea el TIPO con los trminos lingusticos y luego se crea la variable de entrada
type Tva [0.0, 60.0;Valor mnimo
61]Cardinalidad: Nmero de valores enteros de la variable
Valor mximo
Lenguaje XFL para Velocidad del autoEn lenguaje XFL primero se crea el TIPO con los trminos lingusticos y luego se crea la variable de entrada
type Tva [0.0,60.0;61] { lento xfl.trapezoid(-0.1, 0.0, 10.0, 30.0);Trmino lingustico
Funcin
Lenguaje XFL para Velocidad del autoEn lenguaje XFL primero se crea el TIPO con los trminos lingusticos y luego se crea la variable de entrada
type Tva [0.0,60.0;61] { lento xfl.trapezoid(-0.1,0.0,10.0,30.0); normal xfl.trapezoid(10.0,30.0,40.0,60.0); rapido xfl.triangle(40.0,60.0,60.01); }COMPLETAMOS LOS TRMINOS LINGUSTICOS
Lenguaje XFL para Velocidad del autoEn lenguaje XFL primero se crea el TIPO con los trminos lingusticos y luego se crea la variable de entrada
type Tva [0.0,60.0;61] { lento xfl.trapezoid(-0.1,0.0,10.0,30.0); normal xfl.trapezoid(10.0,30.0,40.0,60.0); rapido xfl.triangle(40.0,60.0,60.01); }
system (Tva va : ) { }Palabra reservada (definir sistema fuzzy) Definimos la variable de entrada va (velocidad del auto de tipo Tva)
Distancia del autoCERCA LEJOS MUY LEJOS 1,0
0,8
0,6
0,4
0,2
20
30
40
50
60
70
80
100
Lenguaje XFL para Distancia del autotype Tda [0.0,100.0;101] { cerca xfl.triangle(-0.1,0.0,30.0); lejos xfl.triangle(20.0,50.0,80.0); muylejos xfl.triangle(70.0,100.0,100.01); } system (Tva va, Tda da : ) { }
Velocidad del peatnMUY LENTO 1,0 CAMINAR LENTO TROTAR CORRER CORRER MUCHO
0,8
0,6
0,4
0,2
1
2
3
4
5
6
Lenguaje XFL para Distancia del peatntype Tvp [0.0,6.0;7] { muylento xfl.trapezoid(-0.1,0.0,1.0,2.0); lento xfl.triangle(1.0,2.0,3.0); caminar xfl.triangle(2.0,3.0,4.0); trotar xfl.triangle(3.0,4.0,5.0); correr xfl.triangle(4.0,5.0,6.0); corrermucho xfl.triangle(5.0,6.0,6.01); } system (Tva va, Tda da : Tvp vp) { }Variable de salida vp (velocidad del peatn)
BASE DE REGLASVELOCIDAD AUTO LENTO (0-30) LENTO (0-30) LENTO (0-30) NORMAL (10-60) NORMAL (10-60) NORMAL (10-60) RAPIDO (40-mas) RAPIDO (40-mas) RAPIDO (40-mas) DISTANCIA AUTO CERCA (0-30) LEJOS (20-80) MUY LEJOS (70-mas) CERCA (0-30) LEJOS (20-80) MUY LEJOS (70-mas) CERCA (0-30) LEJOS (20-80) MUY LEJOS (70-mas) VELOCIDAD PEATON CAMINAR (2-4) LENTO (1-3) MUY LENTO (0-2) CORRER (4-6) TROTAR (3-5) CAMINAR (2-4) CORRER MUCHO (5-mas) CORRER (4-6) TROTAR (3-5)
BASE DE REGLASVELOCIDAD AUTO DISTANCIA AUTO VELOCIDAD PEATON
(va)LENTO (0-30)
(da)CERCA (0-30)
(vp)CAMINAR (2-4)
if(va == lento & da == cerca) -> vp = caminar
Lenguaje XFL para la Base de reglasrulebase baseNombre de la base de reglas
Palabra reservada para declarar base de reglas
Lenguaje XFL para la Base de reglasrulebase base (Tva va, Tda da : Tvp vp)
Declaracin de Variables de entrada
Declaracin de variable de salida
Lenguaje XFL para la Base de reglasrulebase base (Tva va, Tda da : Tvp vp) using oper {
Operradores definidos
Lenguaje XFL para la Base de reglasrulebase base (Tva va, Tda da : Tvp vp) using oper { if(va == lento & da == cerca) -> vp = caminar; if(va == lento & da == lejos) -> vp = lento; if(va == lento & da == muylejos) -> vp = muylento; if(va == normal & da == cerca) -> vp = correr; if(va == normal & da == lejos) -> vp = trotar; if(va == normal & da == muylejos) -> vp = caminar; if(va == rapido & da == cerca) -> vp = corrermucho; if(va == rapido & da == lejos) -> vp = correr; if(va == rapido & da == muylejos) -> vp = trotar; } system (Tva va, Tda da : Tvp vp) { base(va, da : vp); }
Declaracin de reglas
Definicin de la base en el sistema
Al cdigo mostrado agregamos el que corresponde a los operadores difusos que son utilizados en nuestro caso operatorset oper { and xfl.min(); defuz xfl.CenterOfArea(); }
Unimos todo el cdigo en orden: Operadores Tipos Reglas Sistema Finalmente lo copiamos al ambiente Xfuzzy
Ejecutar el programa Xfuzzy
Creando el sistema fuzzy Secuencia de acciones: File New Sistem
Guardando el sistema fuzzy calle.xfl Secuencia de acciones: Hacemos clic en nomame_000 File Save System As ... Seleccionamos la carpeta en la que guardamos el sistema fuzzy Archivo: calle.xfl Save
Diseamos el sistema fuzzy Secuencia de acciones: Design Edit System
Secuencia de acciones: File Edit XFL3 file
Digitamos los operadores fuzzy: operatorset oper { and xfl.min(); defuz xfl.CenterOfArea(); }
Guardamos el archivo OK Verificamos los cambios
Regresamos al editor del sistema y escribimos el resto de cdigo para los tipos, variables y base de reglas del sistema que tratamos en las diapositivas anteriores
Guardamos el archivo OK Verificamos los cambios (Verificar en la plantalla principal del programa la existencia de errores)
Haciendo doble clic sobre cada uno de los elementos que hemos creado visualizamos sus atributos
Monitoreamos el Sistema creadoSecuencia de acciones Verification Monitorization
Generando cdigo en lenguaje javaSecuencia de acciones Synthesis to Java
MUCHAS GRACIAS
top related