ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Artificial I

Maria MunevarPráctica o problema1 de Octubre de 2015

2.622 Palabras (11 Páginas)140 Visitas

Página 1 de 11

Implementación en Java de un planificador lineal con pila de objetivos

BLOCKS WORLD

María Munévar Moreno

Cindy Medina Jiménez

Inteligencia Artificial I

Lab Assistant: Lucas Marín

12/12/2012


Contenido

1.        PLANTEAMIENTO DEL PROBLEMA        

2.        METODOLOGIA        

2.1        Problemas planteados        

2.2        Creación de los ficheros        

2.3        Creación de clases        

3.        CONCLUSIONES        

  1. PLANTEAMIENTO DEL PROBLEMA

El segundo ejercicio práctico de AI1/PAR consiste en la implementación en java de un planeador lineal con pila de objetivos. El dominio de esta aplicación corresponde a una serie de problemas relacionados con el mundo de los bloques, y se define a continuación:

Predicados

  • On-table(x): x está puesto sobre la mesa
  • On(x,y): x está sobre y
  • Free(x): x no tiene ningún objeto encima
  • Free-arm: el brazo robótico no está agarrando ningún objeto
  • Picked-up(x): el objeto x está siendo agarrado por el brazo robótico
  • Used-cols-num(n): n columnas de bloques están siendo usadas.
  • Heavier(x,y): el objeto x es mas pesado que y

NOMBRE DEL OPERADOR

FUNCION

PRECONDICIONES

ELIMINA

AGREGA

Pick-up(x)

Le ordena al brazo robótico recoger el bloque x el cual está sobre la mesa.

Used-cols-num(n),

On-table(x),

Free-arm,

Free(x)

On-table(x),

Free-arm,

Used-cols-num(n)

Picked-up(x),

Used-cols-num(n-1)

Leave(x):

Le ordena al brazo robótico dejar el bloque x e sobre la mesa.

Picked-up(x),

Used-cols-num(n), n<3

Picked-up(x),

Used-cols-num(n)

On-table(x),

Used-cols-num(n+1),

Free-arm

Unstack (x,y):

Le ordena al brazo robótico recoger el bloque x el cual está sobre el bloque y.

On(x,y),

Free(x),

Free-arm,

x!=y

On(x,y),

Free-arm

Picked-up(x),

Free(y)

Stack(x,y):

Le ordena al brazo robótico dejar el bloque x sobre el bloque y.

Picked-up(x), Free(y), Heavier(y,x),

x!=y

Picked-up(x), Free(y)

On(x,y),

Free-arm

Tabla 1. Operadores considerados en la práctica

Se debe tener en cuenta que se han introducido dos modificaciones en el dominio clásico "mundo de los bloques":

  • En la tabla anterior se aprecia que solamente se pueden tener 3 pilas de bloques. Este hecho es comprobado con el predicado Used-cols-num, que se actualiza cada vez que se utiliza el operador Pick-up or Leave.
  • Sólo se puede apilar un bloque x sobre un bloque y si el segundo bloque es más pesado que el primero.
  1. METODOLOGIA

En esta sección se detalla la implementación en Java del planificador lineal con pila de objetivos para resolver el problema, por lo que se indica la representación interna que utilizada para gestionar las precondiciones, y asi comprobar la aplicabilidad de los operadores, etc. De igual forma se describe el diseño de tácticas inteligentes para facilitar el proceso de planificación al apilar condiciones previas, la aplicación de los operadores, etc.

  1. Problemas planteados

La figura 1 y 2 ilustran los casos para probar el algoritmo. Cabe aclarar que los puntos en los cuadros representan unidades de peso. La figura 1 recrea un problema con solución sencilla, el cual se debe resolver en un tiempo de ejecución notorio. El segundo caso ilustrado en la figura 2, corresponde a un problema de mayor dificultad que el anterior.

[pic 3]

[pic 4]

Estado inicial

Estado final

Figura 1. Primer caso a resolver

[pic 5]

[pic 6]

Estado inicial

Estado final

Figura 2. Segundo caso a resolver

Por otro lado, se debe probar el código con un amplio conjunto de casos: los dos problemas propuestos y otros tres inventados. Discutir las soluciones encontradas por el programa e indicar si es posible que hayan planes más óptimos. La figura 3 y 4 ilustran los problemas diseñados.

[pic 7]

[pic 8]

Estado inicial

Estado final

Figura 3. Tercer caso a resolver

[pic 9]                                   

[pic 10]

Estado inicial

Estado final

Figura 4. Cuarto caso a resolver

  1. Creación de los ficheros

Los ficheros .txt contienen la información acerca del problema que se quiere resolver. Contiene el nombre de los bloques usados y la descripción del estado inicial y final. Los archivos de prueba utilizados para evaluar el software tienen el siguiente formato:

Blocks=A,B,C;

Initial_state=ON-TABLE(C);ON-TABLE(B);ON(A,B);FREE(A);FREE(C);HEAVIER(B,C);HEAVIER(C,A);HEAVIER(B,A);FREE-ARM;

...

Descargar como (para miembros actualizados) txt (15 Kb) pdf (252 Kb) docx (90 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com