Click here to load reader
Upload
andrea-espinosa
View
860
Download
0
Embed Size (px)
Citation preview
IA: Agente Farmacéutico
.
AGENTE FARMACEÚTICO
Andrea Espinosa
e-mail: [email protected]
Mayra Criollo
e-mail: [email protected]
Mercy Jiménez
e-mail: [email protected]
1. ABSTRACT
El presente trabajo consiste en la elaboración de
un agente inteligente que permite agilizar la
atención de los clientes en una farmacia,
despachar rápidamente las recetas médicas, ser
capaz de entender lo que dice la receta
expendida por los médicos y entregar el producto
o medicina correcta, brindando seguridad a los
clientes. Con el agente se puede lograr reducir la
utilización del personal y disminuir el tiempo de
espera para expedir el pedido de las personas.
2. INTRODUCCIÓN
La inteligencia artificial se ha enfocado sobre la
explicación del trabajo mental y construcción de
algoritmos de solución a problemas de propósito
general. Ya que un sistema de inteligencia
artificial tiene enormes ventajas respecto a los
humanos. Por ejemplo, su capacidad de
almacenamiento, su capacidad para tomar
decisiones racionales sin prejuicios o emociones
que perturben el resultado.
Debemos saber que es un agente inteligente; es
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
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
tome en un momento dado dependerán de la
secuencia de percepciones que tenga hasta ese
instante.
Un agente posee cierto conocimiento inicial el
cual debe ser retroalimentado con las
experiencias y percepciones que está captando
del entorno que lo rodea, se espera que exista
una especie de aprendizaje continuo y evolutivo.
Palabras clave: Agente inteligente, Agente
basado en utilidad, agente basado en objetivos,
Algoritmo A*, Algoritmos genéticos, Algoritmo
voraz local.
3. Objetivos
Nuestro objetivo es presentar,
identificar, definir y clasificar el tipo de
agente inteligente que tratamos de
modelar.
Aplicar medidas de desempeño o
rendimiento que sirvan para definir que
tan exitoso es nuestro agente
Conocer los tipos de ambiente en los
que un agente inteligente trabaja.
4. DESARROLLO
El contexto del problema se ubica en una
farmacia, la cual necesita de una mejor atención
a sus clientes y sobre todo eficiencia para su
negocio, ya que las estanterías dispone de varias
alturas para almacenar los medicamentos, y por
lo general los encargados de atender a los
clientes no tienen esa eficiencia y la rapidez que
se necesita para el momento de atender y
despachar el pedido.
Por lo que la solución y la mejor manera de
incrementar la venta en el negocio y tener una
mejor atención al cliente se ha optado por la
implementación de un agente inteligente
farmacéutico, que pueda resolver este
inconveniente.
El agente farmacéutico necesitará de:
Punto de Partida o estado inicial, es el punto
de inicio de la actividad del agente inteligente,
ahí es donde recibe las órdenes que el
farmacéutico le de y la recepción de recetas
médicas a ser despachadas. [2]
Punto de Destino, el punto de destino siempre
coincidirá con el punto de inicio ya que el agente
siempre deberá regresar a él para entregar los
productos que hayan pedido los clientes. [2]
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
de cada producto seleccionado o pedido por el
cliente.
Figura 1. Esquema del Agente
5. ESPACIO DE ESTADOS
Un espacio es una configuración posible del
sistema, esto en nuestro ámbito es un caso real,
al conjunto de éstos se denomina espacio de
estados que englobará el conjunto de estados
que definen el ámbito total de nuestro agente, es
decir el conjunto de todas las combinaciones
posible Agente – Estado.
El espacio de estados es la totalidad de la
farmacia, pues el agente puede posicionarse en
cualquier lado del mismo.
6. OBJETIVO DEL AGENTE
El objetivo del agente es recoger todos los
medicamentos o productos que se le pida y
alcanzar el punto de inicio para depositarlos en la
zona de intercambio, para ello el agente deberá
evaluar en función de los obstáculos fijos el
camino o caminos a seguir, así mediante
comparaciones sucesivas se interrogará sobre si
el estado alcanzado coincide con el estado
objetivo o estado final que se persigue, ejecutará
en ese punto la acción pertinente.
7. RESTRICCIONES [2]
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
Para poder saber el tipo de ambiente sobre el
cual se desenvolverá el agente farmacéutico
debemos conocer bien el problema y el entorno
físico sobre el cual va a actuar, siempre tomando
en cuenta las necesidades que debemos cubrir.
En nuestro caso analizando los tipos de
ambientes que existen podemos ver que el
agente farmacéutico operará sobre un entorno
parcialmente observable ya que por algún factor
como el ruido dentro de la farmacia puede no
obtener la información necesaria para buscar el
producto que desea el cliente y discreto por que
en efecto las percepciones que realiza el agente
son finitas y están cuantificadas así como sus
acciones.
9. COMPONENTES
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
imágenes en tiempo real, es decir captar
escenas del medio ambiente.
sensores Bump izquierda y derecha
para detectar choques.
Programa de OCR, para el
reconocimiento de los caracteres de la
receta médica escrita de forma
manuscrita por los médicos.
9.2 Actuadores [3]
El agente debe responder ante los estímulos que
le llegan mediante acciones físicas, nuestro
agente contará con los siguientes actuadores:
Locomoción, este actuador está
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
consistirá en un engranaje de ruedas y
cadenas, para que el agente pueda
avanzar y retroceder.
Rotor, es necesario para posibilitar el
giro de los engranajes y que el agente
pueda conseguir movimientos
circulares.
Brazo y mano articulados, le ayudarán
al movimiento adecuado para la
recepción del producto y la receta
médica.
Micrófonos y Altavoces, para escucha
de órdenes.
Figura 2. Componentes del Agente
10. TIPO DE AGENTE
Entre los distintos tipos de agentes que se
presentan en Inteligencia Artificial, y analizando
las tareas o actividades que realizará nuestro
agente se ha podido concluir que es un Agente
Basado en objetivos ya que nuestro problema se
basa en la consecución de un fin y basado en
utilidad porque debe emprender todas aquellas
acciones que favorezcan obtener el máximo de
su medida de rendimiento para el éxito en la
realización de sus tareas encontrar la mejor ruta.
11. FICHA DEL AGENTE
Tipo de agente:
Farmacéutico.
Medidas de rendimiento:
Rápido.
Eficiente.
Seguro.
Calidad de trabajo.
Entorno:
Personas.
Almacén.
Medicamento.
Actuadores:
Locomoción.
Motor
Rotor
Brazo y mano articulados.
Micrófono
Altavoces
Sensores:
sonar
Inercial
táctil
Fuerza sensitiva
Bumpers
Infrarrojo
Cámaras
12. TIPOS DE BÚSQUEDA
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
objetivo y para ir aprendiendo se debe
primeramente saber en que consiste cada tipo de
búsqueda y haber comprendido el problema que
se desea resolver.
Los algoritmos que podemos implementar en
nuestro agente son:
12.1 Algoritmo de búsqueda A* [4]
El algoritmo de búsqueda que se acopla con el
agente farmacéutico es el algoritmo A* también
pronunciada búsqueda en estrella. La ventaja
que ofrece este algoritmo a nuestro agente es
que permite evaluar los nodos combinados g(n)
determinando el coste para alcanzar el nodo, y
h(n) evalúa el coste para llegar al objetivo; como
sabemos este algoritmo es para encontrar
caminos en grafos, apoyándose en el hecho de
que a veces para llegar a la solución hay que dar
pasos que tienen un mayor coste que otros. Es
una combinación del algoritmo en profundidad y
el de anchura, lo que ayuda a encontrar la
solución optima.
12.2 Algoritmo Genético [6]
El agente puede basarse en algunas
técnicas para su aprendizaje (árboles de
decisión, algoritmos genéticos, reglas de
inducción); para el agente farmacéutico que
se modela en este proyecto se lo
caracteriza dentro del aprendizaje inductivo,
ya que permite al agente aprender de los
hechos observados.
Este tipo de algoritmos se puede utilizar en
cualquier tipo de problema, ya que se basa
en el principio de la evolución natural
13. PLANTEAMIENTO DEL PROBLEMA
El problema es encontrar la mejor ruta para llegar
al medicamento solicitado por el cliente. Con el
Agente Farmacéutico queremos mejorar la
atención en las farmacias sobre todo en tiempo,
rapidez y seguridad.
Como una solución a este problema se ha
elegido dos algoritmos para uno para que elija la
mejor ruta (Algoritmo A*) y el otro para su
aprendizaje (Algoritmo Genético).
14. ¿POR QUÉ IMPLEMENTAMOS ESTOS ALGORITMOS?
Algoritmo A*: Lo utilizamos por que nuestro
agente inteligente debe percibir que una persona
se encuentra en la farmacia solicitando que le
despachen una receta médica, el tiene que estar
en la capacidad de recibir la receta médica e
interpreta mediante el sensor
OCR(reconocimiento óptico de caracteres) el
pedido de los fármacos y determinar cuántas
capturas debe realizar en los estantes como
ejemplo con una captura de 5 fármacos
primeramente se acercara a buscar la medicina
que se encuentre más próxima a él, calculando
las distancias de cada una de los productos
solicitados y dependiendo de los resultados del
cálculo de las distancias se moverá buscando el
siguiente medicamento.
ALMACEN
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
1
0
Medicamento 1
Medicamento 2
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 ()
Esta función define el tamaño de la matriz tomando
en cuenta las filas y columnas.
Crea cada una de las celdas de las filas y columnas
de la matriz que se muestra en le frame, contiene
métodos de inicialización para el recorrido de la
matriz, donde la función getSalida busca el camnimo
al objetivo.
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
Función f(n) permite encontrar el coste del camino
sumando g(n) que es el coste del camino para
alcanzar el nodo y h(n) el coste de ir al nodo objetivo.
La función encuentraCamino permite buscar en las
celdas ordenadas el camino mediante el coste de
cada uno de ellos, calcula en las celdas hijas con el
valor mínimo para seguir expandiendo la celda y de
esta manera llegar al objetivo.
Cuando aún no se encuentra el camino solución la
variable sol_encontrada denota el valor de falso,
entonces compara si la solución es diferente de falso
y abiertos diferente de vacía expande una nueva
celda y de esta manera genera sus sucesores para
encontrar el mejor nodo objetivo.
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
forma autónoma
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
de clientes en la farmacia el agente
puede capturar varios pedidos médicos
donde aplicara su conocimiento para
tomar la mejor decisión en el despacho
de productos.
El agente tiene que estar en la
capacidad de no confundir el
medicamento de cada pedido.
DESCRIPCION: CODIGO
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
Figura. 8 Archivo de la población
El tamaño de la población es de 6 de esta manera
permitirá indicar cada individuo, cromosoma, genes, y
buscar la ruta optima.
2.- Evaluación
Cada uno de los cromosomas de esta
población se aplicará la función de aptitud para saber
cómo que tan buena es la solución de la ruta
encontrada, refiérase a la figura 9.
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,
generaciones, TSP (problema de resolución de rutas),
observe en la figura 10, que indica la inicialización de
cada operación.
Figura. 10 Inicialización de operaciones
. Así que mientras no se cumpla la condición de
término se hace lo siguiente:
Selección.- Después de saber la aptitud de
cada cromosoma se procede a elegir los
cromosomas que serán cruzados en la
siguiente generación. Los cromosomas con
mejor aptitud tienen mayor probabilidad de
ser seleccionados. Refiérase a la figura11,
indica como hemos realizado la operación
de selección.
Figura 11. Operaciones de selección de
població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.
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 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 13. Obtención de la mejor ruta.
15. CONCLUSIONES
Un agente puede ayudar a resolver
problemas que se presentan en la vida
cotidiana cumpliendo ciertas medidas de
rendimiento que permitan cumplir los
objetivos para los cuales fue creado.
Debemos tener bien definido lo que
queremos resolver con el agente inteligente,
para poder aplicar algoritmos de búsqueda y
de aprendizaje.
16. REFERENCIAS
BIBLIOGRÁFICAS
[1] Wooldridge y Jennings, 1995
[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
[4] El cerro de reyes estrena la primera
farmacia con robot de dispensación
automática citado (2010 enero 08) disponible
en http://www.hoy.es/20090605/badajoz/cerro-
reyes-estrena-primera-u20090605.html
[5]
http://lear.inforg.uniovi.es/ia/Archivos/Apun
tes%20y%20t/Tema4.2(BESolCompletas-
BL).pdf
[6] Genetic Algorithm
http://www.obitko.com/tutorials/genetic-
algorithms/ga-basic-description.php
[7] Russell Stuart, Norvig Peter Inteligencia
Artificial Un enfoque moderno, 2da edición
[8] Citado (2010 enero 08) La farmacia del
futuro disponible en
http://www.lafarmaciadelfuturo.net/2009/08/rob
ots-de-farmacia.html
[9] ArtificialInteligencia http://www.a-i.com/