You are on page 1of 150

INTELIGENCIA ARTIFICIAL

Ramas que componen la IA:

Lgica Difusa
Redes Neuronales Artificiales
Algoritmos Genticos

LOGICA DIFUSA
Control Convencional

Control no Convencional

LOGICA DIFUSA
Lgica Clsica:

Ejemplo: Qu tan mojada esta la ropa?

Lgica Difusa:

LOGICA DIFUSA
La lgica difusa es una rama de la IA que permite analizar
informacin del mundo real en una escala entre lo falso y verdadero.

La lgica difusa es un conjunto de principios matemticos basados en


grados de membresa o pertenencia, cuya funcin es modelar
informacin. Este modelado se hace con base en reglas lingsticas
que aproximan una funcin mediante la relacin de entradas y salidas
del sistema. Esta lgica presenta rangos de membresa dentro de un
intervalo entre 0 y 1, a diferencia de la lgica convencional, en la que
el rango se limita a dos valores: el cero o el uno.

LOGICA DIFUSA
La lgica difusa se usa para automatizar procesos, utilizando
controladores difusos, basados en la experiencia del operador o
experto. Se traslada la experiencia humana hacia una computadora.

LOGICA DIFUSA
No requiere conocer el modelo dinmico del sistema a controlar. Por
lo tanto:
El control difuso no requiere identificar el sistema
No necesita aproximar el modelo
No necesita linealizarlo
Facilita el diseo del controlador
Pero se necesita conocer las reglas lingsticas de control de un
experto.

Cuando no se conoce el modelo se usa:


Control PID (una entrada y una salida)
Control Difuso (mltiples entradas y salidas)

LOGICA DIFUSA
Quin invent la Lgica Difusa?
Naci en el ao de 1921 en Baku, Azerbaijan
Creci y estudi en Irn hasta obtener la
licenciatura.
Obtuvo el Grado de Mg y PhD en Estados
Unidos.

Lofti Zadeh

En 1952 desarroll el mtodo de la


transformada Z para anlisis y el
procesamiento de seales discretizadas
en el tiempo.
En 1964 propuso la teora de conjuntos
difusos.
En 1974 publica sobre la teora de lgica
difusa y el razonamiento aproximado.

CONJUNTOS DIFUSOS
Ejemplo: Clasifique a las personas de acuerdo a su estatura en dos
conjuntos.

Conjuntos Clsicos:

Una persona UNICAMENTE


puede pertenecer a una sola
clase.

Conjuntos Difusos:

CONJUNTOS DIFUSOS
Ejemplo: Clasifique a las personas de acuerdo a su estatura en dos
conjuntos.

Conjuntos Clsicos:

Conjuntos Difusos:

Una persona UNICAMENTE


puede pertenecer a una sola
clase.
Una persona puede pertenecer
a mas de una clase.

CONJUNTOS DIFUSOS
Universo de Discurso: La totalidad

Por ejemplo, 1.0,2.5 metros

Funcin de Membresa : Medida de la


pertenencia de un elemento al conjunto.
Dominio = Universo de Discurso
Imagen : 0,1

CONJUNTOS DIFUSOS
Notacin:

Continuos

Discretos

CONJUNTOS DIFUSOS
Operaciones:

Subconjuntos
Conjuntos clsicos

CONJUNTOS DIFUSOS
Operaciones:

Subconjuntos
Conjuntos difusos

CONJUNTOS DIFUSOS
Interseccin
Conjuntos clsicos

Conjuntos difusos

CONJUNTOS DIFUSOS
Unin
Conjuntos clsicos

Conjuntos difusos

CONJUNTOS DIFUSOS
Complemento
Conjuntos clsicos

Conjuntos difusos

CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Conmutativa

Asociativa

Distributiva

CONJUNTOS DIFUSOS
Propiedades de las Operaciones

Distributiva

CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Identidad

Transitiva

Idempotencia

Involutiva

CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Complementariedad

CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Leyes de DeMorgan

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA

FUNCIONES DE MEMBRESIA
Normal o Subnormal

Simtricas y No simtricas

FUNCIONES DE MEMBRESIA
Abiertas o Cerradas

FUNCIONES DE MEMBRESIA
Convexas o No convexas

FUNCIONES DE MEMBRESIA
Singleton

FUNCIONES DE MEMBRESIA
Conjunto cortado

FUNCIONES DE MEMBRESIA
Conjunto cortado

FUNCIONES DE MEMBRESIA
Conjunto cortado

FUNCIONES DE MEMBRESIA
Triangular

