MERCADO INTELIGENTE
ALAN AGUIA AGUDELO
DIEGO ANDRES AMAYA GUIO
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS Y COMPUTACION
BOGOTÁ D.C.
2002
MERCADO INTELIGENTE
ALAN AGUIA AGUDELO
DIEGO ANDRES AMAYA GUIO
Tesis para optar al título de
Ingeniero de Sistemas y Computación
Asesor
Angela Carrillo
Francisco Rueda
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERIA
DEPARTAMENTO DE SISTEMAS Y COMPUTACION
BOGOTÁ D.C.
2002
I
CONTENIDO
1 Introducción y motivación ................................................................................... 2
2 Capítulo I: Agentes............................................................................................... 5
2.1 Definición del concepto de agente .............................................................. 5
2.2 Sistemas Multi-Agentes (MAS).................................................................. 7
2.2.1 Características Generales................................................................... 8
2.2.2 Agentes Individuales vs. MAS........................................................... 8
2.2.3 Utilización de Sistemas Multi-Agentes.............................................. 9
2.2.4 Clases de MAS ................................................................................... 10
2.2.5 Formas de interacción....................................................................... 11
2.3 Arquitectura de un agente ........................................................................ 12
2.3.1 Arquitectura Subsumption............................................................... 13
2.3.2 ATLANTIS ........................................................................................ 13
2.3.3 PRODIGY.......................................................................................... 14
2.3.4 YUBARTA ......................................................................................... 15
3 Capítulo 2: Aplicaciones de agentes.................................................................. 17
3.1 Agentes de interfaz.................................................................................... 17
3.2 Agentes colaborativos ............................................................................... 18
3.3 Agentes móviles ......................................................................................... 19
3.4 Agentes de recuperación de información................................................ 21
4 Capítulo 3: Subastas........................................................................................... 23
4.1 Generalidades ............................................................................................ 23
4.2 Formulación matemática de una subasta................................................ 25
4.3 Subastas en Internet.................................................................................. 26
4.4 Arquitecturas de subastas en Internet .................................................... 27
5 Capítulo 4: Aprendizaje de agentes en subastas ............................................... 29
5.1 Aprendizaje por refuerzo ......................................................................... 30
5.1.1 Esquema de aprendizaje estocástico ................................................... 31
5.2 Aprendizaje adaptativo............................................................................. 32
II
6 Capítulo 5: Esquema de un Mercado Inteligente............................................. 35
6.1 Dinámica de la subasta de primer precio secuencial ............................. 35
6.1.1 Subasta simultánea de primer precio con múltiples rondas como una
clase especial de juego bayesiano extenso con acciones observables................ 36
6.1.2 Estimación del riesgo de un participante............................................. 40
7 Capítulo 6: Técnicas de Recomendación .......................................................... 44
8 Capítulo 7: Técnicas de Negociación................................................................ 51
8.1 Modelo de negociación.............................................................................. 52
8.1.1 GENERACIÓN DE OFERTAS EN UNA SUBASTA SECUENCIAL
52
8.1.1.1 Algoritmo ........................................................................................ 53
8.1.2 Especificación del algoritmo para la selección de la mejor accion a
tomar. 56
8.1.3 Algoritmo para la generacion de ofertas en cada secuencia de la
subasta 57
9 Capítulo 8: Diseño y arquitectura de los agentes y del mercado inteligente... 58
9.1 Comportamiento de los agentes............................................................... 58
9.2 Arquitectura del mercado inteligente...................................................... 59
9.2.1 Fase I (Ingreso al sistema) ................................................................ 61
9.2.2 Fase II (Busqueda de la subasta ideal) ............................................ 62
9.2.3 Fase III (Negociacion) ....................................................................... 63
9.2.4 Fase IV (Notificación del proceso de la subasta al subastador) .... 64
9.3 Arquitectura de los coordinadores .......................................................... 64
9.3.1 Coordinador de proceso ...................................................................... 65
9.3.2 Coordinador de subasta ....................................................................... 66
9.3.3 Coordinador de compra ....................................................................... 68
9.3.4 Agente Auxiliar................................................................................... 69
9.4 Arquitectura de los agentes ..................................................................... 70
9.4.1 Agente recomendador ......................................................................... 70
9.4.2 Agente negociador............................................................................... 71
9.5 Especificación de la comunicación........................................................... 72
Significado .......................................................................................................... 73
Ask-about ........................................................................................................ 73
9.6 Diseño del mercado inteligente................................................................. 74
9.6.1 Diagrama de clases .............................................................................. 75
9.6.1.1 Coordinador de proceso .................................................................. 75
9.6.1.2 Coordinador de compra ................................................................... 76
9.6.1.3 Coordinador de subasta ................................................................... 77
9.6.1.4 Agente recomendador ..................................................................... 78
9.6.1.5 Agente negociador........................................................................... 79
III
9.6.2 Diagrama de secuencia ........................................................................ 80
9.6.2.1 Ingreso nuevo comprador ................................................................ 80
9.6.2.2 Ingreso de un nuevo subastador ...................................................... 82
9.6.2.3 Ingreso viejo comprador.................................................................. 84
9.6.2.4 Ingreso viejo subastador .................................................................. 86
9.6.2.5 Recomendación............................................................................... 88
9.6.2.6 Negociación..................................................................................... 91
9.6.2.7 Notificación subastador ................................................................... 93
9.6.3 Diagrama relacional de la base de datos ............................................. 94
10 Capítulo 9: Análisis de resultados ................................................................. 96
10.1 Indicadores................................................................................................. 96
10.1.1 Indicadores económicos ...................................................................... 96
10.1.2 Indicadores sobre los algoritmos......................................................... 97
10.2 Escenarios .................................................................................................. 97
10.2.1 Escenarios para el número de jugadores en la subasta ....................... 98
10.2.2 Escenarios para el coeficiente de aversión al riesgo: caso agente
negociador ......................................................................................................... 106
10.2.3 Escenarios para el coeficiente de aversión al riesgo: caso agente
recomendador.................................................................................................... 115
10.2.4 Escenarios para la valoración del bien: caso agente negociador....... 119
10.2.5 Escenarios para la valoración del bien: caso agente recomendador.. 124
10.2.6 Escenarios para el tamaño del recall ................................................. 128
10.2.7 Escenarios para la entrada de jugadores cuando la subasta ya ha
comenzado: caso agente negociador y negociador ........................................... 135
10.2.8 Escenarios para la salida de jugadores .............................................. 147
11 Trabajo futuro y conclusiones ..................................................................... 151
12 Bibliografía................................................................................................... 153
13 Anexos........................................................................................................... 156
13.1 Código fuente del motor de inteligencia del agente recomendador.... 156
13.1.1 Clase PlaneacionRecomendador ....................................................... 156
13.1.2 Clase EstrategiaRecomendador ......................................................... 158
13.1.3 Clase PSERecomendador .................................................................. 159
13.2 Código fuente del motor de inteligencia del agente negociador.......... 165
13.2.1 Clase PlaneacionNegociador ............................................................. 165
13.2.2 Clase EstrategiaNegociador .............................................................. 165
13.2.3 Clase PSENegociador ....................................................................... 167
IV
LISTA DE FIGURAS
Figura 1 Interacción con un solo agente........................................................................ 8
Figura 2 Interacción con varios agentes ........................................................................ 9
Figura 3 Arquitectura Subsumption............................................................................ 13
Figura 4 Esquema de un agente................................................................................... 15
Figura 5 Esquema de funcionamiento del sistema Warren......................................... 19
Figura 6 Funcionamiento de Telescript....................................................................... 21
Figura 7 Proceso de oferta en un escenario creado con Warras. ................................ 27
Figura 8 Arquitectura del AuctionBot......................................................................... 28
Figura 9 Modelo de aprendizaje por refuerzo ............................................................. 31
Figura 10 Ejemplo de una subasta con tres participantes representada en forma
extensa ................................................................................................................. 53
Figura 11 Arquitectura comprador del bien................................................................ 59
Figura 12 Arquitectura subastador .............................................................................. 60
Figura 13 Ingreso al sistema de un comprador de un bien.......................................... 61
Figura 14 Ingreso al sistema de un subastador............................................................ 61
Figura 15 Proceso de recomendación.......................................................................... 62
Figura 16 Proceso de negociación............................................................................... 63
Figura 17 Información subastador............................................................................... 64
Figura 18 Arquitectura coordinador-agente auxiliar ................................................... 64
Figura 19 Arquitectura agentes ................................................................................... 70
V
LISTA DE TABLAS
Tabla 1 Ejemplo subasta holandesa ............................................................................ 24
Tabla 2 Asignación de valores que identifiquen la aversión al riesgo para
un participante en la subasta 43
Tabla 3. Frecuencias de ocurrencia de las acciones para los jugadores B y C a partir
del juego ficticio planteado por A. ...................................................................... 56
Tabla 4 Perfiles de riesgo seguido por los agentes...................................................... 97
VI
LISTA DE GRÁFICAS
Gráfica 1 ...................................................................................................................... 98
Gráfica 2 ...................................................................................................................... 99
Gráfica 3 .................................................................................................................... 100
Gráfica 4 .................................................................................................................... 101
Gráfica 5 .................................................................................................................... 102
Gráfica 6 .................................................................................................................... 102
Gráfica 7 .................................................................................................................... 103
Gráfica 8 .................................................................................................................... 104
Gráfica 9 .................................................................................................................... 104
Gráfica 10 .................................................................................................................. 105
Gráfica 11 .................................................................................................................. 106
Gráfica 12 .................................................................................................................. 107
Gráfica 13 .................................................................................................................. 108
Gráfica 14 .................................................................................................................. 109
Gráfica 15 .................................................................................................................. 110
Gráfica 16 .................................................................................................................. 111
Gráfica 17 .................................................................................................................. 112
Gráfica 18 .................................................................................................................. 113
Gráfica 19 .................................................................................................................. 114
Gráfica 20 .................................................................................................................. 114
Gráfica 21 .................................................................................................................. 115
Gráfica 22 .................................................................................................................. 117
Gráfica 23 .................................................................................................................. 118
Gráfica 24 .................................................................................................................. 118
Gráfica 25 .................................................................................................................. 119
Gráfica 26 .................................................................................................................. 120
Gráfica 27 .................................................................................................................. 121
Gráfica 28 .................................................................................................................. 122
Gráfica 29 .................................................................................................................. 122
Gráfica 30 .................................................................................................................. 123
Gráfica 31 .................................................................................................................. 124
Gráfica 32 .................................................................................................................. 125
VII
Gráfica 33 .................................................................................................................. 126
Gráfica 34 .................................................................................................................. 127
Gráfica 35 .................................................................................................................. 128
Gráfica 36 .................................................................................................................. 129
Gráfica 37 .................................................................................................................. 130
Gráfica 38 .................................................................................................................. 131
Gráfica 39 .................................................................................................................. 131
Gráfica 40 .................................................................................................................. 132
Gráfica 41 .................................................................................................................. 133
Gráfica 42 .................................................................................................................. 133
Gráfica 43 .................................................................................................................. 134
Gráfica 44 .................................................................................................................. 135
Gráfica 45 .................................................................................................................. 136
Gráfica 46 .................................................................................................................. 137
Gráfica 47 .................................................................................................................. 138
Gráfica 48 .................................................................................................................. 139
Gráfica 49 .................................................................................................................. 139
Gráfica 50 .................................................................................................................. 140
Gráfica 51 .................................................................................................................. 141
Gráfica 52 .................................................................................................................. 142
Gráfica 53 .................................................................................................................. 142
Gráfica 54 .................................................................................................................. 143
Gráfica 55 .................................................................................................................. 144
Gráfica 56 .................................................................................................................. 145
Gráfica 57 .................................................................................................................. 145
Gráfica 58 .................................................................................................................. 147
Gráfica 59 .................................................................................................................. 148
Gráfica 60 .................................................................................................................. 149
Alan: A mi abuelo, A mi mamá, A mi papa,
A mi hermana Y a Laura.
Diego: A mi mamá, A mi papá y a todos
Mis hermanos y hermanas
ISC-2002-2-1
1 INTRODUCCIÓN Y MOTIVACIÓN
El campo de la inteligencia artificial tiene una trayectoria en realidad muy corta, de
aproximadamente 40 años. Durante este periodo de tiempo, la inteligencia artificial
ha evolucionado de tratar de dar soluciones generales para cualquier tipo de problema
no aplicado, a la construcción de sistemas expertos con un profundo conocimiento,
combinación, intercambio, retroalimentación de conocimiento, razonamiento y con
un aprendizaje que le permite llegar a soluciones a problemas reales de la vida real.
Si se mira el crecimiento que ha tenido en los últimos años el mercado de subastas
por Internet, podría decirse que este mercado ha pasado a ser el sector más dinámico
del comercio electrónico. Un ejemplo de esto es eBay, firma que en 1998 contaba
con más de 150.000 productos nuevos al día en más de 1.000 categorías diferentes.
En ese tiempo contaba con un poco más de 1.3 millones de usuarios. A finales del
año pasado, eBay contaba con más de 35 millones de usuarios registrados y tuvo
ingresos por más de 108 millones de dólares. Actualmente, existen más de 200 sitios
en la red que prestan el mismo servicio que eBay, aunque no con el mismo éxito.
Las subastas son mecanismos económicos para la asignación de recursos. En los
últimos años éstas han tenido gran importancia, pues han sido utilizadas para la
adjudicación de todo tipo de productos, desde simples artículos de consumo,
asignación del espectro electromagnético, títulos de deuda publica y hasta derechos
de explotación petrolera entre otros.
El surgimiento del comercio electrónico cambió radicalmente el proceso tradicional
de las subastas, pues redujo el número de procesos intermedios y lugares visitados
durante su ejecución. Estos cambios influenciaron directamente los costos en los que
se incurría, por lo que se paso a un método mucho más eficaz y barato para el
intercambio de bienes. No solamente hubo cambios en las subastas, sino que también
se produjeron mejoras en las actividades comerciales tales como el desarrollo de
nuevos canales de distribución, mejoras en las comunicaciones y relaciones con los
clientes, disminución de costos vía reducción de intermediarios, entre otros.
Los sistemas multi-agentes proveen un ambiente complejo e interesante para analizar
el comportamiento de los agentes inteligentes. Esta tesis, fue desarrollada con el fin
ISC-2002-2-1
de construir un mercado inteligente, compuesto principalmente de dos motores uno
de recomendación y otro de negociación, que modelara una subasta por medio de la
utilización de agentes que interactúan entre sí con el fin de obtener un conocimiento y
un aprendizaje a través de los datos generados y obtenidos por medio del mercado
inteligente. Como resultado de la investigación de esta tesis se implementó un
mercado inteligente utilizando el paradigma de los agentes inteligentes. En este
sistema se podrán realizar operaciones básicas tales como: compra, venta,
negociación y búsqueda de bienes por medio de un mecanismo de asignación como lo
es la subasta a través de un sistema de agentes con inteligencia artificial. Estos
agentes son entidades de software capaces de realizar tareas específicas, para lo cual
poseen la inteligencia suficiente (basada en un modelo matemático) para ejecutar sus
tareas de forma autónoma, o con ayuda de otros agentes, siempre buscando la
maximización dinámica de unos objetivos previamente propuestos para finalmente
generar un resultado.
La forma tradicional como en economía se viene trabajando el análisis de sistemas
económicos es mediante el estudio del comportamiento de un sistema cuando éste se
encuentra en equilibrio. Para realizar este análisis es necesario hacer dos supuestos
principalmente; el primero consiste en la maximización que los individuos desean
hacer sobre su utilidad, y el segundo está basado sobre las expectativas racionales1
que estos deben poseer.
Al analizar más detenidamente el supuesto de racionalidad surge de inmediato una
pregunta, ¿qué pasa si los individuos no son completamente racionales?. Si este fuera
el caso, una respuesta lógica sería que el equilibrio al que se llega no es válido, pero
esta respuesta no examina la posibilidad que, eventualmente, los individuos serían
capaces de alcanzar esta racionalidad por completo, con lo que se llegaría al
equilibrio descrito por la teoría. Es aquí donde nace una nueva pregunta, ¿cómo fue
el proceso que llevó al agente a alcanzar un comportamiento completamente
racional?.
Como consecuencia de esta pregunta, muchos economistas pensaron que los modelos
utilizados eran reglas de decisión pertenecientes a algún estado estable de un proceso
adaptativo. Gracias a esto, surgieron modelos que partían del relajamiento del
supuesto de racionalidad y cuyo objetivo era explicar cómo la consecución de un
equilibrio era el límite de los procesos de aprendizaje o adaptación.
La mayoría de los modelos propuestos se basan en la idea de cómo los agentes
actualizan sus creencias sobre el comportamiento que poseen sus rivales y como estos
reaccionarán ante sus acciones, es decir, si la decisión que sus rivales tomaran va a
ser óptima con base en los supuestos que ellos hayan formulado.
1 Por expectativas racionales se entiende que todos los individuos poseen correctas e idénticas
creencias sobre el comportamiento que tendrán sus competidores.
ISC-2002-2-1
Tomando esta alternativa sobre el estudio de sistemas económicos, es de particular
interés explorar algunos modelos propuestos por la teoría del aprendizaje en teoría de
juegos y analizar su posible utilización para el estudio del comportamiento de los
agentes participantes en las subastas. Acompañado de un estudio teórico, es deseable
tener resultados empíricos sobre las hipótesis y resultados desarrollados, por lo que
una implementación de estos modelos deberá ser realizada.
Para implementar estos modelos y simular un entorno donde todos lo individuos que
participan en una subasta tengan un modelo propuesto, es necesario utilizar una
herramienta como lo son agentes inteligentes artificiales.
ISC-2002-2-1
5
2 CAPÍTULO I: AGENTES
La palabra “agente”, últimamente se ha convertido en una palabra de moda dentro de
la jerga de las comunidades de computación, robótica, sistemas distribuidos,
interfaces de usuario, animación por ordenador, sistemas operacionales y de
inteligencia artificial entre muchos otros. El presente capítulo le permitirá al lector
entender de una forma simple lo que es un agente, su funcionamiento y las diferentes
arquitecturas que se han venido desarrollando en los últimos años. Como diría
Nicholas Negroponte, director del Media lab. del MIT: “El futuro de la computación
será de delegar a, y no de manipular computadores”.
2.1 Definición del concepto de agente
En realidad no existe una única definición de agente. Varios autores expresan
diferentes conceptos acerca de lo que debería ser un agente dependiendo de su óptica
particular. En el trabajo de grado Minque: Un Modelo que soporte el proceso de
Diseño Cooperativo, agente se define como: “Un agente es una entidad capaz de
resolver problemas internamente, que tiene almacenado su propio conocimiento,
datos relevantes del mundo o del sistema del cual hace parte, un esquema y
descripción de las actividades a realizar, y además es capaz de interactuar con los
demás agentes del grupo para resolver problemas en grupo”2. Russell y Norvig lo
definen como: “Un agente es cualquier cosa que percibe su entorno a través de
censores y actúa sobre ese entorno a través de efectores. Un agente es racional cuando
realiza la mejor acción posible a partir de los datos percibidos”3. Nwana lo define
como: “El término agente se refiere a un componente de software y/o hardware que
es capaz de actuar para poder ejecutar tareas en nombre de un usuario”4. Para esta
tesis, tomaremos el concepto de agente como aquel que es capaz de realizar tareas
específicas a un usuario, o a un grupo de usuarios y posee la inteligencia suficiente (la
cual está basada en modelos matemáticos) para ejecutar parte de sus tareas de forma
2 Rueda Rodríguez Julieta: 1996, MINQUE: Un modelo que soporte el proceso de diseño cooperativo.
Capítulo 1.4, página 26. 3 http://agents.umbc.edu/tophits.html
4 http://citeseer.nj.nec.com/nwana96software.html
ISC-2002-2-1
6
autónoma, o con ayuda de otros agentes, logrando así una interacción con su entorno,
buscando la maximización dinámica de unos objetivos previamente propuestos para
finalmente generar un resultado.
Una vez definido lo que es un agente, un aspecto necesario a tratar son las
propiedades que estos deben poseer. Al retomar las definiciones previamente hechas
surgen características deseables en los agentes, como es la capacidad de interactuar
por sí solos, reaccionar ante estímulos provenientes del ambiente y poder responder
racionalmente ante estos. Wooldridge5 definió una serie de atributos o propiedades
que un agente debe poseer:
- Autonomía: estar en la capacidad de actuar sin la intervención directa de una
persona o de otros agentes. Un agente autónomo podría ser el encargado en
una subasta de realizar las ofertas con base en el precio de reserva impuesto
por el usuario.
- Habilidad Social: tener la habilidad para interactuar con otros agentes o con
el usuario, para solicitar información o para mostrar los resultados obtenidos
después de la ejecución de las tareas asignadas a dicho agente. Para poder
lograr esto, dicho agente debe establecer un protocolo común de intercambio
de información entre ambas partes. Finalmente, los agentes deben tener algún
tipo de interfaz para poderse comunicar con el (los) usuario(s). Agentes con
esta característica serían los encargados de llevar a cabo el proceso de
negociación o búsqueda en un mercado, pues para lograr un acuerdo es
necesario que estos interactúen e intercambien información.
- Reactividad: el agente debe estar en la capacidad de darse cuenta de los
cambios que se dan en su ambiente y en función de esto actuar respondiendo
de forma adecuada a los cambios producidos en el mismo. Los efectos
producidos pueden alterar el estado de su entorno. Por ejemplo, para esta tesis
es preciso que el agente de filtrado de información, se de cuenta de la llegada
de nueva información con respecto a un usuario y con ésta sea capaz de
responder a las tareas asignadas al mismo.
- Orientación con Objetivos: un agente no solamente debe actuar por cambios
detectados en su medio sino que además debe cumplir con los objetivos para
los cuales fue diseñado y las tareas que le fueron impartidas. Es por tanto
preciso, que un modelo de agentes, sea un proceso auto-motivado, es decir, el
agente busca lograr satisfacer un estado interno con una mínima intervención
humana, a diferencia de cómo sería en una aplicación convencional, donde el
usuario ejecuta una acción y dicha acción es procesada y respondida en un
5 JENNINGS,N; WOOLDRIDGE, M. Software Agents. IEE Review, p 17-20. 1996. Traducción
realizada en el artículo “REVISIÓN: TECNOLOGÍA DE AGENTES DE SOFTWARE”, TOLOSA,
GABRIEL HERNAN; BORDIGNON, FERNANDO RAUL ALFREDO. P 302-303. 1999
ISC-2002-2-1
7
tiempo dado y así sucesivamente. Un ejemplo de un agente con esta
característica sería aquel encargado de seleccionar y clasificar el correo
electrónico recibido por el usuario, clasificándolo de acuerdo a unas reglas
previamente establecidas.
- Continuidad temporal: un agente se encuentra en un proceso continuo, es
decir, a diferencia de un programa convencional que tiene principio y fin, un
agente debe ejecutarse hasta que haya alcanzado los objetivos que le fueron
establecidos al mismo o bien mientras su ciclo perdure. Esta propiedad, es
entonces, aquella que en realidad le da “vida” al agente permitiendo que éste
pueda darse cuenta de los cambios en el medio y esté pendiente de nuevas
solicitudes. Por tanto es claro, que el ciclo de vida de un agente depende de
sus características, de las tareas que realice y del tiempo en el que el agente
debe ejecutarse. Para el caso de negociación en una subasta, la vida del agente
estaría limitada a la duración de ésta.
- Movilidad: es la capacidad que tiene un agente de “trasladarse” de un lugar a
otro dentro de la red, en busca de recursos que le permitan cumplir con sus
objetivos. Se entiende por trasladarse cuando en agente detiene su ejecución,
almacena su estado interno y se dirige a otro sitio dentro de la red para luego
continuar su ejecución en el nuevo lugar. Por ejemplo, un agente puede ir en
búsqueda de una base de datos que se encuentra en cierta máquina, o
simplemente se tiene que ejecutar remotamente utilizando otro procesador.
2.2 Sistemas Multi-Agentes (MAS)
En la actualidad la mayoría de las aplicaciones basadas en agentes, utilizan sólo un
agente, pero a medida que la tecnología avanza y surgen retos mayores, la necesidad
de un sistema con más de un agente se vuelve evidente. Los MAS han sido estudiados
principalmente por una rama de la Inteligencia Artificial (AI) denominada
Inteligencia Artificial Distribuida que provee los principios para la construcción de
sistemas complejos que envuelven múltiples agentes y para la coordinación de
diferentes comportamientos de agentes. La AI ha avanzado y en la actualidad se
enfrenta a problema cada vez más complejos, reales y de una escala mayor, estos
problemas sobrepasan las capacidades de un solo agente, ya que estos están limitados
por su conocimiento, por sus recursos computacionales y por el enfoque del problema
que este posea, para la solución de estos problemas se emplean dos poderosas
herramientas, la modularidad y la abstracción del problema, este enfoque permite a
cada agente que compone el sistema utilizar herramientas específicas para resolver
una pequeña parte del problema.
Un sistema Multi-agente puede ser definido como una red acoplada de entidades que
resuelven problemas y resuelven conjuntamente un problema que se encuentra más
ISC-2002-2-1
8
allá de las capacidades de una de estas entidades ( Durfee y Leseer 1989 ). Estas
entidades las conocemos como "agentes", son autónomos y pueden ser heterogéneos
en su naturaleza.
2.2.1 Características Generales
- Cada agente tiene información o capacidades incompletas para completar
una tarea. Este punto consiste en que cada agente no es capaz de tener
todo el conocimiento relacionado con el contexto y con las herramientas
necesarias para resolver el problema, todo debido a la dimensión y
complejidad del mismo.
- No existe un sistema de control global. El control se encuentra distribuido
a través de los diferentes agentes ya que el control lo poseerá el encargado
de una tarea en un instante específico de tiempo.
- La información se encuentra descentralizada, ya que cada agente posee la
información necesaria para resolver su correspond iente sub-problema, no
existe un agente que posee toda la información relevante para el problema.
- El sistema es asincrónico, ya que en cualquier momento se pueden tener
llamados de/a otros agentes, para delegar tareas que serán desarrolladas en
paralelo, o para recibir resultados de tareas específicas.
2.2.2 Agentes Individuales vs. MAS
Figura 1 Interacción con un solo agente
Agente
Ambiente
ISC-2002-2-1
9
Los agentes individuales interactúan únicamente con el medio ambiente, y para éste
los otros agentes son modelados como parte del medio ambiente.
Figura 2 Interacción con varios agentes
Los MAS modelan a los otros agentes como entidades espaciales y se comunican con
ellos no como parte del medio sino como otro agente que es capaz de interactuar.
2.2.3 Utilización de Sistemas Multi-Agentes
Los MAS son la solución a una variedad de problemas:
Cuando existen organizaciones y cada una posee su propio agente con unos objetivos,
conocimiento y arquitectura establecidos, y además existen otras organizaciones que
requieren compartir la información de otras para lograr su objetivo individual. En este
caso, es necesario diseñar un MAS que sea capaz de comunicarse con otros agentes
para compartir la información necesaria para lograr su objetivo.
Los MAS también son utilizados en sistemas que no son distribuidos, ya que estos
son capaces de aumentar la velocidad en la que se resuelven los problemas, debido a
que proveen métodos para el procesamiento en paralelo. Los sistemas que son
fácilmente separables en componentes son los que son beneficiados en mayor medida
por los MAS.
Los MAS son bastante utilizados para volver más robusto al sistema, ya que si es un
solo agente, una falla ocasionará que todo el sistema falle, lo que no ocurre con un
sistema Multi-agente. Además, un MAS no necesariamente debe ser implementado
Agente
AgenteAmbiente
ISC-2002-2-1
10
sobre múltiples procesadores, es posible implementarlo en diferentes máquinas,
haciendo el sistema aún más robusto.
La escalabilidad es una cualidad inherente de los MAS ya al estar diseñados por
módulos es muy natural añadir un módulo al sistema, aumentado bastante sus
capacidades con un mínimo de esfuerzo.
2.2.4 Clases de MAS
Actualmente se ha podido establecer que existen diferentes clases de MAS, que
difieren dependiendo de la arquitectura y la funcionalidad deseada en la aplicación,
por lo que describiremos las más importantes dentro de las cuales tenemos:
MAS Homogéneos no comunicados
En este enfoque existen múltiples agentes, los cuales poseen la misma estructura y los
mismos objetivos pero se encuentran en una situación diferente dentro del ambiente.
Como consecuencia, su respuesta a los impulsos del ambiente será diferente.
Existe una aplicación de este tipo de agentes desarrollada por Balch y Arkin, la cual
consiste en el estudio del mantenimiento de la formación militar de un grupo de
robots. El objetivo de los robots es moverse juntos en formación tales como
diamantes o columnas. Los robots periódicamente se dirigen hacia obstáculos, los
cuales previenen a uno o más robots moviéndose en línea recta; luego de superar el
obstáculo, todos los robots deben moverse en orden para ajustar nuevamente la
formación, los agentes de una forma reactiva actualizan sus censores para liberar
obstáculo.
MAS Heterogéneos no comunicados
En este escenario observamos varios agentes, los cuales se pueden diferenciar en su
estructura, objetivos y conocimiento del medio, y en consecuencia su respuesta al
mundo es diferente, estas diferencias aumentan la potencia del sistema.
Existe un modelo cazador / presa en el que cada cazador no conoce la posición de los
otros y sus decisiones se basan únicamente en el conocimiento del entorno y de la
posición de la presa con respecto a la suya; lo anterior nos lleva a que es posible que
este grupo de cazadores nunca logre su objetivo sin importar si sus posiciones
iniciales son diferentes e independientes.
ISC-2002-2-1
11
MAS Heterogéneos comunicados
Este es el enfoque más poderoso de los MAS ya que esta heterogeneidad aumenta el
potencial del sistema debido a que es posible que cada agente se encargue de una
tarea específica para luego comunicar sus resultados a los demás y así lograr llegar al
objetivo común.
Stephens y Merx desarrollaron un modelo cazador / presa, en el cual los predadores
en cada instante de tiempo pueden estar tratando de capturar diversas presas, cada
uno se dirigirá hacia la presa sobre la cual tenga mayores posibilidades de capturarla.
Esto se logra actualizando continuamente la posición de la presa y de los demás
predadores, con esto es posible obtener la posición más cerrada de captura posible
para cada presa.
2.2.5 Formas de interacción
Existen diversas formas en las que los sistemas Multi-agentes pueden funcionar a su
interior, esto dependiendo en primer lugar de la metodología que se utilizará para
resolver el problema, y en segundo lugar de los recursos, objetivos y conocimiento
que maneje cada uno de los agentes que componen el sistema. Teniendo en cuenta
estos factores los tipos de interacción se clasifican de la siguiente forma:
- Independencia : cada agente se encarga de llevar a cabo sus objetivos (el
mismo) de manera individual, la mejor representación es un sistema en el que
participan varios agentes, pero no existe comunicación ni coordinación entre
ellos.
- Colaboración: los agentes poseen objetivos compatibles, recursos suficientes
pero capacidades insuficientes. Esto ocurre cuando el agente posee poca
información referente al problema y aunque computacionalmente fuera
posible, no posee el dominio total del problema y de las formas de
solucionarlo, por esto se establece un sistema multi-agente compuesto de
agentes colaborativos.
- Obstrucción: los agentes no poseen objetivos compatibles, los recursos no son
suficientes pero las habilidades si lo son.
- Colaboración coordinada: los agentes poseen objetivos compatibles, los
recursos no son suficientes, y las habilidades tampoco. Al igual que en la
colaboración mencionada anteriormente la información es insuficiente, pero
ahora los recursos, en especial los computacionales no son suficientes, por
esto que es necesario que otros agentes con más recursos computacionales, o
recursos disponibles en ese momento se encarguen de llevar a cabo ciertas
rutinas.
- Competencia individual: los agentes no poseen objetivos compatibles y los
recursos y habilidades son suficientes. Este tipo de sistemas es muy parecido
ISC-2002-2-1
12
al primero, pero en este cada agente posee sus objetivos definidos y no se
cruzan con los de los otros agentes de sistema.
- Competencia colectiva: los agentes no poseen objetivos compatib les, recursos
suficientes pero capacidades insuficientes. Al no poseer capacidades
suficientes los agentes necesitan de otros con más conocimiento o
información disponible sobre el sistema para completar su tarea específica.
- Conflicto individual sobre recursos: los agentes no poseen objetivos
compatibles, los recursos no son suficientes pero las habilidades si lo son. Los
agentes cada uno tratando de lograr su objetivo y al tener recursos
insuficientes tratan de acceder a los recursos disponibles de otros, creando así
colisiones al tratar de acceder al mismo tiempo el mismo recurso.
- Conflicto colectivo sobre recursos: los agentes no poseen objetivos
compatibles, y los recursos y habilidades son suficientes. Al igual que en el
anterior los agentes ahora también deben acceder a los recursos de otros,
tanto computacionales como de conocimiento, por esto se vuelve mas
complicado el acceso a los recursos y a la información.
2.3 Arquitectura de un agente
La arquitectura del agente es la parte del sistema encargada de describir la forma
como van a ser utilizados los recursos que posee el agente.
En general, las arquitecturas poseen diferentes características implicando diferentes
propiedades para cada una de éstas. Por ejemplo, algunas utilizan representación
uniforme del conocimiento, otras usan representación heterogénea y otras, no tienen
una representación explícita. Estas decisiones llevan al soporte de capacidades
específicas.
La escogencia de características es a menudo hecha siguiendo algunos supuestos
metodológicos explícitos, conducidos por el medio y los dominios donde la
arquitectura será usada; esta variedad de escenarios son los responsables de la gran
variedad de arquitecturas existentes.
Para el diseño de la arquitectura del agente es necesario tener en cuenta la sinergia
existente con el medio donde va a funcionar. Desde este punto de vista, a
continuación se presentan algunas arquitecturas:
ISC-2002-2-1
13
2.3.1 Arquitectura Subsumption
Esta arquitectura es construida por capas y cada una de ellas da al sistema un
conjunto de comportamientos previamente definidos. Los niveles superiores están
construidos sobre los inferiores de tal forma que se crean comportamientos más
complejos. El comportamiento del sistema en su totalidad es el resultado de muchos
comportamientos simples que obran recíprocamente. El funcionamiento de las capas
es asincrónico.
Figura 3 Arquitectura Subsumption
Las capas están constituidas por redes de autómatas aumentados con censores de
tiempo los cuales habilitan cambios en el estado después de periodos de tiempo
preprogramados. La comunicación de los autómatas se hace por medio de señales, las
cuales pueden ser tanto de salida como de entrada. Este tipo de arquitectura dada su
facilidad de implantación es muy usada para el acercamiento a sistemas de control de
robots. Por medio de esta arquitectura el robot no es controlado por medio de un
sistema de razonamiento complejo, en contraste, se utilizan un conjunto de procesos
simples.
2.3.2 ATLANTIS6
La idea con la cual fue desarrollada esta arquitectura fue la de mantener un estado
interno en un alto nivel de abstracción, el cual debía ser usado como guía para las
acciones a tomar por el sistema y no como control de este.
Esta arquitectura fue construida basándose en operadores cuya ejecución consume
tiempo despreciable y así ellos mismos no causan cambios en el mundo, si iniciar
procesos que eventualmente los generarán. Estos procesos reciben el nombre de
actividades y los operadores que los inician o terminan son llamados decisiones. La
arquitectura consiste de tres capas:
6 http://ai.eecs.umich.edu/cogarch0/common/arch.html
L2 entrada NIVEL 1 Salida
Censores
L1 entrada NIVEL 0 Salida
Censores
ISC-2002-2-1
14
- Controlador: lee directamente de los censores y envía comandos reactivos a
los efectores basándose en la lectura realizada. Es la parte reactiva del sistema
- Secuencia: Posee una visión más global de los objetivos del sistema. Este es
el encargado de anunciarle al controlador cuándo empezar o parar una acción.
- Deliberativa : Responde de mantener los modelos del mundo y construir
planes. Realiza computaciones de alto nivel para que luego sean utilizadas por
la capa de secuencia.
Esta arquitectura permite al desarrollador la creación de colegas (agentes) los cuales
definen con ayuda del usuario tareas y reglas, así mismo, esta arquitectura tiene la
capacidad de monitorear los diferentes patrones de los usuarios para establecer más
reglas, por lo que tiene un gran campo de desarrollo y aplicación en el área de
mercadeo.
2.3.3 PRODIGY7
Es una arquitectura modular que almacena el conocimiento de una manera simbólica
en forma de predicados lógicos de primer orden (FOPL) la cual es llamada Lenguaje
de descripción Prodigy (PDL), con este lenguaje se puede expresar el estado actual
del mundo, búsquedas guiadas, deducción acerca de la información adicionada, entre
otras. Por lo tanto, todo el conocimiento es declarativo, inesperado y uniformemente
representado y con la capacidad de acceso por todos los módulos.
Prodigy utiliza un algoritmo de análisis de objetivos llamado Means-Ends, el cual
básicamente compara los estados actuales con el objetivo para la toma de decisiones.
Junto con esta forma de análisis y el control de reglas le da a Prodigy la característica
de enfocarse en el problema planteado y no perder su atención en subproblemas
generados en el camino.
Este tipo de arquitectura es usado comúnmente para el mapeo de trayectorias y
corregimiento de los mismos en tiempo real, por lo que es utilizada en multi- robots y
simulaciones de 3d.
7 Ibid
ISC-2002-2-1
15
2.3.4 YUBARTA8
Por tanto es importante tener en cuenta ciertas características internas que debe tener
un agente para tener la capacidad de responder a sus tareas y objetivos, por
consiguiente dentro de la arquitectura, el agente debe contar con una funcionalidad,
un control, un conocimiento y una comunicación. Cumpliendo con la siguiente
arquitectura:
Figura 4 Esquema de un agente
- Funcionalidad: son el conjunto de tareas que el agente va a realizar y que los
demás agentes necesitan conocer para que puedan tener una interacción.
- Control: es el conjunto de objetivos, planes y estrategias que va a desarrollar
y tener el agente para poder responder a un conjunto de requerimientos, así
como también son los conocimientos mínimos que necesita un agente para
poder tener un buen funcionamiento. Los objetivos son la descripción de los
posibles estados que el agente en un momento dado tiene o no. Para el caso de
un sistema multi-agente se establece la existencia de objetivos en común y
objetivos específicos que desarrolla cada agente con el fin de llegar a un
resultado final o simplemente para la retro-alimentación del sistema. Los
planes y estrategias es el conjunto de acciones que se realizan para resolver un
problema o alcanzar un objetivo.
- Conocimiento: el agente debe estar en la capacidad de saber cómo actuar y
cómo hacer las cosas que están ligadas con su rol. Los roles están definidos
por el sistema que se está modelando en donde cada agente cumple con las
funciones asignadas a dicho rol. De igual manera, el agente debe tener el
conocimiento necesario para cumplir sus funciones, las cuales vienen
derivadas de cambios en el sistema, de información generada en el mismo o
de información proveniente del exterior (ya sea un agente o el usuario). Este
conocimiento está almacenado de forma estructurada, de tal manera que
cualquier agente puede acceder a él, siempre y cuando dicha información sea
relevante para el cumplimiento de sus objetivos. Y finalmente cómo este
conocimiento es negociado entre las diferentes partes del sistema.
8 Rueda Rodríguez Julieta: 1996, MINQUE: Un modelo que soporte el proceso de diseño cooperativo.
Capítulo 1.4, página 26.
Funcionalidad
Control
Conocimiento
Comunicación
ISC-2002-2-1
16
- Comunicación: es la capacidad dentro de la arquitectura que tienen los
diferentes agentes de poder cooperar, coordinarse y negociar entre sí. Cada
agente tiene un lenguaje y un mecanismo de representación del conocimiento,
que permite la comunicación entre ellos.
ISC-2002-2-1
17
3 CAPÍTULO 2: APLICACIONES DE AGENTES
Dependiendo de la aplicación para la que se necesita un agente, este puede ser
clasificado de diferentes formas, teniendo en cuenta sus propiedades. Por lo tanto, se
ha propuesto una clasificación de acuerdo a las líneas de investigación y desarrollo de
agentes, en la cual se da prioridad a la función principal del agente. Siguiendo la
clasificación propuesta por Berney se puede llegar a decir que existen cuatro tipos
diferentes de agentes9.
3.1 Agentes de interfaz
Un agente de interfaz, es un software que asiste a un usuario cuando éste interactúa
con una o más aplicaciones, por lo que podríamos decir que este agente es semi-
inteligente. Lo bueno de este tipo de agente es que se le puede llegar a delegar tareas
aburridas y largas. Son entonces, asistentes personales, que reducen el trabajo cuando
hay sobrecarga de información, como podría ser el caso en el filtrado de mensajes de
correo electrónico. Este tipo de agentes proveen y suministran ayuda al usuario,
debido a que el agente se encuentra en un monitoreo continúo de las acciones
realizadas por el usuario con la interfaz. La idea es que el agente puede adaptarse a
las necesidades y hábitos de su(s) usuario(s). A su vez, esta clase de agente puede
encontrarse subdividido en diferentes tipos, para poder delegar o particionar una
asignación en:
- Asistentes: su objetivo, es el de ayudar a la planificación de las tareas diarias
del usuario como puede ser el manejo de su agenda personal.
- Filtros: su tarea, es analizar información según un conjunto de reglas dadas
por el usuario, por ejemplo el filtrado de correos electrónicos.
- Guías: su meta, es el de asistir a los usuarios en el uso de una aplicación.
Estos agentes se encargan de monitorear las acciones de los usuarios e
intentan sugerir los pasos a seguir para alcanzar un objetivo.
9 Berney B. Software Agentes – A review. Manchester University. 1996
ISC-2002-2-1
18
3.2 Agentes colaborativos
Los agentes colaborativos forman sistemas multi-agentes (MAS), por lo que existe
más de un agente dedicado a satisfacer los diferentes requerimientos de los usuarios.
Es por lo tanto, necesario contar con un protocolo de comunicación entre los agentes
el cual les permita la cooperación y el intercambio de información entre los mismos.
Por lo que, este tipo de agente debe tener un alto grado de autonomía para poder
actuar y poder llegar a satisfacer los requerimientos o tareas que le fueron delegados.
La construcción de este tipo de agente, fue hecha con el fin de poder repartir y
organizar mejor los diferentes requerimientos con los que debe cumplir la aplicación,
buscando así que las diferentes tareas no se encuentren centralizadas en un solo
agente, para buscar una mayor eficiencia y un tiempo de respuesta menor. Este tipo
de arquitecturas cuenta con una mayor confiabilidad debido a la redundancia y una
mayor velocidad debido al paralelismo. Las áreas de aplicación de este tipo de agente,
son cuando se está frente a la búsqueda de resolución a problemas demasiado
grandes, a la interconexión de múltiples sistemas o al manejo de información de
fuentes distribuidas.
WARREN es un sistema que desarrolla decisiones de manejo de portafolios de
inversión, en el cual se encuentran múltiples agentes encargados cada uno de analizar
un tipo de “stock” específico, basado en la actualización de las bases de datos
correspondientes a su comportamiento. Este sistema se compone de agentes que se
encargan individualmente de coordinar tareas, adquirir la información, enviar
resultados, generar recomendaciones y analizar la información contrastada con los
resultados. Este es un claro ejemplo del gran potencial que poseen los sistemas Multi-
agentes, ya que un solo agente no sería capaz, de manejar todas estas tareas e
información, y tampoco tendría a su disposición los recursos para ejecutarlas. Este es
el esquema general del funcionamiento del sistema:
ISC-2002-2-1
19
Figura 5 Esquema de funcionamiento del sistema Warren
El esquema de funcionamiento anterior consiste en agentes inteligentes que permiten
ayudar a manejar un portafolio financ iero. El sistema une los diferentes datos del
mercado, los reportes financieros, los modelos técnicos, los informes de los analistas
y los cambios en los precios del portafolio. Diferentes labores son asignadas a
diferentes agentes, un agente encuentra y modela el cambio de las acciones de una
empresa, otro supervisa las noticias que podrían alterar la rentabilidad del portafolio.
Si se produce un cambio, éste es notificado al usuario. Toda la información está
disponible en una vía web. El sistema luego integra toda la información, teniendo un
agente especializado responsable de cada recurso, y después presentándolo a, o
alertándolo para mostrar finalmente los resultados al usuario.
3.3 Agentes móviles
Los agentes móviles son aquellos que tienen la capacidad de navegar a través de la
red con el objetivo de interactuar con los hosts externos, recolectando información
para luego regresar a su punto de origen donde completarán las tareas que le fueron
asignadas al mismo. Este tipo de agente ayuda a proporcionar al usuario, soluciones a
cuestiones técnicas y al manejo de recursos computacionales distribuidos. El objetivo
de la movilidad del agente es reducir el tráfico innecesario dentro de la red con lo que
se pueden reducir los costos de comunicación; lo anterior permite a su vez un mejor
aprovechamiento de la red lo cual el usuario ve reflejado como más recursos
Usuario1 Usuario2 Usuario n
Agente administrador de
Portafolio
Agente
fundamental
de análisis
Agente
técnico de
análisis
Agente de
eventos
Agente
analista de
localización
Agente analista
de ganancias
Corredor de
Indicadores
de noticias y
cotizaciones
Corredor
de
mercado
Clasificador
de noticias
Corredor de
indicadores Información
histórica del
mercado
REPOSITORIO DE INFORMACIÓN
...
ISC-2002-2-1
20
disponibles dentro de la red. Un ejemplo de esto puede ser, cuando un usuario desee
usar un recurso que es altamente utilizado en el sistema, el usuario delega la función a
un agente y la próxima vez que el usuario se conecta, el agente le tiene la información
requerida y procesada según el caso. Para soportar dicha movilidad, debe existir una
infraestructura de transporte que mueva el código del agente de un lugar a otro
además se debe contar con un entorno de ejecución, que le permite al agente poderse
ejecutar en cualquier parte de la red computacional. Así mismo, debe definirse para
construir un sistema de agente móviles el medio de transporte, ejecución,
autenticidad, privacidad y seguridad.
Un ejemplo de un producto comercial es Telescript, desarrollado por General Magic,
el cual incorpora agentes móviles a un mercado electrónico. Telescript a su vez es un
lenguaje de programación orientado a objetos, el cual posee instrucciones como
desplazarse (go), que ocasiona que el agente se desplace de un lugar a otro. Un motor
es el encargado en cada sitio de aceptar y autenticar agentes emigrantes. Los agentes
pueden moverse entre lugares, los cuales están definidos como áreas lógicas
asociadas dentro del motor Telescript; este motor puede soportar múltiples lugares y
tiene incluido a su vez un sitio llamado lugar de motor. Los lugares de motor están
ejecutándose en un contexto mucho mayor, llamado región, el cual sirve como punto
de conexión para la red de Telescript. Una región puede consistir de múltiples
motores ejecutando múltiples lugares a la vez. Una vez el agente se ha movilizado al
nuevo lugar, el motor que maneja el lugar puede permitir o denegar el
establecimiento del agente en dicho lugar. Si el acceso es denegado, los agentes
pueden ser redirigidos a otro lugar, llamado purgatorio, en donde se les permite vivir
por un periodo corto de tiempo en un ambiente limitado. Esto les permite buscar y
seleccionar un nuevo destino. Telescript es utilizado por la red AT&T PersonalLink
(TM) para comunicaciones móviles y es visto como un mecanismo potencial para los
asistentes digitales personales10
.
10
http://www.mmrg.ecs.soton.ac.uk/publications/papers/Voyager/papers/chap4.htm
ISC-2002-2-1
21
Figura 6 Funcionamiento de Telescript
3.4 Agentes de recuperación de información
El objetivo fundamental de un agente de recuperación es obtener información por el
usuario. El hecho por el cual fue construido este tipo de agente, se debe al
crecimiento de Internet, la cantidad de información accesible supera la cantidad de
tiempo disponible para analizarla. El problema que se genera entonces, es que es tan
amplia la información distribuida que ésta genera desafíos en cuanto a las formas de
manejar su complejidad y heterogeneidad, por lo tanto, además del gran volumen de
información disponible, el encontrar información realmente útil que necesite el
usuario se vuelve una operación muy compleja. La idea del agente es poder diseñar
una técnica que permita describir los documentos de forma precisa, creando un índice
de alta calidad, con una forma eficaz y eficiente de acceder a él. Por tanto, el agente
estaría en la capacidad de asistir a un usuario en la formulación de consultas
avanzadas, con base a sus necesidades de información permitiendo acceder e integrar
fuentes heterogéneas y manejar diferentes tipos de información. Los agentes de
recuperación poseen métodos para permitir el rápido acceso y recuperación de
información relevante. Tiene como tarea administrar, manipular y unir información
de fuentes distribuidas. Pueden tener mecanismos de búsqueda y navegación flexibles
y algoritmos de clasificación poderosos. El objetivo final de este tipo de agente es el
de construir un diario personalizado, sabiendo dónde buscar, cómo encontrar lo
Motor Telescript
Lugar de motor
Lugar 1 Lugar 2
Motor Telescript
Lugar de motor
Lugar 1
MOTOR TELESCRIPT
Agente Móvil
DESPLAZARCE
ISC-2002-2-1
22
buscado y cómo armarlos luego. Los agentes se presentan como una herramienta útil
cuando se necesita resolver un problema de sobrecarga de información, debido a que
estos pueden realizar estas operaciones y sus funciones con una mayor velocidad que
una persona y con una disponibilidad de hasta 24 horas.
Internet es un campo ideal para desarrollar agentes de interfaz. En este dominio los
usuarios necesitan la ayuda de búsquedas con asistencia inteligente, esto ya que el
seguimiento manual de los links nunca previene verse inundado por información
irrelevante. LETIZIA es un agente de interfaz autónoma para la navegación en
Internet; éste almacena las URLs escogidas por el usuario y lee las páginas con el fin
de completar un resumen que puede ser de interés para el usuario, de acuerdo con los
tópicos establecidos por este. Para analizar las páginas se utiliza un simple analizador
de palabras claves denominado TFIDF (term frequency times inverse document
frequency), esto es, si en una página la palabra clave se encuentra bastante, pero en el
lenguaje común es rara, la página es una buena candidata a contener información
relevante. LETIZIA está activo durante todo el tiempo que el usuario navega, y está
analizando el espacio de Internet más cercano a la posición actual, en paralelo con las
funciones del usuario. LETIZIA utiliza la misma interfaz de NETSCAPE para
desplegar los resultados obtenidos.11
11
http://agents.www.media.mit.edu/people/lieber/Lieberary/Letizia/AIA/AIA.html
ISC-2002-2-1
23
4 CAPÍTULO 3: SUBASTAS
En los últimos años éstas han tenido gran importancia, pues han sido utilizados para
la adjudicación de todo tipo de productos, desde simples artículos de consumo hasta
los derechos de explotación petrolera, la asignación del espectro electromagnético y
títulos de deuda pública entre otros.
4.1 Generalidades
Existen diferentes definiciones de lo que es una subasta. Una subasta, en términos
generales, es un mecanismo económico para la asignación de recursos. Para el
desarrollo de este trabajo se utilizará una definición mas precisa de lo que es una
subasta; ésta será definida como un mecanismo de mercado con un conjunto de reglas
que determinan quién obtiene el bien subastado y a qué precio, basado en las ofertas
propuestas por los participantes12
.
El estudio de las subastas tiene una gran importancia tanto práctica como
teóricamente. En términos prácticos, el valor de los bienes intercambiados cada año
en las subastas se ha venido incrementando en grandes proporciones. En el campo
teórico, las subastas juegan un papel sobresaliente en la teoría de intercambios,
gracias a que éstas poseen una de las más simples y familiares formas de
determinación del precio en ausencia de intermediarios. Además de esto, las subastas
son una clara ilustración de juegos de información incompleta debido a que la
información que maneja el comprador sólo es conocida por él, quien es el que afecta
el comportamiento estratégico del resto de los participantes.
El tipo de subastas a analizar será de uno-a-muchos, donde bien pueden existir
muchos subastadores y un sólo comprador, o varios compradores y un sólo
subastador. Vale la pena mencionar que también existen las subastas de tipo muchos-
a-muchos, donde existen varios subastadores y varios compradores, pero éstas no han
tenido el suficiente tratamiento teórico, por lo que no se prestará atención a la
descripción de éstas.
12
BENGIO Samy, BENGIO Yoshua, ROBERT Jacques, BELANGËR Gilles. Stochastic Learning of
Strategic Equilibria for Auctions. October 7 1998.
ISC-2002-2-1
24
Existen cinco tipos básicos de subastas, las cuales han sido analizadas y utilizadas
ampliamente; a continuación se procederá a enunciarlas y a brindar una breve
descripción de cómo es su funcionamiento.
- Subastas con ofertas ascendentes: también conocidas como abiertas, orales o
inglesas. En este tipo de subasta el precio es aumentado sucesivamente hasta que
solamente quede un participante, el cual se lleva el objeto subastado.
- Subastas con precio descendente: Esta subasta funciona de una manera opuesta a
la anterior; el subastador empieza con un precio alto para luego disminuirlo en
una pequeña cantidad, el primer participante que acepte el precio propuesto por el
subastador va a ser quien se quede con el bien.
- Subasta de primer precio : los participantes envían sus ofertas sin poder ver las de
los otros, el bien es otorgado a quien hizo la oferta más alta y éste debe pagar lo
ofrecido.
- Subastas de segundo precio o Vickrey: la dinámica seguida por este tipo de
subasta es igual a la de primer precio, la diferencia radica en el pago que el
ganador tiene que realizar, pues éste será igual a la segunda mayor oferta.
- Subasta Holandesa: Este tipo de subasta es utilizado cuando se desea subastar
varios artículos a la vez. Los participantes deciden cuántos bienes de los
disponibles desean comprar y el precio que está dispuesto a pagar por estos;
cuando la subasta es cerrada, el precio que los participantes pagarán es igual a la
mínima oferta exitosa. Por ejemplo, supongamos que un subastador tiene diez
televisores para vender, el siguiente es un listado de las ofertas recibidas antes del
cierre de la subasta:
Comprador Cantidad de artículos Precio dispuesto a pagar por unidad
Juan 5 250.000
Pablo 4 235.000
Pedro 1 200.000
Lucas 2 180.000
Tabla 1 Ejemplo subasta holandesa
Para este ejemplo, la mínima oferta exitosa fue 200.000, así que Juan, Pablo y Pedro
tendrán que pagar esta cantidad por cada televisor.
La propiedad fundamental de las subastas es la asimetría de la información, esto
surge como consecuencia del desconocimiento de información que los participantes
tienen sobre sus competidores.
Debido a la asimetría de la información en las subastas, surgen dos clasificaciones
para éstas, subastas de valor privado y subastas de valor común. En las primeras cada
participante conoce cuál es el valor del bien a subastar, pero ésta información sólo es
conocida por él; en las segundas, el valor es el mismo para todo el mundo, pero los
ISC-2002-2-1
25
participantes tienen diferente información acerca de lo que el bien realmente vale.
Una subasta de arte es un ejemplo típico para las subastas de valor privado, pues cada
participante tiene una percepción diferente del costo del bien. Por otro lado, la
adjudicación de licencias para la extracción de petróleo es un caso típico de las
subastas de valor común; el precio del yacimiento está determinado por la cantidad
de petróleo presente, del cual, cada firma tiene estimaciones diferentes pero éstas
oscilan sobre un valor conocido por todas.
4.2 Formulación matemática de una subasta
En teoría de juegos una subasta pertenece a la familia de juegos de información
incompleta o juegos Bayesianos. Una subasta es vista como un mecanismo utilizado
por un vendedor para tratar de maximizar su utilidad. Existen diferentes modelos para
definir lo que es una subasta en términos matemáticos, unos más generales que otros.
Sin embargo, todos los modelos van a estar gobernados por la siguiente definición:
Una formulación general de lo que es una subasta está determinada13
por:
I: Conjunto de jugadores participan en la subasta
{ } I
ii 1=θ :Tipos de los jugadores14
( )Ip θθ ,,1K : Distribución de la cual provienen los tipos de los jugadores, ii Θ∈θ .
( )iip θθ |− : Probabilidad condicional acerca de sus oponentes,
( )Iiii θθθθθ ,,,,,111KK +−− ≡ , dado su tipo iθ
iS : Espacio de estrategias del jugador i
( )IIi ssU θθ ,,,,,11KK : Función de utilidad para el jugador i.
El comprador busca un perfil de estrategia ( ).s tal que:
( )( )
( ) ( ) ( )( )∑ ∑−
Θ−−−−
∈∈
i ii
ii
iiiiiiiiSs
ii ssupsθ θ
θθθθθθ ,,,|maxarg ,
.,
donde ( ) ( ) i
ii Sss Θ∈.,.,
como se puede ver a partir de esta relación matemática el
jugador i-ésimo selecciona la estrategia que maximiza su utilidad en valor esperado.
Esta estrategia es la mejor respuesta que puede dar el jugador ante las estrategias
escogidas por los demás jugadores, por lo que a este conjunto de estrategias se les
conoce con el nombre de equilibrio bayesiano.
13
Drew Fudenberg, Jean Tirole. Game theory. Cambridge, Mass. London : The MIT Press, 1991. 14
Los tipos de los jugadores están representados por las valoraciones que estos hacen del bien.
ISC-2002-2-1
26
Para facilitar el entendimiento de la formulación anterior se dará un modelo más
práctico para subastas de primer precio.
En este modelo existen n participantes, los cuales son neutrales al riesgo, compitiendo
por un solo objeto. El participante i realiza una oferta bi. El participante que tenga la
oferta más grande gana el objeto y paga por él lo que ofreció, b. El beneficio del
comprador si gana el objeto es de vi-bi, donde vi es la valoración que el participante
tiene sobre el objeto. Nótese que para este caso la valoración que el participante haga
del objeto será el tipo al que este pertenezca, θi . La oferta debe pertenecer al
intervalo [0,vi]. Se asume que la información sobre la valoración del participante i es
privada pero los demás tiene creencias acerca de la distribución de vi. Sea Fi(.) la
distribución acumulativa sobre vi para cada participante. En este caso, las estrategias
son funciones que a partir de la valoración del jugador especifican la cantidad a
ofrecer (bi(vi)). La escogencia de bi se hará si ésta cumple con la siguiente regla de
selección:
( ) ( ) ( )bGbvvb iib
ii −∈ maxarg , donde ( ) ( )( )∏≠
−=ji
jji bbFbG1
es la probabilidad que el
participante i gane el objeto para este tipo específico de subasta.
4.3 Subastas en Internet
El surgimiento de las subastas por Internet abrió una nueva ventana en el
comportamiento tanto de los subastadores como de los participantes. Las subastas en
Internet generalmente tienen una duración de varios días, por lo que muchos de los
sitios donde se realizan estas subastas ofrecen posibilidades de realizar las ofertas
automáticamente hasta alcanzar el valor de reserva del oferente. El proceso de estas
subastas es el siguiente:
- La persona interesada en subastar un bien se registra en uno de los portales que
ofrecen este servicio, luego registra el objeto en una de las categorías existentes.
Una vez escogido el precio mínimo por el cual será vendido el bien y el tiempo
que durará la subasta, el oferente da inicio al proceso. Las personas interesadas
en el bien empiezan a realizar ofertas, las cuales tienen que ser mayores estrictas a
la inmediatamente anterior. Al finalizar el tiempo programado para la subasta, el
objeto es asignado a la persona con la mayor oferta siempre y cuando ésta sea
superior al precio mínimo fijado por el subastador.
La anterior fue una descripción del tipo más común de subasta que se realiza por
Internet (subasta de tipo ascendente). Existen otras clases, donde se cambian reglas
como el tiempo de terminación de la subasta, el número de artículos a subastar, etc.
En la actualidad existen diferentes portales que ofrecen este tipo de servicio tales
como: E-bay, yahoo, y más concretamente en Colombia deremate.com
ISC-2002-2-1
27
4.4 Arquitecturas de subastas en Internet
Son diferentes aplicaciones las que se pueden encontrar en el mercado dada la
variedad de métodos, simulaciones y teorías que hay acerca de subastas. Sin embargo
podemos resaltar dos aplicaciones desarrolladas alrededor de este tema.
Los sistemas de precios del mercado constituyen ante ciertas condiciones una efectiva
descentralización de decisión realizada con una mínima comunicación entre sus
componentes. En los mercados orientados a la programación se realiza un
acercamiento a problemas distribuidos a través de actividades y recursos que se
distribuyen entre los diferentes componentes del sistema (MAS) para lograr de
manera competitiva un equilibrio artificial de la economía. El sistema WALRAS
permite construcciones básicas para la definición de estructuras computacionales de
mercado y diferentes protocolos y reglas que permiten llegar a un equilibrio artificial
del sistema que en nuestro caso sería una subasta15
.
La figura presenta una vista esquemática del proceso de ofertas en WALRAS, en el
cual existe una subasta para cada objeto a subastar y para cada agente existe un enlace
a cada una de las subastas en las que está interesado. Además existe un “tablero” con
los precios actuales de cada una de las subastas que se están desarrollando en ese
momento. Cada agente mantiene una agenda de ofertas, en donde se especifica cual
hace falta por realizar oferta y cuál fue la última oferta realizada para una subasta. La
existencia de cada agente es independiente del otro y no tiene el conocimiento de la
existencia de otros agentes. Cada vez que se reciben ofertas sobre una subasta, el
“tablero” es actualizado si es necesario y nuevas tareas son establecidas en los
agentes para calcular una oferta dado que el “tablero” ha sido afectado. El proceso
finalmente logra un equilibrio cuando los agentes no tienen más tareas asignadas
dentro sus agendas.
Figura 7 Proceso de oferta en un escenario creado con Warras.
15
WELLMAN Michael P. Application to Distributed MultiCommodity Flow Problems.
......
G1 G2 Gk
A1 A2 Ai An
P1
P2
.
.
.
pk
Agenda de tareas
[1],[7],[9]
...
ISC-2002-2-1
28
Los mecanismos de mercado, como las subastas, pueden ser representadas como una
interacción entre agentes, dada la necesidad que tienen estos de compartir tareas e
información para poder llegar a un resultado. Debido a la aplicabilidad que tienen las
subastas para desarrollar agentes, en Michigan fue desarrollado un servidor robusto,
escalable y flexible de subastas que permite la interacción de personas y agentes en
un mismo ambiente (AuctionBot). El servidor tiene la capacidad de manejar subastas
de forma simultánea separando la interfaz de los procedimientos hechos en el núc leo
del mismo. El AuctionBot se ha utilizado en diferentes cursos, y está disponible para
la gente que utilice Internet16
.
El diseño básico del AuctionBot es mostrado en la siguiente figura. En ésta, se
pueden apreciar dos partes; la primera compuesta por la interfaz web para los clientes
(humanos) y la segunda por la interfaz TCP/IP de los agentes. La parte derecha del
diagrama muestra el subastador y el programador de tareas. La interfaz y los
programas de los subastadores actualizan su información en una base de datos común.
Por ejemplo, un cliente (humano) especifica la oferta sobre un objeto a través de un
cuestionario diligenciado por el mismo y enviado vía web. La oferta es grabada en la
base de datos y mantiene un flag (sin procesar). Acto seguido, el usuario recibe la
notificación de que su oferta fue recibida y almacenada. Después, el subastador se
encarga de procesar todas las ofertas realizadas. El programador de tareas es un
demonio que continuamente está monitoreando la base de datos en busca de subastas
que no estén procesadas u ofertas que falten por ser verificadas. Cuando esto sucede
se llama al programa subastador encargado. El programa subastador carga los
parámetros y toma las diferentes ofertas que se encuentran en la base de datos para
finalmente procesarlas.
Figura 8 Arquitectura del AuctionBot
16
WURMAN Peter, WELLMAN Michael, WLASH William. The Michigan Internet AuctionBot: A
configurable Auction Server for Human and Software Agents.
Interfaz Web
Interfaz para los agentes
Servi
dor
HTTP
CGI
CGI
Servidor TCP
Base de datos
Programador
de Tareas
Subastador
Servidor de
correo
ISC-2002-2-1
29
5 CAPÍTULO 4: APRENDIZAJE DE AGENTES EN SUBASTAS
En los últimos años se han venido desarrollando numerosos avances en la teoría del
aprendizaje a partir de las propiedades observadas en la naturaleza lo cual ha llevado
a la formulación de diferentes modelos matemáticos.
Para poder explicar el concepto de aprendizaje en agentes aplicados a subastas,
consideremos el ejemplo de una persona, la cual va a tomar una decisión a partir de
un conjunto de posibilidades, que repercutirán en la utilidad que este obtenga. El
jugador conoce su función de utilidad así como también conoce el conjunto de
acciones disponibles para todos los jugadores, pero desconoce la utilidad de los otros
jugadores. En este entorno, el proceso de aprendizaje del jugador está definido sobre
las suposiciones que éste haga alrededor de las jugadas de los demás. El jugador
comienza con una suposición inicial acerca de la estrategia (la cual no es
necesariamente igual a la tomada por los otros jugadores) que va a ser utilizada por
los otros jugadores y dicha creencia es actualizada a medida que él observa el
desarrollo del juego. Si este simple razonamiento es aplicado por todos los jugadores,
el conjunto de estrategias a las que finalmente llegan constituyen un equilibrio para
este juego.
Un primer acercamiento a la teoría de aprendizaje puede hacerse desde un punto de
vista Darwiniano (1859) en el cual el aprendizaje es soportado por observaciones
fisiológicas y biológicas donde se muestra que los agentes tienden a utilizar
estrategias de refuerzo. En las estrategias de refuerzo, la tendencia del jugador a
utilizar cierta acción está determinada por el éxito que ésta tuvo en el pasado.
Otro acercamiento está basado en las creencias que el jugador tenga acerca de sus
oponentes. En los modelos que utilizan esta aproximación, se dice que los jugadores
son “miopes” pues tienden a formar creencias acerca del siguiente movimiento de sus
oponentes basados en la historia desarrollada por ellos a través del juego.
ISC-2002-2-1
30
5.1 Aprendizaje por refuerzo
El aprendizaje por refuerzo (reinforcement learning) es un área que ha tenido un
rápido crecimiento y ha sido de interés en campos como la inteligencia artificial y la
teoría de control. En principio, las técnicas de aprendizaje por refuerzo permiten a un
agente ser competente explorando y explotando su entorno, por medio de la
observación de resultados y cambios del mismo. Particularmente en problemas de
control, el aprendizaje por refuerzo puede tener ventajas significativas sobre un
aprendizaje supervisado, ya que no requiere de un ser humano calificado que le
provea ejemplos de entrenamiento. Otra ventaja, es que el proceso de exploración
permite al agente ser competente en áreas donde la experiencia humana es muy poca
o restringida. Por tanto, a través de este aprendizaje la exploración y explotación son
cruciales ya que le permite al agente descubrir la estructura del entorno y así
determinar la política óptima a seguir.
En un modelo de aprendizaje de refuerzo, un agente es conectado a su entorno a
través de percepciones y acciones. En cada etapa de la interacción el agente recibe
como entrada (i), alguna indicación del estado actual (s) del entorno; el agente luego
escoge una acción (a) para ser generada como salida. La acción cambia el estado del
entorno y el valor de este estado de transición es comunicado al agente a través de
una señal (r) llamada señal de refuerzo. El comportamiento del agente (B), debe
escoger acciones que tiendan a incrementar la suma a largo plazo de los valores de la
señal de refuerzo. Esto es aprendido por el agente, por medio de pruebas y errores o
guiado por un algoritmo que especifique la forma de hacerlo17
.
17
Littman L Michael, Moore Andrew W, Kaelblig Leslie Pack. Reinforcment Learning: A Survey.
Jorunal of Artificial Intelligence Research 4 (1996) 237-285.
ISC-2002-2-1
31
Figura 9 Modelo de aprendizaje por refuerzo
5.1.1 Esquema de aprendizaje estocástico
A menudo, la solución óptima de los procesos de explotación y exploración requieren
resolver problemas de decisión de Markov sobre los estados de información (conjunto
de todas las distribuciones de probabilidad posible sobre los modelos del entorno que
pueden ser alcanzadas por medio de la ejecución de todas las posibles secuencias de
acciones a partir de cualquier posible secuencia de preceptos y recompensas
recibida).
En el caso general de los problemas de aprendizaje por refuerzo, las acciones de los
agentes determinan no solamente su recompensa intermedia sino también, o al menos
probabilísticamente, el siguiente estado del entorno. Durante el lapso entre la
recompensa intermedia y el siguiente estado, el agente debe tomar una larga
secuencia de acciones, recibir refuerzos insignificantes para luego llegar al estado
final con un mayor grado de refuerzo; a ese intervalo se le conoce como recompensa
retrasada (delayed reward).
Los problemas derivados de delayed reward están modelados por procesos de
decisión de Markov (MDP), estos consisten en:
− S = conjunto de estados.
ISC-2002-2-1
32
− A = conjunto de acciones.
− R: SxA→R(reales), es la función de recompensa.
− T: SxA→Π(S), es la función de transición de estado, donde un miembro
de Π(S) es la distribución de probabilidad sobre el conjunto S. Esta
función especifica el siguiente estado del entorno como función de su
estado actual y la acción del agente.
Una posible implementación de este modelo de aprendizaje para el caso de subastas
es18
:
− A cada jugador i se le asocia un modelo de decisión estocástico, el cual
asigna un contexto de decisión posible C y una estrategia si a una
distribución de probabilidad P(ai|C,si) sobre las posibles acciones. El
contexto C es la información disponible del jugador antes de que éste
escoja una acción.
− El modelo de decisión estocástico puede ser representado por un modelo
flexible o no paramétrico. Un modelo con estas características podría ser
una red neuronal artificial la cual computa P con parámetros si.
− La estimación de los parámetros puede ser realizada con un algoritmo de
aprendizaje de MonteCarlo19
.
5.2 Aprendizaje adaptativo
Un esquema de aprendizaje adaptativo está definido por:
G = juego de un solo periodo (hasta que al jugador i tenga el turno de nuevo).
N = conjunto de jugadores en G definido en {1..n}.
Si = conjunto de acciones para el jugador i.
ui:: S→R (donde R es el conjunto de los reales) y donde S está definido (
j
Nj SS ∈×= )
ht = St (conjunto de historias de longitud t)
U∞
=→
0
:t
it
i SHf (estrategia para el jugador i).
)(X∆ = distribución de probabilidad sobre X.
)(:i
ett
i SHBi
−∞
=
∆→U (función de creencia para el jugador i, donde ei es un entero
positivo).
BRi = es la mejor respuesta que puede dar el jugador i.
18
Bengio Samy, Bengio Joshua, Robert Jacques, Bélanger Gilles. Stochastic learning of Strategic
Equilibrium for Auctions. 19
www.igidr.ac.in/~susant/TEACHING/TSA/ sl_tsa_03_montecarlointro.pdf
ISC-2002-2-1
33
Dada las anteriores definiciones estamos en condiciones de definir lo que es un
esquema de aprendizaje. Un esquema de aprendizaje para el jugador i, es una tupla
(Bi,f
i) tal que
it
iit
i etHBBRhf >∀∈ −− )),(()(11
.
Un esquema de aprendizaje, (Bi,f
i) es adaptativo si satisface las siguientes tres
condiciones para toda historia infinita.
- Para todo ε > 0 y para T > ei existe un M entero positivo tal que para todo s >
M, para todo ii Sx −− ∈ y para todo hs = (z1,.....zs) ∈ Hs, si
it xz −≠ para todo t
∈ [1,s] entonces: [ ] ε<−− ))(,(
1
isT
i xhhB . Esto significa que el jugador i asigna
una probabilidad baja a los perfiles de acciones que no hayan sido utilizados
recientemente.
- Para t>ei, si B
i(h[t-1])(x
-i)>0, entonces existe un s ∈ [1,t-1] tal que xs
-i = x
-i esto
significa que el jugador i asigna una probabilidad de cero a una acción que
nunca haya sido utilizada.
- Para x-i∈ S
-i y para t >e
i si xt-1
-i = x
-I, entonces B
i(h[t-1])(x
-i)>0, esto significa
que el jugador no ignora la información reciente.
A continuación se brindan dos ejemplos de esquemas de aprendizaje que cumplen
con los anteriores supuestos.
El primero de ellos es el aprendizaje bounded recall learning schemas (BR). Se dice
que un esquema de aprendizaje (Bi,f
i) exhibe un comportamiento de tipo BR si existe
un entero mi que pertenezca[1,e
i] tal que las siguientes condiciones sean satisfechas:
- Para t>ei tanto B
i como f
i dependen únicamente de los últimos m
i perfiles de
acción. Esto es, para cada 1
11,
−−−−−− ∈
ii
imt
mtmtHhh y para todo
( ),...,(),...,(:),...,(1,11,11 i
iiiii m
mti
mmt
i
mmZzhBZzhBHzz −−−−
=∈ y
),...,(),...,(1,11,1
ii
ii mmt
i
mmt
i ZzhfZzhf −−−−=
- Para t > ei, 0))(,(
1>−
−i
sti xhhB si y solo si existe un entero s ∈ [t-m
i,t-1] tal
que xs-i = x
-i, donde ht-1 = x1,...,xt-1. Esto quiere decir que el esquema de
aprendizaje es utilizado si x-i fue usado en uno de los últimos m
i periodos
20.
En el segundo de ellos la tupla (Bi,f
i) es generalized fictitious play (FP) learning
schema, si para t > ei y para toda historia ht-1 se tiene:
20
Hon-Snir Shlomit, Monderer Dov, Sela Aner. Alearning Approach to Auctions. Jorunal of Economic
Theory 82, 65-88(1998).
ISC-2002-2-1
34
{ }{ }
∑∑ −−− =−≤≤
−∈
−− =
iis xxts
s
ttt
it
i ww
xhB:11
1,...,1
1
1))(( entendiendo por esto como la distribución
obtenida a partir de la historia observada.
ISC-2002-2-1
35
6 CAPÍTULO 5: ESQUEMA DE UN MERCADO INTELIGENTE
El tipo de subasta que se va a utilizar para el desarrollo de esta tesis va a ser una de
primer precio secuencial. Este tipo de subasta fue seleccionado debido a la
disponib ilidad de información que se tiene acceso en cada ronda. Cabe aclarar que
por ronda se entiende al inicio de una nueva subasta con las mismas características
salvo que para el inicio de ésta, nueva información estará disponible sobre las ofertas
realizadas en la ronda anterior.
6.1 Dinámica de la subasta de primer precio secuencial
Existe un bien a subastar el cual es de interés común para más de un agente, el
subastador hace publico el precio mínimo por el cual él está dispuesto a entregar el
bien, además de informar la hora de inicio de la subasta. Antes de dar inicio a cada
ronda, un agente que quiera participar se registra con el subastador quien luego
informa a todos los agentes sobre este nuevo participante. Los agentes tienen un
tiempo preestablecido para enviar sus ofertas. Cuando este se cumple, el subastador
da por terminada la ronda, con lo cual procede a decidir quién es el ganador y enviar
esta información a los participantes; si ésta es la última ronda da por terminada la
subasta.
Condiciones para el inicio de la subasta
Una subasta se iniciará si se cumplen las siguientes condiciones:
1. Se ha llegado a la hora de inicio programada para la subasta
2. Hay por lo menos dos agentes interesados en el bien.
Si la segunda condición no se llegara a cumplir cuando el tiempo programado para la
subasta llega, se procederá a esperar hasta que ésta sea cumplida.
ISC-2002-2-1
36
Integridad en las rondas de la subasta
Una ronda de la subasta será inválida si existe sólo un participante. Este estado se
alcanza únicamente por condiciones exógenas (fallas en la comunicación, caídas en
los servidores, etc) a los agentes, es decir, la decisión de retirarse de una subasta por
parte de un agente no está contemplada como una alternativa para un agente. Si en
algún momento de la subasta se llegara a este estado, se dará por terminada y se
reiniciará una hora después.
Determinación del ganador la subasta
Luego de finalizar la última ronda, el ganador de la subasta será aquel que tenga la
máxima oferta en esa ronda. Si hay dos o más participantes con una oferta igual al
máximo de las ofertas realizadas en esa ronda, el ganador será aquel que haya ganado
más rondas anteriormente; si el empate persiste, se decidirá el ganador
aleatoriamente. El ganador siempre paga la cantidad ofrecida en la ronda que está
siendo evaluada.
6.1.1 Subasta simultánea de primer precio con múltiples rondas como una clase especial de juego bayesiano extenso con acciones observables.
La descripción formal de la subasta va a ser realizada partiendo de un juego
bayesiano extenso con acciones observables21
, para luego ser ampliado a un modelo
que logre incorporar características especiales de la subasta.
Jugadores
El conjunto de los jugadores para la ronda inicial está denotado por N0 = {1,...,n}. En
este caso los jugadores son los n agentes que ratifican su interés por participar en la
subasta al inicio de una ronda. Dado que en cualquier ronda de la subasta los
jugadores pueden entrar o abandonarla, es necesario identificar este tipo de jugadores
con dos conjuntos más. Sea Ei el conjunto de los jugadores que entran a la subasta
en la ronda i-ésima, y Oi el conjunto de los jugadores que no participarán en la rondad
i; es así como el conjunto de jugadores para la ronda i-esima de la subasta está
definido por:
21
Una completa descripción de este tipo de juego se encuentra en Osborne, Martín. Rubintein Ariel. A
course in game theory
ISC-2002-2-1
37
( ) iiii EONN U−= −1
donde:
• 1−⊆ ii NO : Los jugadores que no participan son aquellos que estaban
presentes en la ronda anterior
• Φ=−1ii NE I : un jugador sólo puede participar si no estuvo en la anterior
ronda
Existen varios supuestos que debemos hacer sobre los agentes participantes en la
subasta:
• El objetivo primario de los agentes es maximizar su utilidad.
• Los agentes tienen aversión al riesgo22
• La utilidad de los agentes está en función de la valoración que éste tiene
sobre el bien a subastar
Tipos
Debido a que la utilidad generada por la posible adquisición del bien es información
privada para cada agente, el tipo de un agente es la valoración que éste tiene sobre el
bien. Esto se debe a que la utilidad del agente está en función de la valoración, así la
caracterización de un jugador, es decir su tipo, puede ser hecha partiendo de su
valoración.
El tipo de un jugador está denotado por la variable vi la cual pertenece a un
subconjunto de los naturales. Este conjunto será identificado como iΘ . Aunque el
conjunto al que pertenece esta variable es potencialmente infinito, puede pensarse que
existe una cota superior para éste, determinada por la restricción presupuestal que un
individuo tiene al participar en la adquisición de un bien; este hecho hace que el
conjunto al que pertenece la valoración pueda suponerse finito cumpliendo con la
condición impuesta por un juego bayesiano con acciones observables
Los siguientes son supuestos realizados sobre los tipos:
• El tipo de un jugador es una variable exógena al modelo.
22
Un agente tiene aversión al riesgo si su función de utilidad definida sobre un rengo de números reales
es cóncava, es decir ( )[ ] )()1()(1 yUxUyxU αααα −+∗≥−+∗ . Luenberger, David.
Investment Science Pág. 231.
ISC-2002-2-1
38
• El tipo permanecerá constante a lo largo de la participación del agente en el
juego.
Espacio de acciones
Un supuesto importante realizado para el espacio de acciones fue la discretización de
la oferta realizada por el agente. Esto se hizo basándose en la idea de que la oferta
representa el dinero que el agente está dispuesto a pagar el cual aunque puede tomar
valores racionales, es escalable a un valor natural.
Para este juego, las acciones tomadas por los participantes son las ofertas que éstos
realizan en cada ronda por el bien a subastar, las cuales pertenecen a los naturales.
La acción tomada por el agente i para la ronda j de la subasta será denotada
por ij
i Ab ∈ , donde Ai denota el espacio de acciones.
Historia
La historia del juego es una secuencia de acciones tomadas por los jugadores,
formalmente la historia para el jugador i está definida por:
( ) KiKzzk
ki Ha ∈+= ,...,1,
, donde z es la ronda desde la cual empezó a participar en
el juego.
Es claro que la longitud de las secuencias puede ser diferente para cada jugador
debido a que éste puede entrar en una etapa posterior al inicio del juego.
Cabe aclarar que existe una correspondencia entre las secuencias y los jugadores que
están participando en la subasta, con lo que se garantiza que cualquier tipo de función
definida sobre el conjunto UiAi
iHH∈
= , es consistente con los jugadores que
intervienen en el juego.
Creencias
Un participante de este juego sólo posee información acerca de su valoración y de la
historia de las ofertas realizadas en rondas pasadas, desconociendo completamente la
valoración de sus competidores. Como consecuencia de esta asimetría en la
información los jugadores deben hacer supuestos que les permita identificar de alguna
manera el tipo de los otros jugadores con los que está compitiendo.
ISC-2002-2-1
39
Los supuestos que un jugador hace sobre sus oponentes serán denominados creencia,
la cual es una función de probabilidad sobre los tipos de los otros participantes, más
formalmente esta creencia será una función j
iµ , donde i es el jugador y j es la ronda,
tal que :
Uj
ki
kji H
0
)(:=
−Θ∆→µ
( )i−Θ∆ es la distribución de probabilidad sobre el conjunto de tipos de todos los
jugadores sin incluir a i.
En el desarrollo de este trabajo no se asumirá una forma funcional específica para
esta función de creencias, como a menudo sucede, sino que esta creencia será
realizada basándose en un determinado esquema de aprendizaje, el cual será definido
mas adelante.
Función de Utilidad
El tipo de la función de utilidad es Von Neumann-Morgenstern23
, la cual para el
jugador i va a estar definida como:
( )
−⋅
=contrario lo de , 0
subasta la de j ronda la deganador el fue si ,)(,
γγ jiij
iii
bvbvU
donde el parámetro γ es determinado exógenamente y 10 ≤≤ γ ; γ caracteriza la
aversión al riesgo del jugador.
La definición de la utilidad se hizo a nivel de rondas, pero también es aplicable para
el resultado final de la subasta.
23
Las funciones de tipo Von Neumann-Morgenstern suponen que las preferencias de las personas están
formadas sobre loterías, las cuales determinan su utilidad esperada.
http://cepa.newschool.edu/het/essays/uncert/choicecont.htm
ISC-2002-2-1
40
Estrategias
Una estrategia para un jugador es una regla que le indica qué acción debe tomar. En
el caso de esta subasta la acción será qué oferta realizar para la ronda en que se
encuentra participando.
Una estrategia está definida como:
Uj
ki
ki AHf
0
:=
→
Esta regla de asignación va a estar determinada por un sistema de valoración sobre el
juego compuesta por dos elementos (β,µ). El primero de estos es una colección de
acciones que determinan la forma como el jugador debe comportarse a lo largo del
juego, mientras que la segunda es el sistema de creencias que posee el jugador sobre
los tipos de los otros participantes.
6.1.2 Estimación del riesgo de un participante24
Esta encuesta tiene como propósito el asociar un riesgo a un participante nuevo que
desee entrar en alguna subasta. Dicho riesgo permitirá al sistema identificar la
tolerancia al riesgo que tiene un participante.
1. Su salario y sus entradas promedio de su trabajo van a tener un incremento
significativo en los próximos años.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
2. Su usted tuviera que decidir cómo invertir sus contribuciones en su plan de
retiro, usted escogería inversiones que ofrecieran intereses fijos y estabilidad
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
24
Luenberger G. David. Investment Science. New York 1998.
ISC-2002-2-1
41
3. Usted considera que invertir en el mercado volátil actual es como un juego de
azar de un casino.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
4. Si usted tuviera que seleccionar un mercado de valores, se inclinaría más por
compañías relacionadas con el desarrollo de tecnología para el futuro, como
podría ser lo que suplantará a la penicilina.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
5. Si usted tuviera que invertir sobre el fondo de educación universitaria de sus
hijos, usted optaría por:
a. Certificados de deposito
b. Búsqueda de un fiador personal
c. Fiadores corporativos
d. Inversión en el mercado de valores
e. Ingresos esporádicos extras
6. El siguiente número de personas depende financieramente de usted.
a. Tres
b. Dos
c. Una
d. Solo usted
7. Número de años en lo que usted espera estar retirado
a. Retirado actualmente
b. En menos de 5 años
c. Entre 5 y 14 años
d. Entre 15 y 24 años
e. Más de 25 años
8. El capital neto con el que cuenta usted al año (entradas – salidas)
ISC-2002-2-1
42
a. Menos de 4.000.000
b. Entre 4.000.001 y 8.000.000
c. Entre 8.000.001 y 12.000.000
d. Entre 12.000.001 y 24.000.000
e. Más de 24.000.001
9. La cantidad de dinero que usted dispone para emergencias, como pérdida del
trabajo o emergencias médicas equivale a:
a. Un mes de salario o menos
b. De dos a seis meses de salario
c. De siete meses a un año de salario
d. De un año a dos años de salario
e. Más de dos años de salario
10. Usted prefiere invertir en diferentes acciones en un mercado de valores que
sólo en una porque así usted tiene una mayor diversificación y un manejo más
profesional.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
11. Usted quisiera y necesita reducir su nivel de deudas en sus finanzas
personales.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
12. Cuando usted realiza una inversión, prefiere hacerlo donde la rentabilidad sea
baja y su dinero esté seguro o lo contrario.
a. En desacuerdo totalmente
b. En desacuerdo
c. No está en desacuerdo pero tampoco concuerda
d. Concuerda
e. Concuerda totalmente
ISC-2002-2-1
43
Para establecer el puntaje obtenido por el participante se estableció la siguiente
convención, por cada respuesta con a) se tiene un punto, con b) se obtienen dos
puntos, con c) se obtienen tres puntos, con d) se obtiene cuatro puntos y con e) se
obtiene cinco puntos. Si se llega a obtener un puntaje total mayor a 46 es probable
que usted se inclina por riesgo. Si el puntaje está entre 41-45 tiene una menor
tolerancia al riesgo aunque mantiene una buena combinación entre el alta riego y el
bajo riesgo. Si el puntaje está entre 36-40 se tiene una tolerancia promedio al riesgo.
Si el puntaje está entre 31-35 se está por debajo de la tolerancia al riesgo. Y si el
puntaje es menor a 30 no hay tolerancia al riesgo.
Luego de haber identificado la clase de riesgo a la cual va a pertenecer el participante,
se procede a asignar un valor para ρ que refleje dicho resultado. Esta asignación se
lleva a cabo teniendo en cuenta que la persona que opta por la acción a) es más
riesgo, comparada con la persona que escoja la opción e) quien sería más adversa al
riesgo. En la siguiente tabla se muestre la asignación de valor:
Mayor 46 41-45 36-40 31-35 Menor 30 ρ 0.9 0.7 0.5 0.3 0.1
Tabla 2 Asignación de valores que identifiquen la aversión al riesgo para un participante en la subasta
ISC-2002-2-1
44
7 CAPÍTULO 6: TÉCNICAS DE RECOMENDACIÓN
La idea de una recomendación es la de maximizar los resultados sujeto a las
restricciones impuestas en el entorno. Tratar de dar una clasificación de las estrategias
de recomendación puede llegar a ser muy difícil dado que se puede utilizar cualquier
algoritmo que evalué los resultados, realice las acciones y siga los procedimientos
necesarios para lograr un adecuado intercambio de información.
Recomendación es un proceso de exploración de los diferentes entornos que pueden
ser útiles en nuestro caso para que un participante entre o no a una subasta en la que
tenga una alta posibilidad de adquirir el bien a ser subastado. Por lo tanto, el agente
recomendador trata de encontrar un punto del espacio en el cual se llegue a un
equilibrio en el que se logren satisfacer sus objetivos.
Hay diferentes técnicas para la realización de la recomendación. Se encuentran las
técnicas de las aproximaciones evolutivas, donde se tiene en cuenta la historia de la
subasta, optimización, donde se maximiza un objetivo sujeto a un número de
restricciones.
Como pudo verse, existen diferentes aproximaciones para el proceso de
recomendación, las cuales pueden ser de gran ayuda en la búsqueda de una forma más
rápida y eficiente de estos procesos. Dependiendo del contexto donde se planee
desarrollar la recomendación se puede emplear una u otra técnica, aunque puede
darse el caso que a partir del uso combinado de éstas se genere un híbrido con el que
se tengan mejores resultados.
Para realizar la recomendación es necesario utilizar una simulación que sea rápida
para que el participante i tenga una respuesta que le permita tomar una decisión sobre
la subasta que más le conviene desde el punto de vista de su utilidad, y qué
probabilidad tiene que éste adquiera el bien a ser subastado. La simulación propuesta
tendrá como base la solución del problema de optimización planteado en la ecuación
1. En ésta se plantea la maximización de la utilidad esperada del participante sujeta a
que la oferta debe ser menor a la valoración que dicha persona tiene sobre el bien y
una mínima cantidad por la cual podrá ser admitida una oferta.
ISC-2002-2-1
45
) /(),( maxi
bibFibivU −
Sujeto a que ii vb ≤
bb iˆ≥
Ecuación 1 Maximización de la utilidad del participante
A continuación se muestra las variables de la simulación y el macro algoritmo del
proceso de recomendación:
Variables de Estado: son las variables necesarias para poder realizar la simulación.
- bjk es la oferta realizada en la ronda j por el participante k.
Constantes: constantes para ser tenidas en cuenta en la simulación.
- vk valoración que está dispuesto a tener el participante k.
- φ es el parámetro de la distribución de las valoraciones de los participantes.
Este parámetro se determina antes de comenzar la simulación a diferencia del
proceso de negociación en el que el parámetro es ajustado en cada ronda de la
subasta.
Macro algoritmo:
1. Estimación del parámetro φ a partir de la historia que hasta ese momento se
tenga de la subasta.
2. Generación de la oferta para cada participante de la subasta con base en la
ecuación 1.
3. Repetir los pasos uno y dos k-veces. 4. Recomendar al participante entrar o no en la subasta i. 5. A partir del resultado de la simulación establecer si el bien fue adjudicado al
participante.
Para obtener la solución al problema de la ecuación 1 se llevaron a cabo los
siguientes pasos.
En primera instancia lo que se desea obtener la maximización del valor esperado de la
utilidad del participante i que desee adquirir un bien:
[ ]),(U i ii vbEMax
Sujeto a que bbiˆ≥
Lo que deriva la siguiente ecuación:
)/()( ii bbFbiviMax −− γγ
ISC-2002-2-1
46
Sujeto a que bbiˆ≥
Ecuación 2
La restricción de ii vb ≤ no será tenida en cuenta para la solución de este problema,
gracias a las características de la función objetivo, pues en el óptimo ib debe ser
menor a la valoración de i.25
Para solucionar la ecuación 2 es preciso determinar en primera instancia la función de
probabilidad )/( ii bbF − . Para el desarrollo de esta tesis la función de probabilidad a
utilizar va estar definida por una distribución uniforme26
. Se dice que una variable
aleatoria X está distribuida uniformemente sobre el intervalo (a,b), si su función de
densidad de probabilidad está dada por:
≤≤−
contrario lo de 0
bx a )/(1),:(
abbaxf 27
Ahora bien, dado que se necesita de la función acumulada, realizamos la integral de
la función de densidad de probabilidad para obtener el siguiente resultado: dada la
)( xXP ≤ se llega a que la función acumulada F está determinada por:
ab
axF
−−= .
Para la recomendación se tendrán en cuenta dos situaciones, la primera cuando no
existe asociada una historia en la subasta, a la que el partic ipante quiera pertenecer,
eso quiere decir que la subasta del bien aún no ha comenzado y la segunda cuando
exista una historia previa sobre el bien a ser subastado, que el participante quiera
adquirir.
Lo que se quiere obtener en términos generales para las dos situaciones es la
probabilidad que la oferta a realizar por i sea mayor a las ofertas realizadas por los
otros, esto es )( ii bbP −≥ , de la cual se deriva la siguiente expresión:
)( ii bbP −≥ = 1 - )( ii bbP −≤
la cual es equivalente a:
25
Nótese que si la oferta supera a la valoración, la función objetivo sería negativa. 26
Supóngase que ocurre un evento en que una variable aleatoria toma valores de un intervalos finito,
de manera que éstos se encuentran distribuidos igualmente sobre el intervalo. Esto es la probabilidad
de que la variable aleatoria tome un valor en cada subintervalo de igual longitud es la misma y este es
justamente el caso que se tiene. 27
Canavos C. George Probabilidad y Estadistica. Aplicaciones y métodos. México 1988.
ISC-2002-2-1
47
)( ii bbP ≤− = ijcon )(1
≠≤∏=
n
jji bbP
Ecuación 3
donde n es el número de jugadores que están participando por adquirir el bien.
La anterior ecuación es válida teniendo en cuenta el supuesto de que las
probabilidades de los n jugadores son independientes entre sí. De la ecuación 3 se
deriva el hecho de que dada una distribución uniforme, la función acumulada de ésta
es:
)( ii bbP ≤− = ijconInfSup
Infbn
j
i ≠−
−∏=
limlim
lim
1
Ecuación 4
Para términos de la recomendación que se va a suministrar, se asumirá que el límite
superior (limSup) y el límite inferior (lim Inf) estarán definidos de la siguiente
manera:
- Primer caso: dada la incertidumbre que se tiene cuando no hay historia, se
definirá que el LímiteSuperior(LimSup) igual a iv y el LímiteInferior(LimInf)
estará definido por b̂ .
- Segundo caso: dado que no hay incertidumbre debido a la existencia de una
historia previa sobre la subasta del bien, se definirá el
LímiteSuperior(LimSup) igual al valor máximo medio ofrecido en cada ronda
menos σ 28 medio y el LímiteInferior(LimInf) estará definido por el valor
mínimo medio de todas las rondas ronda.
Una vez tenidos en cuenta los anteriores supuestos, se deriva de la ecuación 4 que:
)( ii bbP −≥ =
)1(
limlim
lim−
−
− n
i
InfSup
Infb
Ecuación 5
Ahora, que ya tenemos determinada la función acumulada de probabilidad definida
por la ecuación 5 podemos resolver la ecuación 2. Reemplazando el valor de la
ecuación 5 en la ecuación 2 obtenemos el siguiente resultado:
28 Tomando la desviación ( σ ) como: ∑
= −−n
i n
bbi
1 1
ISC-2002-2-1
48
)1(
limlim
lim)(
−
−
−−
n
i
InfSup
InfbbiviMax γγ
Sujeto a que bb iˆ≥
Ecuación 8
Aplicando Lagrange29
sobre la ecuación 8 obtenemos el siguiente resultado:
1
limlim
lim)(
−
−
−−
n
i
InfSup
InfbbiviMax γγ + )ˆ(* ibb −λ
Ahora derivamos con respecto a bi y obtenemos que:
λγγγ
γ −
−
−−
−−+
−
−−−=
−−−
21
12
limlim
lim
limlim
)1(*)(
limlim
lim*)(
n
i
n
ii
i InfSup
Infb
InfSup
nbivi
InfSup
Infbbvi
db
df
Ahora igualando a cero )(lim* ibInf −λ se tienen dos casos, uno para cuando λ es
diferente de 0, el cual generaría
ibInf =lim
Con λ igual a 0 se tiene que
21
12
limlim
lim1
limlim
)1(*)(
limlim
lim*)(
−−−
−
−−
−−−−=
−
−−
n
i
n
ii
InfSup
Infb
InfSup
nbivi
InfSup
Infbbvi
γγ γγ
Despejando bi* se obtiene el valor que finalmente dará la recomendación con el fin
de que el participante tome la decisión de entrar o no a dicha subasta. Al obtener el
valor de bi*, se pueden llegar a tener dos posibles situaciones:
• Situación 1: el bi* es mayor que el límite superior: Para este caso no es
posible asociarse una probabilidad de que el participante adquiera el bien. Por
29
Stewart James. Calculus Early Transcendentals Third edition. Para encontrar un valor mínimo o
máximo de una función f(x,y,z) sujetos a g(x,y,z) ≤ k (asumiendo que este valor extremo existe): a)
Encontrar los valores x,y,z y λ tal que ∇ f (x,y,z)= λ ∇ g (x,y,z) y que g (x,y,z)=k. b) Evaluar f
en todos los puntos (x,y,z) que salen del paso a). El valor más grande es el máximo valor de f y el más
pequeño es el mínimo valor de f.
ISC-2002-2-1
49
lo tanto el criterio de recomendación para este caso estará determinado por la
utilidad esperada y por el bi*.
• Situación 2: el bi* es mayor que el límite superior: Para este caso no es
posible asociarse una probabilidad de que el participante adquiera el bien. Por
lo tanto el criterio de recomendación para este caso estará determinado por la
utilidad esperada, la probabilidad de adquirir el bien y por el bi*.
Como resultados empíricos del algoritmo supongamos que estamos en una subasta,
en la que el comprador está en busca de un bien (televisor plano) con ciertas
características (21 pulgadas-Sony). El agente de recomendación, entonces busca todas
las posibles subastas en las que se encuentra el bien con las características que el
comprador desea y comienza el proceso de recomendación. Para propósitos prácticos
de este ejemplo, supongamos que la aversión al riesgo (γ ) del cliente es de 0.8, que
la máxima valuación por la que está dispuesto a pagar para adquirir el bien es de (vi)
1200 unidades y que lo mínimo por lo que el subastador vende su bien ( b̂ ) es de 500
unidades. En primera instancia supongamos que hay dos subastas a las que puede
ingresar el comprador, la primera aun no ha comenzado y tiene dos posibles
compradores del bien; mientras que en la segunda hay dos jugadores hasta ahora que
van en la primera ronda con los siguientes resultados:
Identificador de Subasta Jugador Oferta
4 Jugador 1 1000
4 Jugador 2 590
Por lo tanto para el primer caso los resultados que el algoritmo de recomendación
daría sería el siguiente:
Identificador de la Subasta
Utilidad Esperada
Probabilidad de adquirir el
bien
Oferta (bi) Límite Inferior
Límite Superior
3 78.96 0.55556 888.888 500 1200
Dado que para este caso hay una historia previa, de una ronda, se hace la corrección
correspondiente al límite inferior, tomándolo como el menor de las ofertas generadas
en la ronda, y el límite superior como el máximo de las ofertas menos la desviación
estándar de las ofertas de la ronda, por lo tanto para el segundo caso los resultados
serían los siguientes:
Identificador de la Subasta
Utilidad Esperada
Probabilidad de adquirir el
bien
Oferta (bi)
Límite Inferior
Límite Superior
4 70.73 0.889 928.888 590 971.0086
ISC-2002-2-1
50
Por lo tanto se le mostraría al comprador el resultado del proceso completo de
recomendación para que este tome la decisión a cual subasta es en la que desea
participar.
ISC-2002-2-1
51
8 CAPÍTULO 7: TÉCNICAS DE NEGOCIACIÓN
El foco de una negociación es maximizar los resultados dentro de restricciones del
entorno. Tratar de dar una clasificación exhaustiva de estrategias de negociación es
difícil puesto que una estrategia puede ser realizada por cualquier algoritmo que
evalué resultados, compute acciones apropiadas y siga protocolos para el intercambio
de información.
Negociación es un proceso de búsqueda. Los participantes realizan búsquedas en un
espacio multidimensional (e.g. cantidad, precio) tratando de encontrar un punto del
espacio en el cual ellos lleguen a un acuerdo en común y cumplan con sus objetivos.
Cuando las interacciones entre los participantes de la negociación son del tipo
muchos a muchos, el mecanismo apropiado es un mercado; para el caso de uno a
muchos, es utilizado el mecanismo de la subasta.
Existen varias técnicas para la realización de un proceso de negociación. Por una
parte se encuentran técnicas analíticas, las cuales están basadas en principios de
negociación e interacción entre individuos desarrollados por la teoría de juegos; por
otro lado, se encuentran modelos desarrollados con aproximaciones evolutivas, en las
cuales existe un algoritmo que opera sobre la historia de la negociación para que ésta
sea usada como base para el posterior desarrollo de la misma. Existe otro tipo de
técnica, la cual se basa en la formulación de un problema de satisfacción de
restricciones CSP (constraint Satisfaction Problem), en los cuales se busca la
asignación de valores a las variables de interés satisfaciendo el conjunto de
restricciones propuestas.
Como pudo verse, existen diferentes aproximaciones para el proceso de negociación,
las cuales pueden ser de gran ayuda en la búsqueda de una forma más rápida y
eficiente de estos procesos. Dependiendo del contexto donde se planee desarrollar la
negociación se puede emplear una u otra técnica, aunque puede darse el caso que a
partir del uso combinado de éstas se genere un híbrido con el que se tengan mejores
resultados.
Enseguida se definirá el modelo con el que se plantea el desarrollo de la negociación
en la subasta.
ISC-2002-2-1
52
8.1 Modelo de negociación
Como conclusión de la descripción anterior, especificar un modelo de negociación
está íntimamente relacionado con el ambiente donde ésta se planea implementar. Por
tal motivo, el tratamiento de una subasta desde el punto de vista de teoría de juegos
parece ser una buena aproximación debida la imposibilidad que para un agente
significa en un momento de la negociación conocer de alguna manera la estrategia
seguida por los otros participantes, lo cual puede ser solucionado si se escoge de
manera adecuada un modelo planteado por esta teoría..
El primer paso a realizar es plantear la subasta como un juego, lo cual fue realizado
en el capítulo 6, luego de esto debe especificarse la manera en que los agentes
incorporarán la información de la subasta al juego especificado, para esto debe
definirse el esquema de aprendizaje a seguir. Cualquier esquema que garantice las
condiciones del modelo utilizado sirve como mecanismo de aprendizaje. Para esta
tesis se empleará el esquema brindado por el juego ficticio, el cual está descrito en el
capítulo 5 y por lo tanto no se entrarán en mayores detalles.
El éxito de la negociación será determinado por el tipo de modelo escogido y las
propiedades que este tenga tales como existencia de equilibrio, convergencia de
creencias, etc.
El siguiente paso para definir por completo el modelo será la manera en que el agente
realizará las ofertas para cada ronda de la subasta. Para esto se utilizará la siguiente
heurística.
8.1.1 GENERACIÓN DE OFERTAS EN UNA SUBASTA SECUENCIAL
Una oferta realizada por un agente es una decisión basada en la historia que éste ha
observado y en el modelo de aprendizaje que utilice. El objetivo del agente siempre
es la maximización de su función de utilidad, por lo que la oferta realizada debe estar
acorde con este principio.
El algoritmo propuesto tiene como fin generar una oferta que maximice la utilidad del
agente dada una historia observada, a esta oferta se le conocerá como oferta óptima
Supuestos sobre los agentes
Este algoritmo supone que el agente utiliza un juego ficticio como esquema de
aprendizaje en la subasta, por lo que para cada secuencia de la subasta las acciones
tomadas por cada uno de sus participantes están determinadas mediante una función
de distribución determinada por dicho esquema.
ISC-2002-2-1
53
8.1.1.1 Algoritmo
En este algoritmo se denotará por [ ]1,0:)( →⋅ jij Af como la probabilidad que el
agente j utilice una acción en la secuencia i-ésima de la subasta, jf− es la función de
distribución para cualquier jugador excepto j. El conjunto de información para la i-
ésima secuencia de la subasta para el agente j será identificado como ijΙ , mientras
que un nodo que pertenezca a este conjunto será ),,(i
jjij ak −Ιη , donde k es el número
del nodo, ja la acción asociada a ese nodo y Ii-j los conjuntos de información para los
otros agentes.
El algoritmo está basado en la solución de un juego representado en su forma extensa,
pero en los conjuntos de información no se encuentran todas las estrategias que
pueden tomar los participantes sino aquellas que han sido utilizadas en alguna
secuencia anterior del juego.
Tratar de solucionar un juego en su forma extensa puede ser considerado como un
problema NP, por lo que es necesario desarrollar un criterio que permita replantear la
solución a uno de menor complejidad. A continuación se describe dicho criterio:
La idea del algoritmo se dará con base en la figura 9 donde se representa una subasta
en su forma extensa. El jugador A debe elegir la acción a tomar, x, para la secuencia
de la subasta en que se encuentra. Existen otros jugadores, B y C, cada uno con dos
acciones posibles a tomar. La función de utilidad de a A va a estar dada por 5.0
)8(5.0)( xxu −⋅=
Figura 10 Ejemplo de una subasta con tres participantes representada en forma extensa
4 4 3 3
3 7
X
B
C
A
ISC-2002-2-1
54
Dado que A desea maximizar su utilidad, la oferta que realice b debe satisfacer:
(1)
[ ]
}){}{)(max(arg
}){)(max(arg
)},max({)(max(arg
))(max(arg
CB
CB
CB
axPaxPxb
axaxPxb
aaxPxb
xEb
≥⋅≥⋅−⋅=
≥∧≥⋅−⋅=
≥⋅−⋅=
−⋅=
γ
γ
γ
γ
νγνγνγ
νγ
.
donde x es la oferta de A, v la valoración que tiene el jugador sobre el bien y γ es una
constante para A. aB y aC representan las acciones que pueden tomar los jugadores B
y C respectivamente (en este caso aB∈ {7,3} y aC∈ {3,4} ).
Para este ejemplo, existen dos conjuntos de información uno para B y otro para C,30
los cuales se presenta a continuación:
( ){ }),3,1(,,7,1 CCB ΙΙ=Ι
( ){ }),4,2(),,3,2(),,4,1(,,3,1 φφφφ=Ι C
La probabilidad que x sea mayor a una acción tomada por el jugador j va a estar
condicionada por la frecuencia con que ésta ha sido utilizada31
, así esta probabilidad
va a ser definida por:
(2)
>
=≥ contrario lo de , 0
xsi , )(}{
jjij
j
aafaxP
Teniendo esto en cuenta, la ultima igualdad de (1) puede ser redefinida como:
(3) ),max()),()()(max(arg CBCi
CBi
B aaxafafxb >⋅⋅−⋅= γνγ
Al analizar la ecuación (3) se ve que esta función puede ser descompuesta en dos
partes. La primera de éstas va a estar conformada por la expresión γνγ )( x−⋅ la cual
representa la utilidad devengada al utilizar la acción x, ésta va a ser denotada como
u(x); la segunda parte es )()( Ci
CBi
B afaf ⋅ y es simplemente la multiplicación de las
frecuencias de las acciones posibles a tomar por los otros jugadores. Es claro que u(x)
30
En la definición de un juego representado en su forma extensa, se debe tener para cada participante
un conjunto de información, pero en esta representación no se tendrá en cuenta el conjunto del jugador
para el cual se generara la oferta, esto se debe a la forma como opera el algoritmo. 31
Este supuesto proviene del esquema de aprendizaje utilizado, pues en un juego ficticio se supone que
los otros jugadores utilizaran alguna acción tomada en el pasado para la cual existe una frecuencia de
utilización asociada.
ISC-2002-2-1
55
crece a medida que x tiende a cero, pero por otro lado se tiene que ),max( CB aax > ;
combinando estas dos ideas se llega a que32
:
(4) { } 1),max( += cB aax
Ahora es necesario encontrar la tupla { } { }4,33,7,),( =∧=×∈ CBCBCB AAAAaa que
satisfaga (3), para esto se definen:
{ }{ }CBjAAxxxjx iCBiiiii ,,,:),(1
=∪∈>= +ψ
{ } { }CBjAyyfyfy jiikikik ,,),()(:)(1
=∈>= +φ .
Con estos dos conjuntos, se procede a buscar iterativamente tuplas de acciones que
dominen a otras33
, a continuación se describe el procedimiento a realizar para dicha
selección:
1. Seleccione la primera componente del primer elemento de ψ tal que 1
ψ 34.
Este elemento tiene la particularidad que
{ } { }( ) ),,max(4,33,7),(11
ψψ =×∈∀ CBCB aaaa , es así que
)()),,(max(11
ψψ uaau CB = , por lo que la utilidad parcial35
esperada para esta
acción va a ser )()(11
ψψ jfu ⋅
2. Para determinar por completo la tupla falta escoger el otro elemento, para esto
se debe seleccionar la acción a que cumpla con que su imagen bajo j−φ sea el
máximo de este conjunto y que no haya sido eliminada del conjunto ψ en
iteraciones pasadas , ésta va a ser denotada por )1(j−φ . Una vez identificado
este elemento, la utilidad esperada va a estar representada por:
)1()()(22 11 ψψ φψψ −⋅⋅ fu
3. Se elimina 1
ψ de ψ . Si todas las acciones disponibles para un conjunto de
información formaron parte de un proceso de selección como el descrito en 1
o ya se especificaron todas las acciones disponibles en los conjuntos de
información se detiene la iteración, de lo contrario hay que retornar al paso 1 .
32
Por los supuestos del modelo se tiene que x∈Ν , entonces x debe ser el siguiente natural al máximo
de la tupla de acciones aB y aC 33
Este procedimiento esta basado en la idea de la eliminación de estrategias dominadas, en donde el
sentido de dominación va a estar dado por la función de utilidad esperada.
( ))()(),())1(()())1(,(
),()1(,
212222
2
1111
11
bffbuffu
b
ψψψψψψ
ψ
ψψφψφψ
ψφψ
−−−−
−
≥
f
34 Para abreviar se denotara por
1ψ a la primera componente del elemento (la acción) ψ , y
2ψ la
segunda componente (el identificador del jugador). 35
Por utilidad parcial se entiende como aquella utilidad donde aun no se ha especificado todos las
acciones que la conforman.
ISC-2002-2-1
56
4. A partir de las tuplas seleccionadas, se debe escoger aquella que tenga la
mayor utilidad esperada. Con esta tupla y utilizando la ecuación 4 se estable
la oferta a realzar para la i-ésima secuencia de la subasta.
La siguiente tabla representa las frecuencias de ocurrencia de las acciones de B y C:
7 4 3
B ¼ ¾
C 2/3 1/3
Tabla 3. Frecuencias de ocurrencia de las acciones para los jugadores B y C a partir del juego ficticio planteado por A.
Para este caso ψ sería igual a {(7,B), (4,C),(3,B),(3,C)}, y }7,3{=Bφ , }3,4{=Cφ
El primer paso del algoritmo daría como resultado 71
=ψ , con lo que la utilidad
parcial seria igual a 0.125. El segundo paso del algoritmo arrojaría )1(B−φ = 4,
obteniéndose una utilidad igual a 0.083; el resultado de esta iteración seria la pareja
(7,4).
Ahora como resultado de la siguiente iteración se tendría la pareja (3,4) con una
utilidad asociada de 0.5. En la tercera iteración se tiene la pareja (3,3) con una
utilidad de 0.27. Dado que las acciones disponibles de B ya se eliminaron, no es
necesario seguir iterando pues ya se tienen todas las parejas que dominan al resto. Es
claro que la pareja (3,4) es la que maximiza la utilidad esperada, por lo que la oferta
que A debe realizar de acuerdo con la ecuación (4) debe ser 5.
Una vez dada la idea intuitiva del algoritmo, se procederá a describirlo en su forma
general.
8.1.2 Especificación del algoritmo para la selección de la mejor accion a tomar.
1. Crear los elementos ψ y Ν∈∀ kk ,φ . Si el conjunto de información asociado
para algún jugador es vació entonces la acción asociada a este jugador va a ser
igual a36
:
36
Dado que en la prime ra secuencia de la subasta no se tiene información disponible sobre las acciones
de los otros participantes, se puede suponer que la acción que cada uno de los otros va a realizar será
una variable aleatoria uniformemente distribuida sobre el intervalo [ Supb,ˆ ], donde Sup es un valor
no determinado. Asumiendo esta distribución para las ofertas de los otros participantes y utilizando las
ecuaciones proporcionados en (1) se llega que la oferta a realizar debe ser la solución del siguiente
problema:
ISC-2002-2-1
57
1
)1(
−+−⋅+⋅
n
nvb
γγ
)
Seleccionar el primer elemento de ψ , el cual va a ser identificado por 1
ψ
2. Sea j el jugador que tiene la acción asociada al elemento1
ψ , ahora se debe
escoger para cada uno de los jugadores jii ≠Ν∈ , la acción ai tal que cumpla
con que su imagen bajo iφ sea el máximo de este conjunto y no haya sido
eliminada del conjunto ψ en iteraciones pasadas , ésta va a ser denotada por
)1(iφ . Con )1(iφ y 1
ψ se forma el conjunto de acciones kϑ para la k-esima
iteración.
3. Se elimina 1
ψ de ψ . Si todas las acciones disponibles para algún conjunto
de información formaron parte de un proceso de selección como el descrito en
2 se detiene la iteración, de lo contrario hay que retornar al paso 2.
4. A partir de ϑ , se debe escoger el k-ésimo elemento tal que tenga la mayor
utilidad esperada. Con esta tupla y utilizando la ecuación 4 se establece la
oferta a realzar para la i-ésima secuencia del juego. Si esta oferta es mayor a
límite superior de las ofertas (la valoración del objeto para este caso) la oferta
a realizar debe ser este límite.
8.1.3 Algoritmo para la generacion de ofertas en cada secuencia de la subasta
1. Seleccione la mejor acción por medio del algoritmo 2.7.3, ésta será denotada
por *b
2. Calcular los límites de donde debe estar la oferta
3. Calcular el promedio de las últimas k secuencias de la subasta. Este k es el
recall del aprendizaje del agente. A este promedio denótese por b
4. Si el periodo de calentamiento37
no ha terminado, genere una oferta de la
siguiente forma:
( ) InfSupbbsino
InfSupbbbbsi
limlim1
limlim)(
**
***
−⋅−+=⇒
−⋅−=⇒>
γ
γ
Si el periodo de calentamiento ya ha terminado, *b debe ser calculado como
( )γ−⋅−+= 1*** bvaloracionbb
5. Verificar si se violó la valoración del bien, si este es el caso la *b debe ser
igual a la valoración.
( )1
ˆ
ˆ.max
−
−−⋅−⋅
n
bSup
bbbv γγ
37 El periodo de calentamiento sirve para brindar la oportunidad a los agentes de conocer la forma
como los otros participantes realizan sus ofertas.
ISC-2002-2-1
58
9 CAPÍTULO 8: DISEÑO Y ARQUITECTURA DE LOS AGENTES Y DEL MERCADO INTELIGENTE
Este capítulo tiene como propósito el mostrar como sería el diseño y la arquitectura
del mercado inteligente que se quiere realizar. Además se mostrará las infraestructura
y organización que van a tener los agentes inteligentes dentro de éste, mostrando su
utilidad y funcionalidad dentro del mercado.
9.1 Comportamiento de los agentes Coordinador Proceso (CP): se encarga de recibir a los posibles compradores o
vendedores, pidiendo los respectivos datos según sea el caso, para luego asignar un
agente ya sea coordinador de compra o de subasta dependiendo del caso.
Coordinador de Compra (CC): es el encargado tanto de seguir el proceso de
recomendación como del proceso de negociación. Luego de obtener la información
recolectada por el agente recomendador informa al usuario el resultado obtenido,
quien finalmente toma la decisión de a que subasta pertenecer. Una vez tomada la
decisión, le es asociado un agente negociador el cual es el encargado de llevar el
proceso de negociación. Este coordinador informa en todo momento al usuario el
desarrollo de la subasta a la que pertenece.
Coordinador Subasta (CS): es el encargado de manejar las distintas peticiones de
los agentes recomendadores con su respectiva respuesta. Del mismo modo, se encarga
de administrar el desarrollo de la subasta de acuerdo a las ofertas realizadas por los
diferentes agentes negociadores y es quien posee toda la información sobre las
características del objeto que se está subastando.
Agente Recomendador (AR): se encarga de buscar dentro de las diferentes subastas
la que más le conviene al usuario dependiendo de la información que este haya
suministrado. Este agente interactúa con el coordinador de compra cada vez que
establece la posibilidad de que el usuario pertenezca a una subasta.
ISC-2002-2-1
59
Agente Negociador (AN): es el encargado de realizar la oferta durante cada ronda de
una subasta al coordinador de la subasta.
Agente Auxiliar (AU): es el encargado de suministrar la información asociada de
una subasta ya sea a un negociador o a un recomendador.
9.2 Arquitectura del mercado inteligente
En la descripción del sistema del mercado inteligente, tenemos que cada uno de los
coordinadores, tanto del proceso administrativo, de negociación y de recomendación
forman un sistema multi-agente. Por lo tanto, para el desarrollo de esta tesis se ha
decidido realizar una arquitectura tipo cliente / servidor.
Caso I (comprador) El comprador estará compuesto de una aplicación integrada por un CC con sus
diferentes AN1...ANN y sus AR1...ARN asociados, que interactuarán con un servidor
compuesto por un CP que tendrá a cargo las diferentes CS1...CSN y a su vez
compuesta por una Base de Datos (BD) en la que se mantendrá toda la información
generada por el mercado inteligente, como lo ilustra la siguiente ilustración:
Figura 11 Arquitectura comprador del bien
Usuario n
Usuario2
Usuario1
.
.
.
Comunicación
BD CC
ar1..arn an1 ann
CC
ar1..arn an1 ann
CC
ar1..arn an1 ann
CP
CS1 CS2.. CSN
AU1..AUN
Coordinación
ISC-2002-2-1
60
Caso II (vendedor) El vendedor estará compuesto de una aplicación que le permitirá saber la historia o la
información en curso de las subastas asociadas al mismo, que interactuarán con un
servidor previamente exp licado, como lo ilustra la siguiente ilustración:
Figura 12 Arquitectura subastador
El mercado inteligente puede ser dividido en cuatro fases diferentes, compuestas de la
siguiente manera:
Subastador n
Subastador2
Subastador1
.
.
.
Comunicación
BD
CP
CS1 CS2.. CSN
Coordinación
ISC-2002-2-1
61
1. Registra
1. Registra
2. Ingresa
2. Ingresa
4. Asigna
4.1 Asigna 4.2 Asigna
4. Asigna
5 Notifica
5 Notifica
3 Envió
de info.
3 Envió
de info
9.2.1 Fase I (Ingreso al sistema)
El proceso de ingreso al sistema será administrado por un Coordinador de proceso
(CP).Existen dos tipos de usuarios que pueden ingresar a la subasta, uno que desee
adquirir un bien (comprador) y un subastador (vendedor), quien es quien desea
vender un bien. En el caso de que el usuario sea aquel que desee adquirir un bien, le
será asignado por el sistema un Coordinador de Compra (CC), que a la vez estará
compuesto de un Agente Negociador (AN) y un Agente Recomendador (AR) (a). Para el caso en el que el usuario quiera vender un bien se le será asignado un
Coordinador de Subasta (CS)
(b).Fase Ia
Figura 13 Ingreso al sistema de un comprador de un bien
Fase Ib
Figura 14 Ingreso al sistema de un subastador
CP CC1 USUARIO1
AN AR
USUARIO2CS
CP
ISC-2002-2-1
62
Verificación de
estado del CC
1. Suministrar la
info al AR.
2. Pedir info del
estado de la
subasta.
3. Suministrar la
info al AR.
5. Retornar
resultado de la
simulación
4. Procesar
6. Informar
resultado
Verificación de
estado del AR
Notificación de
cambios.
9.2.2 Fase II (Busqueda de la subasta ideal)
Una vez ya se ha establecido el tipo de usuario que entró al sistema y a su vez éste
haya ingresado al mismo el Agente Recomendador (AR) inicia la búsqueda
interactuando con el Coordinador de Subasta para buscar la subasta óptima en la que
podría ingresar el usuario.
Figura 15 Proceso de recomendación
Verificación de
cambios de
estado
USUARIO1
CC
CS
AR
CP
AU
ISC-2002-2-1
63
Verificación de
estado del CC Verificación de
estado del CS
1. Procesar oferta
2. Envió de oferta 3.
Ordenamiento
de ofertas 4. Resultado de
la ronda
5. Envió del
resultado de l a
ronda
6 Mostrar
resultado. Verificación de
estado del AN
Verificación de
estado del AN
Notificación de
cambios.
9.2.3 Fase III (Negociacion)
Cuando el usuario establezca a qué subasta quiere pertenecer se da inicio al proceso
de negociación por el Agente Negociador (AN), y a su vez se mantiene informado al
usuario de los resultados obtenidos en cada ronda de la subasta a la que pertenece.
Figura 16 Proceso de negociación
USUARIO1
CC
ANCS
CP
Verificación de
cambios de
estado
AU
ISC-2002-2-1
64
1. Ingreso
2. Verificación
3. Suministrar
historia de la
subasta
4. Recopilación
5.Envio de info.
9.2.4 Fase IV (Notificación del proceso de la subasta al subastador)
Si el usuario es el vendedor de uno o más bienes en el mercado inteligente podrá
acceder a la información e historia relacionada alrededor de su o sus subastas.
Figura 17 Información subastador
9.3 Arquitectura de los coordinadores Los tres coordinadores (proceso, compra y subasta) y del agente auxiliar van a estar
modelados bajo la misma arquitectura que estará definida de la siguiente manera:
Figura 18 Arquitectura coordinador -agente auxiliar
- Comunicación: este módulo es el encargado de recibir, interpretar y enviar
mensajes al exterior del coordinador o del agente. Una vez interpretados los
mensajes son pasados al módulo de planeación.
USUARIO2
CS1
CP
CS2 CSn
ESTRATEGIA PLANEACION
COMUNICACIÓN
ISC-2002-2-1
65
- Planeación: este módulo será el encargado de armar el plan de ejecución,
dada la interpretación realizada a través de los mensajes recibidos del módulo
de comunicación, luego este plan es pasado al módulo de estrategia para que
sea ejecutado.
- Estrategia: este módulo se encarga de llevar a cabo la ejecución de una
estrategia definida para el manejo de una situación, cuya respuesta luego va a
ser utilizada ya sea para un proceso interno del agente o para ser comunicada
al exterior.
9.3.1 Coordinador de proceso
Funcionalidad La funcionalidad correspondiente al coordinador de proceso es la siguiente:
- Recibir información de nuevos usuarios.
- Validación de usuario previamente inscritos
- Asociar coordinadores a usuarios dependiendo del caso.
- Creación de nuevos coordinadores (subasta o compra).
- Verificación del estado de la negociación.
- Enviar la información sobre las subastas activas al agente recomendador.
- Recibir peticiones del agente recomendador.
- Verificar estado del coordinador de compra.
Control
Submetas:
Las metas de cada uno de los agentes del sistema son llamadas submetas porque se
derivan de la meta global. Las submetas correspondientes al agente coordinador del
proceso son:
- Coordinar el proceso de admisión de usuarios.
- Coordinar el proceso de asignación de coordinadores especializados.
- Garantizar el correcto funcionamiento de los procesos de negociación que se
estén llevando a cabo.
Plan
A continuación se definen las estrategias de cada uno de los planes del coordinador
para llevar a cabo sus submetas que pueden realizarse o no de manera secuencial.
Además, cuando algún plan contenga estrategias complejas se describirán un poco en
detalle.
Para cumplir con la submeta de admisión de usuarios se llevará a cabo:
- Registrar un usuario.
ISC-2002-2-1
66
- Validar usuario.
Para cumplir con la submeta de asignación de coordinadores se llevará a cabo el
siguiente plan:
- Coordinar el proceso de asignación del coordinador especializado.
Para cumplir con la submeta de garantizar el correcto funcionamiento de los procesos
de negociación se llevarán a cabo los siguientes planes:
- Mal funcionamiento de un coordinador especializado.
- Verificación del estado de negociación.
Estrategias
Para coordinar este proceso se necesita que el controlador de proceso siga las
siguientes estrategias:
- Registrar a un usuario: una vez se ha detectado que el usuario es nuevo se
procede a solicitar los datos necesarios, si algún dato falta y no coincide con el
formato esperado se le solicita al usuario la corrección del mismo.
- Validar usuario: con base en un login y password proporcionado por el
usuario se realiza la validación del mismo y se le asigna el coordinador
correspondiente ya sea este comprador o vendedor.
- Mal funcionamiento de un coordinador especializado: si es un coordinador
de subastas, se procede a informales a los coordinadores de compra asociados
a éste que ocurrió una falla y que por tal motivo debe finalizar el estado de
negociación; si es un coordinador de compra simplemente se le asigna uno
nuevo al usuario. En cualquiera de los dos casos se perderá la información de
estos.
- Verificación del estado de negociación: mira si no se han dado problemas en
el proceso de negociación, realizando peticiones a los coordinadores de
subasta sobre el estado en el que estos se encuentran. Si existe un error pasa a
realizar el plan de mal funcionamiento de un coordinador especializado
previamente especificado. En caso de que la subasta haya terminado, se
eliminará dando por terminada la labor del coordinador de subasta.
- Coordinar el proceso de asignación del coordinador especializado: dependiendo de sí el participante es comprador o vendedor se le asignará el
coordinador de compra o de subasta.
9.3.2 Coordinador de subasta
Funcionalidad La funcionalidad correspondiente al coordinar de subasta es la siguiente:
- Recibir y responder peticiones de la historia de la subasta por parte de un
agente recomendador.
- Dar la información sobre las características del bien que está siendo
subastado.
ISC-2002-2-1
67
- Recibir ofertas por parte de un agente negociador.
- Procesar las ofertas recibidas para cada ronda de la subasta.
- Asociación de un nuevo participante de la subasta.
- Notificar la información concerniente al resultado de una ronda o la historia a
los participantes de la subasta
- Dar por concluida una subasta
- Responder ante las peticiones de estado de la negociación al coordinador de
proceso
- Listar los agentes participantes en la subasta
Control
Submetas:
Las submetas correspondientes al coordinador de subasta son:
- Coordinar el desarrollo de la subasta.
- Atender peticiones de los agentes recomendadores sobre el desarrollo y la
información de la subasta.
- Comunicar los resultados obtenidos en la subasta al coordinador de proceso
- Comunicar los resultados obtenidos en la subasta al agente negociador.
- Garantizar la integridad de cada ronda de la subasta.
Plan
Para cumplir con la submeta de coordinación del desarrollo de la subasta se tendrá en
cuenta el siguiente plan:
- Recepción de nuevos agentes participantes sólo al comienzo de cada ronda.
- Informar a los participantes que se va dar inicio a una ronda.
- Recibir las ofertas de los diferentes participantes para cada ronda.
- Determina el ganador de la ronda e informa a los participantes asociados al
mismo.
- Almacenamiento de la información de la ronda.
- Dar por terminada la subasta cuando se llega a un número determinado de
rondas.
Para cumplir con la submeta de atender peticiones de los agentes recomendadores
sobre el desarrollo y la información de la subasta se tendrá en cuenta el siguiente
plan:
- Dar la información sobre la historia de las ofertas realizadas en la subasta
hasta la última ronda completada.
- Informar a los recomendadores en caso de que una nueva ronda haya
comenzando para que éste revalué por medio de las agentes auxiliares.
Para cumplir con la submeta de comunicar los resultados obtenidos en la subasta al
coordinador de proceso se tendrá en cuenta el siguiente plan:
ISC-2002-2-1
68
- Informar el estado de la subasta al coordinador de proceso.
Para cumplir con la submeta de comunicar los resultados obtenidos en la subasta al
agente negociador se tendrá en cuenta el siguiente plan:
- Informar el resultado de la ronda a cada agente negociador que pertenezca a la
subasta en curso.
- Confirmación de la recepción de la información por parte del agente
negociador.
Para cumplir con la submeta de garantizar la integridad de cada ronda de la subasta se
tendrá en cuenta el siguiente plan:
- Verificar el estado de los agentes que están participando en cada ronda. En
caso de que el agente no se encuentre activo se dará por terminada el proceso
del mismo.
9.3.3 Coordinador de compra
Funcionalidad La funcionalidad correspondiente al coordinar de compra es la siguiente:
- Asignar un agente de recomendación.
- Asignar un agente negociador.
- Mantenerse informado sobre el estado de la negociación.
- Informar al usuario sobre el resultado de cada ronda de la subasta a la que esté
asociado.
- Informar al usuario sobre el resultado de la recomendación.
- Mantener informado al coordinador de proceso sobre el estado en que se
encuentra.
Control
Submetas:
Las submetas correspondientes al coordinador de compra son:
- Coordinar el proceso de recomendación
- Control del proceso de negociación
- Informar al usuario sobre los procesos que se estén realizando
ISC-2002-2-1
69
Plan
Para cumplir con la submeta de coordinar el proceso de recomendación se tendrá en
cuenta el siguiente plan:
- Con base a la información suministrada por el coordinador de proceso se
procede a asociar un agente recomendador.
- Monitorear los resultados suministrados por el agente recomendador y con
base en estos, para que el usuario tome la decisión de cual es la subasta a la
que desea ingresar.
- Verificar el estado del agente recomendador en el caso en el que esté inactivo,
toma los datos parciales de éste y asigna un nuevo agente recomendador para
que termine el proceso de recomendación.
Para cumplir con la submeta de control del proceso de negociación se tendrá en
cuenta el siguiente plan:
- Una vez elegida la subasta a la que se desea ingresar, se procede a crear el
agente negociador.
- Monitorear los resultados obtenidos en cada ronda de la subasta a la que
pertenezca el agente.
- Verificar el estado del agente negociador en el caso que esté inactivo, se
notifica al usuario que el proceso de negociación ha finalizado.
Para cumplir con la submeta de Informar al usuario sobre los procesos que se estén
realizando se tendrá en cuenta el siguiente plan:
- Se suministrará al usuario con la información y el resultado de cada ronda de
la subasta a la que pertenezca.
9.3.4 Agente Auxiliar Funcionalidad La funcionalidad correspondiente al agente auxiliar es la siguiente:
- Notificar al agente recomendador que el estado de la subasta ha cambiado.
- Suministrar al agente recomendador los nuevos datos de una subasta en dado
caso que los mismos hayan cambiado durante el proceso de recomendación.
- Notificar al agente negociador que el estado de la subasta cambió.
- Notificar al agente recomendador en caso de que el coordinador de subasta
quede inactivo.
- Notificar al agente negociador en caso de que el coordinador de subasta quede
inactivo.
ISC-2002-2-1
70
Dado que el núcleo de esta tesis gira alrededor del agente recomendador y del
negociador, se definirá la arquitectura de cada uno por separado a continuación.
9.4 Arquitectura de los agentes
Los dos agentes(recomendador, negociador) van a estar modelados bajo la misma
arquitectura que estará definida de la siguiente manera:
Figura 19 Arquitectura agentes
- Comunicación: este módulo es el encargado de recibir, interpretar y enviar
mensajes al exterior del coordinador o del agente para luego ser transmitidos
al módulo de planeación.
- Planeación: este módulo será el encargado de armar el plan de ejecución,
dada la interpretación realizada a través de los mensajes recibidos del módulo
de comunicación que luego serán transmitidos al módulo de estrategia.
- Estrategia: este módulo se encarga de llevar a cabo la ejecución de una
estrategia definida para el manejo de una situación, y generará un resultado
que podrá ser utilizado por el agente internamente o externamente al mismo.
- Problem Solving Engine (PSE): este módulo es la representación abstracta del
problema a tratar ya sea recomendar o negociar; donde se encuentran los
algoritmos, optimizaciones y heurísticas para resolver el problema.
9.4.1 Agente recomendador
Funcionalidad La funcionalidad correspondiente al agente recomendador es la siguiente:
- Buscar la subasta que cumpla con las características proporcionadas por el
coordinador de compra.
ESTRATEGIA PLANEACION
COMUNICACIÓN
PSE
ISC-2002-2-1
71
- Enviar mensajes de petición de información del historial de la subasta a cada
coordinador de subasta
- Enviar los resultados de la evaluación realizada por el mismo sobre cada
subasta que esté en curso.
- Recibir las características iniciales del usuario sobre el objeto que desea
adquirir.
- Recibir la información de la subasta suministrada por el coordinador de
subastas.
- Procesar la información recibida por el coordinador de subastas.
- Realizar peticiones al coordinador de proceso para establecer qué subastas
están activas.
- Recibir información del coordinador de proceso para saber qué subastas están
activas.
- Informar sobre el estado del agente al coordinador de compra
Control
Submetas:
Las submetas correspondientes al agente recomendador son:
- Realizar el proceso de recomendación.
Plan
Para lograr la submeta de realizar el proceso de recomendación se seguirá el siguiente
plan:
- Se buscará según las características recibidas por el coordinador de compra las
subastas que cumplan con dichas características.
- Se realizará la simulación correspondiente para establecer qué tan
recomendable es o no para el usuario dicha subasta
- Se informará al coordinador de compra sobre cada resultado obtenido.
9.4.2 Agente negociador
Funcionalidad La funcionalidad correspondiente al agente negociador es la siguiente:
- Registrarse a la subasta deseada por medio del envío de un mensaje al
coordinador de subastas.
- Enviar ofertas al coordinador de subastas.
- Enviar los resultados de cada ronda al coordinador de compras.
- Informar sobre el estado del agente al coordinador de compras y de subastas
- Generar ofertas para cada ronda
ISC-2002-2-1
72
- Recibir mensajes provenientes del coordinador de compra con el fin de
establecer la subasta a la que pertenece.
- Recibir mensajes del coordinador de subasta con la información de cada
ronda.
- Atender solicitudes que indaguen el estado de la negociación.
Control
Submetas:
La submeta correspondientes al agente negociador son:
- Realizar el proceso de negociación
Plan
Para lograr la submeta de realizar el proceso de recomendación se seguirá el siguiente
plan:
- Registrarse como nuevo participante con el coordinador de subasta
- Obtener información sobre la historia de la subasta
- Generar la oferta para la ronda
- Con base en la información enviada por el coordinador de la subasta,
informar al coordinador de compra sobre el resultado de la ronda
- Retomar desde el paso dos si no ha finalizado la subasta
9.5 Especificación de la comunicación
Para el desarrollo de esta tesis se utilizará como lenguaje base para la comunicación
el lenguaje KQML38
(Knowledge Query And Manipulation Language). Dada la
arquitectura que se utilizará en esta tesis, se ha decidido escoger la sintaxis del
lenguaje KQML dado que éste fue desarrollado para aplicaciones estructuradas a
partir de agentes que operan en forma autónoma y asincrónica. Esto permite que el
agente receptor tome diferentes acciones dependiendo del mensaje recibido; teniendo
en cuenta que cada agente es capaz de decidir con quién es que éste desea establecer
una comunicación selectiva. Los mensajes KQML son llamados ejecutores, debido a
que el mensaje produce que el receptor tenga que realizar alguna tarea, por lo que se
asegura que toda comunicación tendrá una respuesta por parte del receptor. De
acuerdo a las especificaciones el sistema de comunicación propuesto por KQML se
tendrán en cuenta los siguientes supuestos:
- El envió de los mensajes entre los agentes es unidireccional.
- El envió de mensajes puede tener un retraso asociado.
38
James Mcguire, Richard Pelavin, Stuart Chapiro, Chris Beck. DRAFT Specification of the KQML
Agent-Communication Laguange.
ISC-2002-2-1
73
- Cuando un agente recibe un mensaje, sabe quién fue el emisor
- Cuando un agente responde un mensaje va directamente a quien lo remitió.
- El sistema de mensaje será de tipo FIFO (first in- first out).
- Los mensajes podrán ser reenviados si el caso lo amerita.
Debido a la abstracción antes descrita las conexiones entre los agentes serán TCP/IP
ya sea por medio de una red local o en Internet.
La comunicación que se presentará en el mercado inteligente se dará a un mismo
nivel BA ⊗ donde ⊗ son los diferentes esquemas de mensajes comunicados entre
un agente y otro:
⊗ Significado
Ask-about A Solicita a B respuesta por una petición
especificada en content
Ask-all A solicita a B respuesta por una serie de
peticiones especificadas en content
Break A informa a B que la comunicación entre
los dos ha terminado
Error A informa a B que se cometió un error.
Make A le dice a B que debe hacer la acción
especificada en content
Monitor A es monitoreado por B
Ready A está listo para ejecutar alguna acción o
para recibir mensaje
Register B se registra en A
Standby B está en standby
Sorry B no puede responder a requerimientos
de A
Reply B debe responder a A cuando reciba
mensaje o requerimiento de este.
A partir de la anterior tabla se construirán los diferentes mensajes que podrán ser
transmitidos entre un agente y otro. Todos los mensajes tendrán una estructura en
común, dado por el siguiente formato de comunicación:
Palabra clave Significado : type Tipo del mensaje
:content El contenido de la información que un
agente necesita que sea llevada a cabo.
:ontology Contexto del mensaje.
:in- reply-to El nivel esperado de respuesta, dando
prioridad al mensaje.
ISC-2002-2-1
74
:reply-with Identificar si el remitente necesita que el
mensaje de respuesta sea enviado a otro
agente diferente del mismo.
:receiver Lugar de recepción del mensaje.
:sender Lugar de origen del mensaje.
9.6 Diseño del mercado inteligente
El diseño propuesta para el desarrollo del mercado inteligente estará compuesto por:
- Diagrama de clases de cada coordinador (procesos compra y subasta) y del
auxiliar de agente
- Diagrama de clases de cada agente (recomendador, negociador)
- Diagrama de secuencia de los principales procesos del mercado.
- Diagrama relacional de la base de datos.
- Estructura de los mensajes de comunicación
ISC-2002-2-1
75
9.6.1 Diagrama de clases
9.6.1.1 Coordinador de proceso
El diagrama del coordinador de proceso está compuesto de tres clases principales, la
de planeación, comunicación y estrategia. Las estrategias a seguir para el proceso de
planeación implementan una interfaz en común InterfazEstrategiaProceso.
COORDINADOR DE PROCESOS
PersistenciaProceso
PersistenciaProceso( )guardarInformacion( )cargarInformacion( )
InterfazComunicacion
srvEnviarMensaje( )Vector srvRecibirMensaje( )
buscarCoordinadorCompranumero
buscarCoordinadorCompra( )
asociarCoordinadorCompra
numero
asociarCoordinadorCompra( )
asociarCoordinadorSubasta
numero
asociarCoordinadorSubasta( )
insercionCompradornumero
insercionComprador( )
insercionVendedor
numero
insercionVendedor( )
eliminarVendedor
numero
eliminarVendedor( ) eliminarComprador
numero
eliminarComprador( )
buscarCoordinadorSubastanumero
buscarCoordinadorSubasta( )
InterfazEstrategiaProceso
construirEstrategia( )
ComunicacionmensajeurlLocalurlDestinopuerto
Comunicacion( )recibirMnesaje()responderMensaje( )decifrarMensaje()
PlaneacionProceso
numeroCoordinadoresCompranumeroCoordinadoresSubastaobservadoresCoordinadoresSubastausuariosCompradoresusuariosVendedoresestrategiaProceso
PlaneacionProceso( )crearVendedor( )crearComprador( )validarUsuario( )crearCoordinadorCompra( )crearCoordinadorSubasta( )darInformacionCoordinadorSubasta( )darInformacionCoordinadorCompra( )darInformacionUsuario( )
ISC-2002-2-1
76
9.6.1.2 Coordinador de compra
El diagrama del coordinador de compra está compuesto de tres clases principales, la
de planeación, comunicación y estrategia. Las estrategias a seguir para el proceso de
planeación de compra implementan una interfaz en común InterfazEstrategiaCompra.
InterfazComunicacion
srvEnviarMensaje( )Vector srvRecibirMensaje( )
COORDINADOR DE COMPRA
InterfazUsuarioCompra
srvdarInformacionRecomendacion( )srvdarInformacionRonda( )srvdarInformacionHistoriaSubasta( )srvasociarAgenteNegociador( )
PersistenciaCompra
PersistenciaCompra( )guardarInformacion Ronda( )guardarHistoriaSubasta( )guardarRecomendacion( )cargarInformacion Ronda( )cargarHistoriaSubasta( )cargarRecomendacion( )cargarEstado( )guardarEstado( )
insercionAgenteRecomendador
numero
insercionAgenteRecomendador( )
insercionAgenteNegociador
numero
insercionAgenteNegociador( )
eliminarAgenteRecomendadornumero
eliminarAgenteRecomendador( )
eliminarAgenteNegociadornumero
eliminarAgenteNegociador( )
buscarAgenteRecomendador
numero
buscarAgenteRecomendador( )
buscarAgenteNegociador
numero
buscarAgenteNegociador( )
InterfazEstrategiasCompra
construirEstrategia( )
PlaneacionCompra
idCompradorestadoobservadoresRecomendadoresnumeroRecomendadoresobservadoresNegociadoresnumeroNegociadoresloginpasswordestrategiaCompra
PlaneacionCompra( )crearAgenteRecomendador( )crearAgenteNegociador( )darEstado( )darCedula( )verificarEstadoAgentesRecomendadores( )verificarEstadoAgentesNegociadores( )darInformacionLoginPass( )crearNuevoUsuario( )
Comunicacion
mensajeurlLocalurlDestinopuerto
Comunicacion( )recibirMnesaje()responderMensaje( )decifrarMensaje()
ISC-2002-2-1
77
9.6.1.3 Coordinador de subasta
El diagrama del coordinador de subasta está compuesto de dos clases principales, la
de planeación y estrategia. Las estrategias a seguir para el proceso de planeación de
subasta implementan una interfaz en común EstrategiaSubasta.
PersistenciaSubasta
PersistenciaSubasta( )guardarHistoriaSubasta( )guardarRondaSubasta( )cargarHistoriaSubasta( )cargarRondaSubasta( )cargarEstado( )guardarEstado( )
COORDINADOR DE SUBASTA
ordenarOferas
numero
ordenarOferta( )
cambiarEstado
numero
cambiarEstado( )
insercionAgenteNegociador
numero
inserciónAgenteNegociador( )
buscarAgenteNegociador
numero
buscarAgenteNegociador( )
eliminacionAgenteAuxiliar
numero
eliminacionAgenteAuxiliar( )
eliminacionAgenteAuxiliar
numero
eliminacionAgenteAuxiliar( )
eliminacionAgenteAuxiliar
numero
eliminacionAgenteAuxiliar( )
EstrategiaSubasta
construirEstrategia( )
PlaneacionSubasta
idVendedorestadoobservadoresAAuxiliarnumeroNegociadoresnumeroRondasnumeroRecomendadoresestrategiaSubasta
PlaneacionSubasta( )darHistoriaSubasta( )darAuxiliaresAsociados( )recibirOfertaGenerada( )darInformacionRonda( )asociarAgenteNegociador( )finalizarRonda( )inicializarRonda( )darAgentesAsociados( )darEstado( )darCedula( )cambiarEstado( )darIdVendedor( )
ISC-2002-2-1
78
9.6.1.4 Agente recomendador
El diagrama del agente recomendador está compuesto de tres clases principales, la de
planeación, comunicación y estrategia, a partir de este diagrama se puede ver
claramente el proceso a seguir en la planeación.
PersistenciaProceso
PersistenciaProceso( )guardarInformacion( )cargarInformacion( )
InterfazComunicacion
srvMandarMensaje( )Vector srvRecibirMensaje( )
AGENTE RECOMENDADOR
ComunicacionmensajeurlLocalurlDestinopuerto
Comunicacion( )recibirMnesaje()responderMensaje( )decifrarMensaje()
PlaneacionRecomendadorEstrategiaRecomendadorprecioMaximoCompradorresultadoRecomendacionriesgoCompradorSubastas
establecerMaximoComprador( )establecerRiesgo( )iniciarSimulacion( )PlaneacionRecomendador( )
PSERecomendadorprecioMaximoCompradorprecioMinimoVendedorlimiteInferiorlimiteSuperiornumeroJugadoresofertaprobabilidadriesgoutilidad
PSERecomendador( )calcularBi( )calcularProbabilidad( )calcularUtilidadEsperada( )calcularVarianza( )
EstrategiaRecomendador
precioMaximoCompradorprecioMinimoVendedorpseresultadoriesgoSubasta
EstrategiaRecomendacion( )Simulacion( )
ISC-2002-2-1
79
9.6.1.5 Agente negociador
El diagrama del agente negociador está compuesto de tres clases principales, la de
planeación, comunicación y estrategia, a partir de este diagrama se puede ver
claramente el proceso a seguir en la planeación de la negociación.
EstrategiaNegociacion
jugadoreslimInfnuevoRonuevoValnumeroCorridassecuancia
EstrategiaNegociacion( )Simulacion( )
AGENTE NEGOCIADOR
InterfazComunicacion
srvMandarMensaje( )Vector srvRecibirMensaje( )
PersistenciaProceso
PersistenciaProceso( )guardarInformacion( )cargarInformacion( )
Comunicacion
mensajeurlLocalurlDestinopuerto
Comunicacion( )recibirMnesaje()responderMensaje( )decifrarMensaje()
PlaneacionNegociacion
centinelajugadoreslimInfnuevoRonuevoValnumeroCorridassecuancia
PlaneacionNegociacion( )cargarHistoria( )generarInforme( )leerDatos( )
PSENegociacion
calentamientofrecuenciahistoriamemCallofortaInfpsirosinHistoriavaloracion
darPhi( )darPsi( )darSigueinteOferta( )establecerHistoria( )generarOferta( )PSENegociacion( )calcularLimites( )calcularPromedio( )contarOcurrencia( )criterioParada( )darAccion( )darFrecAccion( )esta( )evaluarUtilidad( )maximo( )ordenarFrecuencias( )
ISC-2002-2-1
80
9.6.2 Diagrama de secuencia
9.6.2.1 Ingreso nuevo comprador
CP : Coordinador de Proceso
Interfaz CC : Coordinador Compra
AN : Agente Negociador
AR: Agente Recomendador
11: crearAgenteNegociador(estado)
El estado del negociador es de iniciado. Lo que significa que está listo para comenzar el proceso de negociacion.
El estado del recomendador es de iniciado. Lo que siginifica que está listo para comenzar el proceso de recomendacion.
3: srvrecibirMensaje()
10: crearAgenteRecomendador (bien,caracteristicas,estado)
4: descifrarMensaje()
5: crearComprador (nombre,id,pais,bien,caracteristicas)
9: crearCoordinadorCompra (id,bien,caracteristicas)
8: descifrarMensaje()
14: descifrarMensaje()
1: nuevoUsuario (nombre,id,pais,bien,caracteristicas)
2: srvenviarMensaje (crearComprador (nombre,id,pais,bien,caracteristicas))
6: srvenviarMensaje (crearCoorinadorCompra (id,bien,caracteristicas))
7: srvrecibirMensaje()
12: srvenviarMensaje (darInformacionUsuario(usuario,clave))
13: srvrecibirMensaje()
15: darInformacionLoginPass()
ISC-2002-2-1
81
Especificación de los mensajes
2. srvenviarMensaje (crearComprador (nombre, id,pais,bien,caracteristicas))
:type register
:content <crearComprador>
<nombre></nombre>
<id></id>
<pais></pais>
<bien></bien>
<características></características>
</crearComprador>
:receiver CP [IP]
:sender CC [IP]
6. srvenviarMensaje (crearCoorinadorCompra (id,bien,caracteristicas))
:type make
:content <crearCC>
<id></id>
<bien></bien>
<características></características>
</crearCC>
:receiver CP [IP]
:sender CC [IP]
12. srvenviarMensaje (darInformacionUsuario(usuario,clave))
:type Reply
:content <usuario></usuario>
<clave></clave>
:receiver CP [IP]
:sender CC [IP]
ISC-2002-2-1
82
9.6.2.2 Ingreso de un nuevo subastador
Interfaz CP : Coordinador de Proceso
CS : Coordinador Subasta
El estado en esta etapa de la subasta es creada aunque el proceso de dar inicio a la subastcomienza a la hora y con un mínimo dos agente negociadore
2: srvrecibirMensaje()
5: crearCoorinadorSubasta (id,bien,caracteristicas,precioMinimo,est
4: crearVendedor (nombre,id,pais,bien,caracteristicas, precioMinimo()
6: srvenviarMensaje (darInformacionLoginPass (usuario,clave))
3: descifrarMensaje()
srvenviarMensaje (crearVendedor (nombre,id,pais,bien,caracteristicas, precioMinimo))
ISC-2002-2-1
83
Especificación de los mensajes 1. srvenviarMensaje crearVendedor ( nombre, id, pais, bien, caracteristicas,
precioMinimo))
:type register
:content <crearVendedor>
<nombre></nombre>
<id></id>
<pais></pais>
<bien></bien>
<características></características>
<precioMinimo></precioMinimo>
</crearComprador>
:receiver CP [IP]
:sender [IP]
6. srvenviarMensaje (darInformacionLoginPass (usuario,clave))
:type Reply
:content <usuario></usuario>
<clave></clave>
:receiver CP [IP]
:sender [IP]
ISC-2002-2-1
84
9.6.2.3 Ingreso viejo comprador
Interfaz CP : Coordinador de Proceso
CC : Coordinador Compra
darHistoriaInformaciónimplica retornar la información del agentesus características relevantes (bien, características,estado)
1: srvValidarUsuario (usuario,clave)
2: srvenviarMensaje (validarUsuario(usuario,clave))
3: srvrecibirMensaje()
4: descifrarMensaje()
5: validarUsuario(usuario,clave)
6: srvenviarMensaje(usuarioValidado())
7: srvrecibirMensaje()
8: descifrarMensaje()
9: darHistoriaInformacion ()
10: srvenviarMensaje (informacionHistoria())
11: srvrecibirMensaje()
12: descifrarMensaje()
13: mostrarInformacion()
ISC-2002-2-1
85
Especificación de los mensajes
2. srvenviarMensaje (validarUsuario(usuario,clave))
:type Ask-about
:content <validarUsuario>
<usuario></usuario>
<clave></clave>
</validarUsuario>
:receiver CP [IP]
:sender CC [IP]
6. srvenviarMensaje(usuarioValidado())
:type Reply
:content <usuarioValido></usuarioValido>
:receiver CP [IP]
:sender CC [IP]
10. srvenviarMensaje (informacionHistoria())
:type Ask-about
:content <informacionHistoria>
<fechaInicio></fechaInicio>
<fechaFin></fechaFin>
<bien></bien>
<caracteristicas></caracteristicas>
<gano></gano>
<precioFin></precioFin>
</informacionHistoria>
:receiver CP [IP]
:sender CC [IP]
ISC-2002-2-1
86
9.6.2.4 Ingreso viejo subastador
darInformacionSubasta implica retornar la informacion de la subasta (ronda, historia de la subasta,estado).
Interfaz CP : Coordinador de Proceso
2: srvrecibirMensaje()
3: descifrarMensaje()
4: validarUsuario(usuario,clave)
9: darHistoriaInformacionSubasta()
1: srvenviarMensaje (validarUsuario(usurio,clave))
5: srvenviarMensaje(usuarioValidado())
6: srvrecibirMensaje()
7: srvrecibirMensaje()
8: descifrarMensaje()
10: srvenviarMensaje (informacionHistoriaSubasta())
11: srvrecibirMensaje()
12: descifrarMensaje()
13: mostrarInformacion()
ISC-2002-2-1
87
Especificación de los mensajes
2. srvmandarMensaje (validarUsuario(usuario,clave))
:type Ask-about
:content <validarUsuario>
<usuario></usuario>
<clave></clave>
</validarUsuario>
:receiver CP [IP]
:sender CC [IP]
6. srvmandarMensaje(usuarioValidado())
:type Reply
:content <usuarioValido></usuarioValido>
:receiver CP [IP]
:sender [IP]
10. srvmandarMensaje (informacionHistoriaSubasta())
:type Ask-about
:content <informacionHistoriaSubasta>
<fechaInicio></fechaInicio>
<fechaFin></fechaFin>
<bien></bien>
<caracteristicas></caracteristicas>
<precioFin></precioFin>
<finalizoBien></finalizoBien>
</informacionHistoriaSubasta>
:receiver CP [IP]
:sender [IP]
ISC-2002-2-1
88
9.6.2.5 Recomendación
Interfaz CC: Controlador de Compra
CP: Coordinador de Proceso
CS: Coordinador de Subasta
AR: Agente Recomendador
AU: Agente Auxiliar
darInformacionSubastasActivas implica que el coordinador le suministra al agente la historia, precio mínimo, el codigo de la subasta
11: darDatosObtenidosSimulacion(Subasta,probabilidad)
12: informarResultados()
1: srvenviarMensaje (darSubastasActivas(bien,caracteristicas))
2: recibirMensaje()
3: descifrarMensaje()
4: darSubastasActivas(bien,caracteristicas)
10: comenzarRecomendacion (Subastas,estado)
8: descifrarInformacion()
9: iniciarSimulacion()
13: guardarRecomendacion()
14: srvenviarMensaje(cambioEstadoSubasta())
15: darEstadoRecomendador()
16: darEstadoSubastaActiva()
5: darInformacionSubasta()
7: srvrecibirMensaje()
6: srvenviarMensaje(darInformacionSubastasActivas())
ISC-2002-2-1
89
Especificación de los mensajes 1. srvenviarMensaje (darSubastasActivas(bien,caracteristicas))
:type Ask-about
:content <darSubastasActivas>
<bien></bien>
<caracteristicas></caracteristicas>
</darSubastasActivas>
:receiver CP [IP]
:sender AR [IP]
5. srvenviarMensaje (darInformacionSubastasActivas())
:type Ask-about
:content <informacionSubastasActivas>
<subastas>codigo1-codignon</subastas>
</informacionSubastasActivas>
:receiver AR [IP]
:sender CP [IP]
9. srvenviarMensaje(darInformacionSubastaActiva())
:type Ask-about
:content <informacionSubastasActivas>
</ informacionSubastasActivas>
:receiver CS [IP]
:sender AR [IP]
13. srvenviarMensaje (InformacionSubastaActiva())
:type Reply
:content <informacionSubastaActiva>
<historia></historia>
<ronda></ronda>
<precioactual></precioactual>
</informacionSubastaActiva>
:receiver AR [IP]
:sender CS [IP]
ISC-2002-2-1
90
20. srvenviarMensaje(cambioEstadoSubasta())
:type Monitor
:content < cambioEstadoSubasta >
<historia></historia>
<ronda></ronda>
<precioactual></precioactual>
</cambioEstadoSubasta>
:receiver AR [IP]
:sender AU [IP]
ISC-2002-2-1
91
9.6.2.6 Negociación
Interfaz CS: Controlador de Subasta
CP: Coordinador de Proceso
CC: Coordinador de Compra
AN: Agente Negociador
AU: Agente Auxiliar
1: comenzarRonda(precioactualbien)
Se notifica a todos los agentes negociadores de que una nueva ronda va empezar
Se da inicio al algoritmo para generar la oferta.
2: srvenviarMensaje(noticarComienzoRonda())
3: srvrecibirMensaje()
4: descifrarMensaje()
5: darInicioProcesoNegociacion()
6: generarOferta()
7: srvenviarMensaje(ofertaGenerada())
9: ofertaGenerada()
8: descifrarMensaje()
10: darinformacionResultados()
11: srvenviarMensaje(cambioEstadoSubas
12: darEstadoNegociador()
13: darEstadoSubastaActiva()
ISC-2002-2-1
92
Especificación de los mensajes
2. srvenviarMensaje(noticarComienzoRonda())
:type Ask-about
:content <noticarComienzoRonda>
<historia></historia>
<ronda></ronda>
<precioactual></precioactual>
</noticarComienzoRonda>
:reply-with AN
:receiver CC [IP]
:sender CS [IP]
7. srvenviarMensaje(ofertaGenerada())
:type Ask-about
:content <(ofertaGenerada>
</ofertaGenerada>
:receiver CP [IP]
:sender AN [IP]
15. srvmandarMensaje(cambioEstadoSubasta())
:type Monitor
:content < cambioEstadoSubasta >
<historia></historia>
<ronda></ronda>
<precioactual></precioactual>
</cambioEstadoSubasta>
:receiver AR [IP]
:sender AU [IP]
ISC-2002-2-1
93
9.6.2.7 Notificación subastador
Interfaz CP : Coordinador de Proceso
CS : Coordinador Subasta
viarMensaje (darInformacionSubastas(cedula))
4: buscarSubastas
5: darHistoriaSubasta()
6: srvmandarMensaje(darInformacionSubastas())
2: recibirMensaje()
3: descifrarMensaje()
7: srvrecibirMensaje()
8: descifrarMensaje()
ISC-2002-2-1
94
Especificación de los mensajes
1. srvenviarMensaje (darInformacionSubastas(cedula))
:type Ask-about
:content <darInformacionSubastas>
<cedula></cedula>
</darInformacionSubastas>
:receiver CP [IP]
:sender [IP]
6. srvenviarMensaje(darInformacionSuastas())
:type Reply
:content <darInformacionSubastas>
<fechaInicio></fechaInicio>
<fechaFin></fechaFin>
<bien></bien>
<caracteristicas></caracteristicas>
<precioFin></precioFin>
<finalizoBien></finalizoBien>
<ronda></ronda>
<nombreComprador></nombreComprador>
</darInformacionHistoriaSubasta>
:receiver CP [IP]
:sender [IP]
9.6.3 Diagrama relacional de la base de datos
Usuarios Nombre ID Pais Tipo Login Password
NN PK NN NN ND
*ID (documento de identidad) puede ser del vendedor o del comprador
Subasta CodigoSubasta Bien Caracteristicas PrecioBien CedulaVendedorPK NN NN NN FK
HistoriaRecomendacionSubasta CedulaComprador CodigoSubasta Probabilidad FechaInicio FechaFin PK FK,PK NN
ISC-2002-2-1
95
HistoriaNegociacionSubasta CodigoSubasta CedulaComprador PrecioFin PrecioInicio FechaInicioPK,FK PK,FK NN
FechaFin Rondas Finalizo NN NN
ISC-2002-2-1
96
10 CAPÍTULO 9: ANÁLISIS DE RESULTADOS
En este capítulo se pretende mostrar los resultados obtenidos por el motor de
inteligencia artificial, para lo cual se definirían algunos indicadores que nos permitan
evaluar el desempeño obtenido a partir de la utilización de éste. Para la realización
de esta prueba se construirán diferentes escenarios los cuales nos permitirán analizar
los resultados obtenidos a partir de los algoritmos.
10.1 Indicadores
Para el desarrollo de esta prueba es necesario contar con ciertos indicadores que
sirvan como puntos de comparación entre diferentes escenarios para realizar una
posterior evaluación de los resultados obtenidos por el mismo.
Los indicadores a construir van a ser de dos tipos, los primeros estarán relacionados
con el aspecto económico de la subasta mientras que los segundos tendrán que ver
con aspectos generales de los algoritmos.
10.1.1 Indicadores económicos
• Utilidad del subastador: Este indicador tiene como objetivo identificar cuál
es la ganancia en términos monetarios obtenida por el subastador al finalizar
la subasta, la cual está representada por la ultima oferta recibida.
• Utilidad del comprador: Este indicador tiene como objetivo identificar
cuál es la ganancia en términos monetarios obtenida por el oferente a quien
finalmente se le es adjudicado el bien. Este valor va a ser igual a la valoración
del objeto menos la oferta final realizada.
• Ganancia de la sociedad: Este es un indicador definido como la ganancia
neta de la subasta, es decir, la suma de la utilidad del subastador y del ganador
de la subasta. El objetivo de este indicador es evaluar la eficiencia de la
asignación lograda.
ISC-2002-2-1
97
10.1.2 Indicadores sobre los algoritmos
• Velocidad de convergencia: Este indicador tiene como objetivo evaluar la
velocidad con que el algoritmo llega a un estado estable del proceso de
negociación.
• Adjudicación del bien: Este indicador busca determinar qué tan buena fue la
recomendación realizada por el agente, lo cual estará reflejado en la
adjudicación o no del bien al comprador.
• Utilidad esperada vs. Utilidad real: El indicador pretende evaluar qué tan
parecido fue la utilidad prescrita por el agente recomendador con la que se
obtuvo en realidad.
Antes de establecer los distintos escenarios, se definirán algunos perfiles de aversión
al riesgo con el objetivo de facilitar el análisis del comportamiento seguido por los
agentes.
Tabla 4 Perfiles de riesgo seguido por los agentes.
10.2 Escenarios
Los escenarios están construidos con el fin de estudiar el comportamiento de los
agentes en diferentes ambientes y de esta manera determinar si dicho comportamiento
es el esperado o no.
Para cada uno de los parámetros se construirán diferentes escenarios, los cuales
buscan identificar explorar como reaccionan los agentes ante cambios en el valor de
este parámetro.
Perfil Coeficiente de aversión Característica Ansioso 0.1 Este tipo de agente no desea perder
el bien
Preocupado 0.25 La posible pérdida del bien preocupa
al agente
Temeroso 0.5 Siente un poco de temor al no ganar
el bien
Fresco 0.75 Desea el bien pero no se verá tan
afligido por la posible pérdida
Gates 0.9 La posible pérdida del bien no
preocupa a este tipo de agente
ISC-2002-2-1
98
10.2.1 Escenarios para el número de jugadores en la subasta 39
Objeto a subastar: Te levisor plasma 46”
Escenario 1. Número de participantes al inicio de la subasta: 2
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Preocupado US $ 3500
B Temeroso US $ 4000
Gráfica 1
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 33 con una valoración de $3700 por el bien.
39
El agente recomendador tendrá como parámetros un perfil de tipo Fresco y una valoración igual a US
$ 5000.
0
500
1000
1500
2000
2500
3000
3500
4000
1 4 7 10 13 16 19 22 25 28 31 34 37 40
A
B
ISC-2002-2-1
99
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Preocupado US $ 3500
B Temeroso US $ 4000
C Gates US $ 3000
D Fresco US $ 3700
E Gates US $ 3000
Gráfica 2
En la gráfica 2 se puede ver como la convergencia del algoritmo se logra en la ronda
número 53 con una valoración de $3820 por el bien y es al jugador B a quién se le
adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57
A
B
C
D
E
ISC-2002-2-1
100
Escenario 3. Número de participantes al inicio de la subasta: 10
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Preocupado US $ 3500
B Temeroso US $ 4000
C Gates US $ 3000
D Fresco US $ 3700
E Gates US $ 3000
G Fresco US $ 2900
F Preocupado US $ 3250
H Gates US $ 3320
I Preocupado US $ 3700
J Gates US $ 3500
Gráfica 3
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 39 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46
A
B
C
D
E
F
G
H
I
J
ISC-2002-2-1
101
Escenario 4 Número de participantes al inicio de la subasta: 20
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Preocupado US $ 3500
B Temeroso US $ 4000
C Gates US $ 3000
D Fresco US $ 3700
E Gates US $ 3000
G Fresco US $ 2900
F Preocupado US $ 3250
H Gates US $ 3320
I Preocupado US $ 3700
J Gates US $ 3500
K Preocupado US $ 3550
L Gates US $ 2800
M Fresco US $ 2920
N Fresco US $ 4110
O Temeroso US $ 3650
P Preocupado US $ 3500
Q Temeroso US $ 4100
R Fresco US $ 4200
S Gates US $ 3330
T Preocupado US $ 3705
V Gates US $ 3500
Gráfica 4
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
ABCDEFGHIJKLMNOPQRSTV
ISC-2002-2-1
102
Al observar la gráfica se puede establecer como la convergencia del algoritmo se
logra en la ronda número 77 con una valoración de $4128 por el bien y es al jugador
R a quién se le adjudica el bien.
Gráfica 5
Gráfica 6
3400
3500
3600
3700
3800
3900
4000
4100
4200
Utilidad subastador
Escenario1
Escenario2
Escenario3
Escenario4
0
50
100
150
200
250
300
Utilidad comprador
Escenario1
Escenario2
Escenario3
Escenario4
ISC-2002-2-1
103
Gráfica 7
Resultados para este grupo de escenarios – Caso agente negociador
A partir de las gráficas 1,2,3,4 se puede concluir que el número de participantes en la
subasta incide en el tiempo que el proceso de negociación entra a un estado estable.
Esto se debe a que a medida que el número de participantes se incrementa, la
probabilidad que exista valoraciones muy cercanas aumenta y por consiguiente el
número de secuencias. Dicho de otra manera, a medida que aumenta el número de
personas interesadas por el bien, la competencia entre éstas se incrementa generando
un incremento en los precios.
Con base en la gráfica 5 y 6, a mayor número de participantes la utilidad del
subastador aumentará y la de los participantes disminuirá debido al aumento en las
pujas. A partir de la gráfica 7 se puede concluir que entre mayor sea la valoración del
competidor mayor va a ser la ganancia de la sociedad.
Los resultados para la recomendación fueron (las secuencias en las que se hizo la
recomendación fueron en la ronda 2, 40 y 150)
3900
3950
4000
4050
4100
4150
4200
Ganancia Sociedad
Escenario1
Escenario2
Escenario3
Escenario4
ISC-2002-2-1
104
• El Bi fue de:
Gráfica 8
Debido a que la oferta de los participantes de las subastas es cada vez mayor a
medida que la subasta progresa, el Bi es mayor.
• La probabilidad de obtener el bien está dada por:
Gráfica 9
Así mismo, a medida de que las rondas aumentan y si el perfil del comprador es bajo
la oportunidad de que este adquiera el bien va a disminuir, debido a que existe un
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
2 40 150
Escenario1
Escenario2
Escenario3
Escenario4
3250
3300
3350
3400
3450
3500
3550
3600
3650
3700
3750
2 40 150
Escenario1
Escenario2
Escenario3
Escenario4
ISC-2002-2-1
105
mayor conocimiento de la historia así como de la forma en que están jugando los
participantes de la subasta.
• La utilidad esperada fue de:
Gráfica 10
De igual manera a medida que pasan las rondas de la subasta, los participantes
tienden a mejor las ofertas lo que afecta directamente la utilidad del posible
participante.
Resultados para este grupo de escenarios – Caso agente negociador
A partir de la gráfica 8 se puede notar cómo la oferta generada por el proceso de
recomendación aumenta a medida que hay un mayor número de participantes. El
valor de la oferta también aumenta dependiendo de la secuencia en que se haga
debido a que los agentes que están participando tienen más información sobre sus
competidores lo que origina que los tipos utilizados por los agentes sean más
aproximados a los verdaderos.
De la misma forma la probabilidad de obtener el bien va a verse negativamente
afectada con el número de participantes ya que existirán valoraciones superiores a las
del agente interesado en el bien.
0
10
20
30
40
50
60
2 40 150
Escenario1
Escenario2
Escenario3
Escenario4
ISC-2002-2-1
106
10.2.2 Escenarios para el coeficiente de aversión al riesgo: caso agente negociador
Objeto a subastar: Televisor plasma 46”
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Ansioso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 11
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 38 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien. También se ve como en las primeras secuencias las pujas
mas altas son realizadas por el agente que presenta el coeficiente de riesgo mas alto.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7 10 13 16 19 22 25 28 31 34 37 40
A
B
C
D
E
ISC-2002-2-1
107
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Preocupado US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 12
De la gráfica 12 se puede establecer que la convergencia del algoritmo se logra en la
ronda número 38 con una valoración de $3820 por el bien y es al jugador B a quién se
le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49
A
B
C
D
E
ISC-2002-2-1
108
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 13
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 41 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7 10 13 16 19 22 25 28 31 34 37 40
A
B
C
D
E
ISC-2002-2-1
109
Escenario 4. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Fresco US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 14
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 51 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61
A
B
C
D
E
ISC-2002-2-1
110
Escenario 5. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Gates US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 15
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 54 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61
A
B
C
D
E
ISC-2002-2-1
111
Escenario 6. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Ansioso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 16
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 25 con una valoración de $3916 por el bien y es al jugador B a
quién se le adjudica el bien. Nótese como a diferencia de los anteriores escenarios, la
oferta ganadora fue mayor como consecuencia del aumento en el perfil de riesgo del
agente que la realizo.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7 10 13 16 19 22 25 28 31 34 37 40
A
B
C
D
E
ISC-2002-2-1
112
Escenario 7. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Gates US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 17
A partir de la gráfica se puede ver como la convergencia del proceso se logra en la
ronda número 102 con una valoración de $3724 por el bien y es al jugador B a quién
se le adjudica el bien.
Resultados para este grupo de escenarios – Caso agente negociador
En general en las gráficas 11, 12, 13, 14, 15 se puede concluir que la aversión a riesgo
de un agente disminuye el número de secuencias necesarias para llegar a un estado
estable pues las ofertas generadas serán mayores alcanzando más rápidamente las
valoraciones de cada agente.
0
500
1000
1500
2000
2500
3000
3500
4000
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99
A
B
C
D
E
ISC-2002-2-1
113
En la gráfica 16 se ejemplifica el caso de un agente con la valoración más alta y un
perfil de riesgo ansioso, el resultado de este escenario es que el proceso de
negociación converge en menos de treinta secuencias, caso contrario ocurre con el
resultado mostrado en la gráfica 17, donde el agente con la valoración más alta tiene
un perfil Gates implicando que el proceso se estabilice en un número de secuencia
cercana a 100. En estos dos casos, tanto la utilidad del subastador como la del agente
va a verse afectada, la primera de forma negativa y la segunda en forma positiva ya
que la oferta con la que se adjudica el bien disminuye con el perfil Gates, esto puede
explicarse a que con este perfil las ofertas realizadas reflejan una menor necesidad de
adquisición del bien.
Gráfica 18
El cambio en la utilidad del comprador se ve afectado por la aversión al riesgo que
este tenga entre menos se preocupe por la perdida del bien, mayor va a ser su utilidad
final, siempre y cuando tenga una alta valoración por el bien lo suficiente como para
poder tener la capacidad de adquirirlo frente a los otros participantes.
0
50
100
150
200
250
300
Utilidad comprador
Escenario1
Escenario2
Escenario3
Escenario4
Escenario5
Escenario6
Escenario7
ISC-2002-2-1
114
Gráfica 19
De igual manera el cambio en la utilidad del vendedor se ve afectado por la aversión
al riesgo que este tengan los participantes, entre menos se preocupen por la perdida
del bien, menor va a ser su utilidad final, debido a que existe una menor ansiedad por
partes de los participantes por adquirir el bien.
Gráfica 20
A partir de la gráfica se puede concluir que entre mayor sea la valoración del
participante mayor va a ser la ganancia de la sociedad.
3600
3650
3700
3750
3800
3850
3900
3950
Utilidad vendedor
Escenario1
Escenario2
Escenario3
Escenario4
Escenario5
Escenario6
Escenario7
0
500
1000
1500
2000
2500
3000
3500
4000
Ganancia Sociedad
Escenario1
Escenario2
Escenario3
Escenario4
Escenario5
Escenario6
Escenario7
ISC-2002-2-1
115
10.2.3 Escenarios para el coeficiente de aversión al riesgo: caso agente recomendador
Objeto a subastar: Televisor plasma 46”
Los participantes en la subasta tendrán los siguientes parámetros
Participante Perfil Valoración
A Ansioso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Gates US $ 3700
E Fresco US $ 3000
Gráfica 21
En la gráfica 21 se puede ver como la convergencia del algoritmo se logra en la ronda
número 54 con una valoración de $3820 por el bien y es al jugador B a quién se le
adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57
A
B
C
D
E
ISC-2002-2-1
116
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Ansioso US $ 3800
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Preocupado US $ 3800
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Temeroso US $ 3800
Escenario 4. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Fresco US $ 3800
Escenario 5. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Gates US $ 3800
Los resultados obtenidos por el agente recomendador fueron los siguientes:
ISC-2002-2-1
117
• El Bi fue de:
Gráfica 22
En la gráfica 22 se ve que a medida que el riesgo del agente para el cual se hace la
recomendación aumenta, la oferta óptima para la participación en la subasta
disminuye lo cual concuerda con las preferencias manifestadas por este individuo. La
oferta óptima aumenta con el número de la secuencia para el cual se hace la
recomendación como consecuencia de la disposición de mayor información sobre el
desarrollo de la subasta.
3450
3500
3550
3600
3650
3700
3750
3800
4 40 150
Ansioso
Preocupado
Temeroso
Fresco
Gates
ISC-2002-2-1
118
La probabilidad fue de:
Gráfica 23
Observando la gráfica 23 se puede ver como la probabilidad de obtener el bien va
sólo a ser afectada en una etapa avanzada de la subasta, pues es en este momento
cuando la asimetría en la información disminuye.
• La utilidad esperada fue de:
Gráfica 24
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
4 40 150
Ansioso
Preocupado
Temeroso
Fresco
Gates
0
20
40
60
80
100
120
4 40 150
Ansioso
Preocupado
Temeroso
Fresco
Gates
ISC-2002-2-1
119
10.2.4 Escenarios para la valoración del bien: caso agente negociador
Objeto a subastar: Televisor plasma 46”
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 25
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 42 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49
A
B
C
D
E
ISC-2002-2-1
120
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3500
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 26
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 46 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49
A
B
C
D
E
ISC-2002-2-1
121
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 4200
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 27
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 58 con una valoración de $4080 por el bien y es al jugador C a
quién se le adjudica el bien.
En general, para las gráficas 25,26,27 se puede notar como el aumento en la
valoración del agente C repercute de manera positiva en él número de secuencias
necesarias para la convergencia. Esto se debe que el aumento en la valoración
provoca que la oferta con la que se adjudica el bien también aumente gracias a la
competencia que se genera entre los participantes con valoraciones altas.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61
A
B
C
D
E
ISC-2002-2-1
122
Gráfica 28
La utilidad del comprador cambio en el tercer escenario debido a que la valoración
del bien por parte del participante C fue mayor con respecto a los dos primeros
escenarios. No se vio afectada en el segundo porque la valoración de C no era lo
suficientemente alta como para que B ofreciera más por el bien.
Gráfica 29
Así mismo, la utilidad del vendedor se vio favorecida porque el participante C tenía
una valoración más alta en el tercer escenario.
0
20
40
60
80
100
120
140
160
180
Utilidad Comprador
Escenario1
Escenario2
Escenario3
3650
3700
3750
3800
3850
3900
3950
4000
4050
4100
Utilidad Vendedor
Escenario1
Escenario2
Escenario3
ISC-2002-2-1
123
Gráfica 30
A partir de la gráfica se puede concluir que entre mas altas sean las valoraciones,
mayor será la ganancia de la sociedad.
3900
3950
4000
4050
4100
4150
4200
Ganancia Sociedad
Escenario1
Escenario2
Escenario3
ISC-2002-2-1
124
10.2.5 Escenarios para la valoración del bien: caso agente recomendador
Objeto a subastar: Televisor plasma 46”
Los participantes en la subasta tendrán los siguientes parámetros
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 4200
D Temeroso US $ 3700
E Temeroso US $ 3000
Tamaño del recall: 10
Gráfica 31
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 58 con una valoración de $4080 por el bien y es al jugador C a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57
A
B
C
D
E
ISC-2002-2-1
125
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Temeroso US $ 3000
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Temeroso US $ 3500
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Parámetros del agente recomendador:
Perfil Valoración
Temeroso US $ 4800
Los resultados obtenidos por el agente recomendador fueron:
• Para Bi:
Gráfica 32
A partir de la gráfica se puede decir que a medida que hay un mayor conocimiento de
la historia de la subasta, el Bi estimado es cada vez más acertado y a medida que la
0
5 0 0
1 0 0 0
1 5 0 0
2 0 0 0
2 5 0 0
3 0 0 0
3 5 0 0
4 0 0 0
4 5 0 0
5 0 0 0
4 4 0 1 5 0
U S $ 3 0 0 0
U S $ 3 5 0 0
U S $ 4 8 0 0
ISC-2002-2-1
126
valoración del participante entrante es mayor este tiene la capacidad de poder realizar
una mejor oferta.
• La probabilidad fue de:
Gráfica 33
Esta gráfica claramente muestra que a medida que el participante tiene una mayor
valoración, ésta refleja su probabilidad de adquirir el bien y si a esto le sumamos que
existe una mayor historia el posible comprador va a tener una mejor información para
poder tomar su decisión de su entrada a la subasta.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
4 40 150
US$3000
US$3500
US$4800
ISC-2002-2-1
127
• La utilidad esperada fue de:
Gráfica 34
En esta gráfica se muestra como a medida que la historia de la subasta avanza así
mismo su utilidad disminuye y dependiendo de la valoración que se tenga esta
utilidad puede tender a cero si es muy baja o puede llegar a ser muy alta si mi
valoración así lo es.
En general, en las gráficas 32,34 se ve cómo la oferta y la utilidad generada con el
proceso de recomendación aumentan de acuerdo con la valoración, esto era de
esperarse pues existe una mayor cantidad de dinero disponible para la compra del
bien.
Con la gráfica 33 se ve nuevamente cómo a medida que las valoraciones aumentan,
la probabilidad de ganar el bien disminuye, aunque esta disminución dependerá de la
valoración que se tenga para el bien.
0
1
2
3
4
5
6
7
8
4 40 150
US$3000
US$3500
US$4000
ISC-2002-2-1
128
10.2.6 Escenarios para el tamaño del recall
Objeto a subastar: Televisor plasma 46”
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 35
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 40 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49
A
B
C
D
E
ISC-2002-2-1
129
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 20
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 36
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 86 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85
A
B
C
D
E
ISC-2002-2-1
130
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 30
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Gráfica 37
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 119 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
A través de las gráficas 35,36,37 se ve cómo al aumentar el tamaño del recall la
convergencia del proceso de negociación aumentará. Esto puede explicarse pues la
inclusión de información más reciente influye de manera positiva al aprendizaje de
los tipos de los otros agentes.
Los resultados obtenidos por el agente recomendador fueron:
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 10 19 28 37 46 55 64 73 82 91 100
109
118
127
A
B
C
D
E
ISC-2002-2-1
131
• Para Bi:
Gráfica 38
Esta gráfica se puede ver que a medida que se sabe de una mayor historia hay un
mayor conocimiento acerca de las reales intenciones de los diferentes participantes de
la subasta, así mismo se tiene un mayor recall las ofertas son más bajas debido a que
la convergencia del algoritmo es más alto.
• La probabilidad fue de:
Gráfica 39
Con esta gráfica se puede apreciar que para un posible participante de una subasta es
mejor tener un recall más bajito pues al tener una convergencia más baja así mismo el
algoritmo puede evaluar con una mayor probabilidad la adquisición del bien.
3 6 3 5
3 6 4 0
3 6 4 5
3 6 5 0
3 6 5 5
3 6 6 0
3 6 6 5
2 4 0 1 5 0
R e c a l l 1 0
R e c a l l 2 0
R e c a l l 3 0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
2 4 0 1 5 0
Reca l l10
Reca l l20
Reca l l30
ISC-2002-2-1
132
• La utilidad esperada fue de:
Gráfica 40
En esta gráfica a medida que el recall es más alto lo es también la utilidad aunque
disminuya a través de las rondas debidas al perfil del posible participante de la
subasta.
4.4
4.5
4.6
4.7
4.8
4.9
5
5.1
5.2
2 40 150
Recall10
Recall20
Recall30
ISC-2002-2-1
133
Gráfica 41
Para los tres escenarios la ganancia del comprador no cambia porque no existe nadie
en el grupo de participantes que pueda ofrecer más que el participante B por lo que el
recall no afecta la utilidad del comprador.
Gráfica 42
0
20
40
60
80
100
120
140
160
180
Utilidad Comprador
Escenario1
Escenario2
Escenario3
0
500
1000
1500
2000
2500
3000
3500
4000
Utilidad Vendedor
Escenario1
Escenario2
Escenario3
ISC-2002-2-1
134
Así mismo en esta gráfica la utilidad del vendedor tampoco se ve afecta porque el
participante B es quien tiene una mayor valoración del bien y por lo tanto no hay
nadie que llegue o pueda ofrecer más que él.
Gráfica 43
A partir de la gráfica se puede concluir que entre mayor sea la valoración del
participante mayor va a ser la ganancia de la sociedad.
En general se ve que al utilizar un mayor recall se puede ver cómo la probabilidad de
obtener el bien sólo se ve afectada en una secuencia avanzada de la subasta, pues es
en esta cuando la convergencia del proceso es más afectada por el tamaño del recall
produciendo ofertas más bajas. La misma incidencia tiene este parámetro en la
utilidad y la oferta.
0
500
1000
1500
2000
2500
3000
3500
4000
Ganancia Sociedad
Escenario1
Escenario2
Escenario3
ISC-2002-2-1
135
10.2.7 Escenarios para la entrada de jugadores cuando la subasta ya ha comenzado: caso agente negociador y negociador
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 5
Parámetro del nuevo jugador
Participante Perfil Valoración
N Temeroso 3500
Gráfica 44
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 45 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
Escenario 2. Número de participantes al inicio de la subasta: 5
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49
A
B
C
D
E
N
ISC-2002-2-1
136
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 20
Parámetro del nuevo jugador
Participante Perfil Valoración
N Temeroso 3500
Gráfica 45
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 41 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 4 7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
A
B
C
D
E
N
ISC-2002-2-1
137
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 100
Parámetro del nuevo jugador
Participante Perfil Valoración
N Temeroso 3500
Gráfica 46
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 41 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
En general, en las gráficas 44,45,46 se puede ver cómo la entrada de un nuevo
jugador introduce muy poco ruido en el desarrollo del proceso, esto se debe a que la
valoración del nuevo participante no influye de manera significativa en las ofertas
que los otros participantes han estado realizando.
Los resultados del agente recomendador para los 3 primeros escenarios fueron de:
• Para Bi:
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 10 19 28 37 46 55 64 73 82 91 100
109
118
127
A
B
C
D
E
N
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 10 19 28 37 46 55 64 73 82 91 100
109
118
127
A
B
C
D
E
N
ISC-2002-2-1
138
Gráfica 47
La gráfica muestra que a medida que hay mayor información de la subasta, el valor
de la oferta real que se está dando en cada ronda es mucho más cercano al real a
medida que pasan las rondas debido a que los jugadores muestran con el tiempo sus
reales intenciones de juego.
3400
3405
3410
3415
3420
3425
3430
3435
3440
Bi
Ronda5
Ronda20
Ronda100
ISC-2002-2-1
139
• La probabilidad fue de:
Gráfica 48
Así mismo, la probabilidad de adjudicación del bien disminuye en el tiempo pues el
posible jugador con el perfil que tiene es difícil que sea le sea adjudicado el bien si
llega a entra a la subasta en juego.
• La utilidad esperada fue de:
Gráfica 49
Como era de esperarse en esta gráfica la utilidad esperada disminuye a medida que
hay más historia sobre la subasta.
0
0 . 1
0 . 2
0 . 3
0 . 4
0 . 50 . 6
0 . 7
0 . 8
0 . 9
1
Probab i l i dad
R o n d a 5
R o n d a 2 0
R o n d a 1 0 0
3.4
3.6
3.8
4
4.2
4.4
4.6
Utilidad Esperada
Ronda5
Ronda20
Ronda100
ISC-2002-2-1
140
Escenario 4. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 5
Parámetro del nuevo jugador
Participante Perfil Valoración
N Temeroso 4200
Gráfica 50
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 59 con una valoración de $4080 por el bien y es al jugador N a
quién se le adjudica el bien.
Escenario 5. Número de participantes al inicio de la subasta: 5
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57A
B
C
D
E
N
ISC-2002-2-1
141
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 100
Parámetro del nuevo jugador
Participante Perfil Valoración
N Temeroso 4200
Gráfica 51
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 151 con una valoración de $4080 por el bien y es al jugador N a
quién se le adjudica el bien.
En general, a partir de las gráficas 50,51 el nuevo participante posee una valoración
superior a la de los participantes originales en la subasta lo que ocasiona que las
ofertas que generadas por los otros participantes se incrementen hasta lograr las
valoraciones de cada uno de estos.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 11 21 31 41 51 61 71 81 91 101
111
121
131
141
151
A
B
C
D
E
N
ISC-2002-2-1
142
Los resultados obtenidos por el agente recomendador para los escenarios 4 y 5 fue de:
• Para Bi:
Gráfica 52
Como era de esperarse en la gráfica, a medida que hay más información sobre los
participantes, el Bi es mucho más aproximado al real y así mismo, en la siguiente
gráfica, la utilidad disminuye con cada ronda porque los participantes ofrecen más
por el bien.
• La utilidad esperada fue de:
Gráfica 53
4020
4025
4030
4035
4040
4045
4050
4055
4060
4065
Bi
Ronda5
Ronda100
5.5
5.6
5.75.8
5.9
66.1
6.2
6.3
6.46.5
UtilidadEsperada
Ronda5
Ronda100
ISC-2002-2-1
143
Escenario 6. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 20
Parámetro del nuevo jugador
Participante Perfil Valoración
N Ansioso 4000
Gráfica 54
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 91 con una valoración de $4000 por el bien y es al jugador B o N
a quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
A
B
C
D
E
N
ISC-2002-2-1
144
Escenario 7. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que entra el nuevo jugador: 100
Parámetro del nuevo jugador
Participante Perfil Valoración
N Ansioso 4000
Gráfica 55
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 180 con una valoración de $4000 por el bien y es al jugador B o
N a quién se le adjudica el bien.
En el caso presentado en las gráficas 55 y 54 el nuevo participante tiene un perfil de
riesgo alto y una valoración alta. En la segunda de estas gráficas se puede ver cómo el
proceso había alcanzado un estado estable pero al entrar el nuevo participante el
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 12 23 34 45 56 67 78 89 100
111
122
133
144
155
166
177
A
B
C
D
E
N
ISC-2002-2-1
145
proceso paso a otro estado estable, lo que produjo un incremento en las ofertas
realizadas.
Los resultados obtenidos por el agente recomendador en los escenarios 6 y 7 fueron:
• Para Bi:
Gráfica 56
• La utilidad esperada fue de:
Gráfica 57
Aunque un aumento en la valoración incrementa las posibilidades de adquirir el bien,
la utilidad del agente va a estar determinado por el perfil de riesgo que este maneje, es
así que para el caso presentado en la gráfica 57, con un perfil Ansioso la utilidad es
menor que en el caso de la gráfica 48 pese a que este jugador tiene una mayor
probabilidad.
3 9 6 8
3 9 6 9
3 9 7 0
3 9 7 1
3 9 7 2
3 9 7 3
3 9 7 4
3 9 7 5
B i
R o n d a 2 0
R o n d a 1 0 0
0 . 1 3 7
0 . 1 3 7 5
0 . 1 3 8
0 . 1 3 8 5
0 . 1 3 9
0 . 1 3 9 5
0 . 1 4
0 . 1 4 0 5
U t i l i d a d E s p e r a d a
R o n d a 2 0
R o n d a 1 0 0
ISC-2002-2-1
146
Teniendo en cuenta estas características, el éxito del proceso de recomendación va a
estar condicionado por el momento de la secuencia en que se realice.
Con respecto a la utilidad esperada vs. la utilidad real, para la gráfica 57, la
aproximación de la utilidad esperada era cada vez menor a medida que las rondas
pasan dado el perfil del comprador, pues este prefiere sacrificar utilidad para poder
obtener el bien, diferencia que se ve reflejada cuando el perfil del jugador de la
gráfica 53 es temeroso. Para estos dos casos, la probabilidad de adquirir el bien fue
correcta, sin embargo, en la gráfica 48 es evidente que a medida que hay una mayor
historia y se empieza a ver la intención de los otros jugadores, la probabilidad de
adquirir el bien disminuye puesto que el comprador no está en la capacidad de tener
una mayor valoración del bien.
ISC-2002-2-1
147
10.2.8 Escenarios para la salida de jugadores
Escenario 1. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que sale el jugador: 5
Jugador que sale: C
Gráfica 58
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 60 con una valoración de $3820 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 6
11 16 21 26 31 36 41 46 51 56 61 66
A
B
C
D
E
ISC-2002-2-1
148
Escenario 2. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que sale el jugador: 5
Jugador que sale: D
Gráfica 59
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 51 con una valoración de $3700 por el bien y es al jugador B a
quién se le adjudica el bien.
0
500
1000
1500
2000
2500
3000
3500
4000
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57
A
B
C
D
E
ISC-2002-2-1
149
Escenario 3. Número de participantes al inicio de la subasta: 5
Mínima oferta: US $1
Tamaño del recall: 10
Parámetros de los participantes:
Participante Perfil Valoración
A Temeroso US $ 3500
B Temeroso US $ 4000
C Temeroso US $ 3000
D Temeroso US $ 3700
E Temeroso US $ 3000
Secuencia en la que sale el jugador: 5
Jugador que sale: B
Gráfica 60
A partir de la gráfica se puede establecer que la convergencia del algoritmo se logra
en la ronda número 61 con una valoración de $3580 por el bien y es al jugador D a
quién se le adjudica el bien.
En general, cuando se da la salida de un jugador con una valoración alta de la subasta
repercute en la oferta con la que se adquiere el bien. En la gráfica 48 se muestra el
caso en que un agente con una valoración baja sale de la subasta, esto no tiene
0
500
1000
1500
2000
2500
3000
3500
4000
1 6 11 16 21 26 31 36 41 46 51 56 61 66
A
B
C
D
E
ISC-2002-2-1
150
consecuencias en proceso, al contrario de lo que pasa en la gráfica 49 y 50 donde el
jugador que sale tiene una valoración lo suficientemente alta como para influir en las
ofertas subsecuentes realizadas a la salida de este. Teniendo en cuenta estas
características, se puede concluir que la salida de agentes afectara al proceso de
negociación solamente si la valoración de este jugador es lo suficientemente alta con
respecto a la de los demás, mientras que para la gráfica
ISC-2002-2-1
151
11 TRABAJO FUTURO Y CONCLUSIONES
Este trabajo tuvo como principal objetivo el diseño de un mercado inteligente donde
el mecanismo de intercambio de bienes fuese realizado exclusivamente entre agentes
inteligentes. Para esto se establecieron dos roles principales, el agente recomendador
y el agente negociador. El primero de estos tenía como objetivo la búsqueda y
selección de las subastas, de acuerdo a unos parámetros previamente establecidos,
que facilitaran un posterior proceso de negociación realizado por el segundo de estos
agentes.
El diseño fue dividido en dos partes. La primera parte fue a nivel de software, donde
se establecía la arquitectura del mercado de los agentes y la forma como estos
deberían manejar los procesos, de tal manera que se lograra el cumplimiento de los
objetivos establecidos para cada uno. La segunda etapa estuvo relacionada con el
motor de inteligencia artificial utilizada por los dos agentes (recomendación y
negociación) para lo cual se estableció un modelo matemático para la representación
formal de una subasta (capítulo 4.2). Una vez establecido el modelo se procedió a
especificar la forma como los agentes interactuarían; para el caso del agente
negociador se estableció un tipo de aprendizaje adaptativo como lo es el juego ficticio
(capítulo 8) junto con un algoritmo que describía la forma como se realizaban las
ofertas basándose en este esquema de aprendizaje. Para el agente negociador se
proporcionó una heurística (capítulo 9) que definía el criterio de ordenamiento de
subastas para un determinado conjunto de parámetros propios del usuario (perfil de
riesgo, valoración del bien, características del bien).
La validación del diseño propuesto fue sólo realizada para el motor de inteligencia
artificial, pues es a este nivel que se puede determinar si el mercado está funcionando
como debería ser, es decir, si los comportamientos de los agentes corresponden a lo
que está en la teoría. A partir del análisis realizado en el capítulo 10 se puede concluir
que tanto el modelo propuesto como los esquemas empleados por los agentes
cumplen en buena medida con el comportamiento esperado, lo cual se ve reflejado en
la evolución de las ofertas a lo largo de la subasta, la asignación final del bien al
agente que más lo valora y la eficiencia de la recomendación a medida que se
dispone de más información.
ISC-2002-2-1
152
La capacidad de aprendizaje de los agentes va a estar condicionada solamente a
acciones previamente tomadas, lo cual podría verse como una desventaja. Para
solucionar este contratiempo, la posible inclusión de nuevos esquemas de aprendizaje
que fortalezcan el esquema propuesto sería un trabajo interesante, pues a partir de
técnicas de reconocimiento de patrones o generación y evaluación de posibles
escenarios mediante algoritmos genéticos, el proceso de recomendación aumentaría
su potencial y a sí mismo su efectividad.
Otro trabajo a realizarse sería la ampliación del mercado para permitir la coexistencia
en un mismo ambiente de agentes artificiales y seres humanos en una subasta, claro
está, la previa modificación de los esquemas de aprendizaje utilizados por dichos
agentes, ya que estos están realizados pensando un entorno compuesto sólo por
participantes con esquemas de aprendizaje semejantes a los de ellos. Con la inclusión
de humanos en el mercado se podría mejorar las estrategias que los agentes utilizan
ya que con un modelo más enriquecido los agentes podrían llegar a imitar y adaptarse
a comportamientos presentados en las estrategias seguidas por los humanos.
Con respecto a los algoritmos se puede concluir lo siguiente:
• La convergencia del proceso de negociación va aumentar a medida que el
número de participantes lo haga. De igual forma si el coeficiente de riesgo de
los participantes es alto, la convergencia Serra mayor.
• La recomendación va a tener mayor certeza si en el momento en que esta se
hace la subasta se encuentra en una secuencia avanzada.
• Los algoritmos de recomendación y negociación están basados en un tipo de
aprendizaje adaptativo, por lo que la disposición de mayor información
beneficiara el desempeño de los algoritmos.
• La entrada o salida de agentes en la subasta va a afectar el comportamiento de
los algoritmos si las características de estos agentes generan un cambio en las
ofertas realizadas por lo otros participantes de la subasta.
ISC-2002-2-1
153
12 BIBLIOGRAFÍA
• Presentación del curso de Agente de Software de Pavón Mestras Juan. Agente
Móviles de la universidad complutense de Madrid.
• Software Agents. Genesereth Michael R. y Ketchpel Steven P.
• An Inteligent Multi-Agent Architecture for Information Retrieval from the
Internet. Martín E Muller. Institute for Semantic Information Processing
• Autonomous Agents for participating in multiple online auctions. Patricia
Anthony, Wendy Hall, Viet Dung Dang y Nicholas R Jennings of the
department of electronics and computer science de la Universidad de
Southampton.
• Artificial Intelligence: A Modern Approach by Stuart Russell and Peter
Norvig, c 1995 Prentice-Hall, Inc.
• Presentación de Agente Inteligentes en la red Internet por el Dr. Jesús
Tramullas Saz. De la universidad de Saragoza.
• Online Learning about other agents in a Dynamic Multi-agent System. Junling
Hu y Michael P. Wellman. Laboratorio de Inteligencia Artificial de la
universidad de Michigan.
• Agents Participating in Internet Auctions. Junling Hu, Daniel Reeves y Hock-
Shan Wong. Laboratorio de Inteligencia Artificial de la universidad de
Michigan.
• Multiagente Reinforcement Learning in Stochastic Games. Junling Hu y
Michael P. Wellman. Laboratorio de Inteligencia Artificial de la universidad
de Michigan.
• Presentación que es un agente. Domingo Gallardo. Universidad de Alicante,
1999.
• Draft Specification of KQML. Agent-Communication Language. Tim Flinin,
Jay Weber, Gio Wiederhold, Michael Genesereth, Richard Fritzson, Donald
McKay, Chris Beck, Stuart Chapiro, James McGuire,Richard Pelavin. The
Darpa Knowledge Sharing Initiative External Interfaces Working Group.
• A learning Approach to Learning. Shlomit Hon-Snir, Dov Monderer y Aner
Sela. Technion-Israel Institute of Technology Haifa, Israel.
• Modeling Adaptive Autonomous Agents. Pattie Maes. MIT Media-
Laboratory.
ISC-2002-2-1
154
• Modeling human and organizational, behavior using a relation-centric multi-
agente system design paradigm. Kymberly A. Roddy y Michael R. Dickson.
• Stochastic Learning of Strategic Equilibria for Auctions. Samy Bengio,
Yoshua Bengio, Jacques Robert, Gilles Bélanger. Universidad de Montreal
• Agents Theories, Architectures and Languages: A Survey. Michael J.
Wooldridge y Nicholas R Jennings. Manchester Metropolitan University
Dept. of Electronic Engineering
• A Prunning Algorithm for Imperfect Information Games. Michael van Lent y
David Mutchler. Departamento de Computer Science de la Universidad de
Tennessee
• Conjetural Equilibrium in Multiagent Learning. Michael P. Wellman y
Junling Hu. Universidad de Michigan.
• An Architecture for Information Agents. Donald P McKay, Jon Pastor y
Robin McEntire. Computer Science and Electrical Engineering. Universidad
de Maryland
• Son las subastas lo mejor?. El Pais, Domingo 19 de noviembre de 2000. Paul
Kemperer.
• A Genetic Algorithm Tutorial. Darell Whitley.Universidad del Estado de
Colorado.
• Sardine: Dynamic Seller Strategies in an Acution MarketPlace. Joan Morris,
Peter Ree y Pattie Maes. MIT Media Labs.
• Agents advanced features for negotiation in Electronic Commerce and Virtual
Organisations formation process. Eugénio Oliveira y Ana Paola Rocha.
Universidad de Porto.
• Applying Game Theory to Automated Negotiation. Ken Binmore y Nir
Vulkman. Universidad de Rutdgers.
• Artificial Adaptative Agents in Economic Theory. John H Holland y John H.
Miller. The American Economic Review, Volumen 81, Issue 2.
• Internet Auctions. Manoj Kumar y Stuar I. Feldmna. IBM Research Division.
• Automated Negotiation in Agent-Mediated Electronic Commerce. Alessio
Lomuscio, Michael Wooldridge y Nicholas R. Jennings.
• Automated Service Negotiation Between Autonomous Computational Agents.
Peyman Faratin. Universidad de Londres.
• Designing Bidding Strategies for Trading Agents in Electronic Auctions.
Eduard Jiménez-Funes, Lluís Godo, Juan A Rodríguez Aguilar y Pérez
García-Calvés. Artificial Intelligence Research Institute, IIAI.
• Internet Auctions with Artificial Adaptative Agents: Evolution of Late and
Multiple Bidding. M. Utku Unver. Universidad de Koc.
• Negotiation Between Distributed Agents in a Concurrent Engineering System.
Sundar K. Victor. Instituto Politécnico de Workcester.
• Negotiation in Multi-Agent Systems. Martin Beer, Mark d´Inverno, Michael
Luck, Nick Jennings, Chris Preist y Michael Schroeder.
ISC-2002-2-1
155
• Multi- issue negotiation processes by evolutionary simulation:validation and
social extensions E.H. Gerding, D.D.B. van Bragt, J.A. La Poutré.
• Robust Learning Experiments. Evidence for Learning and Deliberation.
Werner Gruth
• Scientific Approaches and Techniques for Negotiation. A Game Theoretic and
Artificial Intelligence Perspective. E.H. Gerding, D.D.B. van Bragt y J.A. la
Poutre.
• A Market-Oriented Programming Environment and its Application to
Distributed Multicommodity Flow Problems. Michael P. Wellman.
Universidad de Michigan.
• Agents that reason and negotiate by arguing. Simon Parsons, Carles Sierra y
Nick R. Jennings. Universidad de Londres.
• Optimal Negotiation Strategies for Agents with Incomplete Information. S.
Shaheen Fatima, Michael Wooldridge y Nicholas R. Jennings.
• Allocation Mechanisms and the Design of Acutions. Milton Harris y Artur
Raviv. Revista Econométrica, Volumen 49, Issue 6.
• How Soft Games can be Played. Philippe de Wilde. Imperial College of
Science, Technology and Medicine London.
• Optimal Auctions. John G. Riley y William F. Samuelson. The American
Economic Review. Volumen 71, Issue 3.
• Optimal Auctions with Risk Averse Buyers. Econometrical, Volumen 52
Issue 6.
http://www.cs.dartmouth.edu/~brd/Teaching/AI/Lectures/Summaries/architectures.ht
ml
http://ict.udlap.mx/people/sandra/is523/pres_agentes_i.html
http://www.fdi.ucm.es/asignaturas/ssii_sup/SI/grupo1/resumenes/Agentes%20Intelige
ntes.html
http://cruzrojaguayas.org/inteligencia/Estructura%20de%20Agentes%20Inteligentes.
htm
http://www.hermans.org/agents/toc.htm
http://www.elec.qmul.ac.uk/dai/pubs/KER95/
http://www.firstmonday.dk/issues/issue4_6/jonkheer/
http://www.cs.umn.edu/magnet/
http://www.labs.bt.com/projects/agents/publish/papers/review1.htm
http://www.cs.tcd.ie/research_groups/aig/iag/content2.html
http://www.beje.decon.ufpe.br/rivero/rivero.htm
http://www.ee.ic.ac.uk/research/neural/project.html
http://www.firstmonday.dk/issues/issue4_6/jonkheer/
http://www-iiuf.unifr.ch/~brugger/papers/95_cidre/cidre/node26.html
http://www-2.cs.cmu.edu/~softagents/retsina_agent_arch.html
http://www-iiuf.unifr.ch/~brugger/papers/95_cidre/cidre/node32.html
ISC-2002-2-1
156
13 ANEXOS
13.1 Código fuente del motor de inteligencia del agente recomendador
13.1.1 Clase PlaneacionRecomendador package clienteia.AgenteRecomendador.KernelARecomendador;
import java.util.Vector;
import clienteia.Subasta.Subasta;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class PlaneacionRecomendador
{
private Vector Subastas; //vector con la informacion de cada subasta que va a ser recomendada
private int precioMaximoComprador; //v precio que esta dispuesto a pagar el comprador por el bien
private double riesgoComprador; //adversidad al riesgo del comprador
private EstrategiaRecomendador estrategia; //define la estrategia a seguir por el agente recomendador
private Vector resultadoRecomendacion; //resultado de la recomendacion
/**
* Metodo constructor por defecto
*/
public PlaneacionRecomendador()
{
this.Subastas = new Vector(0,1);
this.precioMaximoComprador = 0;
this.riesgoComprador = 0;
this.resultadoRecomendacion = new Vector(0,1);
this.estrategia = new EstrategiaRecomendador();
}
/**
* Metodo constructor por parametros
ISC-2002-2-1
157
*/
public PlaneacionRecomendador(Vector Subastas)
{
this.Subastas = Subastas;
}
/**
* Se quiere establecer cual es el bien que se quiere adquirir con sus caracterisitcas
* con el precio que el comprador esta dispuesto a dar
* @param precioMaximoComprador
*/
public void establecerMaximoComprador (int precioMaximoComprador)
{
this.precioMaximoComprador = precioMaximoComprador;
}
/**
* Establece la adversidad al riesgo que tiene un comprador
* @param riesgo
*/
public void establecerRiesgo (double riesgo)
{
this.riesgoComprador = riesgo;
}
/**
* Inicia la simulacion para la recomendacion
* @param subastas
*/
public void iniciarSimulacionSubasta(Vector subastas)
{
int numsubasta;
Subasta subasta;
this.Subastas = subastas;
//prueba
int i;
//
if (this.Subastas.size() == 0)
{
//no hay subasta no hay nada que recomendar
}
else
{
for (nums ubasta = 0; numsubasta < this.Subastas.size(); numsubasta++)
{
if((this.riesgoComprador > 0) && (this.precioMaximoComprador > 0))
{
subasta = (Subasta)this.Subastas.get(numsubasta);
this.resultadoRecomendacion =
this.estrategia.Simulacion(this.riesgoComprador,this.precioMaximoComprador,subasta);
}
else
System.out.println("la simulacion no puede iniciarse porque los valores no estan inicializados
corretamente");
}
}
ISC-2002-2-1
158
}
}
13.1.2 Clase EstrategiaRecomendador package clienteia.AgenteRecomendador.KernelARecomendador;
import clienteia.Subasta.Subasta;
import java.util.Vector;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class EstrategiaRecomendador
{
private Subasta subasta; //Subasta con la informacion
private int precioMaximoComprador; //v precio que esta dispuesto a pagar el comprador por el bien
private double riesgoComprador; //adversidad al riesgo del comprador
private PSERecomendador pse; //motor recomendador
private int precioMinimoVendedor; //precio minimo por el que el subastador vende el bien
private Vector resultado; //vector con el resultado de cada ronda de la subasta i
(bi,UtilidadEsperada,Probabilidad)
/**
* Metodo constructor por defecto
*/
public EstrategiaRecomendador()
{
this.subasta = new Subasta();
this.precioMaximoComprador = 0;
this.riesgoComprador = 0;
this.precioMinimoVendedor = 0;
pse = new PSERecomendador();
this.resultado = new Vector(0,1);
}
/**
* Metodo donde se lleva a cabo la simulacion de la recomendacion
* @param riesgoComprador
* @param precioMaximoComprador
* @param subasta
*/
ISC-2002-2-1
159
public Vector Simulacion (double riesgoComprador, int precioMaximoComprador, Subasta subasta)
{
this.riesgoComprador = riesgoComprador;
this.precioMaximoComprador = precioMaximoComprador;
this.subasta = subasta;
this.resultado.add(pse.calcularBi(this.subasta.darHistoriaSubasta(),this.precioMaximoComprador,this.r
iesgoComprador,subasta.darPrecioMinimoVendedor(),subasta.darNumeroJugadores()) );
this.resultado.add(pse.calcularProbabilidad());
this.resultado.add(pse.calcularUtilidadEsperada());
return resultado;
}
}
13.1.3 Clase PSERecomendador
package clienteia.AgenteRecomendador.KernelARecomendador;
import java.util.Vector;
import java.lang.Math;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class PSERecomendador
{
private double limiteSuperior;
private double limiteInfe rior;
private double oferta; //bi parametro de salida
private double probabilidad; //parametro de salida
private double utilidad; //parametro de salida
private double riesgo;
private int numeroJugadores;
private int precioMaximoComprador;
private int precioMinimoVendedor;
/**
* Constructor por defecto
*/
public PSERecomendador()
{
this.limiteInferior = 0;
this.limiteSuperior = 0;
this.oferta = 0;
this.probabilidad = 0;
this.utilidad = 0;
ISC-2002-2-1
160
this.riesgo = 0;
this.numeroJugadores = 0;
this.precioMaximoComprador = 0;
this.precioMinimoVendedor = 0;
}
/**
* Funcion que calcula el valor de bi para un subasta con un numero especifico de jugadores
* @param HistoriaSubasta
* @param precioMaximoComprador
* @param riesgoComprador
* @param precioSubastador
* @return
*/
public Double calcularBi(Vector HistoriaSubasta,int precioMaximoComprador,double
riesgoComprador,int precioSubastador,int numJugadores)
{
int numJugador = 0;
int numRondas = 0;
boolean siguiente = true;
double varianza = 0;
Integer ofertaMayor = new Integer(0);
Integer ofertaMenor = new Integer(0);
Integer bi = new Integer(0);
Vector rondas = new Vector(0,1);
Vector numeros = new Vector(0,1);
this.numeroJugadores = numJugadores;
this.riesgo = riesgoComprador;
this.precioMaximoComprador = precioMaximoComprador;
this.limiteInferior = 0;
this.limiteSuperior = 0;
this.precioMinimoVendedor = precioSubastador;
//caso en que no exista historia en la subasta
if (HistoriaSubasta == null)
{
this.oferta = (this.riesgo*this.precioMinimoVendedor +
this.precioMaximoComprador*(this.numeroJugadores-1))/(this.riesgo+this.numeroJugadores -1);
this.limiteInferior = this.precioMinimoVendedor;
this.limiteSuperior = this.precioMaximoComprador;
}
else
{
while (numJugador<HistoriaSubasta.size())
{
rondas = (Vector)HistoriaSubasta.get(numJugador);
//inicializacion de las variables
if (numJugador == 0)
{
ofertaMenor = (Integer)rondas.get(numRondas);
ofertaMayor = (Integer)rondas.get(numRondas);
}
while (siguiente && numRondas < rondas.size())
{
ISC-2002-2-1
161
//vector para poder calcular la varianza no se deben tener en cuenta el jugador con -1
if (((Integer)rondas.get(numRondas)).intValue() != -1)
numeros.add( (Integer)rondas.get(numRondas));
//no necesita evaluar el primer caso jugador 0
if (numJugador != 0)
{
if (ofertaMayor.intValue() < ((Integer)rondas.get(numRondas)).intValue() &&
((Integer)rondas.get(numRondas)).intValue() != -1 )
ofertaMayor = (Integer)rondas.get(numRondas);
if (ofertaMenor.intValue() > ((Integer)rondas.get(numRondas)).intValue() &&
((Integer)rondas.get(numRondas)).intValue() != -1)
ofertaMenor = (Integer)rondas.get(numRondas);
}
siguiente = false;
//caso en el que toca evaluar la siguiente ronda
if (numJugador == HistoriaSubasta.size()-1)
{
numRondas++;
varianza = calcularVarianza(numeros);
this.limiteInferior = this.limiteInferior + ofertaMenor.intValue();
this.limiteSuperior = this.limiteSuperior + ofertaMayor.intValue() - (varianza*0);
numeros.clear();
//caso en el que se esta en la ultima ronda en el ultimo jugador
if (! ((numRondas == rondas.size()) && (numJugador == HistoriaSubasta.size()-1)) )
numJugador = -1;
}
numJugador++;
}
siguiente = true;
}
this.limiteInferior = this.limiteInferior/numRondas;
this.limiteSuperior = this.limiteSuperior/numRondas;
//caso en que exista historia en la subasta
this.oferta = (this.riesgo*this.limiteInferior +
this.precioMaximoComprador*(this.numeroJugadores-1))/(this.riesgo+this.numeroJugadores -1);
}
return new Double(this.oferta);
}
/**
* Funcion que calcula la desviacion estandar de una ronda de una subasta
* (nE(x^2) - (E x)^2)/n(n-1)
* @param varianza
* @return
*/
public double calcularVarianza (Vector numeros)
{
int n = 0;
int numOferta;
double desviacion = 0;
int primerTermino = 0;
int segundoTermino = 0;
n = numeros.size();
for (numOferta=0; numOferta<n; numOferta++)
ISC-2002-2-1
162
{
primerTermino = primerTermino +
((Integer)numeros.get(numOferta)).intValue()*((Integer)numeros.get(numOferta)).intValue();
segundoTermino = segundoTermino = segundoTermino +
((Integer)numeros.get(numOferta)).intValue();
}
primerTermino = primerTermino*n;
segundoTermino = segundoTermino*segundoTermino;
desviacion = (primerTermino-segundoTermino)/(n*(n-1));
return (Math.sqrt(desviacion));
}
public Double calcularProbabilidad()
{
if (this.limiteSuperior > this.oferta)
this.probabilidad = Math.pow( (this.oferta-this.limiteInferior)/(this.limiteSuperior-
this.limiteInferior),(this.numeroJugadores-1) );
else
this.probabilidad = 0.9999999;
return new Double(this.probabilidad);
}
public Double calcularUtilidadEsperada()
{
this.utilidad = this.riesgo * Math.pow((this.precioMaximoComprador-this.oferta),this.riesgo );
return new Double(this.utilidad);
}
}
package clienteia.Subasta;
import java.util.Vector;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class Subasta
{
private int numeroJugadores; //numero de jugadores que tiene una subasta determinada
private int identificador; //identificador de la subasta
private int precioMinimoVendedor; //precio minimo por el que se vende el bien
private Vector historiaSubasta; //historia de la subasta con cada jugador y sus jugadas
private String bien; //bien que quiere adquirir
private String caracteristicas; //caracteristicas del bien que se quiere adquirir
/**
* Constructor por defecto de una subasta
*/
ISC-2002-2-1
163
public Subasta()
{
this.numeroJugadores = 0;
this.identificador = 0;
this.historiaSubasta = new Vector(0,1);
this.precioMinimoVendedor = 0;
this.bien = new String();
this.caracteristicas = new String();
}
/**
* Constructora por parametro
* @param numJugadores
* @param identificador
* @param historia
* @param precioMinimo
* @param bien
* @param caracterisitcas
*/
public Subasta (int numJugadores,int identificador,Vector historia,int precioMinimo,String
bien,String caracteristicas)
{
this.numeroJugadores = numJugadores;
this.identificador = identificador;
this.historiaSubasta = historia;
this.precioMinimoVendedor = precioMinimo;
this.bien = bien;
this.caracteristicas = caracteristicas;
}
/**
* Da la historia asociada a una subasta
* @return
*/
public Vector darHistoriaSubasta()
{
return this.historiaSubasta;
}
/**
* Da el numero de jugadores asociados a una subasta
* @return
*/
public int darNumeroJugadores()
{
return this.numeroJugadores;
}
/**
* Da el precio minimo por el subastador vende el bien
* @return
*/
public int darPrecioMinimoVendedor ()
{
return this.precioMinimoVendedor;
}
/**
* Establece el numero de jugadores de una subasta
ISC-2002-2-1
164
* @param jugadores
*/
public void establecerNumeroJugadores (int jugadores)
{
this.numeroJugadores = jugadores;
}
/**
* Establece el identificador de una subasta
* @param id
*/
public void establecerIdentificador (int id)
{
this.identificador = id;
}
/**
* Establece el precio minimo por el que el subastador vende el bien
* @param precio
*/
public void establecerPrecioMinimoVendedor (int precio)
{
this.precioMinimoVendedor = precio;
}
/**
* Establece la historia de la subasta
* @param historia
*/
public void establecerHistoriaSubasta (Vector historia)
{
this.historiaSubasta = historia;
}
public void establecerObjectoSubastar (String caracteristica, String bien)
{
this.caracteristicas = caracteristica;
this.bien = bien;
}
}
ISC-2002-2-1
165
13.2 Código fuente del motor de inteligencia del agente negociador
13.2.1 Clase PlaneacionNegociador
package clienteia.AgenteNegociador.KernelANegociador;
import java.util.Vector;
import java.io.*;
import java.util.StringTokenizer;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class PlaneacionNegociador
{
EstrategiaNegociador planeacion;
public PlaneacionNegociador()
{
planeacion=new EstrategiaNegociador();
}
/**
* Hay que realizar el plan correspondiente a la generacion de la oferta
* @param historia historia de la subasta
*/
public int darOferta(Vector historia)
{
planeacion.ia.establecerHistoria(historia) ;
return planeacion.darSiguienteOferta() ;
}
}
13.2.2 Clase EstrategiaNegociador Package clienteia.AgenteNegociador.KernelANegociador;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class EstrategiaNegociador
{
ISC-2002-2-1
166
PSENegociador ia;
public EstrategiaNegociador()
{
ia=new PSENegociador();
}
/**
* Realizar la estrategia relacionada con la generacion de la oferta para la
* secuencia de la subasta
* @return int oferta para la siguiente secuencia
*/
public int darSiguienteOferta()
{
int oferta;
if(ia.sinHistoria==ia.historia.size() )
{
/*si no hay historia para todos los jugadores se debe generar
la oferta con el resultado del problema de optimizacion asociado
*/
oferta=(int) ((ia.ro*ia.ofertaInf + ia.valoracion*(ia.historia.size()))/(ia.ro+ia.historia.size()));
}
else
{
oferta=ia.generarOferta(ia.historia);
double promedio=ia.calcularPromedio();
int[] limite=ia.calcuclarLimites(oferta,promedio);
if(oferta>promedio && ia.calentamiento>0.1)
{
oferta-=(ia.ro)*Math.abs(limite[1]-limite[0]);//acercarse al promedio sin pasarse de lim inf
}
e lse if(ia.calentamiento>0.1)
{
oferta+=(1-ia.ro)*Math.abs(limite[1]-limite[0]);//acercarse al promdeio sin pasarse del lim sup
if(((ia.ro)*Math.abs(oferta-limite[1]))*10%10>5)//aprox si el residuo es mayor a 0.5
oferta++;
}
ia.calentamiento-=0.1;
}
if(oferta<ia.ofertaInf )
{
oferta=ia.ofertaInf;
}
else if(oferta>ia.valoracion )
oferta=ia.valoracion ;
else if(ia.calentamiento<=0.1)
{
oferta=(int)(oferta+(ia.valoracion-oferta)*(1-ia.ro));
}
return oferta;
}
}
ISC-2002-2-1
167
13.2.3 Clase PSENegociador package clienteia.AgenteNegociador.KernelANegociador;
import java.util.Vector;
/**
* <p>Title: Mercado Inteligente</p>
* <p>Description: Aplicacion del cliente</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: Uniandes</p>
* @author Amaya-Aguia
* @version 1.0
*/
public class PSENegociador
{
Vector historia;//historia de la subasta sin tener en cuenta a si mismo
Vector frecuencia;//frecuencia de observacion de las aciones para la historia dada
double ro;//parametro de la funcion de utilidad
int valoracion;//valoracion del objeto a subastar.
int ofertaInf; //minima oferta aceptada
int sinHistoria;//numero de jugadore sin historia
Vector psi;
double calentamiento=1;
int MemCall=10;
/**
* Constructora
*/
public PSENegociador()
{
}
/**
* Cambia de formato la historia. Pasa de vector de vectores a vector de arreglo int
* @param hist
*/
public void establecerHistoria(Vector his t)
{
int i,j;
int temp1;
int temp[]=temp=new int[5];
this.historia=new Vector(hist.size());
this.sinHistoria=0;
for(i=0;i<hist.size();i++)
{
temp=new int[((Vector)hist.get(i)).size()];
for(j=0;j<((Vector)hist.get(i)).size();j++)
{
temp[j]=((Integer)((Vector)hist.get(i)).get(j)).intValue();
}
if(j==0)
{
ISC-2002-2-1
168
temp=new int[1];
temp[0]=this.ofertaInf;//hay que dar
sinHistoria++;
}
this.historia.add(temp);
}
}
/**
* Retorna la oferta a realizar dada una historia
* @param historia
* @return int
*/
public int generarOferta(Vector historia)
{
Vector phi;//(frecuencia,accion)
Vector ve;//vector con las tuplas optimas para cada
Vector veFre;//vector con las frecuencias para las tuplas selecciondas
//Primer paso
//Generar los elementos psi , phy
psi=this.darPsi();
phi=this.darPhi();
ve=new Vector();
veFre=new Vector();
int k;//iteracion del algoritmo
for(k=0;!this.criterioParada(historia,psi,k);k++)
{
//Segundo paso
//tomar el primer elemento de psi
int psi1[] = new int[2];
psi1=(int[])psi.get(k);//obtener la maxima accion para la iteracion k
//Tercer Paso
//seleccionar las otras acciones segun criterio
int i;
int[] tupla=new int[historia.size()];
double[] frec=new double[historia.size()];
for(i=0;i< historia.size();i++)
{
if(i!=psi1[1])//no se t iene en cuenta el jugador con la accion psi1
{
//obtiene la accion que cumpla con la condicion impuesta por el paso
//tres del algoritmo
tupla[i]=this.darAccion(phi,psi,i,k);
frec[i]=this.darFrecAccion(phi,psi,i,k) ;//frecuencia de las accion para i
}
else
{
tupla[i]=psi1[0];
frec[i]=this.darFrecAccion(phi,psi,i,0);
}
}
ve.add(tupla);
ISC-2002-2-1
169
veFre.add(frec) ;
}
//paso 5
//determinar cual de todas las tuplas es la optima
int[] temp = new int[historia.size()];
int posOptimo=0;
for(k=1;k<ve.size();k++)
{
temp=(int[])ve.get(k);
if(this.evaluarUtilidad(temp,(double[])veFre.get(k))>this.evaluarUtilidad((int[])ve.get(posOptimo),(do
uble[])veFre.get(posOptimo)))
{
posOptimo=k;
}
}
int maximaAccion=this.maximo((int[])ve.get(posOptimo));
if(maximaAccion > this.valoracion)
maximaAccion=this.valoracion;
else if(maximaAccion<this.ofertaInf)
maximaAccion=this.ofertaInf;
else
maximaAccion++;
return maximaAccion;
}
/**
* retorna el elemento maximo de una tupla
* @param tupla
* @return int
*/
private int maximo(int tupla[])
{
int i=0;
int maximo=0;
if(tupla.length>0)
maximo=tupla[0];
for(i=1;i<tupla.length; i++)
{
if(tupla[i]>maximo)
maximo=tupla[i];
}
return maximo;
}
/**
* Retorna la utilidad dad una tupla de acciones
* @param tupla
* @return utilidad
*/
private double evaluarUtilidad(int tupla[],double frec[])
{
int i;
double utilidad=0;
ISC-2002-2-1
170
if(tupla.length>0)
{
int max=this.maximo(tupla);
if(this.valoracion-max>0)
utilidad=(double)this.ro*Math.pow((double)this.valoracion-(double)this.maximo(tupla),this.ro);
else
utilidad=0;
}
for(i=0;i<frec.length ;i++)
{
utilidad*=(double)frec[i];
}
return utilidad;
}
/**
* Verifica si se cumple con el criterio de parada especificado en el paso cuatro
* del algoritmo para generar ofertas
* @param historia
* @param psi
* @param k iteracion del algoritmo
* @return
*/
private boolean criterioParada(Vector historia,Vector psi,int k)
{
int i;
boolean parar=false;
int numAccion[]=new int[historia.size()];
int temp[]=new int[2];
//si a partir dedd la sddecuecia k no hay mas acciones para algun jugador
//se debe parar.
for (i=k;i<psi.size();i++)
{
temp=(int[])psi.get(i);
//aumentar en num de acciones para el jugador que utiliza psi(i)
numAccion[temp[1]]++;
}
for(i=0;i<historia.size() ;i++)
{
if(numAccion[i]==0)
{
parar =true;
}
}
return parar;
}
/**
* obtiene la accion que cumpla con la condicion impuesta por el paso tres
* del algoritmo
* @param phi
* @param psi
* @param i posicion del jugador
* @param k iteracion del algoritmo
* @return int accion
*/
ISC-2002-2-1
171
private int darAccion(Vector phi,Vector psi,int i,int k)
{
int j;
int temp;
int resultado=0;
double temp2[][]=null;
boolean centinela=true;
double a=((double[][])phi.get(i)).length ;
for(j=0;j<a && centinela;j++)
{
temp2=new double[((double[][])phi.get(i)).length][2];
temp2=(double[][])phi.get(i);
temp=(int)temp2[j][1];
if(!this.esta((int)temp,psi,k,i))//no ha sido seleccionada, ya la encontre!
centinela=false;
}
//retornar la accion asociada a la frecuencia
return (int)temp2[j-1][1];
}
/**
* Retorna true si elem ha sido eliminado de psi para el jugador i en una de
* las k iteraciones pasadas
* @param elem elemento a buscar
* @param psi
* @param k iteracion del algoritmo
* @param i jugador
* @return
*/
private boolean esta(int elem, Vector psi, int k, int i)
{
int l;
boolean resultado=false;
int temp[]=new int[2];
for(l=0;l<=k && !resultado;l++)
{
temp =(int[])psi.get(l) ;
if(temp[1]==i && temp[0]==elem )//es el jugador i
resultado=true;
}
return resultado;
}
/**
* obtiene las frecuencias de las acciones que cumplan con la condicion impuesta por el paso tres
* @param phi
* @param psi
* @param i
* @param k
* @return
*/
private double darFrecAccion(Vector phi,Vector psi,int i,int k)
{
int j;
int temp;
int resultado=0;
ISC-2002-2-1
172
double temp2[][]=null;
boolean centinela=true;
for(j=0;j<((double[][])phi.get(i)).length && centinela;j++)
{
temp2=new double[((double[][])phi.get(i)).length/2][2];
temp2=(double[][])phi.get(i);
temp=(int)temp2[j][1];
if(!this.esta((int)temp,psi,k,i))//no ha sido seleccionada, ya la encontre!
centinela=false;
}
//retornar la frecuencia
return temp2[j-1][0];
}
/**
* Retorna un vector donde cada elemento es un arreglo de doubles de las frecuencias
* ordenadas descendentemente para cada jugador
* @return Vector
*/
public Vector darPhi()
{
Vector Phi=new Vector();
int i,j;
double frecuencia[][]=null;
for(i=0;i<this.historia.size() ;i++)
{
frecuencia=new double[((int[])this.historia.get(i)).length][2];
for(j=Math.max(this.historia.size()-MemCall,0);j<((int[])this.historia.get(i)).length ;j++)
{
if(((int[])this.historia.get(i)).length==0)
{//no hay historia de ese jugador
frecuencia=new double[1][2];
frecuencia[0][0]=1;
frecuencia[1][1]=this.ofertaInf;
}
else
{
frecuencia[j][0]=(double)contarOcurrencia((int[])this.historia.get(i),((int[])this.historia.get(i))[j])/(doub
le)frecuencia.length;
frecuencia[j][1]=(double)((int[])this.historia.get(i))[j];
}
}
frecuencia=ordenarFrecuencias(frecuencia);
Phi.add(frecuencia);
}
return Phi;
}
/**
* Cuenta las ocurrencias de elem en vector
* @param vector
* @param elem
* @return
ISC-2002-2-1
173
*/
private int contarOcurrencia(int vector[],int elem)
{
int i;
int numocurr=0;
for (i=Math.max(vector.length-MemCall,0); i<vector.length; i++)
{
if(vector[i]==elem)
numocurr++;
}
return numocurr;
}
/**
* Ordena el vector de acuerdo al parametro 0
* @param frecuencias
* @return
*/
private double[][] ordenarFrecuencias(double frecuencias[][])
{
int j,i;
double hold[]=new double[2];
double resultados[][]=new double[frecuencias.length][2];
int tam=(frecuencias.length);
for(i=0;i<tam;i++)
{
for(j=0;j<tam-1;j++)
{
if(frecuencias[j][0]<frecuencias[j+1][0])
{
hold[0]=frecuencias[j][0];
hold[1]=frecuencias[j][1];
frecuencias[j][0]=frecuencias[j+1][0];
frecuencias[j][1]=frecuencias[j+1][1];
frecuencias[j+1][0]=hold[0];
frecuencias[j+1][1]=hold[1];
}
}
}
int k=0;
for(i=0;i<tam;i++)
{
if(i<tam-1 && frecuencias[i][1]==frecuencias[i+1][1])
{
}
else
{
resultados[k][0]=frecuencias[i][0];
resultados[k][1]=frecuencias[i][1];
k++;
}
}
return resultados;
}
/**
ISC-2002-2-1
174
* Retorna un vector con las acciones de la hisotria ordenadas descendentemente
* Cada elemento del vector es un arreglo de enteros donde el primer elemento
* es la accion y el segundo es el numero(posicion en el vector historia) del
* jugador a quien pertenece dicha oferta
* @return Vector
*/
public Vector darPsi()
{
Vector Psi = new Vector();
int i,j,k;
int tam=0;
for(i=0;i<this.historia.size();i++)
{
if(MemCall-((int[])historia.get(i)).length > 0)
tam+=((int[])historia.get(i)).length;
else
tam+=MemCall;
}
int temp[][]=new int[tam][2];
int hold[]=new int[2];
int elem[]=new int[2];
k=0;
for(i=0;i<this.historia.size();i++)
{
for(j=Math.max(((int[])historia.get(i)).length-MemCall,0);j<((int[])historia.get(i)).length;j++)
{
temp[k][0]=((int[])historia.get(i))[j];
temp[k][1]=i;
k++;
}
}
//ordenar el arreglo
for(j=0;j<tam;j++)
{
for(i=0;i<tam-1;i++)
{
if(temp[i][0]<temp[i+1][0])
{
hold[0]=temp[i][0];
hold[1]=temp[i][1];
temp[i][0]=temp[i+1][0];
temp[i][1]=temp[i+1][1];
temp[i+1][0]=hold[0];
temp[i+1][1]=hold[1];
}
}
}
for(i=0;i<tam;i++)
{
elem=new int[2];
if(i<tam-1 && temp[i][0]==temp[i+1][0] && temp[i][1]==temp[i+1][1])
{
//no lo agrego
ISC-2002-2-1
175
}
else
{
elem[0]=temp[i][0];
elem[1]=temp[i][1];
Psi.add(elem);
}
}
return Psi;
}
/**
* calcula el promedio de las ofertas en la historia
* @return double promedio
*/
double calcularPromedio()
{
int i=0;
double promedio=0;
double temp;
for(;i<this.psi.size() ;i++)
{
temp=((int[])this.psi.get(i))[0] ;
promedio=promedio+temp;
}
if(this.psi.size() >0)
promedio=promedio/psi.size();
return promedio;
}
int[] calcuclarLimites(int oferta,double promedio)
{
double utilSup, utilInf;
int lim[]=new int[2];
int limInf,limSup;
double porcentage=5;
if(oferta<promedio)
{
lim[0]=oferta;
lim[1]=(int)((this.valoracion-promedio)*(1-ro)+promedio);
}
else
{
lim[1]=oferta;
if(promedio-(promedio)*(0.2)<this.ofertaInf)
{
lim[0]=this.ofertaInf ;
}
else
{
lim[0]=(int)(promedio*0.8);
}
}
return lim;
Top Related