El documento describe el desarrollo de un agente farmacéutico inteligente. El agente utilizará sensores y actuadores para moverse por una farmacia, recoger medicamentos según las recetas médicas de los clientes, y entregar los pedidos de manera rápida y eficiente. El agente aplicará el algoritmo A* para encontrar la mejor ruta a seguir, y algoritmos genéticos para aprender y mejorar continuamente. El objetivo es mejorar la atención al cliente y la eficiencia en la farmacia.
Supervision en la toma de decisiones.fremy salazar.
Agente Farmacéutico IA
1. IA: Agente Farmacéutico
.
AGENTE FARMACEÚTICO
Andrea Espinosa
e-mail: asesoinosa@utpl.edu.ec
Mayra Criollo
e-mail: mjcriollo@utpl.edu.ec
Mercy Jiménez
e-mail: mejimenezxx@utpl.edu.ec
1. ABSTRACT
El presente trabajo consiste en la elaboración de Un agente posee cierto conocimiento inicial el
un agente inteligente que permite agilizar la cual debe ser retroalimentado con las
atención de los clientes en una farmacia, experiencias y percepciones que está captando
despachar rápidamente las recetas médicas, ser del entorno que lo rodea, se espera que exista
capaz de entender lo que dice la receta una especie de aprendizaje continuo y evolutivo.
expendida por los médicos y entregar el producto
o medicina correcta, brindando seguridad a los Palabras clave: Agente inteligente, Agente
clientes. Con el agente se puede lograr reducir la basado en utilidad, agente basado en objetivos,
utilización del personal y disminuir el tiempo de Algoritmo A*, Algoritmos genéticos, Algoritmo
espera para expedir el pedido de las personas. voraz local.
2. INTRODUCCIÓN 3. Objetivos
La inteligencia artificial se ha enfocado sobre la Nuestro objetivo es presentar,
explicación del trabajo mental y construcción de identificar, definir y clasificar el tipo de
algoritmos de solución a problemas de propósito agente inteligente que tratamos de
general. Ya que un sistema de inteligencia modelar.
artificial tiene enormes ventajas respecto a los
humanos. Por ejemplo, su capacidad de Aplicar medidas de desempeño o
almacenamiento, su capacidad para tomar rendimiento que sirvan para definir que
decisiones racionales sin prejuicios o emociones tan exitoso es nuestro agente
que perturben el resultado.
Conocer los tipos de ambiente en los
Debemos saber que es un agente inteligente; es que un agente inteligente trabaja.
una entidad software que, basándose en su
propio conocimiento, realiza un conjunto de
operaciones para satisfacer las necesidades de
un usuario o de otro programa, bien por iniciativa 4. DESARROLLO
propia o porque alguno de éstos se lo requiere
[1]. La efectividad del agente se mide a través de
las medidas de rendimiento y las decisiones que El contexto del problema se ubica en una
tome en un momento dado dependerán de la farmacia, la cual necesita de una mejor atención
secuencia de percepciones que tenga hasta ese a sus clientes y sobre todo eficiencia para su
instante. negocio, ya que las estanterías dispone de varias
alturas para almacenar los medicamentos, y por
lo general los encargados de atender a los
2. clientes no tienen esa eficiencia y la rapidez que estados que englobará el conjunto de estados
se necesita para el momento de atender y que definen el ámbito total de nuestro agente, es
despachar el pedido. decir el conjunto de todas las combinaciones
posible Agente – Estado.
Por lo que la solución y la mejor manera de
incrementar la venta en el negocio y tener una El espacio de estados es la totalidad de la
mejor atención al cliente se ha optado por la farmacia, pues el agente puede posicionarse en
implementación de un agente inteligente cualquier lado del mismo.
farmacéutico, que pueda resolver este
inconveniente.
El agente farmacéutico necesitará de: 6. OBJETIVO DEL AGENTE
Punto de Partida o estado inicial, es el punto
de inicio de la actividad del agente inteligente, El objetivo del agente es recoger todos los
ahí es donde recibe las órdenes que el medicamentos o productos que se le pida y
farmacéutico le de y la recepción de recetas alcanzar el punto de inicio para depositarlos en la
médicas a ser despachadas. [2] zona de intercambio, para ello el agente deberá
evaluar en función de los obstáculos fijos el
Punto de Destino, el punto de destino siempre camino o caminos a seguir, así mediante
coincidirá con el punto de inicio ya que el agente comparaciones sucesivas se interrogará sobre si
siempre deberá regresar a él para entregar los el estado alcanzado coincide con el estado
productos que hayan pedido los clientes. [2] objetivo o estado final que se persigue, ejecutará
en ese punto la acción pertinente.
Ruta, el agente inteligente siempre tendrá un
objetivo que perseguir, la misma que puede tener
varios puntos de destino intermedios, las cuales
corresponderán a las coordenadas de ubicación
7. RESTRICCIONES [2]
de cada producto seleccionado o pedido por el
cliente.
Las restricciones o limitaciones de nuestro
agente son los obstáculos que se le presentan
para llegar al objetivo, este agente estará
diseñado para evaluar si un obstáculo es móvil y
permanente o fijo, el mismo que irá actualizando
su base de conocimientos y marcará ese
obstáculo, y procederá a ejecutar una nueva
búsqueda para llegar hasta el objetivo.
Obstáculos Fijos.- Estos son las paredes del
almacén y las estanterías.
Obstáculos Móviles.- Son aquellos como
cajas desparramadas, miembros del personal
con los que el agente se pueda topar, para
llegar al objetivo.
8. EL AMBIENTE
Figura 1. Esquema del Agente
Para poder saber el tipo de ambiente sobre el
cual se desenvolverá el agente farmacéutico
debemos conocer bien el problema y el entorno
5. ESPACIO DE ESTADOS físico sobre el cual va a actuar, siempre tomando
en cuenta las necesidades que debemos cubrir.
En nuestro caso analizando los tipos de
Un espacio es una configuración posible del
ambientes que existen podemos ver que el
sistema, esto en nuestro ámbito es un caso real,
agente farmacéutico operará sobre un entorno
al conjunto de éstos se denomina espacio de
3. parcialmente observable ya que por algún factor consistirá en un engranaje de ruedas y
como el ruido dentro de la farmacia puede no cadenas, para que el agente pueda
obtener la información necesaria para buscar el avanzar y retroceder.
producto que desea el cliente y discreto por que Rotor, es necesario para posibilitar el
en efecto las percepciones que realiza el agente giro de los engranajes y que el agente
son finitas y están cuantificadas así como sus pueda conseguir movimientos
acciones. circulares.
Brazo y mano articulados, le ayudarán
al movimiento adecuado para la
recepción del producto y la receta
9. COMPONENTES médica.
Micrófonos y Altavoces, para escucha
de órdenes.
El agente necesitará de algunos componentes
para realizar su actividad:
9.1 Sensores [3]
Los sensores son una parte esencial en el
agente inteligente farmacéutico para que tenga la
capacidad de percibir lo que sucede en el medio
ambiente, para lo cual incorporará:
Sensor sonar, le servirá para detectar
objetos a distancia o los obstáculos que
se le presenten en el camino
Sensores de Fuerza sensitiva, le
permite al agente percibir y controlar la
ubicación de sus articulaciones con
mucha mayor precisión.
Sensor Táctil le permite tener contacto
con las personas y aplicar la fuerza
necesaria de acuerdo al medicamento
Sensor Inercial, éste sensor le ayuda
para la captura y análisis de
movimiento, y a medir la aceleración y
velocidad angular.
Cámara, le permite capturara las Figura 2. Componentes del Agente
imágenes en tiempo real, es decir captar
escenas del medio ambiente.
sensores Bump izquierda y derecha
para detectar choques. 10. TIPO DE AGENTE
Programa de OCR, para el
reconocimiento de los caracteres de la
receta médica escrita de forma
Entre los distintos tipos de agentes que se
manuscrita por los médicos.
presentan en Inteligencia Artificial, y analizando
las tareas o actividades que realizará nuestro
9.2 Actuadores [3] agente se ha podido concluir que es un Agente
Basado en objetivos ya que nuestro problema se
El agente debe responder ante los estímulos que basa en la consecución de un fin y basado en
le llegan mediante acciones físicas, nuestro utilidad porque debe emprender todas aquellas
agente contará con los siguientes actuadores: acciones que favorezcan obtener el máximo de
su medida de rendimiento para el éxito en la
Locomoción, este actuador está realización de sus tareas encontrar la mejor ruta.
relacionado con el sensor inercial por
que le permitirá trasladarse de un lugar
a otro.
Motor, le servirá para activar el
dispositivo de traslado del agente, que
4. 11. FICHA DEL AGENTE pronunciada búsqueda en estrella. La ventaja
que ofrece este algoritmo a nuestro agente es
que permite evaluar los nodos combinados g(n)
Tipo de agente: determinando el coste para alcanzar el nodo, y
h(n) evalúa el coste para llegar al objetivo; como
Farmacéutico. sabemos este algoritmo es para encontrar
caminos en grafos, apoyándose en el hecho de
Medidas de rendimiento: que a veces para llegar a la solución hay que dar
pasos que tienen un mayor coste que otros. Es
Rápido. una combinación del algoritmo en profundidad y
Eficiente. el de anchura, lo que ayuda a encontrar la
Seguro. solución optima.
Calidad de trabajo.
Entorno:
12.2 Algoritmo Genético [6]
Personas.
El agente puede basarse en algunas
Almacén.
técnicas para su aprendizaje (árboles de
Medicamento.
decisión, algoritmos genéticos, reglas de
inducción); para el agente farmacéutico que
Actuadores: se modela en este proyecto se lo
caracteriza dentro del aprendizaje inductivo,
Locomoción.
ya que permite al agente aprender de los
Motor
hechos observados.
Rotor
Brazo y mano articulados. Este tipo de algoritmos se puede utilizar en
Micrófono cualquier tipo de problema, ya que se basa
Altavoces en el principio de la evolución natural
Sensores:
sonar 13. PLANTEAMIENTO DEL
Inercial PROBLEMA
táctil
Fuerza sensitiva El problema es encontrar la mejor ruta para llegar
Bumpers al medicamento solicitado por el cliente. Con el
Infrarrojo Agente Farmacéutico queremos mejorar la
Cámaras atención en las farmacias sobre todo en tiempo,
rapidez y seguridad.
Como una solución a este problema se ha
12. TIPOS DE BÚSQUEDA elegido dos algoritmos para uno para que elija la
mejor ruta (Algoritmo A*) y el otro para su
aprendizaje (Algoritmo Genético).
Todo problema en inteligencia Artificial lleva
inherente un problema de búsqueda. Para elegir
el algoritmo con el cual actuará y aplicará
nuestro agente para encontrar la mejor ruta al 14. ¿POR QUÉ IMPLEMENTAMOS
objetivo y para ir aprendiendo se debe ESTOS ALGORITMOS?
primeramente saber en que consiste cada tipo de
búsqueda y haber comprendido el problema que
se desea resolver.
Algoritmo A*: Lo utilizamos por que nuestro
Los algoritmos que podemos implementar en agente inteligente debe percibir que una persona
nuestro agente son: se encuentra en la farmacia solicitando que le
despachen una receta médica, el tiene que estar
12.1 Algoritmo de búsqueda A* [4] en la capacidad de recibir la receta médica e
interpreta mediante el sensor
El algoritmo de búsqueda que se acopla con el OCR(reconocimiento óptico de caracteres) el
agente farmacéutico es el algoritmo A* también pedido de los fármacos y determinar cuántas
5. capturas debe realizar en los estantes como Crea cada una de las celdas de las filas y columnas
ejemplo con una captura de 5 fármacos de la matriz que se muestra en le frame, contiene
primeramente se acercara a buscar la medicina métodos de inicialización para el recorrido de la
que se encuentre más próxima a él, calculando matriz, donde la función getSalida busca el camnimo
las distancias de cada una de los productos al objetivo.
solicitados y dependiendo de los resultados del
cálculo de las distancias se moverá buscando el
siguiente medicamento.
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6 Medicamento 1
7
8 Medicamento 2
9
1
0
ALMACEN
Figura 3. Esquema de recorrido
DESCRIPCION: Código
En la funcion principal crea el frame donde se va
implementar la matriz donde se va llevará a cabo la
busqueda, además llama a la función init() y start ()
La función de salida representa el agente, y la de
llegada pertenece al nodo objetivo.
Se declara las variables con las que empieza la
función heurística en este caso tenemos g y h
Esta función define el tamaño de la matriz tomando
en cuenta las filas y columnas.
6. Algoritmo Genético: Es importante dentro de
nuestro agente ya que mientras mas tareas realiza
percibiendo del entorno, tiene más probabilidades de
aprender, con la finalidad de ser capaz de actuar de
Función f(n) permite encontrar el coste del camino forma autónoma
sumando g(n) que es el coste del camino para
alcanzar el nodo y h(n) el coste de ir al nodo objetivo. El agente farmacéutico da soluciones en base al
aprendizaje de algoritmos genéticos, el mismo que
puede generar conocimiento de acuerdo al espacio
de estados que puede tomar en cuanto a un pedido
medico.
Cuando se da demasiada concurrencia
La función encuentraCamino permite buscar en las de clientes en la farmacia el agente
celdas ordenadas el camino mediante el coste de puede capturar varios pedidos médicos
cada uno de ellos, calcula en las celdas hijas con el donde aplicara su conocimiento para
valor mínimo para seguir expandiendo la celda y de tomar la mejor decisión en el despacho
esta manera llegar al objetivo. de productos.
Cuando aún no se encuentra el camino solución la El agente tiene que estar en la
variable sol_encontrada denota el valor de falso, capacidad de no confundir el
entonces compara si la solución es diferente de falso medicamento de cada pedido.
y abiertos diferente de vacía expande una nueva
celda y de esta manera genera sus sucesores para DESCRIPCION: CODIGO
encontrar el mejor nodo objetivo.
El algoritmo genético puede presentar diversas
variaciones, dependiendo de cómo se aplican los
operadores genéticos (cruzamiento, mutación), de
cómo se realiza la selección y de cómo se decide el
reemplazo de los individuos para formar la nueva
población, para generar las distintas rutas hemos
ejecutado cada una de las parte que lo conforma
estas son:
1.- Inicialización
Para escoger una parte de la población se
genera aleatoriamente y se realizan operaciones en
estado inicial, que está constituida por un conjunto de
cromosomas los cuales representan las posibles
soluciones del problema. En caso tenemos registrada
una población en un archivo .txt para que se vaya
llamando cada elemento, véase en la Fig. 8
7. Figura. 8 Archivo de la población
El tamaño de la población es de 6 de esta manera
Figura. 10 Inicialización de operaciones
permitirá indicar cada individuo, cromosoma, genes, y
buscar la ruta optima. . Así que mientras no se cumpla la condición de
término se hace lo siguiente:
2.- Evaluación Selección.- Después de saber la aptitud de
cada cromosoma se procede a elegir los
Cada uno de los cromosomas de esta
cromosomas que serán cruzados en la
población se aplicará la función de aptitud para saber
siguiente generación. Los cromosomas con
cómo que tan buena es la solución de la ruta
mejor aptitud tienen mayor probabilidad de
encontrada, refiérase a la figura 9.
ser seleccionados. Refiérase a la figura11,
indica como hemos realizado la operación
de selección.
Figura. 9 Cálculos de la aptitud
Con la función Fitness permite indicar que aptitud
para saber que tan buena es la elección.
3.- Condición de término
El Algoritmo Genético se detiene cuando se
alcanza la solución óptima, pero entendemos que se
desconoce por qué el algoritmo genético aun no
aplica todas las operaciones para buscar la ruta
óptima. Hemos indicado que el algoritmo genético
mantiene un tamaño de población, tamaño ELITE
(una porción de esa población), cruzamiento, Figura 11. Operaciones de selección de
generaciones, TSP (problema de resolución de rutas), población.
observe en la figura 10, que indica la inicialización de
cada operación.
Cruzamiento.- El cruzamiento es el principal
operador genético que se establece,
representa la reproducción sexual, opera
sobre dos cromosomas a la vez para
generar dos descendientes donde se
combinan las características de ambos
cromosomas padres. Vea la figura 12.
8. Figura 12. Operaciones de mutación
Reemplazo.- una vez aplicados los
operadores genéticos, se seleccionan los
mejores individuos para conformar la
población de la generación siguiente
Obtención de la mejor ruta:
Figura 11. Operaciones de selección de
población.
Cruzamiento de cromosomas padre y cromosomas
hijo dentro de la población.
Mutación.- modifica al azar parte del
cromosoma de los individuos, y permite
alcanzar zonas del espacio de búsqueda
que no estaban cubiertas por los individuos
de la población actual. Véase la figura 12.
Figura 13. Obtención de la mejor ruta.
9. 15. CONCLUSIONES [4] El cerro de reyes estrena la primera
farmacia con robot de dispensación
automática citado (2010 enero 08) disponible
Un agente puede ayudar a resolver en http://www.hoy.es/20090605/badajoz/cerro-
problemas que se presentan en la vida reyes-estrena-primera-u20090605.html
cotidiana cumpliendo ciertas medidas de
[5]
rendimiento que permitan cumplir los
http://lear.inforg.uniovi.es/ia/Archivos/Apun
objetivos para los cuales fue creado.
tes%20y%20t/Tema4.2(BESolCompletas-
Debemos tener bien definido lo que BL).pdf
queremos resolver con el agente inteligente,
[6] Genetic Algorithm
para poder aplicar algoritmos de búsqueda y
http://www.obitko.com/tutorials/genetic-
de aprendizaje.
algorithms/ga-basic-description.php
[7] Russell Stuart, Norvig Peter Inteligencia
Artificial Un enfoque moderno, 2da edición
16. REFERENCIAS
BIBLIOGRÁFICAS [8] Citado (2010 enero 08) La farmacia del
futuro disponible en
http://www.lafarmaciadelfuturo.net/2009/08/rob
ots-de-farmacia.html
[1] Wooldridge y Jennings, 1995
[9] ArtificialInteligencia http://www.a-i.com/
[2] Díaz Noel Mamoghli disponible en
http://profesores.sanvalero.net/~w0467/iartifici
al4/Agentes%20Inteligentes/Ejemplos%20de%
20Trabajos/Agente%20Farmaceutico.doc
[3]
http://www.ceaifac.es/actividades/jornada
s/XXI/documentos/ja00_075/ja00_75.pdf