0
/
() =
( )/( )
0

FUNCIONES DE MEMBRESIA
Triangular

0
/
() =
( )/( )
0

FUNCIONES DE MEMBRESIA
Trapezoidal
=

0
/
1
( )/( )

( )

FUNCIONES DE MEMBRESIA
Trapezoidal
=

0
/
1
( )/( )

( )

FUNCIONES DE MEMBRESIA
Gaussiana

FUNCIONES DE MEMBRESIA
Campana Generalizada

FUNCIONES DE MEMBRESIA
Sigmoidal

RELACIONES DIFUSAS
Relacin Clsica

Relacin Difusa

RELACIONES DIFUSAS
Relacin Difusa

PRODUCTO CARTESIANO
Caso Clsico

Caso Difuso

COMPOSICIONES R.
DIFUSAS
Composicin
para funciones

Composicin para
relaciones difusas

COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas

COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas

COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas

COMPOSICIONES R.
DIFUSAS
Ejemplo: Considerando los conjuntos definidos en la tabla, calcular
por composicin el conjunto B = A o R donde R = A x B

COMPOSICIONES R.
DIFUSAS
Ejemplo: Considerando los conjuntos definidos en la tabla, calcular
por composicin el conjunto B = A o R donde R = A x B

COMPOSICIONES R.
DIFUSAS
Ejemplo.
clc, clear, close all
x=0:0.01:1;
A=sigmf(x,[15 0.5]);
y=0:0.01:5;
B=sigmf(y,[-3 2.5]);
figure,plot(x,A,'b','LineWidth',5),set(gca,
'FontSize',18), legend('A')
figure,plot(y,B,'r','LineWidth',5),set(gca,
'FontSize',18), legend('B')

% Producto Cartesiano
for i=1:length(A)
for j=1:length(B)
R(i,j)=min(A(i),B(j));
end
end
[X, Y]=meshgrid(y,x);
figure, mesh(X,Y,R), set(gca,'FontSize',18)

% Composicin
Ap=gaussmf(x,[0.04 0.5]);
for j=1:length(B)
for i=1:length(A)
aux(i)=min(Ap(i),R(i,j));
end
Bp(j)=max(aux);
end
figure, plot(x,Ap,'b','LineWidth',5),set(gca,
'FontSize',18), legend('Ap')
figure, plot(y,Bp,'r','LineWidth',5),set(gca,
'FontSize',18), legend('Bp')

OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).

OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).

OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).

OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.

OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.

OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.

OPERACIONES LOGICAS
Si: = 0.3, = 0.8 = 0.5
Calcular el grado de verdad de las siguientes proposiciones
compuestas.

VARIABLE LINGUISTICA

Ejemplo:

VARIABLE LINGUISTICA

Ejemplo:

VARIABLE LINGUISTICA

Ejemplo:

VARIABLE LINGUISTICA

Ejemplo:

REGLAS DIFUSAS
si x es A, entonces y es B

REGLAS DIFUSAS
Ejemplo.

REGLAS DIFUSAS
Ejemplo.

REGLAS DIFUSAS
Ejemplo.

clc, clear, close all


x=0:0.03:8;
mA=sigmf(x,[3 2]);
y=0:0.03:20;
mB=sigmf(y,[3 16]);
%Producto Cartesiano
for i=1:length(x)
for j=1:length(y)
mR(i,j)=min(mA(i),mB(j));
end
end
[X, Y]=meshgrid(y,x);
mesh(X,Y,mR), set(gca,'FontSize',18),
ylabel('Horas'),xlabel('Calificacin')

% Implicacin Difusa
for i=1:length(x)
for j=1:length(y)
mR(i,j)=max(1-mA(i),mB(j));
end
end
[X, Y]=meshgrid(y,x);
figure, mesh(X,Y,mR), set(gca,'FontSize',18),
ylabel('Horas'),xlabel('Calificacin')

MODUS PONENS DIFUSO

Ejemplo. Infiera la conclusin del siguiente razonamiento difuso.

MODUS PONENS DIFUSO

MODUS PONENS DIFUSO

MODUS PONENS DIFUSO


clc, clear, close all
x=0:0.03:8;
mA=sigmf(x,[3 2]);
y=0:0.03:20;
mB=sigmf(y,[3 16]);
% Producto Cartesiano
for i=1:length(x)
for j=1:length(y)
mR(i,j)=min(mA(i),mB(j));
end
end
[X, Y]=meshgrid(y,x);
mesh(X,Y,mR),
set(gca,'FontSize',18),ylabel('Horas'),
xlabel('Calificacin')

