Documente Academic
Documente Profesional
Documente Cultură
PROCESOS INTELIGENTES
PRÁCTICA #2:
Agentes inteligentes
REALIZADO POR:
Grupo: 01
Arequipa-Perú
Abril-2018
1. Para el problema del 8 puzzle, realice un programa en Matlab que
a) Genere un estado inicial aleatorio.
b) Realice cada una de los operadores definidos.
c) Desarrolle una función que evalué la condición de fin.
d) Permita la solución manual del problema determinando la cantidad de movimientos
empleados hasta llegar al estado deseado.
e) Permita la solución automática del problema determinando la cantidad de
movimientos empleados hasta llegar al estado deseado.
Código
while (F~=1) M(a,b)=A;
x=x+1;
%Buscaelcero
end
for i=1:3
end
for j=1:3
%derecha
if(M(i,j)==0)
if(TECLA==3)
a=i;
if(b>=1&b<3)
b=j;
A=M(a,b+1);
end
M(a,b+1)=0;
end
M(a,b)=A;
end
x=x+1;
end
%INGRESARVALOR end
W=input(prompt); %izquierda
if(TECLA==4)
%subir if(b<=3&b>1)
if(TECLA==1) A=M(a,b-1);
if(a<=3&a>1) M(a,b-1)=0;
A=M(a-1,b); M(a,b)=A;
M(a-1,b)=0; x=x+1;
M(a,b)=A; end
x=x+1; end
end %
end clc;
%bajar disp(' 8 PUZZLE ');
if(TECLA==2) disp(' ');
if(a>=1&a<3) disp(M);
A=M(a+1,b); fprintf('Número de
M(a+1,b)=0; movimientos: %d \n\n',x);
Explicación
for i=1:3
for j=1:3
if(M(i,j)==0)
a=i;
b=j;
end
end
end
TECLA=input(prompt);
Los siguientes comandos son para los respectivos desplazamientos del 0 ya ubicado
anteriormente
%subir
if(TECLA==1) %derecha
if(a<=3&a>1) if(TECLA==3)
A=M(a-1,b); if(b>=1&b<3)
M(a-1,b)=0; A=M(a,b+1);
M(a,b)=A; M(a,b+1)=0;
x=x+1; M(a,b)=A;
end x=x+1;
end
%bajar
if(TECLA==2) %izquierda
if(a>=1&a<3) if(TECLA==4)
A=M(a+1,b); if(b<=3&b>1)
M(a+1,b)=0; A=M(a,b-1);
M(a,b)=A; M(a,b-1)=0;
x=x+1; M(a,b)=A;
end x=x+1;
2. Para el problema del Juego del Tres en Raya, realice un programa en Matlab que
a) Genere un estado inicial aleatorio.
b) Realice cada una de los operadores definidos.
c) Desarrolle una función que valué la condición de fin.
d) Permita la solución manual del problema determinando la cantidad de movimientos
empleados hasta llegar al estado deseado.
e) Permita la solución automática del problema determinando la cantidad de
movimientos empleados hasta llegar al estado deseado.
Código
%Modo de un jugador
if modo==2 end
Per=1; end
if M(3,2)==mov
%Cambio de jugador en filapr=1;
cada turno columnapr=2;
if mov==1 if
mov=2; M(filapr,col
else; umnapr)==0
mov=1; fila=filapr;
end
columna=colu
%jugador 1 (Computadora) mnapr;
if mov==1 end
fila=input ( end
columna=input ( if M(2,1)==mov
end filapr=2;
columnapr=3;
if
%La computadora M(filapr,col
if mov==2 umnapr)==0
fprintf fila=filapr;
Posicion=0;
while Posicion==0 columna=colu
R=1; mnapr;
end
if R==1 end
if M(2,2)==0 if M(2,3)==mov
fila=2; filapr=2;
columna=2; columnapr=1;
R=0; if
Posicion=1; M(filapr,col
else umnapr)==0
R=2; fila=filapr;
end
end columna=colu
mnapr;
if R==2 end
fila=0; end
columna=0; if M(1,1)==mov
if M(2,2)==mov filapr=3;
columnapr=3;
if
if M(1,2)==mov M(filapr,col
filapr=3; umnapr)==0
columnapr=2; fila=filapr;
if
M(filapr,col columna=colu
umnapr)==0 mnapr;
fila=3; end
columna=2; end
4. Cuestionario final
1.- Explique las ventajas de utilizar Matlab como software para la programación de un
agente.
En forma manual los comandos son más sencillos de realizar, usando las funciones
previamente creadas
2.- Explique las desventajas de utilizar Matlab como software para la programación de
un agente.
5. Conclusiones
Necesitamos conocimientos básicos para realizar estos programas
La interfaz facilita interactuar con el usuario
La creación de funciones definidas y su uso en distintos problemas es
fundamental
Hacer una buena representación del conocimiento es importante al momento
de querer escribir un programa para solucionar dicho problema.