Autor: Tony Raul Blanco Fernández - C411
Dada la bibliografía usada, se modelo un ambiente dado las características definidas. En el cual intervienen tanto agentes como objetos. Además de las variaciones efectuadas sistemáticamente dados los parámetros. Estos elementos serán expuestos a lo largo de este documento.
En este ambiente conviven dos agentes, los bebes y los robots. Los bebes se mueven de forma aleatoria dadas las reglas del problema. La selección de la siguiente acción esta determinada por la disponibilidad de casillas adyacentes o obstáculos.
Los robots son, por decirlo de alguna manera, el agente principal, el cual estamos evaluando en la simulación.
Los robots fueron modelados como Agente Reactivo y Agente Reactivo con Objetivo (Cognitivo)
Las acciones de ambos están ordenadas por prioridades de forma intencional, dada la naturaleza de los objetivos.
El orden de condición-acción es la siguiente:
- Si esta sobre una casilla sucia => Limpia la casilla.
- Si se carga a un bebe y se encuentra sobre una casilla de corral => Deja al bebe en esta casilla.
- Si se carga a un bebe pero no estas en una casilla de corral => Camina sobre un pasaje valido hacia una casilla de corral aleatoria y vacía.
- Si hay casillas alrededor, elige una aleatoria siempre prefiriendo este orden: Bebe sin Corral, Casilla Sucia, Casilla Vacía, Corral
Este agente esta pendiente además de los objetivos por los que ha sido creado, su tarea es mantener a raya a los bebes siempre que tenga margen de suciedad en el ambiente (S). Si este valor se acerca a los limites. Entonces se dispone a limpiar.
Las primeras tres reglas se mantienen del Agente Reactivo. Y en adición:
- Si la suciedad actual < S => Busca a un bebe en el ambiente, se mueve en un camino valido hacia el.
- Si la suciedad actual > S => Se mueve en un camino valido hacia una casilla sucia cercana.
Nota: S no es necesariamente el margen de los objetivos del ambiente. Son mas bien locales al robot.
Estas simples diferencias en las reglas permiten observar resultados que difieren y claramente contrastan.
La simulación utilizo eventos para la realización de los turnos. En cada turno los agentes actuaban, ordenados según la orientación, recibiendo a todo el estado del ambiente como sensor.
Al turno de un agente, utilizando el estado del ambiente, ejecuta sus condiciones de forma prioritaria para determinar la acción a realizar. Luego de estas, la simulación evalúa si el estado del ambiente es final. De serlo, entonces termina la simulación.
Utilizamos una herencia sencilla para los elementos del ambiente. Ya que todos compartían el ser ubicados en una posición especifica.
No fue usada una matriz para los cálculos, en lugar de esto, se realizaban consultas sobre un arreglo de objetos tratados de la forma mas básica. Esto reduce la eficiencia de las búsquedas, pero facilitaba mucho la implementación y la flexibilidad de las operaciones.
Al culminar t
turnos, el ambiente se varia, conservando los mismo elementos y sus estados, pero en posiciones diferentes y manteniendo las reglas. O sea, no se alteran, ni se añaden ni se retiran. Solo se mueven.
Las búsquedas realizadas por los agentes se realizan con un BFS.
Ahora se mostraran los resultados de una serie de simulaciones utilizando diferentes parámetros. Por cada conjunto de parámetros se ejecutaran 30 simulaciones y se mostraran los resultados generales.
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 15 / 30
- Suciedad promedio: 28.02%
Cognitivo:
- Trabajos perfectos: 0/ 30
- Despedido: 12/ 30
- Suciedad promedio: 21.53 %
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 15/ 30
- Suciedad promedio: 28.11%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 15 / 30
- Suciedad promedio: 26.31%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 4/ 30
- Suciedad promedio: 15.72%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 2 / 30
- Suciedad promedio: 11.78%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 16 / 30
- Suciedad promedio: 31.10%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 4 / 30
- Suciedad promedio: 16.73%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 0 / 30
- Suciedad promedio: 24.54%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 3 / 30
- Suciedad promedio: 15.29%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 0 / 30
- Suciedad promedio: 16.28%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 5 / 30
- Suciedad promedio: 14.24%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 0 / 30
- Suciedad promedio: 8.43%
Cognitivo:
- Trabajos perfectos: 3 / 30
- Despedido: 2 / 30
- Suciedad promedio: 9.38%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 10 / 30
- Suciedad promedio: 29.2%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 8 / 30
- Suciedad promedio: 24.77%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 1 / 30
- Suciedad promedio: 10.36%
Cognitivo:
- Trabajos perfectos: 5 / 30
- Despedido: 0 / 30
- Suciedad promedio: 3.4%
Reactivo:
- Trabajos perfectos: 0 / 30
- Despedido: 1 / 30
- Suciedad promedio: 11.8%
Cognitivo:
- Trabajos perfectos: 0 / 30
- Despedido: 1/ 30
- Suciedad promedio: 11.43%
Ciertamente los resultados no destacan en cuanto a calidad al desempeño del Agente Cognitivo sobre el Reactivo. Aunque ciertamente el tiempo de ejecución (dada la implementación) fue considerablemente mejor en el Reactivo, unas 10 veces menor que el Cognitivo. Aun así solo el Cognitivo logro limpiar toda la casa alcanzando la condición de victoria.
Notas: Varios robots puede ejecutarse en un mismo ambiente, por como fue creado este programa. Pero por no ensuciar los resultados según la orientación. No se publicaron resultados con estos parámetros.