Sunteți pe pagina 1din 5

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y FORMALES

ESCUELA PROFESIONAL DE INGENIERÍA

MECÁNICA, MECÁNICA-ELÉCTRICA Y MECATRÓNICA

PROCESOS INTELIGENTES

PRÁCTICA #2:

Agentes inteligentes

REALIZADO POR:

Luque Vargas, Claudia Ximena

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

-randperm(a): Nos permite crear un vector de x dimensiones (1xa) con valores


desde 1 hasta el valor a de manera con posiciones aleatorias.

-La siguiente función busca la posición del 0, al encontrarla almacena la fila y la


columna donde este se encuentra en las variables a y b.

for i=1:3
for j=1:3
if(M(i,j)==0)
a=i;
b=j;
end
end
end

Pedimos al usuario el ingreso de una opción mostrada en la interfaz

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.

Se puede desarrollar de manera directa, podemos aplicar principios de


inteligencia artificial, informada o desinformada para poder desarrollar un
problema en este caso es el juego de 8 puzzle

Se puede crear interfaz con el usuario, facilitando el entendimiento del programa

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.

Se necesita conocimientos claros de programacion en matlab, ya que sin ellos es


costoso y trabajoso realizar este tipo de programas, mas aun hacerlo automatico.

La programacion en automatico requiere de conocimientos mayores, y generar


algoridmos medianamente complejos.

Si el problema tiene demaciados caminos tanto por lo ancho como por lo


profundo, demorara en resolver.

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.

S-ar putea să vă placă și