You are on page 1of 6

INTELIGENCIA ARTIFICIAL

Memoria del robot


trufero
Prctica 2

Emilio Chica Jimnez


11/04/2015

Solucin al problema de un robot recolector de trufas por medio de un agente reactivo que
recolecta trufas

Emilio Chica Jimnez

E.T.S.I.I

12 de abril de 2015

ndice
1.

Objetivo ................................................................................................................................. 2

2.

Herramientas utilizadas ........................................................................................................ 2

3.

Primeros pasos para el diseo de la solucin ....................................................................... 2


Un primer enfoque .................................................................................................................... 2
Un segundo enfoque ................................................................................................................. 3
Un ltimo enfoque de diseo ................................................................................................... 4

4.

Movimiento del agente en el mapa ...................................................................................... 4

5.

Comportamiento de extraccin de trufas ............................................................................. 5

Inteligencia Artificial |

Emilio Chica Jimnez

E.T.S.I.I

12 de abril de 2015

1. Objetivo
El objetivo de esta prctica ha sido el de crear un agente reactivo el cual fuera capaz de
actuar de la manera ms ptima a travs de los sensores disponibles del mismo en cualquier
situacin. Dicha manera consiste en que el agente tiene que recorrer de la manera ms
eficiente una serie de laberintos para conseguir su objetivo que es recoger el mayor nmero
de trufas.

2. Herramientas utilizadas
Para llevar a cabo esta prctica he necesitado varias herramientas para completarla, entre
ellas cabe mencionar:

Hardware:
Procesador: AMD Phenom II X4 955 Black Edition 3.2 GHz, Cach: 4 x 512
KB L2 / 6 MB L3
Memoria RAM: 2.9 GB DDR3 1600 Mhz
Placa Base: ASUS Sabertooth 990 FX - BUS: 5200MT/s via
HyperTransport 3.0 based system bus
HD: Seagate 1 TB 7200 rpm

Software:

SO: Windows 7 64 bits


Herramienta IDE de cdigo abierto Code Blocks v.-13.12
Cdigo para realizer los test y pruebas proporcionado por el professor.

3. Primeros pasos para el diseo de la solucin


Un primer enfoque
Las primeras ideas a contemplar para resolver el problema son realizar un anlisis en
profundidad del problema que se plantea. Para realizar este anlisis, dibujar grficos del
mismo me han sido muy tiles para entender las posibilidades que tengo para resolverlo
de forma ptima.
Para empezar a plantear el problema dibuj los siguientes grafos para simplificarlo y
obtener una idea de comienzo del mismo:
Inteligencia Artificial |

Emilio Chica Jimnez

E.T.S.I.I
/
/
/
/
/
/
/
/
/
/

//
|
/

12 de abril de 2015
/

>
/

//
|
|
/\
/

/
/
/
/
/
/
/
/
/
/

Donde empec a plantear los posibles problemas de forma general que podra
encontrarme a la hora de que el agente hiciese el recorrido correcto y pudiera salir de
situaciones como la que se ha planteado en el grfico superior.
Este primer enfoque no fue del todo til ya que el precisar comportamientos
completos sobre situaciones complejas y concretas lleva a realizar muchos ms acciones en
cadena que al ser para una situacin especfica no contemplara la mnima variacin de la
misma.
Por lo que este enfoque lo desech rpidamente.
Aunque de este primer enfoque me llev una idea muy clara y es que para que el
agente entendiera y se situara correctamente por el mapa necesitaba una representacin
simblica del mismo que le ayudara a tomar las mejores decisiones ante cualquier situacin.

Un segundo enfoque
Vistos los resultados del enfoque anterior y su ineficacia, comenc a disear una
segunda idea basada en clculos sobre distancias entre obstculos sobre el mapa que estaba
representando simblicamente la informacin que me proporciona el agente con sus sensores.
Ya que cada mapa tiene una cantidad irregular de elementos y obstculos en el mismo,
me fue imposible llevar a cabo funciones de complementacin de la representacin simblica
a travs de clculos.
Como por ejemplo completar los muros exteriores del mapa sin necesidad de que el
agente tuviera que chocar primero con ellos y as ahorrar movimientos al mismo.
Por lo que el enfoque algortmico en cuestin de complementacin de la informacin
del agente tampoco fue del todo til.

