Sei sulla pagina 1di 7

COMPUERTA NOT

Resultado:

Que tabla de verdad deseas usar?(1=NOT,2=AND,3=OR):1

Iteracion de reajuste: 1

Valor del peso erroneo: 3

Valor de bias erroneo: 3

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 2

Valor del peso erroneo: 2

Valor de bias erroneo: 2

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 3

Valor del peso erroneo: 1

Valor de bias erroneo: 1

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 4

Valor del peso erroneo: 0

Valor de bias erroneo: 0

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 4

Numero de iteraciones: 5

Valor del peso: -1

Valor de bias:-1

Aprendizaje completado

COMPUERTA AND

Que tabla de verdad deseas usar?(1=NOT,2=AND,3=OR):2

Iteracion de reajuste: 1

Valor del peso 1 erroneo: -1


Valor del peso 2 erroneo: 2

Valor de bias erroneo: -4

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 2

Valor del peso 1 erroneo: 0

Valor del peso 2 erroneo: 3

Valor de bias erroneo:-3

Iteracion de reajuste: 3

Valor del peso 1 erroneo: 1

Valor del peso 2 erroneo: 2

Valor de bias erroneo: -4

Deseas volver a intentarlo?(1=SI,2=NO)1

Numero de iteraciones: 3

Iteraciones de reajuste: 3

Valor del peso 1: 2

Valor del peso 2: 3

Valor de bias: -3

Aprendizaje completado

COMPUERTA OR

Que tabla de verdad deseas usar?(1=NOT,2=AND,3=OR):3

Iteracion de reajuste: 1

Valor del peso 1: 2

Valor del peso 2: -5

Valor de bias: -2

Iteracion de reajuste: 2

Valor del peso 1: 3

Valor del peso 2: -4

Valor de bias: -3
Iteracion de reajuste: 3

Valor del peso 1: 2

Valor del peso 2: -3

Valor de bias: -2

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 4

Valor del peso 1: 3

Valor del peso 2: -2

Valor de bias: -1

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 5

Valor del peso 1: 2

Valor del peso 2: -1

Valor de bias: 0

Deseas volver a intentarlo?(1=SI,2=NO)1

Iteracion de reajuste: 6

Valor del peso 1: 1

Valor del peso 2: 0

Valor de bias: 1

Iteracion de reajuste: 7

Valor del peso 1: 2

Valor del peso 2: 1

Valor de bias: 0

Deseas volver a intentarlo?(1=SI,2=NO)1

Numero de iteraciones: 5

Iteraciones de reajuste: 7

Valor del peso 1: 1

Valor del peso 2: 2

Valor de bias: 1
Aprendizaje completado

CODIGO
valor=input('Que tabla de verdad deseas usar?(1=NOT,2=AND,3=OR):');
not=[-1 1; 1 -1];
and=[-1 -1 -1; -1 1 -1; 1 -1 -1; 1 1 1];
or=[-1 -1 -1; -1 1 1; 1 -1 1; 1 1 1];

switch valor
case 1
peso=randi([-5,5],1,1);
teta=randi([-5,5],1,1);
k=0;
for i=1:+1.00:10
target=0;
for j=1:+1.00:2
n=hardlims((peso*not(j,1))+teta);
if n==not(j,2)
target=target+1;
else
k=k+1;
disp('Iteracion de reajuste:');
disp(k);
disp('Valor del peso erroneo:');
disp(peso);
disp('Valor de bias erroneo:');
disp(teta);
peso=peso+(not(j,2)*not(j,1));
teta=teta+(not(j,2)*1);
end

end

if target==2
disp('Iteracion de reajuste:');
disp(k);
disp('Numero de iteraciones:');
disp(i);
disp('Valor del peso:');
disp(peso);
disp('Valor de bias:');
disp(teta);
disp('Aprendizaje completado');
break;
end
if i==10
disp('Aprendizaje fallido, no se logro en 10
intentos');
break;
else
opc=input('Deseas volver a intentarlo?(1=SI,2=NO)');
if opc==1
continue;
else
break;
end
end
end

case 2
peso=randi([-5,5],1,1);
peso2=randi([-5,5],1,1);
teta=randi([-5,5],1,1);
k=0;
for i=1:+1.00:10
target=0;

for j=1:+1.00:4
w=[peso peso2];
p=[and(j,1) and(j,2)];
prod=dot(w,p);
n=hardlims(prod+teta);

if n==and(j,3)
target=target+1;
else
k=k+1;
disp('Iteracion de reajuste:');
disp(k);
disp('Valor del peso 1 erroneo:');
disp(peso);
disp('Valor del peso 2 erroneo:');
disp(peso2);
disp('Valor de bias erroneo:');
disp(teta);
peso=peso+(and(j,3)*and(j,1));
peso2=peso2+(and(j,3)*and(j,2));
teta=teta+(and(j,3)*1);
end

end

if target==4
disp('Numero de iteraciones:');
disp(i);
disp('Iteraciones de reajuste:');
disp(k);
disp('Valor del peso 1:');
disp(peso);
disp('Valor del peso 2:');
disp(peso2);
disp('Valor de bias:');
disp(teta);
disp('Aprendizaje completado');
break;
end
if i==10
disp('Aprendizaje fallido, no se logro en 10
intentos');
break;
else
opc=input('Deseas volver a intentarlo?(1=SI,2=NO)');
if opc==1
continue;
else
break;
end
end
end

case 3
peso=randi([-5,5],1,1);
peso2=randi([-5,5],1,1);
teta=randi([-5,5],1,1);
k=0;
for i=1:+1.00:10
target=0;

for j=1:+1.00:4
w=[peso peso2];
p=[or(j,1) or(j,2)];
prod=dot(w,p);
n=hardlims(prod+teta);

if n==or(j,3)
target=target+1;
else
k=k+1;
disp('Iteracion de reajuste:');
disp(k);
disp('Valor del peso 1:');
disp(peso);
disp('Valor del peso 2:');
disp(peso2);
disp('Valor de bias:');
disp(teta);
peso=peso+(or(j,3)*or(j,1));
peso2=peso2+(or(j,3)*or(j,2));
teta=teta+(or(j,3)*1);
end

end

if target==4
disp('Numero de iteraciones:');
disp(i);
disp('Iteraciones de reajuste:');
disp(k);
disp('Valor del peso 1:');
disp(peso);
disp('Valor del peso 2:');
disp(peso2);
disp('Valor de bias:');
disp(teta);
disp('Aprendizaje completado');
break;
end
if i==10
disp('Aprendizaje fallido, no se logro en 10
intentos');
break;
else
opc=input('Deseas volver a intentarlo?(1=SI,2=NO)');
if opc==1
continue;
else
break;
end
end
end

otherwise
disp('Valor inadecuado');
end

Potrebbero piacerti anche