Sie sind auf Seite 1von 21

Logica Difusa

Jaime Alberto Seplveda Gmez


conceptualizacin
La lgica difusa es un rea de investigacin
porque da una buena idea de la relacin entre
significado y precisin.
En este sentido la lgica difusa es nueva y
vieja porque, para la ciencia la lgica difusa es
nueva , pero depende de antiguas habilidades
del razonamiento humana.

La lgica difusa es una manera conveniente de asignar un
espacio de entrada a un espacio de salida.
Asignacin de entrada al de salida es el punto de partida
para todo. Considere los siguientes ejemplos:
Con la informacin sobre lo bien que fue su servicio fue
un restaurante, un sistema de lgica difusa puede decir
cul debe ser la propina.
Con la especificacin de lo caliente que desea el agua,
un sistema de lgica difusa puede ajustar la vlvula del
grifo a la posicin correcta.
Con la informacin sobre lo lejos que un objeto est
para una fotografa, un sistema de lgica difusa puede
enfocar la lente para usted.
Con la informacin sobre la rapidez con que el vehculo
va y la dificultad del trabajo del motor, un sistema de
lgica difusa puede cambiar de marcha para usted.
Ejemplo de espacio de entrada y de
Salidas

Para determinar la cantidad apropiada de la propina se requiere mapear las entradas
para las salidas apropiadas.
Entre la entrada y la salida, la figura anterior se muestra un
cuadro negro que puede contener cualquier nmero de cosas:
los sistemas difusos, sistemas lineales, sistemas expertos, redes
neuronales, ecuaciones diferenciales,
interpolado tablas multidimensionales de bsqueda, o incluso
consultando un consejero espiritual, slo por nombrar algunas
de las posibles opciones. Es evidente que la lista podra seguir y
seguir.
De las docenas de maneras de hacer el trabajo de recuadro
negro, resulta que la fuzzy Logic es a menudo la mejor manera.
Por qu se debe?


Como lo mencion Lotfi Zadeh, que es considerado el padre
de la lgica difusa:
"En casi todos los casos se puede construir el mismo producto
sin la lgica difusa, pero difusa es ms rpida y ms barata ".
Aqu est una lista de observaciones generales sobre la
lgica difusa:

La lgica difusa es conceptualmente fcil de entender.
Los conceptos matemticos detrs de razonamiento
difuso son muy simples.
La lgica difusa es una aproximacin ms intuitiva sin
la complejidades profundas.
La lgica difusa es flexible.
Con cualquier sistema dado, es fcil tener capas de
funcionalidad sin volver a empezar desde cero.
La lgica difusa es tolerante con datos imprecisos.
Por qu utilizar la lgica difusa?
Todo es impreciso si se mira con suficiente atencin , pero ms que eso , la mayor parte cosas
son imprecisas , incluso en una inspeccin cuidadosa. El razonamiento difuso construye esta
comprensin en el proceso en lugar de hacerlo al final.
La lgica difusa puede modelar funciones no lineales de complejidad
arbitraria .Usted puede crear un sistema difuso para combinar con
cualquier conjunto de datos de entrada-salida .
Este proceso se hace especialmente fcil mediante tcnicas adaptativas
como adaptativa Inferencia Sistemas Neuro- Fuzzy ( ANFIS ) , que estn
disponibles en el Tool Box de Fuzzy logic.
La lgica difusa se puede construir sobre la experiencia de los expertos .
En contraste directo con las redes neuronales , que tienen datos de
entrenamiento y generar modelos opacos, impenetrables , la lgica difusa
permite que se basan en la experiencia de las personas que ya entienden
su sistema.
La lgica difusa se puede mezclar con las tcnicas de control
convencionales. Los Sistemas difusos no reemplazan necesariamente
mtodos de control convencionales.
La lgica difusa se basa en el lenguaje natural. La base de la lgica difusa
es la base para la comunicacin humana . Esta observacin sustenta
muchas de las otras declaraciones acerca de la lgica difusa .
Debido a que la lgica difusa se basa en las estructuras de la descripcin
cualitativa usados en el lenguaje cotidiano , la lgica difusa es fcil de usar
.
Lgica Difusa Vs lgica no difusa
EL PROBLEMA BSICO DE LA PROPINA.
Cul es el valor apropiado de una propina?
Dado un nmero de 1 a 10 que representa la
calidad de un servicio en un restaurante
(donde 10 es excelente). Cul podra ser la
propina.
Aproximacin a la lgica no difusa
Servicio=0:0.001:10;
tip=input('Ingrese el porcentaje de la propina:')/100;
plot (Servicio.tip);

0 1 2 3 4 5 6 7 8 9 10
-1
-0.5
0
0.5
1
1.5
Este problema se basa en la propina tpica en Estados Unidos
que est en un 15% del valor de la comida.
Pago de propina con un valor constante (Tip=0.15)
Problema Propina (2)
Servicio=0:0.001:10;
tip=(0.20/10)*Servicio+0.05;
plot (Servicio.tip);

