Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resultado:
Iteracion de reajuste: 1
Iteracion de reajuste: 2
Iteracion de reajuste: 3
Iteracion de reajuste: 4
Iteracion de reajuste: 4
Numero de iteraciones: 5
Valor de bias:-1
Aprendizaje completado
COMPUERTA AND
Iteracion de reajuste: 1
Iteracion de reajuste: 2
Iteracion de reajuste: 3
Numero de iteraciones: 3
Iteraciones de reajuste: 3
Valor de bias: -3
Aprendizaje completado
COMPUERTA OR
Iteracion de reajuste: 1
Valor de bias: -2
Iteracion de reajuste: 2
Valor de bias: -3
Iteracion de reajuste: 3
Valor de bias: -2
Iteracion de reajuste: 4
Valor de bias: -1
Iteracion de reajuste: 5
Valor de bias: 0
Iteracion de reajuste: 6
Valor de bias: 1
Iteracion de reajuste: 7
Valor de bias: 0
Numero de iteraciones: 5
Iteraciones de reajuste: 7
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