% Composicin
mAp=sigmf(x,[-10 1]);
for j=1:size(mR,2)
for i=1:size(mR,1)
aux(i)=min(mAp(i),mR(i,j));
end
mBp(j)=max(aux);
end
figure,
plot(x,mAp,'LineWidth',5),set(gca,'FontSize',18),
legend('Ap')
figure,
plot(y,mBp,'LineWidth',5),set(gca,'FontSize',18),
legend('Bp')
axis([0 20 0 1])

CONTROL DIFUSO
Control Convencional

Control no Convencional

CONTROL DIFUSO

CONTROL DIFUSO
Ejemplo. Control de la posicin del cartucho en una impresora
de inyeccin de tinta.

CONTROL DIFUSO

Variables lingsticas

CONTROL DIFUSO

Reglas de control

CONTROL DIFUSO

Reglas de control

CONTROL DIFUSO
Mtodo de inferencia

CONTROL DIFUSO
Mtodo de inferencia

CONTROL DIFUSO

CONTROL DIFUSO
Defusificacin

CONTROL DIFUSO
Defusificacin

CONTROL DIFUSO

CONTROL DIFUSO
clc, clear, close all
paso=0.01;
% Error de posicin
e = -20:paso:20;
ENG = trapmf(e,[-20 -20 -10 -5]);
ENP = trimf(e,[-10 -5 -0]);
EC = trimf(e,[-5 0 5]);
EPP = trimf(e,[0 5 10]);
EPG = trapmf(e,[5 10 20 20]);
subplot(3,1,1), plot(e,ENG,e,ENP,e,EC,e,EPP,e,EPG,'LineWidth',5)
set(gca,'FontSize',18), legend('ENG','ENP','EC','EPP','EPG')
xlabel('Error'), ylabel('\mu(Error)'),grid
% Accin de control (Voltaje)
v = -12:paso:12;
VNG = trapmf(v,[-12 -12 -6 -3]);
VNP = trimf(v,[-6 -3 0]);
VC = trimf(v,[-3 0 3]);
VPP = trimf(v,[0 3 6]);
VPG = trapmf(v,[3 6 12 12]);
subplot(3,1,2), plot(v,VNG,v,VNP,v,VC,v,VPP,v,VPG,'LineWidth',5)
set(gca,'FontSize',18), legend('VNG','VNP','VC','VPP','VPG')
xlabel('Voltaje'), ylabel('\mu(Voltaje)'),grid
axis([-12 12 0 1])

CONTROL DIFUSO
e0 = 9; %Error sensado
n = find(e==e0);
subplot(3,1,1), hold on,
plot(e0,ENG(n),'*',e0,ENP(n),'*',e0,EC(n),'*',e0,EPP(n),'*',e0,EPG(n)
,'*','LineWidth',5),hold off
% Fusificar e Inferencia difusa de mandani
B1 = min(VNG,ENG(n));
B2 = min(VNP,ENP(n));
B3 = min(VC,EC(n));
B4 = min(VPP,EPP(n));
B5 = min(VPG,EPG(n));
B = max(B1,max(B2,max(B3,max(B4,B5))));
subplot(3,1,3), plot(v,B,'LineWidth',5)
set(gca,'FontSize',18), legend('V')
axis([-12 12 0 1])
% Defusificacin
vo = defuzz(v,B,'centroid')
hold on, plot(vo*ones(1,3),[0 0.5 1],'r','LineWidth',5)

CONTROL DIFUSO
function vo = ControlDifuso_Impresora(e0,paso)
% Error de posicin
e = -20:paso:20;
ENG = trapmf(e,[-20 -20 -10 -5]);
ENP = trimf(e,[-10 -5 -0]);
EC = trimf(e,[-5 0 5]);
EPP = trimf(e,[0 5 10]);
EPG = trapmf(e,[5 10 20 20]);
% Accin de control (Voltaje)
v = -12:paso:12;
VNG = trapmf(v,[-12 -12 -6 -3]);
VNP = trimf(v,[-6 -3 0]);
VC = trimf(v,[-3 0 3]);
VPP = trimf(v,[0 3 6]);
VPG = trapmf(v,[3 6 12 12]);
for k=1:length(e0)
n = find(e==e0(k));
% Fusificar e Inferencia difusa de mandani
B1 = min(VNG,ENG(n));
B2 = min(VNP,ENP(n));
B3 = min(VC,EC(n));
B4 = min(VPP,EPP(n));
B5 = min(VPG,EPG(n));
B = max(B1,max(B2,max(B3,max(B4,B5))));
% Defusificacin
vo(k) = defuzz(v,B,'centroid');
end