Pero de este enfoque me llev una idea ms precisa de que cmo de grande tendra
que ser mi matriz interna para la representacin simblica y cmo deba orientar al agente en
dicha matriz.
Inteligencia Artificial |

Emilio Chica Jimnez

E.T.S.I.I

12 de abril de 2015

Un ltimo enfoque de diseo


La tcnica de diseo que me llev a la solucin no es ms que la divisin del problema
en subpartes y resolver cada una de ellas por separado.

El problema claramente lo podemos dividir en dos partes generales bien definidas las
cuales a su vez las podemos ir dividiendo en problemas de menor tamao para que nos
resulte menos complejo programar e idear estos.
Estas dos partes son:

Movimiento del agente en el mapa

Comportamiento de extraccin de trufas.

Para la primera parte hemos de tener en cuenta que tenemos que dividirlo en acciones
bsicas y posibilidades de acciones ante un obstculo.
Para la segunda parte tenemos que tener en cuenta cuantas trufas se producen y cada
cuantos movimientos tendremos una trufa nueva y cundo comenzarn a estar maduras.

4. Movimiento del agente en el mapa


Para hallar la solucin a este problema volv a utilizar la tcnica de divisin del mismo en
subproblemas ms sencillos de resolver.
Primero asign valores numricos a las casillas para que el agente supiera qu casillas
haba visitado ms recientemente y cules de ellas las tendra que tomar en cuenta para
realizar su siguiente accin.
Esto me llev a resolver dos subproblemas uno de ellos obligatoriamente fue la
priorizacin de movimientos frente a distintas situaciones sencillas y la estimacin de posibles
obstculos alrededor del agente.
Para la primera parte primero tuve que obtener la segunda, donde nos encontramos con
las siguientes posibilidades:
S1
S2
S3
S4
-1
-2
-2
-2
? /\ ? -1 /\ ?
? /\ -1 -2 /\
S5
S6
S7
S8
>0
-2
-2
>0
-2 /\ -2 >0 /\ -2 -2 /\ >0 >0 /\
S9
S10
Donde S es Situacin
>0
e >0 f
-2 /\ >0 >0 /\ >0

-2

-2

-2
-1
/\
>0
?

CELDAS
MURO
SIN VISITAR
ACTUAL
VISITADA
NO IMPORTA

Inteligencia Artificial |

Emilio Chica Jimnez

E.T.S.I.I

12 de abril de 2015

Para cada una de las situaciones anteriores el agente tendr que tomar una decisin u otra
dependiendo de la prioridad de las mismas. Esta prioridad se muestra en la tabla anterior
mediante los nmeros S1,S2 etc.. donde el 1 es el ms prioritario y el 10 es la situacin menos
prioritaria.
Tambin hay que establecer prioridad entre las casillas con valores >0 ya que el que tenga
mayor nmero ser porque es la que ha sido visitada menos recientemente y tendr la
prioridad sobre las dems.
Estos movimientos de prioridad nos solucionan el problema de salir de situaciones como
las que tenamos en el primer enfoque pero de una manera automatizada y mucho ms
sencilla.

5. Comportamiento de extraccin de trufas


La ltima parte para completar nuestro agente es que la recoleccin de trufas se hiciese de
forma ptima obteniendo as el mayor nmero de trufas que es donde reside el problema.
Para ello he utilizado la ventaja de que mi agente siempre se mueve a la casilla con ms
antigedad por lo con seguridad esta ser la que contenga mayor nmero de trufas.
Otra tcnica que he usado es la de no utilizar el comportamiento de mi agente como robot
trufero hasta los 400 movimientos donde ya se habrn producido bastantes trufas como para
recogerlas cuando estn en su madurez y no recin generadas.
Para que el robot alterne movimientos y recogida de trufas de forma ptima, cuento los
movimientos que hago y cuando llegue a cierto valor generado de forma aleatoria le hago que
empiece a oler casillas.
Para la recogida, he utilizado la estadstica y he observado que a partir de cierto valor es
mejor recoger las trufas y obtengo mayor cantidad de trufas por recoleccin, por lo que no
siempre que huele extrae las trufas.

Inteligencia Artificial |

You might also like