1. Laboratorio de Sistemas Adaptativos
Martes – M4.M5
Angel Rodolfo Reyna Acevedo 1459652
Lucía Guadalupe Moyeda Cornejo 1145154
Adrian Vega Magaña 1497896
Lucero Itzel Ramos García 1491994
2. El tema elegido fue Contract Net, el
cual es un protocolo de reparto de
tareas en sistemas multiagente , y
consiste en una colección de agentes
que forman la red de contrato.
3. Con esta práctica se planea lograr un
sistema multiagente, que logre hacer
ventas de artículos electrónicos, con
ayuda de un agente comercial que
enlazara al comprador con el
vendedor de mejor opción.
4. Se eligió este tema porque es el
que, podría decirse, tiene mas grande
área de utilidad, se puede utilizar en
muchos casos, y además es un tema que
vimos un ejemplo en clase, el cual sirvió
de manera útil para entender el concepto.
Se usara el software de apoyo
MadKit, esto es porque es mas fácil de
utilizar y probar.
5. Este sistema multiagente consta de tres clases, el
comprador, el vendedor, y el agente comercial que
enlaza los dos anteriores. Entre ellos se mandaran
mensajes con la información de que objeto están
buscando o están interesados, en este caso, aparatos
electrónicos. Cada clase se divide en grupo, es decir
que hay grupos de agentes.
En los compradores, solo habrá tres en
pantalla, hasta que se vaya uno, aparecerá el
siguiente. Los agentes comerciales son
estáticos, nunca desaparecen y siempre son tres. Los
vendedores son siete, pero el objeto que venden es
aleatorio cada que se corre el sistema, estos
vendedores no se regeneran, si se elimina a uno, no
saldrá otro.
6. El problema consta en que el comprador
le dice al agente que es lo que busca, y
este le manda la oferta a los
vendedores, y de entre ellos elige al mejor
para el comprador, y así se genera la
compra. Al comprar algo, el comprador se
va. La mayor parte del sistema esta
basado en tiempo, se usan pausas para
generar tiempos de compras en
milisegundos, y así se identifican entre
ellos.
7. Se verán unas capturas de pantalla con secciones
claves del código.
Aquí se puede ver donde se crean los grupos y además
se declaran los nombres de los artículos disponibles.
El Broker es el agente comercial.
8. Aquí es donde se mandan las ofertas a la función para
seleccionar la mejor. Se manda un mensaje para avisar
sobre una oferta interesante, y se muestra si el vendedor
esta listo.
9. Esta es la función donde elige la mejor
oferta, a ésta le llegan las ofertas realizadas
por los compradores al agente comercial, o
Broker. Se realiza un for que verifica todas
las ofertas que llegaron y se compara el
contenido de las ofertas para buscar la mejor.
10. Esta es la función de cuando se es seleccionado un
vendedor, el cual parpadeara en amarillo para ver la
actividad, y mostrara un mensaje de que fue
seleccionado.
La funcion main
11. Al final, el resultado quedo bien, funciona de
forma comprensible, y hace lo que debe hacer.
Una de los aspectos que se deben mencionar es
que, si por alguna razón, al generarse los
Vendedores, no aparece ninguno de algún
objeto, este objeto no se podrá vender, y el
comprador que lo busque jamás se ira, siempre
estará en pantalla, intentando comprar. El
sistema no tiene fin, los compradores pueden
seguir apareciendo, con tal de que no falte
ningún vendedor de algún objeto como antes
mencionado. O a menos que se mate a los
agentes comerciales, también.
12. En general, resultó complicado, tuvimos que
investigar desde cero, empezar a generar
ideas, y buscar tutoriales sobre sistemas
multiagentes, tutoriales de Madkit, e irlos
probando. Cabe mencionar que se intento
utilizar JADE pero no dio buen resultado, era
inestable y de vez en cuando no corría, así que
se decidió probar con MadKit y resulto una mejor
opción.
Durante esta practica se aprendió mas a fondo
los sistemas multiagente, el contract net, y el uso
del Madkit.