CONTROL DIFUSO
clc, clear, close all
paso = 0.01;
e0 = -20:paso:20;
vo = ControlDifuso_Impresora(e0,paso);
plot(e0,vo,'LineWidth',5)
set(gca,'FontSize',18), title('Curva de Control')
grid

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO
Curva de control

CONTROL DIFUSO

CONTROL DIFUSO
Fusificacin, corte,
unin, defusificacin

CONTROL DIFUSO

CONTROL DIFUSO
Controlador de Mamdani

CONTROL DIFUSO
Controlador de Mamdani

CONTROL DIFUSO
Controlador de Mamdani

CONTROL DIFUSO
Controlador de Mamdani

CONTROL DIFUSO
Controlador de Sugeno-Takagi-Kang

CONTROL DIFUSO
Controlador de Sugeno-Takagi-Kang

CONTROL DIFUSO
clc, clear, close all
% Error de posicin
paso=0.01;
e = -20:paso:20;
a = 1;
NG = sigmf(e,[-0.5*a -10]);
NP = gbellmf(e,[2.5 a -7.5]);
C = gbellmf(e,[5 a 0]);
PP = gbellmf(e,[2.5 a 7.5]);
PG = sigmf(e,[0.5*a 10]);
subplot(2,1,2), plot(e,NG,e,NP,e,C,e,PP,e,PG,'LineWidth',5)
set(gca,'FontSize',18), grid
axis([-12 12 0 1])

CONTROL DIFUSO
% Curva de control - Inferencia de Sugeno
imax = length(e);
for i=1:imax
W = [NG(i) NP(i) C(i) PP(i) PG(i)];
f1 = -12;
f2 = 2*e(i) + 8;
f3 = 0.4*e(i);
f4 = 2*e(i) - 8;
f5 = 12;
v(i) = (W(1)*f1+W(2)*f2+W(3)*f3+W(4)*f4+W(5)*f5)/sum(W);
end
subplot(2,1,1), plot(e,v,'LineWidth',5)
set(gca,'FontSize',18)
axis([-21 21 -13 13])
grid on

CONTROL DIFUSO

CONTROL DIFUSO

CONTROL DIFUSO
Controlador de Tsukamoto

CONTROL DIFUSO
Controlador de Tsukamoto

CONTROL DIFUSO
clc, clear, close all
% Error de posicin
paso=0.01;
e = -20:paso:20;
a = 0.2;
EN = sigmf(e,[-a 0]);
EP = sigmf(e,[a 0]);
subplot(3,1,1), plot(e,EN,e,EP,'LineWidth',5),
title('Error')
set(gca,'FontSize',18), grid
axis([-20 20 0 1])
v = -12:paso:12;
VN = trimf(v,[-12 12 12]);
VP = trimf(v,[-12 -12 12]);
subplot(3,1,2), plot(v,VN,v,VP,'LineWidth',5),
title('Voltaje')
set(gca,'FontSize',18),grid
axis([-12 12 0 1])
axis([-21 21 -13 13])
grid on

% Curva de control - Inferencia de Tsukamoto


imax = length(e);
for i=1:imax
W = [EN(i) EP(i)];
z1 = -24*(EN(i)-0.5);
z2 = 24*(EP(i)-0.5);
v(i) = (W(1)*z1+W(2)*z2)/(W(1)+W(2));
end
subplot(3,1,3), plot(e,v,'LineWidth',5), title('Curva
de Control')
set(gca,'FontSize',18)
axis([-21 21 -13 13])
grid on

CONTROL DIFUSO PID

CONTROL DIFUSO PID


Controlador P

Ejemplo

CONTROL DIFUSO PID


Controlador P

CONTROL DIFUSO PID


Controlador P

CONTROL DIFUSO PID


Controlador P

CONTROL DIFUSO PID


Controlador P

CONTROL DIFUSO PID


Controlador P

CONTROL DIFUSO PID


Controlador PI

Ejemplo

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PI

CONTROL DIFUSO PID


Controlador PD

Ejemplo

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PD

CONTROL DIFUSO PID


Controlador PID

Ejemplo

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Controlador PID

CONTROL DIFUSO PID


Realizar un controlador PD, PI y PID para el control de
posicin de la impresora. (Utilizando Fuzzy Logic Designer
y Simulink)
midwarvalencia@hotmail.com
Plazo: 03 semanas.

You might also like