Cruzar Calle
Enviado por ranger22 • 18 de Noviembre de 2013 • 310 Palabras (2 Páginas) • 660 Visitas
Implementa el caso "Cruzar Calle" en XFuzzy
Para poder desarrollar paso a paso el código en lenguaje XFL para diseñar sistemas FUZZY (Cruzar la calle), la idea es que un auto viene desplazándose por una pista a cierta velocidad y distancia donde un peatón desea cruzar la pista.
Ahora nos piden saber cuál será la velocidad de este peatón para poder cruzar la calle, la velocidad de un auto se clasificara en tres términos lingüísticos los cuales son :
Lento, normal o pude ser rápida, en principio debemos definir el tipo de variable, esta variable tiene un valor mínimo y valor máximo, como también una cardinalidad (número de valores enteros de la variable) cada tipo de variable tiene sus términos lingüísticos los cuales pueden ser lento, normal, rápido, también para esta implementación debemos de conocer la variable lingüística del peatón las cuales son: muy lento, lento, caminar ,trotar, correr, correr mucho, en lenguaje XFL cada lenguaje tiene su descripción donde se expresa de esta manera if(va==lento&da== cerca)- vp==caminar, esta viene a ser la anotación del lenguaje:
operatorset oper {
and xfl.min();
defuz xfl.CenterOfArea();
}
type Tva [0.0,60.0;61] {
lento xfl.trapezoid(-1.0,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);
}
type 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);
}
type 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);
}
rulebase 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);
}
...