Pago de propina con un variacin en funcin del factor servicio: la anterior relacin no toma en
cuenta la calidad del servicio, entonces necesitamos adicionar un nuevo trmino a la ecuacin.
Porque el servicio est tasado en una escala de 0 a 10.
0 1 2 3 4 5 6 7 8 9 10
0.05
0.1
0.15
0.2
0.25
Problema Propina (3)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10
Pago de propina con un variacin en funcin del factor servicio y del factor comida comida.
Matrices de posibles valores de ambos factores (para los siguientes problemas).
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5 7.5
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5 8.5
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
tip=(0.20/20)*(Food+Service)+0.05;
mesh(Food,Service,tip);
Food
Service
0
2
4
6
8
10
0
5
10
0.05
0.1
0.15
0.2
0.25
tip=(0.20/20)*(Food+Service)+0.05;
mesh(Food,Service,tip);
Problema Propina (3)
Pago de propina con un variacin en funcin del factor servicio
y del factor comida comida.
Se asigna un porcentaje de preferencia a alguno de los factores
(servicio 80%).
ServRatio= input('Ingrese el porcentaje de la propina que considera corresponde al servicio:')/100
tip=ServRatio*((0.20/10)*(Service)+0.05)+(1-ServRatio)*((0.20/10)*(Food)+0.05);
meshc(Food,Service,tip);
0
2
4
6
8
10
0
5
10
0.05
0.1
0.15
0.2
0.25
Problema Propina (4)
Pago de propina con un variacin en funcin del factor servicio,
variacin por rangos
Servicio=0:0.5:10;
for j=1:21
if Servicio(1,j)<3,
tip2(1,j)=((0.10/3)*Servicio(1,j)+0.05);

elseif Servicio(1,j)<7,
tip2(1,j)=0.15;
elseif Servicio(1,j)<=10,
tip2(1,j)=((0.10/3)*(Servicio(1,j)-7)+0.15);

end
end
plot(Servicio,tip2);
0 1 2 3 4 5 6 7 8 9 10
0.05
0.1
0.15
0.2
0.25
Problema Propina (5)
Pago de propina con un variacin en funcin del factor servicio
y factor comida, variacin por rangos
ServRatio= input('Ingrese el porcentaje de la propina que considera corresponde al servicio:')/100
for i=1:21;
for j=1:21;
if Service(i,j)<3,
tip(i,j)=ServRatio*((0.10/3)*Service(i,j)+0.05)+(1-ServRatio)*((0.20/10)*Food(i,j)+0.05);
elseif Service(i,j)<7,
tip(i,j)=ServRatio*(0.15)+(1-ServRatio)*((0.20/10)*Food(i,j)+0.05);
else,
tip(i,j)=ServRatio*((0.10/3)*(Service(i,j)-7)+0.15)+(1-ServRatio)*((0.20/10)*Food(i,j)+0.05);
end
end
end
surf(Food,Service,tip);

0
2
4
6
8
10
0
5
10
0.05
0.1
0.15
0.2
0.25
Una Aproximacin a la Lgica Difusa
Para capturar lo esencial de un problema. es
necesario dejar a un lado los factores que
pueden ser arbitrarios.
Si se lista lo esencial del problema. se puede
listar la siguiente regla:

Reglas del problema de
propinas
Factor de Servicio
Si el servicio es malo Entonces la propina es poca
Si el Servicio es bueno Entonces la propina es
promedio
Si el servicio es excelente Entonces la propina es
generosa
El orden de las reglas es irrelavante.
Si adicionamos el efecto de la comida podemos
adicionar las siguientes reglas.



Si quisieramos combinar ambos factores (servicio y
comida)se tendra una lista como

Reglas del problema de
propinas
Factor de Comida
Si la comida es rancia Entonces la propina es poca
Si la comida es deliciosa Entonces la propina es
generosa
Reglas del problema de
propinas
Ambos Factores Servicio y
Comida
Si el servicio es malo o la
comida es rancia
Entonces la propina es poca
Si el Servicio es bueno Entonces la propina es
promedio
Si el servicio es excelente o la
comida es deliciosa
Entonces la propina es
generosa
Estas tres reglas son la parte central de la
solucin para un sistema de Lgica Difusa
Si adems le damos significado matemtico a
variables lingisticas como por ejemplo:
cunto es una propina promedio?.
Con esto tenemos las inferencias completas de un
sistema difusa-
Adems la metodologas de la lgica difusa debe
considerar:
Cmo se deben combinar todas las reglas?
Cmo puedo definir matemticamente las variables
lingisticas?.
Solucin al Problema
Recalibrando el mtodo
ServRatio= input('Ingrese el porcentaje de la propina que considera corresponde al servicio:')/100
% Establish constants
lowTip=0.05; averTip=0.15; highTip=0.25;
tipRange=highTip-lowTip;
badService=0; okayService=3;
goodService=7; greatService=10;
serviceRange=greatService-badService;
badFood=0; greatFood=10;
foodRange=greatFood-badFood;
for i=1:21;
for j=1:21;
% If service is poor or food is rancid. tip is cheap
if Service(i.j)<okayService.
tip(i.j)=(((averTip-lowTip)/(okayService-badService))*Service(i.j)+lowTip)*ServRatio +(1-ServRatio)*(tipRange/foodRange*Food(i.j)+lowTip);
% If service is good. tip is average
elseif Service(i.j)<goodService.
tip(i.j)=averTip*ServRatio + (1-ServRatio)*(tipRange/foodRange*Food(i.j)+lowTip);
% If service is excellent or food is delicious. tip is generous
else.
tip(i.j)=(((highTip-averTip)/(greatService-goodService))*(Service(i.j)-goodService)+averTip)*ServRatio +(1-ServRatio)*(tipRange/foodRange*Food(i.j)+lowTip);
end
end
end
surf(Food.Service.tip);


0
2
4
6
8
10
0
5
10
0.05
0.1
0.15
0.2
0.25

Das könnte Ihnen auch gefallen