Mecanismos de Valoración de Reputación en Sistemas

MECANISMOS DE VALORACIÓN DE
REPUTACIÓN BASADOS EN SISTEMAS
MULTIAGENTES: UNA ARQUITECTURA
FLEXIBLE
TESIS DE GRADO EN INGENIERÍA INFORMÁTICA
FACULTAD DE INGENIERÍA
UNIVERSIDAD DE BUENOS AIRES
TESISTA: Sr. Víctor Daniel PODBEREZSKI
DIRECTOR: Prof. M. Ing. Lic. Jorge Salvador IERACHE
Laboratorio de Sistemas Inteligentes
MECANISMOS DE VALORACIÓN DE
REPUTACIÓN BASADOS EN SISTEMAS
MULTIAGENTES: UNA ARQUITECTURA
FLEXIBLE
TESIS DE GRADO EN INGENIERÍA INFORMÁTICA
Laboratorio de Sistemas Inteligentes
FACULTAD DE INGENIERÍA
UNIVERSIDAD DE BUENOS AIRES
Sr. Víctor Daniel
Podberezski
Prof. M. Ing. Lic. Jorge
Salvador Ierache
Tesista
Director
Octubre 2007
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Agradecimientos
A M. Ing. Lic Jorge Salvador Ierache miembro del laboratorio de Sistemas Inteligentes por
servirme de guía en la elaboración de esta tesis y fomentar mi interés en la investigación.
A mis suegros por permitirme quedarme algunos días hasta altas horas en su casa armando esta
tesis.
A mis papas y mi hermano por soportar mi mal humor.
A Valeria por aguantarme, hacerme compañía y empujarme siempre para adelante. ☺
Víctor Daniel PODBEREZSKI
-i-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Resumen
En esta tesis se propone una arquitectura de administración de reputación en sistemas
multiagentes. Se presenta una ontología de reputación y protocolos de interacción que se
complementa con la arquitectura. Se realizan pruebas abarcativas para constatar la adaptabilidad
de la propuesta. Finalmente se realiza un análisis de los resultados obtenidos.
Abstract
This thesis research proposes a Multi-Agent reputation administration architecture. It also
presents a reputation ontology and interaction protocols that are related with the architecture. A
series of tests are made in order to check the adaptability of the proposal. Finally an analysis of
the results is made.
Víctor Daniel PODBEREZSKI
- ii -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Índice de Contenidos
Capitulo 1 Introducción .........................................................................................1
Capitulo 2 Estado del Arte .....................................................................................3
2.1 Introducción ................................................................................................................. 3
2.2 Agentes y sistemas multiagentes ................................................................................. 3
2.2.1 Agentes.......................................................................................................... 3
2.2.2 Sistemas multiagentes ................................................................................... 4
2.2.3 Interacción entre agentes ............................................................................... 6
2.2.4 Protocolos de comunicación ......................................................................... 8
2.3 Reputación ................................................................................................................... 9
2.3.1 Introducción .................................................................................................. 9
2.3.2 Definiciones ................................................................................................ 10
2.3.3 Tipo de paradigma ...................................................................................... 12
2.3.4 Fuentes de información ............................................................................... 12
2.3.5 Tipo de visibilidad ...................................................................................... 13
2.3.6 Granularidad del modelo............................................................................. 14
2.3.7 Asunción del comportamiento de los agentes ............................................. 15
2.3.8 Tipo de información intercambiada ............................................................ 15
2.4 Modelos de reputación ............................................................................................... 15
2.4.1 Sistemas de reputación on-line ................................................................... 15
2.4.2 S. Marsh ...................................................................................................... 16
2.4.3 Sporas e Histos. ........................................................................................... 17
2.4.4 Schillo et. al................................................................................................. 18
2.4.5 Abdul-Rahman y Hailes .............................................................................. 19
2.4.6 Sen y Sajja ................................................................................................... 20
2.4.7 AFRAS ........................................................................................................ 21
2.4.8 Carter et al. .................................................................................................. 21
2.4.9 Yu y Singh .................................................................................................. 23
2.4.10 Castelfranchi y Falcone............................................................................. 24
2.4.11 Esfandiary y Chandrasekharan.................................................................. 25
2.4.12 REGRET ................................................................................................... 26
2.4.13 NodeRanking ............................................................................................ 28
2.4.14 FIRE .......................................................................................................... 28
2.4.15 Resumen .................................................................................................... 29
2.5 Ontologías de reputación ........................................................................................... 31
Capitulo 3 Descripción del problema ................................................................... 32
3.1 Introducción ............................................................................................................... 32
3.2 Características de los sistemas de reputación. ........................................................... 32
3.3 Objetivo. .................................................................................................................... 33
Capitulo 4 Solución propuesta ............................................................................. 34
Víctor Daniel PODBEREZSKI
- iii -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
4.1 Introducción ............................................................................................................... 34
4.2 Arquitectura de administración de reputación ........................................................... 34
4.2.1 Medición de reputación ............................................................................... 35
4.2.2 Actualización de reputación ........................................................................ 35
4.2.3 Pedido de reputación. .................................................................................. 35
4.2.4 Información de reputación .......................................................................... 35
4.2.5 Gestión e intercambio de información administrativa ................................ 35
4.3 Ontología de administración de reputación ............................................................... 36
4.3.1 Agentes........................................................................................................ 36
4.3.2 Fuente de información ................................................................................ 37
4.3.3 Tipo de contrato .......................................................................................... 37
4.3.4 Tema............................................................................................................ 38
4.3.5 Contrato a evaluar ....................................................................................... 38
4.3.6 Métrica: ....................................................................................................... 39
4.3.7 Escala: ......................................................................................................... 39
4.3.8 Unidad: ........................................................................................................ 39
4.3.9 Reputación: ................................................................................................. 40
4.4 Interacción entre agentes ........................................................................................... 41
4.4.1 Solicitud de reputación................................................................................ 42
4.4.2 Actualización de reputación ........................................................................ 45
4.4.3 Intercambio de información administrativa ................................................ 46
4.5 Componentes de la arquitectura ................................................................................. 48
4.6 Descripción de los módulos de la arquitectura .......................................................... 49
4.6.1 Administrador ............................................................................................. 49
4.6.2 Medidor ....................................................................................................... 51
4.6.3 Recopilador ................................................................................................. 52
4.6.4 Difusor ........................................................................................................ 55
4.6.5 Contacto ...................................................................................................... 56
4.6.6 Transformador ............................................................................................. 58
4.7 Interacción entre módulos de la arquitectura ............................................................. 59
4.7.1 Pedido de reputación ................................................................................... 59
4.7.2 Actualización de reputación ........................................................................ 61
4.7.3 Información de reputación .......................................................................... 62
Capitulo 5 Experimentación ................................................................................ 63
5.1 Objetivo ..................................................................................................................... 63
5.2 Escenarios de prueba ................................................................................................. 63
5.3 Reputación en sitio de subastas ................................................................................. 64
5.3.1 Características ............................................................................................. 64
5.3.2 Simulación .................................................................................................. 64
5.3.3 Resultados experimentales .......................................................................... 65
5.4 Reputación en cadena de suministros ........................................................................ 67
5.4.1 Características ............................................................................................. 68
Víctor Daniel PODBEREZSKI
- iv -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
5.4.2 Taxonomía .................................................................................................. 68
5.4.3 Métricas ....................................................................................................... 69
5.4.4 Funciones de conversión de métricas.......................................................... 69
5.4.5 Intercambio de reputación. .......................................................................... 71
5.4.6 Simulación .................................................................................................. 71
5.4.7 Resultados experimentales .......................................................................... 74
5.5 Prototipo..................................................................................................................... 77
Capítulo 6 Conclusiones y futuras líneas de investigación ................................... 78
6.1 Conclusiones .............................................................................................................. 78
6.1 Futuras líneas de investigación. ................................................................................. 79
Capítulo 7 Referencias......................................................................................... 80
Apéndice A Ontologías........................................................................................ 87
A.1 Definición de ontologías ........................................................................................... 87
A.2 Tipos de ontologías ................................................................................................... 90
A.2.1 El grado de dependencia a una tarea o dominio......................................... 90
A.2.2 El nivel de detalle de sus axiomas.............................................................. 91
A.2.3 Meta-Level Ontologies............................................................................... 92
A.3 El problema de integración de ontologías ................................................................. 92
A.4 Áreas de Aplicación de las Ontologías ..................................................................... 94
A.4.1 Ingeniería del Conocimiento. ..................................................................... 94
A.4.2 Procesamiento de lenguaje natural. ............................................................ 94
A.4.3 Interoperabilidad entre sistemas de información heterogéneos. ................ 94
A.4.4 Búsqueda semántica en sitios Web. ........................................................... 95
A.4.5 Modelado de empresas. .............................................................................. 95
A.4.6 Aplicaciones en la Web Semántica. ........................................................... 95
A.5 Componentes de una ontologia ................................................................................. 95
A.6 Lenguajes para la representación de ontologías........................................................ 96
A.6.1 DAML y OIL: ............................................................................................ 97
A.6.2 FLogic: ....................................................................................................... 97
A.6.3 KIF: ............................................................................................................ 97
A.6.4 Loom: ......................................................................................................... 98
A.6.5 OCML: ....................................................................................................... 98
A.6.6 OIL: ............................................................................................................ 98
A.6.7 OWL:.......................................................................................................... 98
A.6.8 SHOE: ........................................................................................................ 99
A.6.9 SL: .............................................................................................................. 99
A.7 Herramientas para la creación de ontologías ............................................................ 99
A.7.1 Protégé 2000............................................................................................... 99
A.7.2 WebOde.................................................................................................... 100
A.7.3 KAON ...................................................................................................... 100
A.8 Diseño de ontologías ............................................................................................... 100
Víctor Daniel PODBEREZSKI
-v-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
A.8.1 Metodología de Grüninger y Fox ............................................................. 101
A.8.2 Metodología Unschold y King ................................................................. 102
A.9 Referencias .............................................................................................................. 103
Apéndice B: Jade ............................................................................................... 106
B.1 Introducción ............................................................................................................ 106
B.2 Arquitectura............................................................................................................. 106
B.3 Descarga e instalación ............................................................................................. 107
B.3 Entorno de ejecución ............................................................................................... 108
B.3.1 Interfaz RMA ........................................................................................... 108
B.3.2 Agente Dummy ........................................................................................ 109
B.3.3 Interfaz DF ............................................................................................... 110
B.3.4 Agente Sniffer .......................................................................................... 111
B.3.5 Agente Instrospector................................................................................. 112
B.4 Agentes .................................................................................................................... 113
B.5 Comportamientos. ................................................................................................... 115
B.5.1 Primitive Behaviours ................................................................................ 115
B.5.2 Composite Behaviours ............................................................................. 116
B.6 Comunicación entre agentes ................................................................................... 116
B.7 Ontologías ............................................................................................................... 117
B.8 Manejo de Ontologías: Ontology Bean Generator. ................................................. 120
B.9 Referencias .............................................................................................................. 120
Apéndice C La reputación en la manufactura inteligente ................................... 122
C.1 Manufactura integrada por computador .................................................................. 122
C.2 La manufactura y el paradigma de agentes ............................................................. 123
C.3 La cadena de suministros. ....................................................................................... 126
C.4 Administración de la cadena de suministros mediante agentes .............................. 129
C.5 Reputación en la cadena de suministros.................................................................. 131
C.6 Modelos de reputación existentes en la administración de la cadena de suministros
....................................................................................................................................... 132
C.7 Referencias .............................................................................................................. 134
Apéndice D Código Fuente................................................................................ 138
D.1 Framework .............................................................................................................. 138
D.1.1 Administrador .......................................................................................... 138
D.1.2 Medidor .................................................................................................... 142
D.1.3 Recopilador .............................................................................................. 144
D.1.4 Contacto ................................................................................................... 147
D.1.5 Difusor...................................................................................................... 152
D.1.6 Transformador .......................................................................................... 153
Víctor Daniel PODBEREZSKI
- vi -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.1.7 Timers ...................................................................................................... 154
D.2 Ontología................................................................................................................. 155
D.2.1 Agente ...................................................................................................... 155
D.2.2 Agente Administrador .............................................................................. 155
D.2.3 Agente de Reputación .............................................................................. 156
D.2.4 Agente Reputado ...................................................................................... 157
D.2.5 Agente Reputador..................................................................................... 158
D.2.6 Contrato .................................................................................................... 158
D.2.7 Escala ....................................................................................................... 159
D.2.8 Escala categórica ...................................................................................... 160
D.2.9 Escala numérica ....................................................................................... 160
D.2.10 Fuente de información............................................................................ 162
D.2.11 Fuente primaria ...................................................................................... 162
D.2.12 Fuente secundaria ................................................................................... 163
D.2.13 Información propagada .......................................................................... 163
D.2.14 Información sociológica ......................................................................... 163
D.2.15 Interacción directa .................................................................................. 164
D.2.16 Métrica ................................................................................................... 164
D.2.17 Observación directa ................................................................................ 165
D.2.18 Prejuicio ................................................................................................. 165
D.2.19 Reputación.............................................................................................. 166
D.2.20 Tema ....................................................................................................... 168
D.2.21 Tipo de contrato ..................................................................................... 169
D.2.22 Unidad .................................................................................................... 170
D.2.23 ReputationOntology ............................................................................... 171
D.3 Agente de reputación de ejemplo ............................................................................ 175
D.3.1 ReputationAgent ...................................................................................... 175
D.3.2 Administrador .......................................................................................... 176
D.3.3 CalculadorStandard_Porcentual ............................................................... 180
D.3.4 Contacto ................................................................................................... 181
D.3.5 Difusor...................................................................................................... 186
D.3.6 Medidor Motor ......................................................................................... 188
D.3.7 Recopilador Asistencia............................................................................. 191
D.3.8 Administrador Factory ............................................................................. 193
D.3.9 Cadena Agent ........................................................................................... 193
Apéndice E Trabajos preeliminares presentados a congresos ............................. 196
Víctor Daniel PODBEREZSKI
- vii -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Índice de figuras
FIGURA 1: ESQUEMA DE LA ARQUITECTURA DE REPUTACIÓN. ..................................................... 36
FIGURA 2: DIAGRAMA UML DE LA ONTOLOGÍA. .......................................................................... 41
FIGURA 3: SOLICITUD DE REPUTACIÓN ......................................................................................... 43
FIGURA 4: SOLICITUD DE REPUTACIÓN EN CASCADA .................................................................... 44
FIGURA 5: ACTUALIZACIÓN DE REPUTACIÓN ............................................................................... 46
FIGURA 6: QUERY INTERACTION PROTOCOL ................................................................................ 47
FIGURA 7: MÓDULOS DE LA ARQUITECTURA. ............................................................................... 49
FIGURA 8: PEDIDO DE REPUTACIÓN .............................................................................................. 60
FIGURA 9: ACTUALIZACIÓN DE REPUTACIÓN. ............................................................................... 61
FIGURA 10: INFORMACIÓN DE REPUTACIÓN. ................................................................................ 62
FIGURA 11: EVALUACIÓN DE REPUTACIÓN A TRAVÉS DEL TIEMPO. .............................................. 67
FIGURA 12: TAXONOMÍA DE LOS PRODUCTOS ............................................................................... 68
FIGURA 13: RESULTADOS EXPERIMENTALES SEGÚN TIPO DE MÉTRICA UTILIZADA. ...................... 76
Víctor Daniel PODBEREZSKI
- viii -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Índice de tablas
TABLA 1: RESUMEN DE MODELOS DE REPUTACIÓN ....................................................................... 31
TABLA 2: OPERACIONES DEL MÓDULO “ADMINISTRADOR” .......................................................... 51
TABLA 3: ATRIBUTOS DEL MÓDULO “ADMINISTRADOR” .............................................................. 51
TABLA 4: OPERACIONES DEL MÓDULO "MEDIDOR" ...................................................................... 52
TABLA 5: ATRIBUTOS DEL MÓDULO “MEDIDOR”.......................................................................... 52
TABLA 6: BASES DE CONOCIMIENTO DEL MÓDULO “MEDIDOR” ................................................... 52
TABLA 7: OPERACIONES DEL MÓDULO “RECOPILADOR” .............................................................. 55
TABLA 8: ATRIBUTOS DEL MÓDULO “RECOPILADOR” .................................................................. 55
TABLA 9: BASES DE CONOCIMIENTO DEL MÓDULO “RECOPILADOR” ............................................ 55
TABLA 10: OPERACIONES DEL MÓDULO “DIFUSOR” ..................................................................... 56
TABLA 11: BASES DE CONOCIMIENTOS DEL MÓDULO “DIFUSOR” ................................................ 56
TABLA 12: OPERACIONES DEL MÓDULO “CONTACTO” ................................................................. 58
TABLA 13: BASES DE CONOCIMIENTO DEL MÓDULO “CONTACTO” ............................................... 58
TABLA 14: OPERACIONES DEL MÓDULO “TRANSFORMADOR” ...................................................... 58
TABLA 15: ATRIBUTOS DEL MÓDULO “TRANSFORMADOR” .......................................................... 59
TABLA 16: BASES DE CONOCIMIENTO DEL MÓDULO “TRANSFORMADOR” .................................... 59
TABLA 17: RESULTADOS EXPERIMENTALES DE VALORES DE REPUTACIÓN EN SITIO DE SUBASTA. 66
TABLA 18: FUNCIONES DE CONVERSIÓN DE MÉTRICAS ................................................................. 70
TABLA 19: DISTRIBUCIÓN DE PROBABILIDADES. .......................................................................... 73
Víctor Daniel PODBEREZSKI
- ix -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capitulo 1
Introducción
La utilización de modelos de reputación en sistemas informáticos se ha diseñado e
implementado para extraer información sobre el comportamiento de actores que interactúan
entre si. Estos actores son objeto de análisis para determinar su confiabilidad y respetabilidad.
La reputación de estos actores determina el grado de confianza que se les tiene para fiarse de la
información que nos brindan o en la delegación de ciertas tareas.
Los sistemas de reputación pueden ser utilizados dentro de los sistemas inteligentes distribuidos
para determinar la mejor manera de resolver un problema: la generación de una solución con
más probabilidades de éxito entre un conjunto posible de soluciones donde distintos actores
tienen la capacidad – o dicen tenerla – para completar una parte del plan de resolución.
Dentro de los sistemas inteligentes distribuidos se encuentran los sistemas multiagentes, donde
cada actor – un agente – cuenta con autonomía e interactúa, muchas veces, en un ambiente
abierto donde coexisten objetivos diferentes. En este marco, la formación de una opinión sobre
el comportamiento de un agente se convierte en algo crítico.
Existe un gran conjunto de propuestas de modelos de reputación. Cada modelo fue propuesto
para cubrir un conjunto de situaciones dadas. Siendo que no existen limitaciones en las
situaciones que los sistemas multiagentes pueden abarcar, los modelos de reputación se
multiplican para tratar de resolver escenarios específicos.
El objetivo de este trabajo es presentar una arquitectura de reputación adaptable y flexible que
sirva como modelo a la mayoría – sino a la totalidad – de las situaciones que puedan ocurrir en
sistemas multiagentes. Para eso se realizó un análisis de los sistemas multiagentes, su
organización y la aplicación de la reputación en diversas situaciones.
Como resultado de ese estudio se presenta una propuesta de una arquitectura de reputación con
los módulos que la componen, la interacción entre ellos, una ontología para la manipulación de
la reputación y un protocolo para el intercambio de la misma.
En el capítulo 2 se realizará un análisis de los temas que tienen relevancia en el desarrollo de
esta tesis. Se comienza con los agentes y sistemas multiagentes. Luego se profundiza en las
características de los modelos de reputación y un conjunto existente de modelos de reputación.
Finalmente se presentan ontologías que pretenden modelizar la reputación.
Víctor Daniel PODBEREZSKI
-1-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
En el capítulo 3 se detalla el problema a resolver con las diferentes características del mismo.
También se detalla el objetivo a concretar y el marco de trabajo en el que se efectúa.
En el capítulo 4 se desarrolla una solución propuesta a la problemática presentada en el capítulo
anterior. Se propone una arquitectura para la administración de la reputación, una ontología
capaz de representar el conocimiento a intercambiar en la arquitectura y protocolos de
interacción que reglen cómo se deben realizar la comunicación e intercambio de información
entre los agentes.
En el capítulo 5 se ofrecen dos escenarios de pruebas diferentes que sirven de marco rara
comprobar el funcionamiento y la flexibilidad de la arquitectura propuesta.
En el capítulo 6 se concluye el trabajo presentando las conclusiones obtenidas luego de la
experimentación y las futuras líneas de investigación.
Víctor Daniel PODBEREZSKI
-2-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capitulo 2
Estado del Arte
2.1 Introducción
En el siguiente capítulo se realizará un desarrollo pormenorizado de los temas analizados para
la elaboración de este trabajo. Se introduce a aquellos tópicos que conforman el marco de la
cuestión. Se comienza definiendo y caracterizando a los agentes y sistemas multiagentes
(Sección 2.2). Luego se reseñan y estudian las singularidades de los sistemas de reputación
(Sección 2.3). Posteriormente se presentan un conjunto de modelos de reputación existentes
(Sección 2.4) que abarcan un gran abanico de situaciones posibles. Finalmente se presentan
algunas ontologías de reputación (Sección 2.5) que pretenden modelizar el conocimiento e
intercambio de reputación.
2.2 Agentes y sistemas multiagentes
2.2.1 Agentes
Existen diversas definiciones de los que es un agente. Una definición generalmente aceptada
explica a un agente como un sistema de computación que se encuentra situado en un ambiente
y es capaz de un comportamiento autónomo con la misión de cumplir sus objetivos de diseño
[Russell & Norving 1995, Wooldridge & Jennings 1995, Wooldridge 2002]
Como puede observarse esta definición es bastante amplia, pero aun así deja algunos puntos en
claro. En primer lugar se habla de un sistema de computación donde se entiende a esto como un
software diseñado por la mano del hombre para funcionar bajo cierta arquitectura.
Luego se debe hacer hincapié en la palabra “ambiente”, entendiéndose a esta en un sentido
amplio, pudiendo ser un entorno virtual como la world wide web o algo concreto y real como la
exploración espacial o una planta industrial.
Se solicita que el sistema sea autónomo es decir que puede tomar decisiones por cuenta propia
sin la intervención humana o de otros sistemas.
Por ultimo se exige que el agente tenga un objetivo por cumplir. La conclusión de este objetivo
es altamente deseable pero no siempre es alcanzable.
Normalmente un agente tiene un repertorio de acciones posibles. Este set de acciones
representa la capacidad efectora del agente y es su capacidad de afectar al ambiente. No todas
las acciones pueden ser ejecutadas en cualquier momento sino que están atadas a
precondiciones que determinan si una acción determinada puede lanzarse.
Víctor Daniel PODBEREZSKI
-3-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Se define a un agente como inteligente si tiene la capacidad de realizar acciones autónomas
flexibles con el objetivo de lograr el objetivo propuesto [Wooldridge & Jennings, 1995].
Se entiende a la flexibilidad como la suma de:
-
Reactividad: Percibir del ambiente y responder en tiempo a aquellos cambios que
ocurren con el objeto de cumplir con el objetivo planteado.
-
Pro-actividad: Tomar la iniciativa en la realización de acciones orientadas a la
resolución del problema
-
Sociabilidad: Ser capaces de interactuar con otros agentes o humanos para satisfacer sus
objetivos de diseño.
Existe otra definición, que incluye a la anterior y al menos alguna de las siguientes
características [Wooldridge & Jennings, 1995]:
-
Nociones mentales: un agente tiene creencias, deseos e intenciones.
-
Racionalidad: realiza acciones a fin de lograr objetivos
-
Adaptabilidad o aprendizaje
-
Veracidad: un agente no es capaz de comunicar información falsa de propósito.
La última definición es señalada como la definición fuerte de agente inteligente. Mientras que
la primera es conocida como la definición débil.
2.2.2 Sistemas multiagentes
Un primer acercamiento a un sistema multiagente lo define como sistema que busca lograr la
cooperación de un conjunto de agentes autónomos para la realización de una tarea. La
cooperación depende de las interacciones entre los agentes e incorpora tres elementos: la
colaboración, la coordinación y la resolución de conflictos [Ferber 1999].
Una definición mas amplia y completa lo enuncia como un sistema en el que conviven un
conjunto de agentes capaces de interactuar entre así donde cada uno de ellos tienen sus propios
objetivos y deben cooperar o competir entre ellos para llevarlos a cabo. [Russell & Norvig
1995] Esta segunda explicación incluye a la primera como un caso particular.
Es importante hacer notar que el utilizar varios agentes para la solución de problemas no
implica únicamente dividir las tareas para cada individuo y esperar que se ejecuten, sino
también que los agentes actúen entre sí para compartir, además, conocimientos y coordinar sus
Víctor Daniel PODBEREZSKI
-4-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
acciones reaccionando ante cambios en el entorno para llegar a un objetivo común o permitir
que cada uno de ellos cumpla sus objetivos personales de la forma más eficiente. Estas acciones
son fijadas por ellos mismos y no por entes externos.
La meta entonces al crear sistemas multiagentes se encuentra no solamente en procesos de
conocimiento individuales sobre cómo actuar de acuerdo al entorno sino en procesos sociales
que trabajen sobre grupos de agentes, interactuando entre sí y además quizás con humanos
aunque en mucha menor proporción (no se busca la idea de controlar remotamente sino
interactuar para intercambios fugaces de información). En particular se buscan dos metas
importantes que están dadas en negociar las acciones a realizar por cada uno y cooperar para
llegar al fin utilizando el conjunto de posibilidades que da la cooperación (es bueno recordar
que no siempre la suma de las partes es igual a cada parte por separado).
Las características de un ambiente de un sistema multiagente son:
-
Provee una infraestructura especificando protocolos de comunicación e interacción.
-
Típicamente son abiertos y no tiene un diseñador centralizado.
-
Puede contener tanto agentes autónomos como distribuidos y pueden ser cooperativos o
egoístas (actuando únicamente en el interés propio).
-
Generalmente son de contenidos extensos y complejos.
-
En ocasiones su topología es dinámica y cambiante
Sobre el mismo se manejan además diferentes propiedades que lo caracterizan:
-
Conocimiento: Hasta que extensión es conocido el entorno por el agente.
-
Predictibilidad: Hasta que punto puede un agente predecir el entorno.
-
Control: Hasta que punto puede un agente controlar al entorno.
-
Historicidad: Si los estados futuros dependen de estados históricos pasados o solo del
estado actual.
-
Teleológico: Si existen partes del mismo con un propósito.
-
Tiempo Real: Si puede el ambiente cambiar mientras los agentes están deliberando.
Víctor Daniel PODBEREZSKI
-5-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
2.2.3 Interacción entre agentes
Dentro de un sistema de multiagentes es indispensable la existencia de la comunicación entre
agentes. Como en todo proceso de comunicación existen dos partes: el emisor y receptor. Un
agente debe ser capaz de asumir ambos roles.
Los agentes se comunican para lograr mejores resultados para si mismos o para la sociedad en
la que existen. Puede ocurrir que el agente no conozca la totalidad de un objetivo global sino
únicamente parte de este dependiendo de si el agente es o no basado en el objetivo. La
comunicación le puede permitir al agente coordinar sus acciones y comportamientos resultando
en sistemas que son más coherentes.
La coordinación es una propiedad de un sistema de agentes realizando una actividad en un
ambiente compartido. El grado de coordinación de los agentes determina la capacidad de llevar
a cabo sus objetivos disminuyendo al mínimo el tiempo de respuesta y la perturbación de los
objetivos entre los agentes.
La coordinación se puede dividir básicamente en dos grandes grupos. El primero de ellos, la
cooperación, mide el grado de coordinación entre dos o más agentes no-antagonistas. El
segundo, la competencia, mide la coordinación entre agentes que compiten entre si o entre
agentes egoístas.
La cooperación requiere un planeamiento donde los agentes involucrados se ponen de acuerdo
en los próximos pasos a realizar para lograr cumplir un objetivo o parte del mismo, para lograr
esto típicamente cada agente debe tener un modelo de los agentes participantes. El
planeamiento puede ser distribuido donde el plan es armado por las partes o centralizado donde
existe un único agente que determina el plan para el resto y luego lo comunica al resto de los
agentes. Para esto se requiere la socialización.
Por otro lado la negociación es el proceso en el cual los agentes antagonistas determinan qué
acciones realizar o dejar de realizar en un determinado lapso de tiempo para evitar que las
acciones de las partes tornen imposible la concreción de los objetivos de cada agente
involucrado.
Para una buena coordinación entre agentes es necesario que haya uno (o más) protocolos bien
especificados que permitan a los agentes discutir cursos de acción.
La coherencia del sistema se mide como la capacidad del mismo de funcionar comportándose
como una unidad. En un sistema multiagente la dificultad reside en cómo lograr la coherencia
global sin tener un sistema de control global explícito. Los agentes deben ser capaces de
determinar por si mismo las metas que comparten con otros agentes, encontrar tareas en común,
Víctor Daniel PODBEREZSKI
-6-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
evitar conflictos y compartir conocimiento y evidencias. Para esto ayuda mucho la existencia
de una forma de organización entre los agentes. También compromisos sociales pueden ser
medios para alcanzar la coherencia.
Deben existir en un estudio formal de la comunicación tres aspectos a tener en cuenta: La
sintaxis (como están estructurados los símbolos de comunicación), la semántica (qué denotan
los símbolos) y la pragmática (cómo los símbolos son interpretados). El significado es la
combinación de la semántica y la pragmática. Los agentes se comunican con el objetivo de
entender y ser entendidos. Por lo tanto es importante determinar las diferentes dimensiones de
significado que están asociados a la comunicación:
-
Descriptivos Vs. Prescriptivos: Algunos mensajes describen fenómenos, mientras que
otros prescriben comportamientos. Las descripciones son importantes para el ser
humano pero difíciles de imitar por los agentes. Por este motivo la mayoría de los
lenguajes de comunicación entre agentes están diseñados para intercambiar información
acerca de actividades y comportamientos.
-
Significado Personal Vs. Significado por convención: Un agente puede darle un
significado a un determinado mensaje pero éste puede diferir del significado aceptado
por convención por otros agentes. Se debe tratar que los lenguajes se ajusten lo más
posible a las convenciones, especialmente en sistemas abiertos donde un nuevo agente
se puede introducir en cualquier momento.
-
Significados Subjetivos Vs. Objetivos: Similarmente al caso anterior, cuando el
significado es determinado externamente al agente, un mensaje usualmente tiene un
efecto explícito en el ambiente, que puede ser percibido objetivamente. El efecto puede
ser diferente que el entendido internamente, por ejemplo, subjetivamente, por el emisor
y receptor del mensaje.
-
Perspectiva del Emisor, Receptor o Sociedad: El mensaje puede ser expresado tanto
desde el punto de vista del emisor, del receptor o de los observadores.
-
Semántica Vs. pragmática: La pragmática en la comunicación se ocupa de estudiar
como los comunicadores usan la comunicación y en que circunstancias. Esto incluye
consideraciones de los estados mentales de los comunicadores y el ambiente en el que
existen, consideraciones que son externas a la sintaxis y la semántica de la
comunicación.
-
Contexto: Los mensajes no pueden entenderse aisladamente, deben interpretarse como
estados mentales de los agentes, el estado presente del ambiente y su historia (como
Víctor Daniel PODBEREZSKI
-7-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
llegaron al estado actual). La interpretación está afectada directamente por los mensajes
y acciones previas del agente.
-
Cobertura: Lenguajes más pequeños son más manejables, pero deben ser lo
suficientemente complejos para lograr que el agente transmita el mensaje deseado.
-
Identidad: Cuando una comunicación ocurre entre agentes, su significado depende de
los roles e identidades de los agentes implicados.
-
Cardinalidad: Un mensaje enviado a un agente en particular debe ser entendido en
forma diferente al mismo mensaje enviado en broadcasting.
2.2.4 Protocolos de comunicación
Para lograr la comunicación en forma exitosa entre agentes se requiere la imperiosa existencia
de un protocolo que diga qué es posible realizar y cómo realizarlo.
El protocolo debe ser compartido por todos los agentes y debe ser conciso y limitado a una
cantidad determinada de mensajes e interacciones posibles.
Como en todo protocolo hay roles que determinan qué puede hacer un participante del mismo y
cuando. Los roles que se pueden tomar son: Master, Slave y Peer. Un rol de Master es aquel
donde el agente asume un estado activo realizando pedidos a otro (puede ser de información, o
de proposición de un plan), en cambio un rol de Slave es la contraparte del Master, estado
pasivo, donde es aquel que escucha y responde los pedidos. Por último el rol de Peer es aquel
que puede tomar tanto el papel activo como pasivo.
Los protocolos pueden permitir la comunicación de dos agentes (Protocolos de comunicación
binarios) o la comunicación entre varios agentes (Protocolos n-arios de comunicación).
En la comunicación de agentes se pueden utilizar un gran conjunto de protocolos. Hay
protocolos especializados en la comunicación de información y conocimiento, también los hay
para lograr una coordinación entre agentes.
Los protocolos de interacción gobiernan el intercambio de una serie de mensajes entre agentes
(una conversación). Se pueden distinguir diferentes tipos de protocolos de interacción, por
ejemplo agentes egoístas o en conflicto de intereses tendrán como objetivo en su protocolo
maximizar las utilidades del agente para aumentar su posibilidad de lograr sus metas. En el
caso en el que agentes tengan objetivos similares o problemas comunes el objetivo del
protocolo es el del alcanzar una performance global de coherencia entre los agentes sin violar la
autonomía de las partes.
Víctor Daniel PODBEREZSKI
-8-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
En primer lugar se debe caracterizar qué es deseable en un protocolo para la coordinación de
agentes. Para producir sistemas coordinados, la mayoría de las investigaciones en inteligencia
artificial distribuida se han concentrado en técnicas para distribuir tanto el control como la
información. El control distribuido determina la existencia de un grado de autonomía de acción
y decisión entre los agentes. Dentro de esta visión el agente tiene una perspectiva limitada y
parcial de la situación, aumentando el grado de incertidumbre y la dificultad a la hora de
mantener un comportamiento global coherente
En el esquema descrito las claves dentro del agente son el compromiso y la convención. El
compromiso es visto como el empeño de realizar un determinado curso de acción, mientras que
la convención provee un medio de manejar compromisos en circunstancias cambiantes. El
compromiso provee un grado de predictibilidad pudiendo tener los agentes consideración de las
futuras acciones de otros agentes cuando se enfrentan con dependencias interagentes,
restricciones globales o conflictos por utilización de recursos. A medida que la situación
cambia el agente debe evaluar si el compromiso actual aún es válido. La convención establece
las condiciones bajo las que el compromiso debe ser reasignado y especifica las acciones
asociadas que deben ser tomadas: tanto retener, rectificar o abandonar el compromiso.
Si las circunstancias no cambian un agente cumplirá con honor sus compromisos. Estas
obligaciones restringen las acciones subsecuentes del agente concernientes a tomar nuevos
compromisos, dado que debe guardar los suficientes recursos para cumplir los ya tomados.
La convención ayuda al agente a manejar sus compromisos, pero no especifica como debe
comportarse frente a otros agentes cuando modifica algún compromiso contraído. Frente al
caso de objetivos que son dependientes es importante que el agente comunique cualquier
cambio sustancial que ocurra en el mismo. Por otra parte cuando el agente decide tomar una
acción conjunta el grupo de agentes comprometidos debe informar cualquier cambio
significativo que ocurra en su compromiso pues al trabajar como equipo y no comunicarlo
puede poner en riesgo la conclusión exitosa del propósito.
2.3 Reputación
2.3.1 Introducción
La reputación es un concepto ampliamente utilizado en nuestra vida cotidiana. Vamos a ver una
obra de teatro porque una revista la calificó como Muy buena, comemos en un restaurante por
que un amigo nos dijo que sus pastas son las mejores que probó en la vida, elegimos no ir más a
un mecánico porque nos cobró caro y su arreglo se rompió a los dos días. Confiamos en ciertas
instituciones, personas y en nuestro juicio para decidir qué hacer y cómo.
Víctor Daniel PODBEREZSKI
-9-
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
La reputación ha sido analizada desde distintas disciplinas como la sociología, la economía, la
psicología y la filosofía. Dentro de la informática y las ciencias de la computación el concepto
de la reputación es reciente y diversas metodologías comienzan a producirse en ámbitos
académicos. El paradigma de agentes y el e-commerce dieron combustible al motor creativo.
La necesidad de interactuar con otros agentes en busca de socios confiables en ambientes
dinámicos y abiertos debe ser satisfecha. En la próxima sección (Sección 2.3.2) se analizará la
reputación y sus distintos modelos. Por último (Sección 2.3.3) se detallarán un conjunto
abarcativo de modelos propuestos para representar la reputación en un sistema informático.
2.3.2 Definiciones
La confianza es la creencia que tiene un agente en que la contraparte realizará lo que prometió
(siendo honesto y confiable) o que será reciproco (para el bien común de ambos) aun
existiendo una oportunidad de desertar para conseguir rentabilidades más altas [Ramchurn et al
2004].
La reputación se puede definir como la opinión o perspectiva de alguien acerca de algo.
[Sabater & Sierra, 2002b].
La reputación de un agente se conforma de acuerdo a su accionar en el tiempo. La reputación y
la confianza están íntimamente ligadas. Un agente tenderá a tener desconfianza (confianza
negativa o baja) hacia un agente con poca reputación. La reputación puede inducir a un
vendedor a comportarse bien si sabe que será evitado por futuros compradores como resultado
de su reducción de reputación producido por su mala conducta. [Ramchurn et al 2004]
Los modelos de reputación intentan guiar la decisión de un agente en determinar cómo, cuándo
y con quién interactuar [Ramchurn et al 2004]
Zacharia y Maes delinearon las cualidades deseadas de un modelo de reputación con respecto a
que delineamentos deben tenerse en cuenta al realizar las mediciones de reputación y cómo
impacta esto en el comportamiento de los actores del sistema [Zacharia & Maes, 2000].
-
Debe ser costoso cambiar de identidad en la comunidad. Esto debe prevenir la entrada
de un agente al sistema para comportarse maliciosamente, retirarse y reingresar sin
pérdida de utilidad o castigo a raíz del mal desempeño.
-
Nuevos ingresantes no deben ser penalizados teniendo inicialmente bajos valores de
reputación. Si ingresantes reciben baja reputación serán menos favorecidos a pesar de
ser totalmente confiables.
Víctor Daniel PODBEREZSKI
- 10 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Agentes con bajas calificaciones deben poder mejorar su reputación en forma similar a
un nuevo ingresante. Esto permite a un agente corregir su comportamiento si demostró
comportarse mal en el pasado.
-
Los costos de realizar transacciones falsas deben ser altos. Este impide a agentes
construir su propia reputación.
-
Los agentes que tienen una reputación alta deberían tener más alta preeminencia que
otros en la valoración de reputación que ellos atribuyen a otros agentes. Esto presupone
que los agentes con reputación alta darán valoraciones verídicas y acertadas a quien le
consulte. Sin embargo, esto es discutible. Si el agente reputador es competidor o tiene
algun convenio con otro agente competidor del agente a reputar existe un conflicto de
intereses. La preeminencia de una reputación contra la de otros puede conducir a la
creación de monopolios o cárteles en el mercado. Otra crítica a esta aproximación
declama que un buen agente vendedor, no tiene necesariamente que ser un buen
calificador.
-
Los agentes deben ser capaces de proveer evaluaciones personalizadas. Esto presupone
otorgar más que un simple valor de +1 o -1 para permitir una mayor evaluación de otro
agente.
-
Los agentes deben ser capaces de guardar en memoria los valores de reputación y darle
más importancia a los últimos obtenidos. Esto es necesario para mantener la medida de
reputación lo más actual posible y ayudar a prevenir que un agente construya una buena
reputación interactuando bien en un principio para luego comenzar a incumplir sus
promesas.
Existen varias aproximaciones a este concepto que en los últimos años con el advenimiento de
los sistemas multiagentes y del e-commerce cobró gran ímpetu. Una categorización se hace
necesaria y aquí se utilizará la propuesta por Jordi Sabater [Sabater 2003]. En esta se pueden
clasificar a los sistemas de reputación según:
-
Tipo de paradigma
-
Fuentes de información
-
Tipo de visibilidad
-
Granularidad del modelo
-
Asunción del comportamiento de los agentes
Víctor Daniel PODBEREZSKI
- 11 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Tipo de información intercambiada
A continuación se ahonda en cada uno de estos conceptos.
2.3.3 Tipo de paradigma
Existen dos grandes grupos en esta clasificación: una aproximación cognitiva y una
aproximación matemática. En los sistemas basados en modelos cognitivos, la confianza es
construida mediante creencias subyacentes y es una función del grado de estas creencias
[Esfandiari & Chandrasekharan 2001]. Estos métodos tratan de reproducir el mecanismo
humano de razonamiento acerca de la confianza y la reputación. En ellos es tan importante la
confianza obtenida como el medio por el cual se llegó a ella. Por otro lado se encuentran los
modelos matemáticos que no se basan ni en asunciones ni en creencias. No se enfocan en
procesos mentales en el sentido cognitivo sino en una forma más pragmática utilizando
funciones de utilidad, probabilidades y la evaluación de interacciones pasadas. En estos
métodos nos importa el resultado final que nos retorna la confianza y no la forma de obtenerla.
2.3.4 Fuentes de información
Las fuentes de información utilizadas en un sistema de reputación para la determinación del
valor de confianza pueden ser diversas. Desde la información propia recabada por la
interacción directa hasta mediante la de terceros que pueden ser expertos o simplemente
testigos. Otra fuente de información utilizada recientemente son los aspectos sociológicos del
comportamiento del agente. La información que obtenga el agente dependerá de sus
capacidades sensoriales y del ambiente donde se encuentre. Cuantas más fuentes de
información se utilicen se podrán construir modelos más complejos que permitan una más
acertada determinación de la reputación o una velocidad de aprendizaje mayor. Asimismo
también impondrá una mayor complejidad en el diseño del agente y requerirá mas inteligencia
del mismo.
La experiencia por observación directa es sin lugar a dudas tradicionalmente la forma más
relevante y confiable de obtener información para un sistema de reputación. En su forma más
sencilla esta información se obtiene analizando los resultados de las pasadas interacciones con
el posible socio. En una complejidad mayor, siempre y cuando el entorno lo permita, a la
observación directa podría sumarse el análisis de resultados entre la interacción entre otros
pares de agentes. Para eso debería poder interiorizarse en las características de la interacción y
su resultado. En este segundo caso es posible que la información obtenida no sea exacta o esté
sujeta a ruidos que no la hacen tan confiable como la anterior.
La experiencia de terceros es la información que otros agentes tienen sobre un posible socio y
están dispuestos a compartir. Esta información la pueden haber obtenido mediante la
interacción directa o por otra interacción entre terceros. La experiencia de terceros es muy
Víctor Daniel PODBEREZSKI
- 12 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
abundante, pero se debe tener especial cuidado en su utilización. En primer lugar esta
información no es tan confiable pues otros agentes pueden manipular u ocultar cierta
información para su propio beneficio. Por otra parte los criterios para determinar la reputación
podrían ser diferentes y por lo tanto no ser interpretados de la misma manera. A la hora de
determinar a quien preguntarle sobre la reputación podría pensarse en consultar a pares o a
agentes expertos que se ocupen primariamente de la elaboración de la valoración de reputación.
La información sociológica se refiere al estudio de las relaciones sociales existentes y de los
roles que ocupa cada agente en la sociedad a la que pertenece. Esta información no está
disponible en todos los ambientes donde funcionan los sistemas multiagentes y requiere que
exista una rica interacción entre los agentes para poder armar un modelo coherente. Los
modelos que utilizan este tipo de información usan técnicas como el análisis de redes sociales.
Las redes sociales entre agentes muestran las relaciones existentes entre los agentes y dan
pautas que pueden ser utilizados para calcular la reputación entre ellos.
Otro tipo de fuente de información puede ser el prejuicio. No es muy común su utilización en
sistemas de valoración de reputación entre agentes. No debe ser tomado necesariamente en su
acepción negativa, como una actitud hostil frente a otro, sino a la elaboración de un juicio
previo sobre el otro en base a preconceptos propios.
2.3.5 Tipo de visibilidad
La reputación puede ser vista como una propiedad global compartida por todos los
observadores o como privada y subjetiva mantenida por cada individuo.
En el primer caso el valor de la reputación es calculado a partir de las opiniones de los
individuos que en el pasado interactuaron con el evaluado. Este valor esta disponible para todos
los miembros de la sociedad y es recalculado cada vez que se inserta una nueva evaluación por
parte de un agente. En el segundo caso cada agente mantiene para si un valor de opinión de
reputación de a cuerdo a las fuentes de información que utiliza. En este escenario no se puede
hablar de una reputación de un individuo x, sino de una reputación del individuo x de acuerdo
al punto de vista del individuo y. Podrá ocurrir que un agente determinado tenga un alto valor
de reputación para un grupo de agentes y para otros valores de reputación bajos.
En sistemas donde coexisten gran cantidad de agentes y no es común la repetición en la
interacción entre un par de agentes es preferible la primera aproximación. Ejemplos de esto son
los sitios de internet de subastas on-line. Allí un usuario comprador tendrá diferentes
necesidades y la reputación producto de otros usuarios le resultara muy útil. Sus deseos de
compra irán variando, por ejemplo primero comprará una computadora y luego una colección
de revistas deportivas. Estos artículos no se compran periódicamente y el universo de
vendedores que ofrecen ambos productos posiblemente sea un conjunto vacio. Por lo tanto
Víctor Daniel PODBEREZSKI
- 13 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
mantener en privado la reputación no le brindará beneficios. Un problema serio en sistemas
donde la reputación es global es la falta de personalización de la misma. Mismos
comportamientos para distintos individuos puede ser para unos aceptables y para otros
inaceptables. En escenarios complejos donde los agentes se enfrentan a situaciones subjetivas
esta aproximación no será la adecuada. Otro problema de este tipo de aproximación se presenta
en sistemas distribuidos donde la centralización de la reputación puede ocasionar, si este queda
fuera de línea, el colapso de todo el sistema.
Del otro lado se encuentran los modelos que mantienen la reputación como una propiedad
subjetiva. Cada agente se encarga de administrar y mantener su propia fuente de reputación
para cada miembro de la sociedad. Estos modelos funcionan para sistemas de escala pequeña o
media y donde la repetición en la interacción entre pares de agentes es mediana a altamente
posible.
2.3.6 Granularidad del modelo
En nuestra vida cotidiana el pedido de referencia sobre algún asunto en particular no la
realizamos a cualquier persona. Determinará el asunto en cuestión a quién le realizaremos
nuestra consulta. Por ejemplo por un asunto legal consultaremos a un abogado y por un asunto
de salud a un médico. No estaremos inclinados a preguntarle a un galeno sobre la mejor
estrategia para preparar un juicio de un accidente de tránsito y menos al jurista sobre cómo
curar las heridas producidas en el mismo. A quien le preguntamos por lo tanto depende del
contexto de nuestra pregunta. En ciertas ocasiones este mismo comportamiento será deseable
para una arquitectura de reputación en un sistema multiagente. Agregar a un mecanismo de
valoración de reputación la capacidad de enfrentar situaciones contextuales agrega un nuevo
grado de complejidad al mismo y puede agregar efectos secundarios que no son siempre
necesarios y a veces indeseables.
Un sistema de reputación de simple contexto está diseñado para asociar un único valor de
reputación por agente sin tener en cuenta el contexto. Por el contrario un sistema de reputación
de multi-contexto tiene los mecanismos necesarios para manejar varios contextos al mismo
tiempo para cada agente de acuerdo al contexto.
Un mecanismo sencillo para transformar un sistema de simple contexto en uno multi-contexto
es tener simplemente varias instancias del modelo de simple contexto, uno por cada contexto
deseado. Sin embargo esto requiere un planeamiento y una atención especial, pues ya de por si
un sistema de reputación requiere almacenar mucha información y a medida que los contextos
se multiplican también lo hacen los recursos necesarios. En ciertas ocasiones esta aproximación
es inviable. Por lo tanto lo que realmente hace a un sistema multi-contexto es su capacidad de
hacer uso inteligente de cada pedazo de información para calcular diferentes valores de
Víctor Daniel PODBEREZSKI
- 14 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
reputación para cada actividad diferente. Identificar el contexto correcto para cierta información
o usar la misma información en varios contextos cuando es posible son ejemplo de las
características que definen a un modelo multi-contexto.
No muchos sistemas de reputación son multi-contexto. En un ambiente donde las capacidades
de los agentes y sus acciones son limitadas se pueden lograr sistemas de simple contexto sin
perder demasiada versatilidad. En sistemas de gran complejidad y diversidad de tareas esto
puede ser altamente deseable.
2.3.7 Asunción del comportamiento de los agentes
En un sistema ideal todos los agentes gustosos intercambiaran información de reputación y lo
harán sin falsear su valor. Pero en sistemas competitivos ciertos agentes pueden pretender
engañar al agente para beneficio propio. En ese aspecto pueden encontrarse varios niveles
frente a esta amenaza. En un primer nivel se encuentran los sistemas que no tienen en cuenta
este comportamiento. Se basan en que el peso de los agentes que entregan información correcta
sobrepasará a los maliciosos. En un segundo nivel están los sistemas que consideran que
agentes pueden ocultar información, pero nunca mentir. Por último, en un tercer nivel el
sistema implementa un mecanismo para identificar y tratar con agentes mentirosos.
2.3.8 Tipo de información intercambiada
Una última clasificación se puede establecer de acuerdo a la manera en que diferentes agentes
intercambian información de reputación. Existen dos grandes grupos y su selección determina
la forma y versatilidad del método. En un primer grupo se encuentran los mecanismos de
reputación que utilizan valores booleanos. En el otro grupo se encuentran los grupos que
utilizan valores continuos de medición.
2.4 Modelos de reputación
A continuación se describen un conjunto de modelos de reputación propuestos por diversos
autores y las diferentes arquitecturas propuestas.
2.4.1 Sistemas de reputación on-line
La aparición de sitios de venta on-line con grandes comunidades de usuarios hizo necesario la
creación de un mecanismo para reputar a cada comprador y vendedor para lograr evitar
engaños y tratos injustos. Algunos de los sitios que realizan esto son eBay [ebay 2005],
DeRemate [DeRemate 2005], MercadoLibre [MercadoLibre 2005].
En estos sitios luego de una transacción tanto el vendedor como el comprador pueden calificar
a su contraparte con uno de tres posibles valores: Negativo (-1), Neutro (0) y Positivo (1). La
reputación se calcula como la suma de todas las calificaciones que recibió un usuario. Además
Víctor Daniel PODBEREZSKI
- 15 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
de este valor, cada vez que se agrega una valoración se puede ingresar un mensaje de texto para
explicar el motivo de la calificación. Se puede observar la reputación global y de los últimos 6
meses. Estos modelos consideran a la reputación como algo global, no dependiente del contexto
y utilizan un único valor. La fuente de información es la proveniente de la interacción de todos
los usuarios con el evaluado (información de terceros) y no provee un mecanismo para
enfrentarse a usuarios que den información falsa.
Una variante de este sistema es el utilizado por Microsoft en su MSDN [Microsoft MSDN
2005] que permite a los usuarios calificar un artículo con un valor entre 1 y 9 de acuerdo al
grado de utilidad que le encontró. Un valor total de utilidad se calcula realizando un promedio
entre todos los valores recibidos.
2.4.2 S. Marsh
Este modelo es uno de los primeros propuestos sobre modelos de reputación y fue propuesto
por Marsh en su tesis de doctorado [Marsh 1994]. La única fuente de información en este
modelo es la interacción directa. Diferencia la confianza en tres tipos:
-
Confianza Básica: Modela la disposición general de confianza del agente. Esta
confianza es independiente del agente con el que tenga que interactuar y se calcula
mediante todas las interacciones que tuvo el agente en el pasado (sin importar con quien
fue la interacción). Las buenas experiencias hacen que el agente tenga mayor
predisposición a la confianza. La notación utilizada por el autor para esta variable es Txt
-
para representar la disposición a la confianza de un agente x en un momento t.
Confianza general: Esta es la confianza que tiene un agente acerca de otro sin tener en
consideración ninguna situación en particular. Simplemente representa la confianza
t
general en el otro agente. Se representa como Tx ( y ) indicando la reputación que un
-
agente x tiene del agente y en un momento t.
Confianza situacional: Esta es el monto de confianza que un agente tiene sobre otro
tomando en cuenta una situación en particular. La formula básica para calcular el valor
de esta confianza es:
t
t
t
t
Tx ( y, α ) = U x (α ) × I x (α ) × Tx ( y )
Donde “x” es el agente que esta evaluando, “y” es el agente evaluado y “α” la situación.
t
t
U x (α ) representa la utilidad que x gana de la situación α. I x (α ) es la importancia de la
t
situación α para el agente x y Tx ( y ) es la estimación de confianza general después de
t
tomar en cuenta todo los datos relevantes con respecto a Tx ( y, α ) en el pasado. Por
Víctor Daniel PODBEREZSKI
- 16 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
ejemplo si “t” es el tiempo actual, el agente “x” tendrá en cuenta todas las situaciones
T
Tx ( y, σ ) con θ < T < t y σ similares o iguales a la situación α. θ y t definen una
periodo de tiempo que el agente considera. Únicamente las experiencias ocurridas
durante ese periodo son tenidas en cuenta para el cálculo.
t
Para calcular el valor Tx ( y ) el autor propone tres modelos estadísticos diferentes: el
promedio, el máximo y el mínimo. Cada método identifica un agente con un
comportamiento determinado: el optimista (toma el máximo), el pesimista (toma el
mínimo) y el realista (que toma el promedio de los valores utilizando la fórmula
1
t
Tx ( y ) =
∑ Tx ( y, α ) donde A es el conjunto de situaciones similares a la situación
A α ∈A
evaluada α dentro de la ventana de experiencia temporal analizada)
Estos valores de confianza son utilizados para ayudar a un agente decidir si vale la pena o no
cooperar con otro agente. Además de la confianza situacional, el mecanismo de decisión toma
en cuenta la importancia y el riesgo asociado a la acción y la competencia percibida del agente
destinatario. Para calcular el riesgo y la competencia percibida diferentes tipos de confianza son
utilizados (básica, general y situacional).
Finalmente el modelo también introduce el concepto de “reciprocidad” o “correspondencia”
como modificador de los valores de confianza. La idea detrás de la reciprocidad es que si un
agente “x” ayudo a un agente “y” en el pasado e “y” respondió en esa ocasión desertando
(incumpliendo lo pactado) la confianza que tiene “x” sobre “y” se verá reducida.
2.4.3 Sporas e Histos.
Sporas [Zacharia 1999] es una versión evolucionada de los sistemas de reputación on-line. En
este modelo, únicamente las más recientes mediciones entre dos usuarios es considerado. Otra
característica importante es que los usuarios con valores de reputación muy altos experimentan
cambios de valoración de reputación mucho menores luego de cada actualización que los
usuarios con reputación baja. Utilizando una aproximación similar al sistema Glicko [Glickman
1999] – un sistema computacional para evaluar las fuerzas relativas de jugadores en juegos de 1
contra 1 – Sporas incorpora una medición de la fiabilidad de la reputación de un usuario basado
en la desviación estándar de los valores de reputación.
Este modelo tiene las mismas características generales que los previamente comentados de
reputación on-line. Sin embargo es más robusto a los cambios de comportamiento de un usuario
y la medida de fiabilidad mejora la utilización del valor de reputación.
Víctor Daniel PODBEREZSKI
- 17 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Histos [Zacharia 1999] fue diseñado como respuesta a la falta de personalización de los valores
de reputación que utiliza Sporas. El modelo puede trabajar con información directa (aunque de
una forma muy primitiva) e información de terceros. Al contrario que en Sporas, el valor de
reputación es una propiedad subjetiva asignada particularmente por cada individuo.
El tratamiento de la interacción directa en este modelo de reputación se limita al uso de la más
reciente experiencia con el agente a ser evaluado. La fortaleza del modelo recae en el uso de la
información de terceros.
Mediciones a pares son representadas como grafos dirigidos donde los nodos representan
agentes y los arcos llevan información de la medición más reciente de reputación dado por un
agente al otro. El nodo raíz representa el agente propietario del grafo. Esta es una estructura
similar a la utilizada por la TrustNet de Schillo et al [Schillo et al 2000]. La reputación de un
agente en el nivel X del grafo (con X > 0) es calculada recursivamente como el promedio
ponderado de los valores de los agentes del nivel X-1 le dieron a ese agente. La ponderación es
calculada mediante las reputaciones de cada agente que calificó al agente objetivo. Como se
puede ver los agentes que han sido calificados directamente por el agente dueño del grafo tiene
un valor de reputación igual al valor de medición. Esta es el caso base de la recursión. El
modelo también limita la profundidad y el número de caminos que son tomados en cuenta para
el cálculo. El valor de reputación no depende del contexto y no se presentan mecanismos
especiales para manejar agentes mentirosos.
Una contra de este modelo es utilizar el valor de reputación asignado a un testigo como
mediada de su confiabilidad. Si un agente es bueno cumpliendo contratos, no significa que sea
un confiable testigo.
2.4.4 Schillo et. al.
El modelo de reputación propuesto por Schillo et al [Schillo et al 2000] está pensando para
escenarios donde el resultado de una interacción entre dos agentes (desde el punto de vista de la
confianza) es una impresión booleana: Buena o Mala; no existen niveles de satisfacción. Para el
cláculo de la confianza se realiza un cálculo probabilístico que determina la probabilidad de
que un agente B sea honesto en la próxima interacción con el agente A. Para eso se utiliza la
siguiente formula: T(A,B) = e / n donde “n” es la cantidad de interacciones conocidas por A en
las que participó B y “e” es el número de veces en las que se comportó de forma honesta en
esas interacciones.
La obtención del comportamiento pasado de un agente se consigue de dos formas: mediante la
observación directa y la información de terceros. Dentro de la primera categoría se pueden
encontrar dos casos particulares. En primer lugar se encuentran las interacciones directas entre
el agente que evalúa y el evaluado. En segundo lugar se encuentran las interacciones en las que
Víctor Daniel PODBEREZSKI
- 18 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
el agente que evalúa no fue partícipe, pero fue testigo. Este último caso merece especial
atención, pues requiere la capacidad del escenario de poder observar y seguir interacciones en
las que uno no participa directamente. La información de terceros se recaba entrevistando a
agentes conocidos antes. Para almacenar esto cada agente utiliza una estructura de datos propia
llamada TrustNet. Una TrustNet es un grafo dirigido donde los nodos representan agentes
testigos y los arcos almacenan información sobre las observaciones que el agente padre le
informó acerca del accionar del agente hijo. En la entrevista el agente consultado retorna una
lista con todas las interacciones que observó del agente analizado y su resultado. La razón de
esto, pudiendo únicamente devolverle el valor precalculado de “e” y “n”, es que de esa forma el
método previene que un agente entrevistado provea información falsa. De hacerlo, corre el
riesgo de el agente al recibir la lista observe que una interacción que ambos observaron en el
pasado tenga un resultado diferente, y por lo tanto inferir que la información que le pasa es
errónea. Aun sin poder mentir el agente puede ocultar información favoreciendo la honestidad
o deshonestidad de un agente comunicando solo un subconjunto de las interacciones
observadas. El modelo presupone que únicamente un agente ocultará interacciones de resultado
positivo. La solución dada establece un valor constante en la cantidad de información ocultada
por cada agente.
En este método el valor de confianza es subjetivo e independiente del contexto.
2.4.5 Abdul-Rahman y Hailes
Este método de reputación [Abdul-Rahman & Hailes 2000] utiliza cuatro grados de creencia
para calificar la confianza en un agente: Muy poco Confiable (MP), Poco Confiable (P),
Confiable (C) y Muy Confiable (MC). Por cada posible socio y contexto el agente mantiene
una tupla con el número de pasadas experiencias en cada categoría. Entonces, desde el punto de
vista de la interacción directa, la confianza en un socio en un contexto dado es igual al grado
que corresponde al máximo valor en la tupla. Por ejemplo, si la tupla asociada a un socio en un
contexto dado es (0,0,4,3) la confianza asignada a ese socio será (C) confiable que corresponde
al tercer elemento de la tupla. Si hay más de una posición en una tupla con el valor máximo, el
modelo retorna un grado de incerteza de confianza de acuerdo a una tabla de situaciones
patrones que cubren esos casos. Existen tres casos especiales que cubren todas las
combinaciones posibles: Más bueno que malo, más malo que bueno e igual de bueno que de
malo.
En este modelo antes de combinar la información proveniente de los testigos esta se ajusta de
acuerdo a la información anterior perteneciente a ese testigo y sus consecuentes resultados que
validan esa información. Por ejemplo, supongamos que “a” informa a “x” que “b” es MC y la
evaluación de “x” sobre su experiencia con “b” es simplemente C. La próxima vez que “a” de
información a “x”, “x” ajustará la información teniendo en cuenta la diferencia antes notada.
Víctor Daniel PODBEREZSKI
- 19 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El problema de esta aproximación es que no es posible diferenciar a aquellos agentes que están
mintiendo de aquellos que dicen la verdad pero piensan diferente. Ciertamente existen
escenarios donde esta diferencia no es importante (por ejemplo en el propuesto por el autor
donde agentes recomiendan mercancías) pero puede ser en otros casos un limitante importante.
Para combinar la información, el modelo le da más importancia a la información preveniente de
agentes con puntos de vista más similares al propio. Esto es, darle más importancia a la
información a la cual hay que realizarle muy pocos ajustes o aun mejor ninguno pues provienen
de agentes que tienen una perspectiva similar en un contexto dado.
Contrariamente a otros modelos de reputación donde la información de testigos es mezclada
con información de interacción directa para obtener la confianza en un tema especifico, este
modelo esta pensado para evaluar únicamente la confianza de la información dada por testigos.
La experiencia directa es utilizada para comparar los puntos de vista de esos testigos con la
percepción directa del agente y entonces ser capaz de ajustar la información proveniente de
ellos convenientemente.
2.4.6 Sen y Sajja
En el modelo de reputación de Sen y Sajja [Sen & Sajja 2002] dos tipos de experiencia directa
son tenidos en cuenta: Interacción directa y observación. En el escenario donde el modelo es
usado, la observación contiene ruido, por ejemplo la observación difiere algo de la performance
acaecida. Únicamente la interacción directa otorga una percepción exacta de la realidad. El
aprendizaje por refuerzo es el mecanismo elegido para actualizar la reputación. Debido al ruido
de las observaciones directas, la regla utilizada para actualizar el valor de reputación cuando
hay una nueva interacción directa tiene un efecto mayor que la regla utilizada para actualizar el
valor cuando hay una nueva observación. El rango de reputación es entre 0 y 1. Un valor mayor
a 0,5 representa un buen agente y un menor a 0,5 un mal agente.
Los agentes pueden preguntar a otros agentes sobre la actuación de un posible socio. La
respuesta es siempre un valor booleano que dice si el agente sobre el que se consulta es bueno o
malo. El modelo está preparado para soportar mentirosos en la comunidad. Se asume que estos
mentirosos falsean la información siempre. Eso significa que dirán que un agente es bueno
cuando es malo y viceversa. Para decidir desde el punto de vista de un testigo de información si
un socio es bueno o malo, el modelo utiliza el número de respuestas positivas y negativas
recibidas de los testigos. Conociendo el numero de testigos y cuantos de ellos son mentirosos,
el modelo provee un mecanismo para calcular a cuantos agentes hay que consultarles para
asegurarse que la probabilidad de elegir un buen socio tenga al menos cierto valor. El
subconjunto de agentes a ser consultados es seleccionado en forma aleatoria del conjunto de
posibles testigos. Los autores aseguran que es fácil de agregar un proceso de selección más
inteligente basado en el mecanismo de confianza.
Víctor Daniel PODBEREZSKI
- 20 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Por ser el objetivo de ese estudio estudiar cómo los agentes utilizan la reputación boca a boca
para seleccionar un socio entre otros, los agentes únicamente utilizan la información de testigos
para tomar decisiones. La experiencia directa se utiliza como información a ser comunicada a
los otros. Los autores no indican como usar la información directa combinándola con la
obtenida por los testigos para obtener la calificación final de reputación.
2.4.7 AFRAS
La característica central de este modelo [Carbo et al 2002] es la utilización de variables difusas
para la representación de la reputación. Cada vez que se obtiene un nuevo valor difuso (que
indica el grado de satisfacción de la última interacción con un socio dado), el viejo valor de
reputación y el nuevo valor de satisfacción son recalculados utilizando una suma ponderada.
Los pesos de esta operación son calculados de un valor simple que llaman remembranza o
memoria. Este factor le permite al agente dar más importancia a la última interacción o al valor
anterior. El valor de remembranza es modelado como una función de la similaridad entre la
reputación previa y la satisfacción de la última interacción; junto el valor de remembranza
previo. Si la satisfacción de la última interacción y la reputación asignada al socio son
similares, la relevancia de las experiencias pasadas se incrementa. Si la satisfacción de la última
interacción y la reputación son diferentes entonces es la relevancia de la última experiencia la
que aumenta.
La noción de fiabilidad del valor de reputación es modelado mediante entornos difusos. Un
entorno amplio difuso denota un grado de incerteza, mientras que un entorno angosto determina
un valor de gran fiabilidad.
Recomendaciones de otros agentes son sumados directamente con la experiencia directa. El
peso dado a cada factor (viejo valor de reputación y nueva opinión) es dependiente de la
reputación de quien recomienda. Recomendaciones prevenientes de un recomendador con alta
reputación tienen el mismo valor de credibilidad que la experiencia directa. Por el contrario,
opiniones prevenientes de recomendadores con mala reputación no son tenidas en cuenta. Para
calcular la reputación de los recomendadores el agente compara la recomendación con el
comportamiento real del agente recomendado después de la interacción y incrementa o
decrementa la reputación del recomendador en base al resultado obtenido.
2.4.8 Carter et al.
La idea principal detrás del modelo de reputación de Carter et al [Carter et al 2002] es que la
reputación de un agente se basa en el grado de cumplimiento de los roles atribuidos a él por la
sociedad. Todos los individuos tienen ciertos roles en la sociedad. Si la sociedad juzga que han
cumplido sus roles, son premiados con una reputación positiva, en caso contrario son
castigados con reputación negativa.
Víctor Daniel PODBEREZSKI
- 21 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Cada sociedad tiene su propio conjunto de roles. Como tal, la reputación atribuida como
resultado de esos roles únicamente tiene sentido en el contexto de esa sociedad donde esos roles
están definidos. De acuerdo a esto es imposible universalizar el cálculo de la reputación.
Los autores formalizan el conjunto de roles dentro de una sociedad de intercambio de
información y proponen métodos para calcular el grado de satisfacción con cada uno de esos
roles. Una sociedad de intercambio de información es una sociedad de agentes que intentan
intercambiar información relevante entre ellos con la intención de satisfacer la demanda de los
usuarios. Ellos identifican cinco roles:
-
Proveedor de información social: Usuarios de la sociedad pueden contribuir
regularmente con nuevo conocimiento sobre sus amigos a la sociedad. Este rol
ejemplifica el grado de conectividad de un agente en su sociedad. Cada recomendación
particular que realiza un agente tiene un peso asociada a ella. Este peso indica la fuerza
de la recomendación y es el producto de un factor decreciente en el tiempo y la
reputación del recomendador. El grado en el cual el rol de proveedor de información
social es satisfecho por un usuario es calculado como la suma de todos estos pesos
mapeados en el intervalo [0,1].
-
Rol de interactividad: Se espera que los usuarios utilicen regularmente el sistema. Sin
esa participación el sistema se hace inservible. El grado de satisfacción de este rol se
calcula como el número de operaciones del usuario durante un cierto periodo de tiempo
dividido por el número total de operaciones realizadas por todos los usuarios del sistema
en el mismo periodo.
-
Proveedor de contenido: Los usuarios deben proveer a la sociedad objetos de
conocimiento que reflejen su propia área de experticia. El grado de satisfacción se
refleja por la calidad de los agentes de información que pertenecen al usuario. La
calidad del agente es medida considerando que tan cercano es el tema del agente de
información al interés del usuario. La idea es que los usuarios que crean agentes de
información relacionados a sus áreas de experticia producirán contenido de mejor
calidad de su interés en comparación con otros que no comparten ese interés.
-
Rol de realimentación administrativa: Se espera de los usuarios que provean
información acerca del funcionamiento del sistema. Estas calidades incluyen la facilidad
de uso, velocidad, estabilidad y calidad de la información. Se dice que un usuario
satisface este rol si provee esta información.
-
Rol de longevidad: Se debe promover a los usuarios a mantener una alta reputación para
lograr la longevidad del sistema. El grado de satisfacción de este rol es medido teniendo
en cuenta la reputación promedio del usuario hasta el tiempo presente.
Víctor Daniel PODBEREZSKI
- 22 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Dado esto, la reputación general del usuario es calculado como una suma ponderada de los
grados de cumplimiento de cada rol. Los pesos son enteramente dependientes de la sociedad
específica.
El valor de reputación de cada agente es calculado por un mecanismo centralizado que
monitorea el sistema. Por lo tanto el valor de reputación de cada agente es un valor global
compartido por todos los observadores.
2.4.9 Yu y Singh
Yu y Singh [Yu & Singh, 2000; 2001a; 2001b] proponen un sistema basado en la teoría de
Dempster-Shafer. En ella se postula que existen 3 conjuntos: confianza positiva {T}, confianza
negativa {-T} y {T,-T} que es el grado de incerteza (ni confianza positiva ni negativa). La
unión de estos conjuntos es el marco de discernimiento Ө = {T; -T}. Existe luego una función
llamada asignación de probabilidad básica (bpa) que a cada conjunto de Ө le asigna una
probabilidad de ocurrencia, tal que:
m({T}) + m({-T}) + m({T,-T}) = 1
y
m(Φ) = 0
Para calcular el valor que se debe asignar a cada uno de estas probabilidades Yu y Singh
proponen un método que por simplicidad daremos como resuelto.
En base a este proponen la existencia de dos confianzas la local y la total. La confianza local
mide los resultados de las últimas interacciones directas con el agente a analizar. Y
simplemente para ver si es digno de darle una tarea se puede realizar la comparación de m({T})
- m({-T}) > φ, siendo φ un valor umbral donde si esta comparación se cumple entonces el
agente es digno de certidumbre. Por otro lado si no se tiene una historia de interacción con el
agente analizado se debería consultar con el testimonio de otros agentes sobre sus experiencias.
Para eso comienza a preguntarles a sus conocidos su opinión y si estos lo conocen le transmiten
su rangos de confianza. En caso de no conocer el consultado al agente evaluado, remite una
lista de sus conocidos al solicitante para que le consulte a éstos (Con esta lista quien solicita la
información de confianza puede consultar a éstos y repetirse este proceso hasta llegar a una
profundidad determinada). Una vez recolectados los testimonios de un conjunto de testigos A =
{w1, w2,…wn} se procede a armar la confianza total: Como:
Πa = Tw1 ¤ Tw2 ¤… ¤ Twn
Donde:
¤ es la suma ortogonal.
Πa es la nueva función m total al agente medido
Víctor Daniel PODBEREZSKI
- 23 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Twn es la función m del testigo n
Para cada elemento será:
Por ejemplo, si tengo el testimonio de 2 agentes tal que
w1 m1({T}) = 0.8 m1({-T}) = 0 m1({T, -T}) = 0.2
w2 m2({T}) = 0.9 m2({-T}) = 0 m2({T, -T}) = 0.1
Entonces:
Πa = Tw1 ¤ Tw2 M12({T}) = 0.72 + 0.08 + 0.18 = 0.98
M12({T, -T}) = 0.2 * 0.1 = 0.02
M12({-T}) = 0
De esta forma se realiza la misma comparación con un umbral que puede ser diferente para
decidir si es confiable o no.
2.4.10 Castelfranchi y Falcone
El modelo de confianza propuesto por Castelfranchi y Falcone [Castelfranchi & Falcone 1998]
es un ejemplo claro de un modelo de reputación cognitivo. La base de este modelo es la fuerte
relación entre confianza y delegación. Los autores afirman que “La confianza es el trasfondo
mental de la delegación” En otras palabras, la decisión que lleva a un agente “x” a delegar una
tarea al agente “y” está basada en un conjunto especifico de creencias y objetivos y su estado
mental es lo que llamamos “confianza”. Por lo tanto “Sólo un agente con creencias y objetivos
puede confiar”
Para construir el estado mental de confianza, las creencias básicas que un agente requiere son:
Víctor Daniel PODBEREZSKI
- 24 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Creencia de competencia: El agente debe creer que el agente y puede realizar realmente
la tarea.
Creencia de dependencia: El agente cree que “y” es necesario para realizar la tarea o
que es mejor descansar en y para realizarla.
Creencia en la disposición: No únicamente es necesario que “y” pueda hacer la tarea,
sino que además realmente la lleve a cabo. En caso de un agente intencional, la creencia
en la disposición debe ser articulada y soportada por dos creencias mas:
o Creencia de deseo: El agente cree que “y” ha decidido e intenta hacer A (donde
A es la acción que permite G).
o Creencia de persistencia: El agente cree que “y” es estable en sus intenciones de
hacer A.
Las primeras dos creencias componen lo que llaman como confianza central y juntos con la
creencia en la disposición, la confianza. Soportada e implícita por las otras, otra creencia se
levanta:
-
Creencia de cumplimiento: Si el agente “confia en y para G”, el agente decide: (i) no
renunciar a G, (ii) no llevarlo a cabo personalmente, (iii) no buscar una alternativa a y
(iv) perseguir G a través de “y”.
Para resumir, la confianza es un conjunto de actitudes mentales que caracterizan la
“delegacion” en la mente de un agente (x) que prefiere que otro agente (y) realice la tarea. “y”
es un agente cognitivo, por lo tanto “x” cree que “y” intentara realizar la acción e “y” persistirá
en esto.
El grado de confianza es una función de la fuerza de las creencias de confianza. Cuanto mayor
es la creencia de “x” en la competencia y disposición de “y”, mayor es la confianza de “x” en
“y”. El grado de confianza es utilizado para formalizar una base racional para la decisión de
depender y apostar por “y”. También relevante es el grado de importancia del objetivo que se
quiere lograr mediante la delegación. El grado de confianza resultante es obtenido
multiplicando el nivel de aquellas creencias y objetivos útiles a la relación de confianza. Si este
valor excede cierto umbral y es además la mejor solución de todas las disponibles, entonces la
decisión de delegar es la tomada.
2.4.11 Esfandiary y Chandrasekharan
En el modelo propuesto por Esfandiari y Chandrasekharan [Esfandiari & Chandrasekharan
2001] dos mecanismos de adquisición de confianza son presentados. El primero está basado en
la observación. Proponen el uso de redes bayesianas y conseguir la adquisición de la confianza
mediante aprendizaje Bayesiano. En el caso más simple de una estructura conocida y una red
Víctor Daniel PODBEREZSKI
- 25 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
bayesiana totalmente observable, la tarea de aprendizaje se reduce a consideraciones
estadísticas.
El segundo método de adquisición de confianza se basa en la interacción. El acercamiento es
igual al usado en [Lashkari et al 1994]. Hay dos protocolos principales de interacción, el
protocolo exploratorio donde el agente les pregunta a los demás acerca de temas que conoce
para evaluar su grado de confianza y el protocolo de consulta donde el agente pide consejo a
agentes confiables. Una manera simple de calcular la confianza basada en la interacción
numeroderespuestascorrectas
.
durante la etapa exploratoria es usando la formula Tint er =
numerototalrespuestas
Para manejar la información de testigos, cada agente construye un grafo directo etiquetado
donde los nodos representan agentes y donde un arco (a,b) representa el valor de confianza que
“a” tiene de “b”. Los arcos están ausentes en el caso de que el valor de confianza sea
desconocido. En un grafo de estas características es posible que se creen ciclos que
artificialmente disminuyan el valor de confianza y diferentes caminos que retornan valores
contradictorios. Para resolver este problema, en vez de usar un valor simple de confianza el
modelo usa un intervalo de confianza determinado por el mínimo y máximo valor de todos los
caminos sin ciclos que conectan dos agentes.
El autor afirma que el cálculo del intervalo de confianza es equivalente al problema del ruteo en
una red de comunicación y, por lo tanto algoritmos distribuidos conocidos utilizados para
resolver ese problema pueden ser aplicados exitosamente para esta situación.
Para permitir la noción de confianza multi contextual los autores proponen la utilización de
arcos “coloreados”, con un color por tarea o tipo de confianza.
Finalmente los autores proponen un mecanismo de obtención de confianza utilizando
instituciones, lo que llaman confianza institucionalizada. Esto es un concepto similar a la
reputación de sistema en el modelo ReGreT [Sabater & Sierra 2002b]. La idea es explotar la
estructura en el ambiente para arribar a los valores de confianza.
No se brinda información acerca de cómo combinar los diferentes mecanismos de adquisición
de confianza.
2.4.12 REGRET
REGRET [Sabater & Sierra 2002a, Sabater & Sierra 2002b, Sabater 2003] es un mecanismo de
reputación que permite tomar en cuenta tres tipos de dimensiones de reputación: La individual,
la social y la ontológica.
Víctor Daniel PODBEREZSKI
- 26 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
La dimensión ontológica es la coexistencia de diferentes tipos de reputación y su combinación
entre ellos para obtener nuevos tipos. Por ejemplo la reputación de una empresa de transporte
aéreo estará compuesta por la reputación de su comida, personal a bordo, hora de llegada, entre
otras. En general cada individuo tiene una estructura ontológica para combinar la reputación y
diferente importancia a cada uno cuando estas son combinadas. Por ejemplo a un individuo en
particular puede no importarle la comida de a bordo.
Como cada miembro de la sociedad tiene su punto de vista, cada agente puede guardar
diferentes impresiones de una misma interacción y además cada agente puede medir diferentes
aspectos (tener su propia estructura ontológica), por lo tanto la reputación es una percepción
subjetiva y personal.
La dimensión individual se utiliza para calcular la reputación teniendo en cuenta las pasadas
experiencias propias con el agente a evaluar dentro de un contexto. Para luego de cada
interacción se realiza un registro de la impresión del resultado obtenido. Para esto se puede
representar el conocimiento adquirido como la tupla:
i = (a; b; o; φ; t;W)
Donde “a” y “b” son los agentes que interactúan (siendo “a” quien está juzgando). “o” es la
interacción que origino la impresión, “φ” es la variable juzgada, “t” el tiempo cuando fue
registrado la impresión y W el valor de impresión entre -1 y 1. Donde se entiende que -1 es que
el resultado es muy malo y 1 que es muy bueno. Un ejemplo podría ser (a; b; o1; hora de
llegada; 17:16; 0,8) donde se estaría diciendo que la interacción “o1” entre “a” y “b” que se
registró a las 17:16hs en cuanto a la hora de llegada fue calificada con 0,8 (un valor bastante
alto de reputación).
Para el cálculo de reputación teniendo en cuenta estas impresiones almacenadas se seleccionan
aquellos registros en donde se involucra al agente a evaluar y que contengan las variables a
juzgar y se las promedia en forma ponderada. Dándole más preeminencia a ciertas variables y a
las impresiones más recientes que las más antiguas.
La dimensión social se utiliza para conocer información de ciertos agentes gracias a la
impresiones de otros agentes. El sistema establece la existencia de grupos de pertenencia al que
un agente se subordina. Se tienen en cuenta la interacción del agente evaluado con los
miembros de su grupo, la información que el grupo propio tiene con respecto al agente y
finalmente la información que tiene el grupo propio del grupo del agente evaluado. Estos
valores junto a la apreciación personal se suman convenientemente ponderados para obtener un
valor de reputación final.
Víctor Daniel PODBEREZSKI
- 27 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El sistema incorpora un módulo de credibilidad que permite a un agente medir la confiabilidad
de un testigo y la información que brinda.
2.4.13 NodeRanking
NodeRanking es un método de obtención de reputación propuesto por [Pujol & Sangüesa 2001,
Pujol et al 2002a, Pujol et al 2002b, Pujol et al 2003]. Los autores afirman que el método es un
mecanismo para clasificar la importancia de nodos en un grafo. Acotan que el problema no es
nuevo en la literatura, pero que su solución se diferencia por ser realmente una metodología
descentralizada.
NodeRanking utiliza información sociológica para evaluar la confianza. Para eso utiliza una red
social, una representación de las relaciones que existen dentro de una comunidad de la gente.
Esta red social es representada mediante un grafo. El autor afirma que los enlaces que existen
entre individuos en redes sociales son indicadores de reputación confiables, es decir ellos
proporcionan una medida de la honradez de un individuo
La calificación que NodeRanking crea está basada en la idea que cada nodo en el gráfico tiene
asociado un grado de autoridad, que es siempre positivo. Al principio, todos los nodos tienen la
misma autoridad. Después de ejecutar NodeRanking la medida de autoridad resultante es usada
para deducir la reputación de un nodo dentro del gráfico. NodeRanking es capaz de calificar los
nodos en un gráfico usando únicamente información local para calcular la información de
reputación de un individuo.
La autoridad de un nodo “i” es calculada en función de los nodos que apuntan a i, y el valor de
autoridad por defecto se le asigna a los nodos no apuntados por ningún otro nodo en el grafo.
Al modificar la autoridad de un nodo, calculada mediante su valor actual y el valor de los arcos
de entrada, este cambio se propaga en sus arcos de salida e influye a los nodos con los que esta
conectado. En definitiva es un algoritmo iterativo que, los autores aseguran, luego de un tiempo
converge. Los valores de reputación son valores entre el rango continuo de 0 y 1.
NodeRanking sigue la estrategia del caminante fortuito para explorar el grafo. Comienza en un
nodo seleccionado al azar y procede seleccionando como próximo nodo a uno que puede ser
alcanzado mediante el actual a través de un arco de salida.
2.4.14 FIRE
FIRE [Huynh et al 2004a, Huynh et al 2004b] es un modelo de reputación y confianza
integrada que tiene en cuenta cuatro tipos de de reputación: confianza de interacción, confianza
basada en el rol, reputación de testigos y reputación certificada. Para la Confianza de
interacción, se vale de la información obtenida por la interacción directa, y utiliza el
Víctor Daniel PODBEREZSKI
- 28 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
mecanismo propuesto por REGRET [Sabater & Sierra 2002a, Sabater & Sierra 2002b, Sabater
2003] en su dimensión individual.
La confianza basada en el rol se calcula por una serie de reglas tipificadas por el usuario (el
agente que va a determinar una reputación). En cada una de estas reglas se debe identificar el
rol tomado por cada agente (el propio y el evaluado), el aspecto analizado, la performance
esperada del agente (un valor entre -1 y 1) y el peso de esa regla en la evaluación general de la
confianza basada en el rol (un valor entre 0 y 1). Por ejemplo, el agente toma el rol de
“comprador” y el agente evaluado de “vendedor” y se analiza el aspecto de “calidad” y se
espera que el valor sea -0,2 (que el vendedor entregue menor calidad de la prometida) y la
influencia de esa regla es de 0,8 (alta). Para el cálculo total de este aspecto se realiza un
promedio ponderado de cada una de las reglas que se aplican a un caso en particular. No se
especifica la manera de asignar los roles.
La reputación de testigos se obtiene consultando a otras agentes (testigos) sobre la reputación
de un agente a evaluar. Para esto se propone una variante de la propuesta por [Yu & Singh,
2000; 2001a; 2001b] para la obtención de este valor. En este caso la información devuelta por
cada agente retornado se ajusta al formato utilizado también en la confianza de interacción.
Todos estos datos son promediados para el cálculo final de este valor.
El último tipo de reputación tenida en cuenta, la reputación certificada, es presentada como un
campo novel por sus autores. La reputación certificada son las mediciones de reputación
presentadas por el agente evaluado sobre si mismo que obtuvo de otros agentes a través de otras
interacciones [Huynh et al 2004a, Huynh et al 2004b]. Para hacer esto cada agente guarda en el
historial propio los resultados de sus interacciones con los valores de reputación que le otorgó
la contraparte (teniendo necesariamente que pedirle esta información). Este historial de
accionar se lo entregará al agente que esta analizando su contratación. Los autores indican que
esta es una información sesgada pues un agente solo puede entregar información positiva y
ocultar la negativa. No obstante aseguran que esa información parcial es verdadera y válida.
Para el cálculo final de la reputación realizan un promedio ponderado de todos los valores de
reputación anteriores.
2.4.15 Resumen
Se presenta a continuación una tabla (Tabla 1) que resume los modelos de reputación antes
descriptos:
Víctor Daniel PODBEREZSKI
- 29 -
Tipo de
paradigma
Fuentes de
información
Tipo de
visibilidad
Granularidad del
modelo
Asunción del
comportamiento
de los agentes
Tipo de
información
intercambiada
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
S. Marsh
AM
ID
Pr
MC
NA**
NA**
Sporas
AM
IT
G
SC
N1
-1, 0 o 1
Histos.
AM
IT, ID
Pr
SC
N1
NE*
Schillo et. al.
AM
ID, OD, IT Pr
SC
N2
Booleana
Abdul-Rahman y Hailes
AM
ID, IT
MC
N3
4
valores
enteros
Sen y Sajja
AM
ID, OD, IT Pr
SC
N3
Booleana
AFRAS
AM
ID, IT
Pr
SC
N3
Valor difuso
Carter et al.
AM
IT
G
SC
N1
Entre 0 y 1
Yu y Singh
AM
ID, IT
Pr
SC
N1
3
valores
entre -1 y 1
Castelfranchi y Falcone
AC
NE*
Pr
MC
NE*
NE*
y AM
ID, OD, Pr
IT, P
MC
N1
Entre 0 y 1
REGRET
AM
ID, IT, IS, Pr
P
MC
N3
Entre -1 y 1
NodeRanking
AM
IT
G
SC
NA**
NA**
FIRE
AM
ID, IT, IS
Pr
MC
N1
Entre -1 y 1
Esfandiary
Chandrasekharan
Pr
* No explicitado ** No aplicable
Referencias:
AC: Aproximación Cognitiva.
AM: Aproximación Matemática
Víctor Daniel PODBEREZSKI
ID: Interacción Directa
OD: Observación Directa
- 30 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
IT: Información de Terceros
IS: Información Sociológica.
P: Prejuicio.
G: Global
Pr: Privada
MC: MultiContexto
SC: Sin Contextos
N1: Los agentes no mienten ni ocultan información
N2: Los agentes no mienten pero pueden ocultar
información
N3: Los agentes pueden mentir
Tabla 1: Resumen de modelos de reputación
2.5 Ontologías de reputación
No existen disponibles gran cantidad de ontologías para la medición y administración de
reputación.
Trust ontology [Trust ontology 2006] es una ontología pequeña escrita en OWL/RDF [Dean et.
Al. 2002] que permite a una persona decir cuanto confía en otra en una área especifica. Utiliza
una única métrica consistente en una escala del 1 al 10.
Christoph Görn [Görn 2006] extiende la ontología anterior presentándola como una tupla de 5
elementos del estilo “A confía en B en un tema C durante el tiempo T en un nivel L”. A y B son
personas, C es el tema evaluado, T es un intervalo de tiempo en el que es válida la apreciación y
L es el nivel de confianza en la escala de 1 a 10.
Sara Casare y Jaime Sichman [Casare & Simão Sichman 2005] proponen una ontología completa
que tiene en cuenta diferentes conceptos de la reputación, como la fuente de información, el rol
de los agentes, la modificación en el tiempo del comportamiento; entre otras cosas, pero no tiene
en cuenta diferentes métricas (únicamente discrimina en un comportamiento adecuado o
inadecuado) y no presenta una descomposición temática del proceso a reputar.
Víctor Daniel PODBEREZSKI
- 31 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capitulo 3
Descripción del problema
3.1 Introducción
En este capitulo se presenta la situación que es abordada en esta tesis. En la sección 3.2 se detalla
el problema a abordar con las diferentes características del mismo. La sección 3.3 detalla el
objetivo a concretar y el marco de trabajo en el que se efectúa.
3.2 Características de los sistemas de reputación.
Existe un principio que dice que los agentes no mienten a menos que se los programe para que se
comporten de esa manera. Puede suceder que a veces no cumplan un contrato pactado,
simplemente por que no son capaces (sea por una cuestión de diseño o por una situación
imprevisible en el ambiente donde trabajan) o por haberlos desechado. Así como en la vida real
aquellos compromisos que vamos cumpliendo o quebrantando nos van generando con terceros
una reputación que puede ser favorable o no. Ese mismo concepto es deseable en la interacción
entre agentes
Hay una gran cantidad de propuestas de modelos de reputación pensados para el intercambio y
administración de opiniones sobre la confianza de las capacidades de diferentes agentes. En el
capítulo anterior se presentó un conjunto representativo.
El intercambio de reputación puede ser utilizado en diversos escenarios y situaciones donde
diferentes necesidades y restricciones se presentan. Cada uno de ellos con sus particularidades se
ajustará mejor a un modelo dado o a alguna variante del mismo.
Se debe poder generar apreciaciones de reputación sobre el comportamiento de un agente ante
un contrato entre partes (tanto privado como un contrato social). La reputación es evaluada sobre
un agente y es realizada por otro y es almacenada por un tercero para su posterior manipulación
y consulta. La reputación puede ser originada mediante diferentes fuentes de información y se
debe permitir discriminar entre diferentes contextos dentro de la medición para diferentes
acciones de tal forma que se pueda almacenar diversos aspectos de cada uno de ellos (temas) en
función de una taxonomía.
La reputación debe poder ser almacenada en forma centralizada, descentralizada o una
combinación de estas dos (por ejemplo ciertas variables del contexto de la reputación de los
contratos medidos o administrados por agentes centralizados y otras almacenadas en forma
privada por cada agente). Su valor puede ser absoluto o relativo.
Víctor Daniel PODBEREZSKI
- 32 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Debe ser posible consultar cuáles agentes administran cierto tema y la reputación de uno o más
agentes sobre uno o más temas.
Una cuestión importante también es la posibilidad de utilizar diferentes métricas para la
medición de la reputación, pues diferentes modelos de reputación o incluso diferentes agentes
manejan diferentes maneras de evaluar la confianza en un tercero.
El mecanismo de cálculo debe poder establecerse y las formas de determinar que fuentes de
información son confiables y ajustar las mediciones de otros según consideremos que es un
estimador riguroso o no.
Existe la necesidad de generar una ontología para el intercambio de reputación y los protocolos
de comunicación adecuados para lograr un intercambio y consulta eficiente.
3.3 Objetivo.
La mayoría de las soluciones presentadas abordan casos puntuales y utiliza modelos fijos y
preestablecidos. Existe la necesidad de generar una arquitectura flexible para ser utilizada en la
mayor cantidad de situaciones posibles. Se desea poder adaptar la solución para enfrentar a
cambios de la realidad o ser plausible de reutilización en situaciones similares. Un ejemplo típico
de esto es el analizado en [Podberezski & Ierache 2006] en la cadena de suministros industriales.
Se desea poder integrar modelos de reputación existentes generando una arquitectura de
reputación flexible, escalable y configurable según la situación a abordar.
Víctor Daniel PODBEREZSKI
- 33 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capitulo 4
Solución propuesta
4.1 Introducción
Se desarrolla en el transcurso del presente capitulo una solución encontrada a la problemática
presentada en el capítulo anterior. Para eso se propone una arquitectura para la administración de
la reputación y junto a ella se presenta una ontología capaz de representar el conocimiento a
intercambiar en la arquitectura y protocolos de interacción que reglen como se deben realizar la
comunicación e intercambio de información entre los agentes.
4.2 Arquitectura de administración de reputación
Se propone una arquitectura flexible, escalable y abierta para la administración de la reputación
que facilite la implementación y el mantenimiento de la reputación en diversas situaciones de
acuerdo a sus características. La flexibilidad se entiende como su capacidad para adaptarse a las
particularidades de cada escenario. La escalabilidad como la posibilidad de utilizarse en diversas
escalas desde grandes comunidades de agentes hasta un grupo reducido de ellos. Por último la
apertura marca la posibilidad de agregar nuevas características para hacer frente a escenarios que
las requieran.
Las principales operaciones que debe responder un agente de administración de reputación que
haga uso de la arquitectura propuesta son las siguientes:
a.
b.
c.
d.
Medición de reputación
Actualización de reputación
Pedido de reputación.
Información de reputación
Para lograr estos objetivos se debe contener además mecanismos para proveer el conocimiento
para llevar a cabo los mismos, entre estos mantener las fuentes de información, métricas para la
ponderación, formas de cálculo, taxonomía de la reputación entre otros datos posiblemente
necesarios.
En la figura 1 se puede observar un esquema que muestra la interface de cada agente de
administración de reputación con el exterior, es decir con otros agentes que deseen interactuar
con el.
Víctor Daniel PODBEREZSKI
- 34 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
4.2.1 Medición de reputación
La medición de reputación consiste en el procedimiento que realiza un agente de reputación para
obtener una medida de confianza a un agente. Para ello se basa en la información del
comportamiento pasado y las relaciones sociológicas del agente estudiado más los prejuicios
propios, o cualquier otro juicio que le sea útil para decidir si confiar en él. La finalidad de la
obtención de la reputación es determinar si un agente es digno para delegarle una tarea específica
o permitirle la realización de una acción. En ocasiones se deseará seleccionar a un agente entre
un conjunto de posibles candidatos, en ese escenario el pedido de reputación se realizará para
cada uno de los agentes aspirantes.
4.2.2 Actualización de reputación
La Actualización de reputación es el proceso que realiza un agente para agregar una nueva
percepción de confianza sobre el accionar de otro agente con respecto al cumplimiento de un
acuerdo pactado o a una acción realizada. Esa percepción puede obtenerse mediante la
observación directa del comportamiento del agente analizado con respecto a un tercero o hacia el
agente mismo. O puede estar dada por información dada por un tercero. La actualización agrega
nueva información que puede ser almacenada localmente por el agente o por un tercero.
4.2.3 Pedido de reputación.
El pedido de reputación es el proceso por el cual un agente consulta a otro sobre la confianza que
tiene sobre un tercero. Este proceso utiliza como parte la medición de reputación para construir
un valor de confianza utilizando las opiniones de otros agentes. El pedido se puede realizar a
agentes especializados en la administración de la reputación o a pares.
4.2.4 Información de reputación
La información de reputación, por último, es el proceso de comunicar a otro agente una
apreciación de reputación que se tiene sobre el comportamiento de un tercero sobre un tema
específico. Puede producirse como respuesta a un pedido de reputación o como una parte de la
actualización de reputación. En el caso de recibir un pedido de reputación y no tener información
para comunicar, una alternativa es enviar una derivación a uno o varios agentes que pueden
darla.
4.2.5 Gestión e intercambio de información administrativa
Para la administración de la reputación se requiere un conjunto de información lindante que
soporte los procesos de gestión de reputación. Debe poder ingresar, eliminar e intercambiar
información como las métricas, tipos de contrato, temas, fuentes entre otras para mantener la
coherencia y la flexibilidad de la arquitectura.
Víctor Daniel PODBEREZSKI
- 35 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Intercambio información
administrativa
Pedido de reputación
Medición de la
reputación
Información de reputación
Actualización de reputación
Agente de
administraci
ón de
reputación
Agente de
administraci
ón de
reputación
Agente de
administraci
ón de
reputación
Agente de
administraci
ón de
reputación
Figura 1: Esquema de la arquitectura de reputación.
4.3 Ontología de administración de reputación
A continuación, y antes de profundizar en la arquitectura, se presenta la ontología utilizada para
representar el conocimiento dentro de la arquitectura de administración de reputación. Se
describen los conceptos que componen la misma así como los axiomas que lo limitan y ponen en
contexto.
4.3.1 Agentes
Se Sigue la definición de [Russell & Norving 1995; Wooldridge 2002] y se considera a un agente
a un sistema de computación que se encuentra situado en un ambiente y es capaz de un
comportamiento autónomo con la misión de cumplir sus objetivos de diseño. Un agente debe
poder ser identificado unívocamente para diferenciarlo de otros.
Un Agente de reputación es un agente con capacidad de evaluar y administrar reputación sobre
una cantidad de tipos de contratos y un conjunto de temas. Se pude subdividir en 2 grupos
agentes administradores o agentes reputadores.
Un Agente administrador es un agente de reputación que administra y almacena valores de
reputación. Es capaz de solicitar o recibir información de reputación para su manipulación.
Un Agente reputador es un agente de reputación que toma el rol de evaluar un aspecto del
accionar de un agente reputado en la resolución de un contrato.
Víctor Daniel PODBEREZSKI
- 36 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Un Agente reputado es un agente cuyo accionar para la resolución de un contrato es objeto de
reputación.
Axiomas:
-
Un mismo agente no puede tomar el rol de reputador y reputado para la evaluación de un
mismo contrato.
-
Sin embargo en diferentes contratos un mismo agente puede ser objeto de evaluación de
reputación (agente reputado) o Agente administrador.
-
En el mismo contrato no hay restricción en que un mismo agente sea reputador y
administrador.
4.3.2 Fuente de información
Una fuente de información corresponde al medio por el cual fue obtenida una medición de
reputación. Las fuentes de información pueden ser primarias o secundarias.
Las fuentes de información primarias son aquellas que se obtienen por la evaluación de un
contrato donde el agente reputador es testigo de su concreción. Bajo esta categoría el agente
reputador puede ser un observador del contrato o ser partícipe directo del mismo.
Las fuentes de información secundarias son aquellas que se construyen a partir de fuentes
primarias e implican generalización, análisis, síntesis, interpretación o evaluación de las mismas.
Se subdividen a su vez en:
-
Reputación propagada que es la obtenida de terceros
-
Reputacion sociológica que es construida de acuerdo al concepto que tiene la sociedad
entera de un agente (generalmente de acuerdo a la posición o el papel del agente en la
sociedad)
-
El prejuicio.
Axiomas:
-
Un valor de reputación tiene corresponde a una fuente de información.
4.3.3 Tipo de contrato
Agrupa a un conjunto de acciones, comportamientos o tópicos realizados por agentes a reputar
de igual naturaleza. Diferentes tipos de contratos pueden ser almacenados o evaluados por
diferentes agentes de reputación. Un tipo de contrato da un contexto a la acción evaluada.
Una definición de contexto es “cualquier información que puede ser usada para caracterizar la
situación de entidades (por ejemplo una persona, un lugar o un objeto) que son consideradas
relevantes en la interacción entre un usuario y una aplicación, incluyendo al usuario y la
Víctor Daniel PODBEREZSKI
- 37 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
aplicación misma.” [Dey & Abowd, 2000a]. Esta misma definición es útil a nuestro análisis
realizan algunos ajustes. Por lo tanto diremos que
“El contexto es cualquier información que pueda ser utilizada para caracterizar una situación de
entidades entre dos o mas agentes que interactúan entre si para lograr un objetivo dado.”
Axiomas:
-
Un tipo de contrato tiene un conjunto de temas que lo conforman.
-
Agentes de reputación administran y reputan un conjunto de tipos de contrato.
4.3.4 Tema
Faceta de un tipo de contrato que es calificada. Un tipo de contrato se divide en diferentes
aspectos en función de una taxonomía que son medidos mediante la reputación. Estos temas a su
vez pueden contener subtemas que también son medidos. La combinación de todos generan los
temas de un tipo de contrato y conforman la evaluación del comportamiento de un agente en un
contrato.
Puede verse también como un atributo del contrato a evaluar. Entendiéndose a un atributo como
una propiedad mensurable, física o abstracta, que comparten todas las entidades que pertenecen a
una categoría de entidad que satisfacen un cierto predicado común [ISO-15939].
Por ejemplo si un tipo de contrato es proveer tubos para la construcción de tuberías, los temas a
reputar podrían ser la calidad de los tubos, la atención brindada durante la concreción del
contrato y el servicio post-venta. La calidad de los tubos podría subdividirse en la presión
máxima que soportan, resistencia a la corrosión y la resistencia térmica entre otras
características.
Axiomas:
-
Diferentes tipos de contratos pueden contener mismos temas para la medición.
-
Diferentes temas pueden compartir subtemas de evaluación.
-
Diferentes agentes de reputación pueden administrar y almacenar reputación de diferentes
temas.
4.3.5 Contrato a evaluar
Un contrato a evaluar corresponde a las obligaciones adquiridas entre dos o más agentes que
pactan un acuerdo sobre una declaración de voluntades común destinada a reglar sus derechos y
obligaciones El resultado de este contrato es el objeto de evaluación del comportamiento de cada
agente. A medida que se evalúan los contratos de un agente se modifica la reputación de cada
uno de ellos de acuerdo a su accionar.
Víctor Daniel PODBEREZSKI
- 38 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El contrato o hito a evaluar puede verse como una entidad. Donde una entidad puede definirse
como un objeto que va a ser caracterizado mediante una medición de sus atributos [ISO-15939].
Axiomas:
-
Un contrato pertenece a un tipo de contrato.
-
Un contrato es calificado en 1 o mas mediciones de reputación.
4.3.6 Métrica:
La métrica define el método de cálculo utilizado para medir la reputación de un tema de un
contrato. Está compuesto por tipo de valor que utiliza y una escala.
Axiomas:
-
Un agente de reputación utiliza un conjunto de métricas para la valorización de cada uno
de los temas a reputar.
-
Una medición de reputación está dada por una escala determinada.
4.3.7 Escala:
Una escala es un conjunto de valores con propiedades definidas [ISO/IEC ISO14598-1 1999].
Toda escala es de un cierto “Tipo de Escala”.
Un Tipo de Escala Indica la naturaleza de la relación entre los valores de la escala [ISO 15939].
Ejemplos de tipos de escala son: Nominal, Ordinal, Intervalo, Ratio y Absoluta
Una escala numérica es aquella donde los valores medidos son números que pueden ser
expresados en unidades en un sentido estricto. La misma puede ser continua o discreta. Puede
estar acotada a un intervalo y tener un salto entre valor y valor (lo que le da la máxima precisión.
Tienen una unidad.
Una escala categórica es aquella donde los valores medidos son categorías y no se pueden
expresar en unidades en un sentido estricto.
Axiomas:
-
Una métrica contiene una escala
-
Una misma escala puede ser utilizada en diferentes métricas.
4.3.8 Unidad:
Una unidad es una medida patrón definida y adoptada por convención contra la cual son
comparadas otras cantidades de la misma clase, para expresar magnitudes en relación a esa
cantidad [ISO/IEC 15939 2002].
Víctor Daniel PODBEREZSKI
- 39 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
4.3.9 Reputación:
Es la opinión o perspectiva (valoración) sobre el comportamiento de un agente (agente reputado)
por otro agente (agente reputador) acerca de un tema de un contrato, expresada en una métrica en
particular. Contiene la fuente de información indicando como obtuvo esa opinión y quien es el
agente que administra esa información (agente administrador).
Axiomas:
-
Un mismo tema de un contrato puede ser almacenado por diferentes agentes
administradores
-
Un mismo tema de un contrato puede estar medido con métricas diferentes
-
Un mismo tema de un contrato puede provenir de otra fuente de información y tener una
valoración diferente.
-
Un mismo tema de un contrato, una misma fuente de información, un mismo agente
reputador no pueden tener diferentes valoraciones con una misma métrica.
-
Una medición de reputación dada tiene una métrica, un tema, una fuente de información,
un agente reputado, un agente Administrador y reputador.
Como resumen se muestra en la figura 2 los conceptos y las relaciones entre ellos de la
ontología.
Víctor Daniel PODBEREZSKI
- 40 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura 2: Diagrama UML de la ontología.
4.4 Interacción entre agentes
En un modelo de reputación es fundamental determinar como serán las interacciones entre
agentes participantes. En primer lugar se encuentran las interacciones para la administración de
reputación y en un segundo plano las interacciones de configuración.
El primer grupo incluye:
1. Solicitud de Reputación
2. Actualización de reputación
3. Intercambio de información administrativa
Víctor Daniel PODBEREZSKI
- 41 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El segundo grupo de interacciones tiene que ver con el proceso de establecer una comunicación
exitosa. Incluye la conexión, la negociación de un metalenguaje de comunicación, la verificación
de la identidad entre otros aspectos.
Para cada una de estas interacciones se debe contar con un protocolo que regle como será la
dinámica de la comunicación.
Se detallará a continuación las interacciones de administración de reputación:
4.4.1 Solicitud de reputación
La solicitud de reputación es un protocolo interacción entre 2 agentes. El agente iniciador del
mismo es el interesado en conocer la reputación de un tercero. El agente participante es quien
recibe la solicitud y contestara, si así lo desea, con la información que tenga disponible sobre el
agente consultado.
La figura 3 detalla la interacción entre las partes y para su diagramación se utiliza una extensión
de UML propuesta por [Odell2001].
Para la estructura de los mensajes se utilizara Agent Communication Language (ACL)
[FIPA00061] de FIPA
El agente que da comienzo a la interacción es el iniciador. El mismo emite un mensaje de
solicitud de reputación (query-ref) [FIPA00037]. Este mensaje incluye el agente de quien se
desea obtener la reputación, el contexto del contrato, el atributo a medir y la fecha de caducidad
de la solicitud de reputación. Además cada interacción que utiliza este protocolo de interacción
es identificada por un parámetro globalmente único, no nulo, asignado por el iniciador que
determine unívocamente la instancia de comunicación. Los agentes participantes deben insertar
este identificador en todos los mensajes de la conversación. Esto permite a cada agente a manejar
sus actividades y estrategias de comunicación.
El motivo de la fecha de caducidad es para evitar que un agente tenga que esperar un tiempo
indeterminado por una respuesta que puede nunca llegar. De esta forma los agentes tienen un
tiempo finito para decidir responder la solicitud de reputación. Cualquier mensaje que llegue
luego de la fecha de caducidad es automáticamente rechazado por haber llegado tarde.
Víctor Daniel PODBEREZSKI
- 42 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Solicitud de reputación
Iniciador
Participante
query-ref
inform-reputation : inform
inform-source : inform
inform-unknown : inform
Figura 3: Solicitud de reputación
El agente participante al recibir el mensaje de pedido de reputación puede optar por ignorar el
mensaje o proceder a realizar los mecanismos internos para el cálculo de la reputación solicitada.
Los resultados de este proceso pueden ser 3 respuestas diferentes.
La primera respuesta posible es la información de reputación. Esto se da en forma de
información de reputación (inform-reputation de tipo inform) [FIPA00037].
Esta repuesta contiene la información de reputación recabada del agente bajo el contexto
solicitado en el atributo solicitado en una métrica dada.
La segunda respuesta posible es información de fuentes posibles a quien consultarle sobre ese
mismo atributo de reputación consultado. Este respuesta se da en forma de información de
fuentes (inform-source de tipo inform) [FIPA00037]. Este tipo de respuesta es útil
para utilizar el protocolo en modelos de reputación como el propuesto por [Yu & Singh, 2000;
2001a; 2001b].
Por último la tercera respuesta posible es indicar el desconocimiento de la información
solicitada. Para esto se envía un mensaje de Desconocido (inform-unknown de tipo
inform) [FIPA00037]. De esta forma se indica que no esta disponible la información de
reputación solicitada.
Víctor Daniel PODBEREZSKI
- 43 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El protocolo explicado puede ser utilizado en cascada. Esto es: para satisfacer el pedido de
reputación un agente puede decidir realizar él mismo pedidos reputación a un conjunto de pares
para completar su conocimiento y llegar a un valor de confianza sobre el agente consultado. Este
procedimiento puede verse en la figura 4. Hay que tener en consideración que dado que las
solicitudes de reputación tienen una fecha de caducidad el proceso en cascada esta limitado y
dependiendo de lo extenso del tiempo serán los niveles posibles de interconsultas.
Solicitud de reputación
Solicitud de reputación
Iniciador
Participante
Participante2
query-ref
query-ref
inform-reputation : inform
inform-reputation : inform
inform-source : inform
inform-unknown : inform
inform-source : inform
inform-unknown : inform
Figura 4: Solicitud de reputación en cascada
Si bien existen varios protocolos ofrecidos por FIPA para la interacción, no existe uno adecuado
para la solicitud de reputación. El que más se le aproxima en su funcionalidad es el FIPA Query
Interaction Protocol [FIPA00027]. Sin embargo este cuenta con un paso intermedio para
rechazar o aceptar el pedido. Este paso extra se hace innecesario en nuestro protocolo, pues
previendo la consulta de muchas fuentes este intercambio agrega sobrecarga al medio de
comunicación innecesarios ya que si el agente que inicia la interacción no recibe la respuesta
antes del vencimiento de la fecha de caducidad supondrá que la contraparte rechazó contestar la
solicitud. Del mismo modo si recibe una respuesta estará seguro de la intención de la contraparte
de responderle. Otra diferencia fundamental son las posibles respuestas a la solicitud. FIPA
Query Interaction Protocol sólo brinda la réplica de la solicitud recibida o el fracaso en su
respuesta. En el protocolo expuesto se requiere una respuesta posible más: un conjunto de
agentes referidos a los que se les puede formular la misma pregunta.
Víctor Daniel PODBEREZSKI
- 44 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
4.4.2 Actualización de reputación
La actualización de reputación es un protocolo interacción entre 2 agentes. El agente iniciador
del mismo es el interesado en dar a conocer la reputación de un tercero. El agente participante es
quien recibe la actualización y contestará, finalmente si acepta la información o la rechaza.
La figura 5 detalla la interacción entre las partes y para su diagramación nuevamente se utiliza
una extensión de UML propuesta por [Odell2001].
Para la estructura de los mensajes se sigue utilizando Agent Communication Language (ACL)
[FIPA00061] de FIPA
El agente que da comienzo a la interacción es el iniciador. El mismo emite un mensaje de
actualización de reputación (request) [FIPA00037]. Este mensaje es un pedido de
actualización de información que contiene un valor reputación de un atributo en una métrica de
un agente analizado. Además se identifica la interacción con un parámetro globalmente único, no
nulo, asignado por el iniciador que determine unívocamente la instancia de comunicación. Los
agentes participantes deben insertar este identificador en todos los mensajes de la conversación.
Esto permite a cada agente a manejar sus actividades y estrategias de comunicación.
El participante recibe el pedido y considera si es apropiado para agregarla a su base de
conocimientos. A partir de ahí surgen dos posibles resultados, la aceptación o el rechazo de la
nueva información recibida. En caso de considerar que es conveniente la captación de la
información y su inclusión en la base de conocimientos procede a agregarla e informa al
iniciador mediante a un mensaje de aceptación del mismo que acepta la información recibida
(Agree) [FIPA00037]. En caso de considerar que no es conveniente la captación se procede a
informar a la contraparte de la impugnación y circunstancialmente indicar los motivos de la
decisión (Refuse) [FIPA00037].
Víctor Daniel PODBEREZSKI
- 45 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Actualización de reputación
Iniciador
Participante
request
refuse
Agree
Figura 5: Actualización de reputación
El protocolo presentado es similar a Request Interaction Protocol [FIPA00026]. Aunque a
diferencia del anterior como el pedido de actualización no requiere de la información del
resultado de la operación entonces la segunda parte del protocolo de Pedido no es necesaria y en
este caso se omite.
4.4.3 Intercambio de información administrativa
El intercambio de información administrativa tiene como objetivo distribuir el conocimiento
entre los agentes para la administración de la reputación. En ciertos modelos de reputación es
necesario el intercambio de información administrativa entre agentes. Un ejemplo de ellos son
las fuentes de reputación.
Para estas interacciones se utiliza el protocolo de FIPA Query Interaction [FIPA00027]. En la
figura 6 se puede observar un diagrama de su funcionamiento. El iniciador es el agente que
quiere obtener cierta información administrativa, por ejemplo un listado de agentes que brindan
información de reputación. El participante es el agente a quien el iniciador envía la consulta. El
protocolo comienza cuando el iniciador envía un mensaje de Query-ref solicitando al
participante cierta información, en el ejemplo un listado de agentes a quien preguntarle sobre
algún valor de reputación dentro de una esfera del conocimiento especifica.
Víctor Daniel PODBEREZSKI
- 46 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
FIPA-Query-Protocol
Iniciador
Participante
Query-if
Query-ref
refuse
[refused]
Agree
[agreed and
notification necessary]
failure
inform-t/f : inform
[query-if]
[agreed]
inform-result : inform
[query-ref]
Figura 6: Query Interaction Protocol
Recibida la petición el participante puede optar por rechazar el pedido (Refuse) o aceptarlo
(Agree). En caso de aceptar y de responder inmediatamente con la información no es necesario
el envío de este último mensaje, sino que puede proceder a responder con el resultado de la
petición.
Una vez recabada la información el iniciador responde al iniciador con la pesquisa realizada. En
este caso podría no haber encontrado ningún agente que brinde ese servicio y en tal caso enviará
un mensaje de Failure [FIPA00037] al iniciador. En caso de encontrar agentes que satisfacen
el requerimiento procede a enviar un mensaje inform-result (inform) al iniciador con la
lista de agentes a quien se le puede consultar sobre la reputación en la esfera de conocimiento
deseada.
Víctor Daniel PODBEREZSKI
- 47 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
4.5 Componentes de la arquitectura
La arquitectura propuesta está dividida en un conjunto de módulos que cumplen funciones
especificas y que interactúan entre si para lograr los objetivos para una correcta administración
de la reputación. Cada uno de estos módulos tiene una interface definida de modo que la
modificación de uno no incida en los otros (Figura 7).
Se detallan brevemente las principales tareas de cada de estos módulos.
-
Administrador: Encargado de administrar las diferentes operaciones para la gerenciación
de la reputación. Es quien se encarga de recibir los pedidos del exterior y ordenar su
cumplimiento. Escucha continuamente por nuevas solicitudes entre ellas: inserción y
solicitud de reputación, información sobre taxonomias, agentes de administración, tipos
de contratos y métricas disponibles.
-
Medidor: Responsable del cálculo de la reputación de un agente de acuerdo a la
información de reputación disponible. Determina de acuerdo al contexto qué se debe
medir y cómo se debe interpretar lo medido para la creación de un valor de confianza.
Establece la taxonomía a medir y un método de evaluación o cálculo. Por cada tipo de
contrato existe una forma de medir la reputación de un agente.
-
Recopilador: Gestiona la recopilación y divulgación de las diferentes mediciones de
reputación de un tema en especial para un agente dado. Responsable de la unificación de
las mediciones para su manipulación posterior. Por cada métrica y tema existe una forma
de calcular la reputación del tema de un agente dado.
-
Difusor: Encargado de conocer y dar a conocer agentes qué administran un tema
especifico de reputación. Además registra qué métricas utiliza cada uno de ellos para
comprender los valores de reputación y cuales métricas se utilizan localmente para el
almacenamiento. Se puede diferenciar a aquellos agentes que están dispuestos a
compartir su conocimiento de aquellos que únicamente están dispuestos a recibirlo.
-
Contacto: Se encarga de compartir o solicitar valores de reputación sobre un agente en un
determinado tema. Se pueden diferenciar dos comportamientos principales: contacto
externo y contacto interno. El primero se encarga de solicitar o informar reputación a un
tercero El segundo se ocupa de mantener la información administrada localmente.
Además puede solicitar a otros agentes diferentes informaciones administrativas para
mantener operativo el sistema (por ejemplo nuevas métricas, tipo de contrato y temas
disponibles).
-
Transformador: Se encarga de la traducción de un valor de reputación de una métrica a
otra. Por cada par de métricas disponibles existe una función de transformación y su
inversa. Además se dispone de un nivelador que se ocupa de, en una misma métrica, para
Víctor Daniel PODBEREZSKI
- 48 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
un agente en particular modificar un valor de medida aumentando o disminuyendo (si
esto es posible) su valor de acuerdo a si el agente considera que el agente reputador es
más exigente o menos a la hora de realizar sus apreciaciones.
Agente de administración de reputación
Medidor
Recopilador
Difusor
Contacto
Transforma
dor
Administrador
ENTORNO
Figura 7: Módulos de la arquitectura.
En las siguientes secciones se detallarán cada una de las partes de la arquitectura.
4.6 Descripción de los módulos de la arquitectura
4.6.1 Administrador
La administración es la parte principal de la arquitectura. Existe una única instancia de la clase
de administración que se encuentra continuamente monitoreando el ambiente en espera de
solicitudes de los otros agentes. Implementa la capa de comunicación.
Las operaciones que puede realizar son:
Listado de operaciones
Operación
Descripción
(+) Agregar
Se ocupa de insertar una
reputación
nueva medición de reputación
al sistema de un determinado
agente. La misma consiste en
un valor en una métrica
evaluando un tema de un
contrato. Genera un objeto de
tipo Recopilación disparando
la operación pasándole la
Víctor Daniel PODBEREZSKI
- 49 -
Entrada
- Fuente de
información
- Agente
Reputado
- Contrato
-Tema
- Métrica
Salida
Éxito o fracaso de
la inserción.
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
reputación a ingresar.
Entrada
- Valor
Salida
(+) Informar
Reputación
Se ocupa de atender el pedido
de otro agente de reputación
de un agente en un tema
determinado. Opcionalmente
se podría solicitar el valor
resultante en una métrica
particular. Genera un objeto
recopilación del tema a medir
y llama a la operación
Obtener reputación pasándole
el agente a reputar. El tema a
medir no debe tener subtemas
asociados.
- Agente
reputado
- Reputación
(+) Pedir Reputación Se ocupa de atender el pedido
de otro agente de reputación
de un agente en un tipo de
contrato determinado. Genera
un objeto medición y llama a
la operación Obtener
reputación pasándole el tema
y el agente a medir.
- Agente
reputado
- Tema
- Métrica
(opcional)
- Reputación
- Tipo de
contrato
(+) Obtener
Taxonomía
- Tipo Contrato
Se ocupa determinar que
temas componen un
o
determinado tipo de contrato.
- Tema
Otra variante permite obtener
para un tema en particular,
que subtemas lo conforma.
- Lista de Temas
(+) Obtener
Métricas
Se ocupa de informar que
métricas soporta el agente.
(vacío)
- Lista de
métricas
(+) Obtener Tipos
Se ocupa de informar que
(vacío)
- Lista de tipos de
Víctor Daniel PODBEREZSKI
- 50 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
de contrato
tipos de contrato soporta el
agente
(+) Obtener Temas
Se ocupa de informar que
temas administra el agente
Entrada
Salida
contrato
(vació)
- Lista de Temas
Tabla 2: Operaciones del módulo “Administrador”
Los atributos con los que cuenta son:
Listado de atributos
Atributo
Descripción
Medidores
Listado de medidores. Se almacena un medidor por cada tipo de
contrato disponible a reputar.
Recopiladores
Listado de recopiladores. Se almacena un recopilador por cada tema
y métrica con la que se puede reputar el mismo.
Métricas
Listado de métricas utilizadas.
Tabla 3: Atributos del módulo “Administrador”
4.6.2 Medidor
El medidor se ocupa de llevar adelante la medición de reputación de un agente para un
determinado tipo de contrato. Por cada tipo de contrato se contará con un medidor. Un agente
medidor se ocupa de calcular la reputación para un agente en un momento, por lo tanto de
necesitar medirse más de un agente en un momento, deberá crearse una instancia de este módulo
por cada agente que se quiera medir en un mismo momento.
Las operaciones que puede realizar son:
Listado de operaciones
Operación
Descripción
Entrada
(+) Obtener
Se encarga de iniciar el
- Agente
Reputación
proceso de obtener la
reputado
reputación de un agente para
un tipo de contrato en
particular. Dispara la
recopilación de la reputación
para cada tema que conforma
la taxonomía y una vez
Víctor Daniel PODBEREZSKI
- 51 -
Salida
Reputación
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
transcurrido un tiempo
establecido calcula la
reputación con los valores
obtenidos.
(+) Obtener
Taxonomía
Retorna una lista de todos los (vacío)
temas que conforman la
taxonomía del tipo de
contrato a medir.
(-) Calcular
Reputación
Calcula la reputación en base
a los datos recabados, la
taxonomía del tipo de
contrato y el método de
cálculo propio del tipo de
contrato.
- Lista de
reputación
Listado de temas
a consultar
- Reputación
Tabla 4: Operaciones del módulo "Medidor"
Los atributos con los que cuenta son:
Listado de atributos
Atributo
Descripción
Tipo de contrato
Descripción del tipo de contrato que el medidor se ocupa de
calcular.
Reputación
Listado de reputación recuperada. Una instancia por cada tema del
tipo de contrato.
Tabla 5: Atributos del módulo “Medidor”
Base de conocimientos asociadas:
Base de conocimientos
Conocimiento
Descripción
Taxonomías
Conocimiento que mantiene una descripción de que temas y
subtemas conforman un tipo de contrato. Bajo que criterios unificar
los mismos para el calculo de la reputación de un tipo de contrato.
Tabla 6: Bases de conocimiento del módulo “Medidor”
4.6.3 Recopilador
El recopilador se encarga de organizar la obtención de información de reputación de un tema
sobre un agente. Solicita por cada agente de administración que le informe sobre la reputación
Víctor Daniel PODBEREZSKI
- 52 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
del mismo, los colecta y luego se encarga de solicitar su depuración, transformación en la misma
métrica y la nivelación. Por cada dupla de métrica y tema se contará con una instancia de un
recopilador
Listado de operaciones
Operación
Descripción
(+) Obtener
Se encarga de iniciar la
Reputación Tema
recopilación de reputación de
un agente a reputar sobre un
tema. Dispara el contacto con
agentes administradores de
ese tema. Depura, transforma
y nivela las reputaciones
recopiladas y finalmente las
unifica en una única
medición.
Entrada
- Agente
Reputado
Salida
- Reputación
- Lista de Fuente
de información
- Métrica
(opcional)
(-) Nivelar
En base a un agente reputado - Agente
Reputado
y una medida de reputación
modifica un valor de medida
- Reputación
aumentando o disminuyendo
(si esto es posible) su valor de
acuerdo a si el agente
considera que el agente
reputador es más exigente o
menos a la hora de realizar
sus apreciaciones
-Reputación
(-) Depurar
- Listado
En base los valores de
Reputación
reputación recolectados y al
agente reputador de cada uno
de ellos determina se ocupa
de descartar aquellas
mediciones de reputación que
considere poco confiables,
defectuosas, fuera de fecha o
repetidas
- Listado
Reputación
Víctor Daniel PODBEREZSKI
- 53 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
(-) Actualizar
En base a la reputación
Apreciaciones
recopilada, y una vez
unificada para obtener la
reputación resultante sobre el
tema del agente reputado,
junto con las diferentes
reputación juntadas de los
diferentes agentes reputadotes
se ajustan las apreciaciones
sobre las exigencias de los
agentes (que son utilizadas
para nivelar)
Entrada
- Agente
Reputado
Salida
(vacio)
- Valor
Reputación
- Listado
Reputación
(+) Agregar
reputación Tema
En base a la reputación de un - Reputación
tema de un agente se procede
a registrar la misma en la base
de conocimiento. Obtiene a
quien se le debe informar y se
ocupa de llamar al modulo
“Contacto” correspondiente
para que agregue la
reputación en donde sea
necesario. De ser necesario
realiza una transformación de
métrica.
(vacio)
(-) Calcular
Reputación
Calcula la reputación en base
a los datos recabados y las
reglas de unificación del
tema.
- Lista de
reputación
- Reputación
(-) Verificar
Conocimiento de
reputación Contrato
Determina si un determinado
tema de un contrato con un
agente reputado ha sido ya
registrado para una
determinada fuente de
información, agente reputador
- Contrato
- Reputación
previamente
registrada o no
Víctor Daniel PODBEREZSKI
- 54 -
- Tema
- Agente
Reputador
- Agente
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
Entrada
Reputado
Salida
- Fuente de
información.
Tabla 7: Operaciones del módulo “Recopilador”
Los atributos con los que cuenta son:
Listado de atributos
Atributo
Descripción
Tema (const)
Tema que es recopilado.
Métrica (const)
Métrica que es utilizada para retornar la reputación recopilada.
Reputación
Listado de reputación obtenida en la medición.
Transformadores
Listado de transformadores de métrica.
Tabla 8: Atributos del módulo “Recopilador”
Base de conocimientos asociadas:
Base de conocimientos
Conocimiento
Descripción
Nivelación
Conocimiento que mantiene discriminado por agente reputador,
tema y métrica que modificación se debe realizar a un valor de
reputación. El objetivo es uniformar los diferentes valores de
reputación obtenidos para obtener las apreciaciones sobre las
exigencias de los agentes.
Unificación
Conocimiento que permite unificar los diferentes valores de
reputación recopilados de acuerdo a reglas establecidas para obtener
un valor de reputación único correspondiente al tema para un agente
reputado.
Tabla 9: Bases de conocimiento del módulo “Recopilador”
4.6.4 Difusor
Es el encargado de administrar y dar a conocer qué agentes administran los diferentes temas y
cuales de ellos están dispuestos a compartir su conocimiento con el agente. Ademas a qué
agentes se les debe comunicar las reputaciones sobre algún tema dado. Para realizar esta tarea
además conoce que métricas utiliza cada uno de ellos para comprender los valores de reputación.
Víctor Daniel PODBEREZSKI
- 55 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
(+) Obtener
Obtiene cuales son los
Administradores
agentes administradores de un
Consulta
determinado tema a los que se
les puede consultar por
valores de reputación.
Entrada
- Tema
- Fuente de
información
(opcional)
(+) Obtener
Métricas
Administrador
Obtiene las métricas que
utiliza un determinado agente
administrador genéricamente
y opcionalmente en un
determinado tema.
- Agente
administrador
(+) Obtener
Administradores
Información
Obtiene cuales son los
agentes administradores de un
determinado tema a los que se
les puede informar por nuevos
valores de reputación.
- Tema
Salida
- Listado de
agentes
administradores
- Listado de
métricas
- Tema
(opcional)
- Listado de
- Lista de Fuente agentes
administradores
de información
(opcional)
Tabla 10: Operaciones del módulo “Difusor”
Base de conocimientos asociadas:
Base de conocimientos
Conocimiento
Descripción
Agentes
Contiene el conocimiento de cuales son los agentes administradores
administradores
de reputación disponibles para cada tema. Entre ellos, aquellos a los
que se le puede consultar y a aquellos a los que se les puede
informar. Asimismo se cuenta con el conocimiento de cuales
métricas están disponibles en cada agente para cada tema en
particular. Dentro de este conocimiento se encuentran los temas y
métricas que maneja internamente el propio agente.
Tabla 11: Bases de conocimientos del módulo “Difusor”
4.6.5 Contacto
Contacto se encarga de compartir o solicitar valores de reputación sobre un agente en un
determinado tema. Se pueden diferenciar dos comportamientos principales: contacto externo y
contacto interno. El primero se encarga de solicitar o informar reputación a un tercero El
segundo se ocupa de mantener la información administrada localmente. Además puede solicitar a
Víctor Daniel PODBEREZSKI
- 56 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
otros agentes diferentes informaciones administrativas para mantener operativo el sistema (por
ejemplo nuevas métricas, tipo de contrato y temas disponibles).
Listado de operaciones
Operación
Descripción
(+) Consultar
Se ocupa de contactar al
reputación
agente de administración
indicado para solicitarle el
envío de reputación sobre un
tema en especial acerca de un
agente en particular. Dispara
la interacción entre agentes
para el pedido de reputación.
Entrada
- Agente de
administración
Salida
- Reputación
- Tema
- Agente
Reputado
(+) Informar
reputación
- Reputación
Se encarga de informar
reputación a un agente de
administración de reputación
dado, acerca de un tema en
particular por un contrato
perteneciente a un tipo de
contrato, en una métrica dada
sobre un agente reputado.
Dispara la interacción entre
agentes para la información
de reputación.
(+) Solicitar
métricas
Dispara el pedido de métricas
conocidas por un agente de
administración de reputación.
Si se indica un tema se
obtienen las métricas
utilizadas para reputar valores
de reputación en él.
- Agente de
administración
(+) Solicitar tipo de
contratos
Dispara el pedido de tipos de
contratos administrados por
un agente de administración
de reputación.
- Agente de
administración
- Listado de tipos
de contrato
(+) Solicitar temas
Dispara el pedido de temas
- Agente de
- Listado de
Víctor Daniel PODBEREZSKI
- 57 -
- finalización
exitosa
- Listado de
métricas.
- Tema
(opcional)
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Listado de operaciones
Operación
Descripción
administrados por un agente
de administración de
reputación.
Entrada
administración
Salida
temas
Tabla 12: Operaciones del módulo “Contacto”
Base de conocimientos
Conocimiento
Descripción
Ontología de
Conocimiento que permite generar un mensaje a enviar a otro
administración de
agente sobre el dominio de la reputación para solicitar o informar
reputación
situaciones de reputación dadas (valores de reputación, métricas,
temas, tipos de contrato, etc).
Tabla 13: Bases de conocimiento del módulo “Contacto”
4.6.6 Transformador
El transformador se encarga de la traducción de un valor de reputación de una métrica a otra. Por
cada par de métricas disponibles existe una función de transformación y su inversa.
Listado de operaciones
Operación
Descripción
Entrada
(+) Transformar
En base al valor de reputación - Reputación
puesto en una métrica realiza
una transformación a una
segunda métrica utilizando
una función de
transformación asociada.
Salida
- Reputación
Tabla 14: Operaciones del módulo “Transformador”
Los atributos con los que cuenta son:
Listado de atributos
Atributo
Descripción
Métrica Origen
Métrica en la que se encuentra expresada el valor de reputación a
Víctor Daniel PODBEREZSKI
- 58 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
transformar
Métrica Destino
Métrica en la que se transformará el valor de reputación pasada.
Tabla 15: Atributos del módulo “Transformador”
Base de conocimientos asociadas:
Base de conocimientos
Conocimiento
Descripción
Función de
Función que determina el pasaje del dominio de la métrica de origen
transformación
a la métrica destino.
Tabla 16: Bases de conocimiento del módulo “Transformador”
4.7 Interacción entre módulos de la arquitectura
En la siguiente sección se ejemplifica la interacción entre los diferentes módulos de la
arquitectura ante requerimientos de reputación entre agentes de reputación.
4.7.1 Pedido de reputación
El pedido de reputación es el proceso por el cual un agente consulta a otro sobre la confianza que
tiene sobre un tercero. Este proceso es muchas veces utilizado como parte del pedido de
medición de reputación para construir un valor de confianza utilizando las opiniones de otros
agentes. El pedido se puede realizar a agentes especializados en la administración de la
reputación o a pares.
Se presenta a continuación (Figura 8) la descripción de un circuito posible de pedido de
reputación.
Víctor Daniel PODBEREZSKI
- 59 -
h
d
g
Contacto
Contacto
Contacto
i
e
f
Difusor
hj
Recopilador
Recopilador
Recopilador
Administración
a
c
Transformador
Transformador
b
Medidir
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura 8: Pedido de reputación
El agente de administración de reputación, recibe un pedido de reputación [a]. El módulo de
administración recibe el pedido de reputación. En esa instancia conoce el agente y tipo de
contrato a reputar. Verifica en primer lugar que conozca el tipo de contrato (Obtener Tipos de
contrato). En caso afirmativo le delega al medidor adecuado la mensura de la reputación
(Obtener reputación) pasándole el agente a medir [b].
El Medidor obtiene una lista de todos los temas que conforman la taxonomía del tipo de contrato
a medir (Obtener Taxonomía). Para cada tema delega a un Recopilador la compilación del
mismo (Obtener Reputación Tema) [c]. De acuerdo al tipo de contrato o tema se podrá restringir
la fuente de información de la reputación utilizada.
El recopilador le consulta al Difusor aquellos agentes a los que se les puede consultar por el tema
en cuestión (Obtener Administradores Consulta) [d]. En base a la lista de agentes de consulta se
le delega al Contacto por cada agente un pedido de información (Consultar reputación) [e]
Contacto se ocupa de solicitar la reputación de un agente sobre un tema a un agente de
administración [f]. Esto lo realiza utilizando el protocolo de solicitud de reputación. Al obtener la
reputación se la comunica al Recopilador [g]. En caso de requerirse la apreciación propia de
reputación también se ocupa el módulo de Contacto de llevarlo adelante.
El Recopilador con todas las mediciones de reputación obtenidas de las distintas fuentes sobre el
tema y agente reputado procede a nivelar (Nivelar) y depurar (Depurar) cada medición de
reputación. Solicita al Transformador que [h] convierta cada una de las reputaciones a una
métrica determinada (Transformar). Una vez consolidadas todas las reputaciones se procede a
calcular la reputación (Calcular Reputación). Finalmente en base a la reputación recopilada, y
una vez unificada se ajustan las apreciaciones sobre las exigencias de los agentes (Actualizar
Apreciaciones). El Recopilador entrega al Medidor la reputación sobre el tema calculada [i].
Víctor Daniel PODBEREZSKI
- 60 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El Medidor recibe la recopilación de temas correspondientes al tipo de contrato a evaluar y
calcula la reputación en base a los datos recabados, la taxonomía del tipo de contrato y el método
de cálculo propio del tipo de contrato (Calcular Reputación). Finalmente entrega la reputación
calculada al Administrador [j]. Esta reputación calculada es entregada a quien la solicitó.
4.7.2 Actualización de reputación
La Actualización de reputación es el proceso que realiza un agente para agregar una nueva
percepción de confianza sobre el accionar de otro agente con respecto al cumplimiento de un
acuerdo pactado o a una acción realizada. La actualización agrega nueva información que puede
ser almacenada localmente por el agente o por un tercero.
Transformador
Transformador
hh
d
g
c
f
Difusor
a
Administración
e
Recopilador
b
Contacto
Contacto
Contacto
Se presenta a continuación (Figura 9) la descripción de un circuito posible de actualización de
reputación
Figura 9: Actualización de reputación.
El agente de administración de reputación, recibe una actualización de reputación [a]. El módulo
de administración recibe la solicitud (Agregar reputación). En esa instancia conoce, al agente
reputado, agente reputador - pudiendo ser el mismo u otro- , tema, contrato, fuente de
información, métrica y valor. Debe verificar que conozca el tema (Obtener Temas) y la métrica
utilizada (Obtener Métricas). En caso afirmativo le delega al Recopilador adecuado el añadido de
la reputación (Agregar reputación Tema) pasándole la información [b].
El Recopilador en base al tema consulta al Difusor a qué administradores de reputación se les
debe informar (Obtener Administradores Información) y para cada uno de los destinatarios
determina en que métrica se lo debe comunicar [c]. Una buena política es verificar si la
Víctor Daniel PODBEREZSKI
- 61 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
reputación a registrar no ha sido consignada anteriormente para evitar duplicar el hito (Verificar
Conocimiento de reputación Contrato).
Conociendo los agentes de administración destinatarios y las métricas que estos utilizan, de ser
necesario se transforma las métricas para que sean entendidas por cada receptor (Transformar).
Esto se realiza por medio del Transformador [d].
Por cada receptor se le delega a Contacto la transmisión de la reputación (Informar reputación)
[e]. Contacto se comunica con el agente administrador y le envía la reputación utilizando el
protocolo de actualización de reputación.
Contacto luego informa al Recopilador el resultado del envío [g] - si fue satisfactorio o no – y
este a Administración [h].
4.7.3 Información de reputación
La información de reputación es el proceso de comunicar a otro agente una apreciación de
reputación que se tiene sobre el comportamiento de un tercero sobre un tema específico.
Transformador
Transformador
hh
g
f
c
e
Difusor
a
Administración
d
Recopilador
b
Contacto
Contacto
Contacto
Se presenta a continuación (Figura 10) la descripción de un circuito posible de información de
reputación
Figura 10: Información de reputación.
El agente de administración de reputación, recibe un pedido de reputación de un tema en
particular [a]. El módulo de administración recibe la solicitud (Informar Reputación) de otro
agente sobre un tema determinado de un agente determinado y opcionalmente en una métrica
particular. Produce a verificar si conoce el tema solicitado (Obtener Temas) y la métrica
(Obtener Métricas). En caso afirmativo delega al Recopilador la responsabilidad de recopilar la
reputación.
Víctor Daniel PODBEREZSKI
- 62 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
El Recopilador recibe la instrucción de compilar la reputación del agente a reputar sobre el tema
específico (Obtener Reputación Tema) [b]. Inicia esa tarea subscribiéndose a recabar la
reputación según la fuente de información indicada.
El recopilador le consulta al Difusor aquellos agentes a los que se les puede consultar por el tema
y fuentes de información en cuestión (Obtener Administradores Consulta) [c]. En base a la lista
de agentes de consulta se le delega al Contacto por cada agente un pedido de información
(Consultar reputación) [d]
Contacto se ocupa de solicitar la reputación de un agente sobre un tema a un agente de
administración [e]. Esto lo realiza utilizando el protocolo de solicitud de reputación. Al obtener
la reputación se la comunica al Recopilador [f]. En caso de requerirse la apreciación propia de
reputación también se ocupa el módulo de Contacto de llevarlo adelante.
El Recopilador con todas las mediciones de reputación obtenidas de las distintas fuentes sobre el
tema y agente reputado procede a nivelar (Nivelar) y depurar (Depurar) cada medición de
reputación. Solicita al Transformador que [g] convierta cada una de las reputaciones a una
métrica determinada (Transformar). Una vez consolidadas todas las reputaciones se procede a
calcular la reputación (Calcular Reputación). Finalmente en base a la reputación recopilada, y
una vez unificada se ajustan las apreciaciones sobre las exigencias de los agentes (Actualizar
Apreciaciones). El recopilador entrega a Administración la reputación sobre el tema calculada
[h].
Capitulo 5
Experimentación
5.1 Objetivo
Para comprobar el funcionamiento y la flexibilidad de la arquitectura propuesta se llevaron a
cabo 2 escenarios de pruebas diferentes. Se intentó conjugar en estos la mayor cantidad de
situaciones diferentes de forma tal de medir la efectividad de la propuesta.
La medida del éxito se medirá en el aprendizaje con el transcurso del tiempo que lleve a un
agente determinado a seleccionar mejores socios en quien delegar una determinada tarea o
adquirir un determinado bien o servicio.
5.2 Escenarios de prueba
Para probar la arquitectura se proponen 2 escenarios diferentes. El primer escenario corresponde
a la reputación de un sitio de subastas online y el segundo a la reputación dentro de la cadena de
suministros de una industria de manufactura.
Víctor Daniel PODBEREZSKI
- 63 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Para ambos escenarios se simuló la interacción de agentes y los resultados de las interacciones
para la generación de la reputación.
5.3 Reputación en sitio de subastas
El escenario del sitio de subastas corresponde a un conjunto de agentes que están interesados en
la compra y venta de bienes y servicios. Únicamente se fijan en la reputación del agente
contraparte sin discriminar el producto.
5.3.1 Características
No se realiza una distinción entre el tipo de bien. Lo que se reputa es el comportamiento de la
compra venta, sin importar el objeto de la transacción. Tanto el comprador como el vendedor
pueden reputar a la contraparte luego de finalizada la operación.
Existe una única métrica utilizada para expresar el valor de reputación. Esta métrica consta de 3
valores: -1, 0 y 1. La primera para indicar que el comportamiento de la contraparte fue negativo,
el segundo si fue neutral y el último si fue positivo. La reputación de un agente es la suma de las
reputaciones dadas por las contrapartes en los diferentes episodios de compra-venta.
Existe un único agente administrador de reputación. Es el encargado de recibir los valores de
reputación y responder las consultas. Los demás agentes se limitan a ser agentes reputadores y
reputados.
La única fuente generadora de información existente es la interacción directa.
La reputación de un agente se calcula como la suma de todas las reputaciones individuales del
mismo y es un número entero. Un valor negativo corresponde a una reputación negativa y una
positiva a una reputación positiva. Cuanto mayor es la magnitud de la reputación, más fuerte es
la apreciación (tanto para reputaciones positivas como negativas). La reputación es global, un
mismo concepto sobre un agente es mantenido por todos los agentes federados.
El escenario es similar al existente en el sitio de subastas online DeRemate [DeRemate 2005]
5.3.2 Simulación
Para la simulación se generó un prototipo de la arquitectura conformado por un entorno de
agentes. Estos agentes están separados en dos categorías: Compradores/Vendedores y
Administradores de reputación. Los Compradores/Vendedores pueden solicitar u ofrecer un
producto genérico a otro agente. Existe un único administrador de reputación que colecta las
apreciaciones de los agentes compradores/vendedores generados por su interacción.
El intercambio de un producto ocasiona la generación de una apreciación del comportamiento
entre las partes. Se considera que un agente se comporta de la misma manera ya sea si es
comprador o vendedor.
Víctor Daniel PODBEREZSKI
- 64 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
La simulación consta de un conjunto de episodios divididos en 2 fases: interacción y recolección
de reputación. La primera fase corresponde a la transacción entre comprador y vendedor. El
resultado de la misma es la generación de una apreciación por parte del comprador y el
vendedor, que puede ser -1 0 y 1. Para la simulación la interacción entre los agentes en esta fase
será el intercambio de un valor de apreciación que represente el comportamiento entre
comprador y vendedor (y viceversa). Esto da como resultado 1 par de apreciaciones. Cada agente
informa al administrador de reputación esta apreciación. La segunda fase corresponde a la
consulta de reputación de todos los agentes para ver la evolución de su reputación. Esta consulta
estará a cargo de un agente que le consultará la reputación de cada uno de los
compradores/vendedores del entorno.
Con el objetivo de la simulación se presentan tres tipos diferentes de agentes:
-
Agentes cumplidores: En el 70% de las interacciones se comportan de forma positiva.
20% de forma neutral y 10% negativa.
-
Agentes regulares: En el 20% de las interacciones se comportan de forma correcta. 60%
de forma neutral y 20% negativa.
-
Agentes no cumplidores: En el 10% de las interacciones se comportan de forma positiva.
El 20% de forma neutral y el 70% de forma negativa.
Para la definición de los tres tipos de agentes y sus respectivos porcentajes se realizó una
selección al azar de 300 agentes del sitio de subastas de DeRemate [DeRemate 2005]. Luego se
dividió a los agentes en dos conjuntos en base a su reputación: Agentes Cumplidores y
Regulales. Analizando los contratos de cada uno de ellos y el grado de cumplimiento de los
mismos se midieron porcentajes similares a los utilizados (los mismos fueron redondeados a
efectos de simplificar la simulacíon). El tercer grupo (agentes no cumplidores) se simuló
inviertiendo los porcentajes de los agentes cumplidores. Esto se decidió asi pues el sistema
elimina a los agentes no cumplidores y por lo tanto no se encontraban dentro de la muestra
analizada.
Para la simulación se utilizaron 90 agentes compradores/vendedores. 30 de cada tipo. Además se
contaba con 1 agente administrador de reputación.
Con el objetivo de simular el comportamiento del sistema se realiza la interacción entre todos los
agentes compradores/vendedores y se analiza la evolución de la reputación de cada uno a través
del tiempo. Para esto se utiliza la arquitectura de reputación propuesta con las características
detalladas en la sección 5.3.1
5.3.3 Resultados experimentales
Víctor Daniel PODBEREZSKI
- 65 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Luego de la ejecución de la simulación, en la que se registraron un total de 8010 valores de
reputación, se le solicitó al administrador de reputación que retornara la valoración total de cada
uno de los agentes de compra/venta. Se recabó los siguientes valores (Tabla 17):
Reputado
Cumplidor 1
Cumplidor 10
Cumplidor 11
Cumplidor 12
Cumplidor 13
Cumplidor 14
Cumplidor 15
Cumplidor 16
Cumplidor 17
Cumplidor 18
Cumplidor 19
Cumplidor 2
Cumplidor 20
Cumplidor 21
Cumplidor 22
Cumplidor 23
Cumplidor 24
Cumplidor 25
Cumplidor 26
Cumplidor 27
Cumplidor 28
Cumplidor 29
Cumplidor 3
Cumplidor 30
Cumplidor 4
Cumplidor 5
Cumplidor 6
Cumplidor 7
Cumplidor 8
Cumplidor 9
Reputación
51
52
50
59
47
56
39
43
54
46
55
47
48
46
58
52
45
52
66
63
61
56
57
66
55
56
52
53
67
57
Reputado
No Cumplidor 1
No Cumplidor 10
No Cumplidor 11
No Cumplidor 12
No Cumplidor 13
No Cumplidor 14
No Cumplidor 15
No Cumplidor 16
No Cumplidor 17
No Cumplidor 18
No Cumplidor 19
No Cumplidor 2
No Cumplidor 20
No Cumplidor 21
No Cumplidor 22
No Cumplidor 23
No Cumplidor 24
No Cumplidor 25
No Cumplidor 26
No Cumplidor 27
No Cumplidor 28
No Cumplidor 29
No Cumplidor 3
No Cumplidor 30
No Cumplidor 4
No Cumplidor 5
No Cumplidor 6
No Cumplidor 7
No Cumplidor 8
No Cumplidor 9
Reputación
-58
-51
-65
-53
-52
-54
-43
-48
-57
-54
-57
-54
-38
-53
-46
-61
-59
-43
-48
-49
-53
-56
-48
-56
-58
-57
-57
-59
-70
-53
Reputado
Regular 1
Regular 10
Regular 11
Regular 12
Regular 13
Regular 14
Regular 15
Regular 16
Regular 17
Regular 18
Regular 19
Regular 2
Regular 20
Regular 21
Regular 22
Regular 23
Regular 24
Regular 25
Regular 26
Regular 27
Regular 28
Regular 29
Regular 3
Regular 30
Regular 4
Regular 5
Regular 6
Regular 7
Regular 8
Regular 9
Reputación
-12
4
-4
3
7
0
-8
0
-4
-10
-7
1
-2
-3
12
5
-3
3
2
2
-9
7
-4
-7
-4
-5
-3
7
-6
-11
Tabla 17: Resultados experimentales de valores de reputación en sitio de subasta.
Como se puede apreciar al finalizar la iteración de los agentes la centralización hizo que se
puedan diferenciar en tres grupos según el comportamiento de los agentes. Al existir un agente
de administración centralizado las valoraciones de cada uno de los agentes se juntaron para poder
construir las mismas. Esta construcción hubiese sido imposible de generar para cada uno de los
agentes en forma independiente. El motivo de esto es que cada agente interactuó únicamente 1
vez con cada uno de los otros agentes.
Aquellas agentes catalogados como “Cumplidores” acabaron con buenas valoraciones de
reputación. Por otro lado los catalogados como “No Cumplidores” obtuvieron valoraciones
Víctor Daniel PODBEREZSKI
- 66 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
negativas. Finalmente los “Regulares” oscilaron entre valores positivos y negativos pero
cercanos a la valoración neutra (0).
En la figura 11 se muestra un gráfico que presenta la evolución de la reputación de 1 agente de
cada tipo. Es evidente el aprendizaje del sistema hacia una correcta identificación del
comportamiento de cada agente según su naturaleza.
Progresión de reputacion
60
50
40
30
10
Cumplidor 13
No Cumplidor 15
Regular 2
0
It e
ra
ci
ó
n
Reputación
20
-10
-20
-30
-40
-50
Iteración
Figura 11: Evaluación de reputación a través del tiempo.
Mediante este ejemplo se verifica que la arquitectura planteada se adapta y satisface este
escenario.
5.4 Reputación en cadena de suministros
El escenario de la cadena de suministros corresponde a un conjunto de agentes que están
interesados en la compra y venta de bienes y servicios diferenciados. En este escenario se desea
obtener la reputación para decidir quién es el mejor oferente para un tipo de contrato en
particular.
El escenario corresponde a un ejemplo académico utilizado por la cátedra de Manufactura
integrada por computador I [CIM1 2005]. La reputación en la cadena de suministros se analiza se
toma como ejemplo ya que fue analizado en [Podberezski & Ierache 2006a]
Víctor Daniel PODBEREZSKI
- 67 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
5.4.1 Características
Se diferencia la apreciación de reputación entre el bien o servicio a adquirir. Cada bien o servicio
a intercambiar es un tipo de contrato diferente. Cada tipo de contrato tiene su propia taxonomía
de temas a reputar (algunos de ellos compartidos entre diferentes tipos de contratos). La
reputación corresponde a un tema de un contrato específico entre dos partes. El único que reputa
es el comprador.
Existen varias métricas utilizadas para expresar un valor de reputación específico. Cada agente
puede utilizar diferentes. Se utilizan funciones de transformación de reputación para cada
métrica.
La reputación se encuentra distribuida. Cada agente mantiene un registro de sus apreciaciones
del comportamiento de los demás agentes para un contexto determinado. Para construir la
reputación de un agente se utiliza la reputación local del mismo más la brindada por un conjunto
de agentes reputadores dispuestos a compartirla.
La reputación se calcula combinando los diferentes valores de reputación en los distintos temas
que conforman un tipo de contrato.
Para el ejemplo se proponen 2 tipos de productos que se pueden adquirir: Motor y harina. La
adquisición de cada uno de ellos es un tipo de contrato diferente.
5.4.2 Taxonomía
La taxonomía de reputación a utilizar para la calificación de los tipos de contrato es la presentada
en la figura 12.
Harina
Motor
Servicio
post venta
Asistencia
técnica
Calidad
Producto
Plazo de
entrega
Atención al
cliente
Figura 12: Taxonomía de los productos
El servicio postventa
Engloba asistencia que brinda al agente comprador el vendedor relacionado con la capacitación,
guía, resolución de consultas, instalación y otras actividades.
La asistencia técnica
Víctor Daniel PODBEREZSKI
- 68 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Incluye los servicios de mantenimiento, refacción y/o configuración que da el vendedor para el
producto.
La calidad del producto
Mide las cualidades del producto y la satisfacción de los requerimientos depositados en ellos por
parte del comprador.
Plazos de entrega
Mide la conformidad en los tiempos y forma de la entrega del producto solicitado.
Atención al cliente
Mide los servicios de pre-venta que realiza el vendedor, como podría ser orientación para la
compra, información y/o muestra del producto que ayudan al comprador a tomar una decisión
con respecto la conveniencia de comprar ese producto.
Para los motores se tiene en cuenta servicio post-venta, asistencia técnica, calidad del producto,
plazo de entrega y atención al cliente. Mientras que en la harina se tienen en cuenta los siguientes
temas: calidad de producto, plazo de entrega y atención al cliente.
5.4.3 Métricas
Para la clasificación se proponen la utilización de las siguientes métricas:
Calificación de 1 a 10
Corresponde a los números enteros positivos mayores a 0 y menores o iguales a diez. Existe un
orden entre ellos que establece que cuanto más cercano es el número a diez, mayor es la
calificación de un tema.
Calificación difusa por calidad
Corresponde a 5 categorías de calificación de menor a mayor: Malo, Regular, Bueno, Muy
Bueno y Excelente.
Calificación porcentual
Corresponde a un valor real entre 0 y 1.
Calificación Booleana
Corresponde a un valor booleano: 0 negativo y 1 positivo.
5.4.4 Funciones de conversión de métricas
Para la transformación de métricas se proponen los mecanismos mostrados en la tabla 18.
Víctor Daniel PODBEREZSKI
- 69 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Calificación de 1 a Calificación
Calificación
10
difusa
por porcentual
calidad
Calificación
de 1 a 10
Si valor <= 2 => Valor / 10
Malo
si valor >2 y valor
<= 4 => Regular
Si valor > 4 y valor
<=6 => Bueno
Calificación
Booleana
Si valor < 5 => 0
Sino 1
Si valor > 6 y valor
<=8 => Muy Bueno
Sino Excelente
Calificación Si valor = Malo
difusa por => 1
Si valor = Regular
calidad
Si valor = Malo
=> 0,1
=> 3
Si valor = Regular
=> 0,3
Si valor = Bueno
=> 5
Si valor = Bueno
=> 0,5
Si valor = Muy Bueno
=> 7
Si valor = Muy
Bueno
=> 0,7
Si valor = Excelente
=> 9
Calificación Redondeo(Valor * 10)
porcentual
Si valor < 0,5 => 0
Si valor <= 0,2 =>
Malo
si valor >0,2 y valor
<= 0,4 => Regular
Si valor > 0,4 y
valor <=0,6 =>
Bueno
Sino 1
Sino Excelente
Si 0 => Malo
Si 0 => 0,1
Sino Excelente
Sino 1
Tabla 18: Funciones de conversión de métricas
Víctor Daniel PODBEREZSKI
Sino 1
Si valor =
Excelente
=> 0,9
Si valor > 0,6 y
valor <=0,8 =>
Muy Bueno
Calificación Si 0 => 1
Booleana
Sino 10
Si valor = Malo o
valor = Regular o
valor = Bueno => 0
- 70 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
5.4.5 Intercambio de reputación.
Para el escenario se determinó que el tema “plazo de entrega” será administrado localmente por
cada agente. El resto de los temas será tratado de forma descentralizada.
La administración local únicamente tendrá en cuenta la información por interacción directa entre
agentes y no será compartida ni comunicada a otro agente.
La administración descentralizada corresponde a la utilización de la información local sobre un
determinado tema y a la consulta a otros agentes conocidos sobre información de la misma
materia.
5.4.6 Simulación
Para la simulación se generó un prototipo de la arquitectura conformado por un entorno de
agentes. Cada agente será un comprador/vendedor.
El intercambio de un producto ocasiona la generación de una apreciación del comportamiento
entre las partes. El único comportamiento registrado es el del comprador.
La simulación consta de un conjunto de episodios divididos en 2 fases: interacción y recolección
de reputación. La primera fase corresponde de la transacción entre comprador y vendedor y la
segunda a la medición de la reputación de todos los agentes del ambiente para evaluar su
evolución conforme pasa el tiempo.
El resultado de la misma es la generación de una apreciación por parte del comprador acerca del
vendedor. Esta apreciación, a efectos de la simulación, será transmitida del vendedor al
comprador y representa como es que el mismo se comporta en la interacción. No obstante para
simular la apreciación subjetiva del agente las apreciaciones podrán subir o bajarse en 1 valor de
la escala de la medición de acuerdo a un parámetro del agente.
Con el propósito de simplificar del experimento se supone que todos los agentes venden los 2
tipos de productos.
Para la simulación se deben tener en cuenta diversas dimensiones que determinan el futuro de la
generación de la reputación personal de cada agente sobe otro agente reputado sobre un tipo de
contrato en particular. Entre ellas:
-
¿Qué temas prioriza un agente a la hora de seleccionar un tipo de contrato en particular?
-
¿A quién se le consulta sobre un tema en particular?
-
¿En qué métrica almacena y analiza cada tema?
-
¿Cómo se comportan los agentes ante sus obligaciones contraídas?
Definimos 4 tipos de agentes según la priorización del tema en un contrato:
Víctor Daniel PODBEREZSKI
- 71 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Agente apurado: Dentro de las consideraciones le da el 50% de importancia al plazo de
entrega. Luego al resto la misma importancia
-
Agente exigente: Dentro de las consideraciones le da el 50% de importancia la calidad
del producto. Luego al resto la misma importancia
-
Agente personal: Dentro de las consideraciones le da el 50% de importancia la atención
al cliente. Luego al resto la misma importancia
-
Agente Standard: Le asigna la misma cantidad de importancia a todos los temas.
En cuanto a la consulta de los temas se determinó que cada agente conoce 4 agentes diferentes a
los que les consulta sobre el comportamiento de los demás agentes. Cada agente es conocido por
la misma cantidad de agentes.
El cálculo de la reputación se realizará por medio de un promedio ponderado entre los diferentes
temas que lo conforman.
Definimos 4 tipos de agentes con respecto a cómo analizan y almacenan la reputación:
-
Agentes porcentuales: Almacenan y analizan la reputación en forma porcentual.
-
Agentes difusos: Almacenan y analizan la reputación en forma difusa
-
Agentes de 1 a 10: Almacenan y analizan la reputación en calificación de 1 a 10.
-
Agentes booleanos: Almacenan y analizan la reputación en forma booleana.
Con respecto al comportamiento de los agentes ante sus contratos estarán medidos por la métrica
de 1 a 10. La conversión a la métrica correspondiente la realizará el agente comprador. Se
definen 4 tipos de agentes:
-
Agentes detallistas: Prefieren brindar calidad del producto ante todo. Dejando en segundo
plano los demás temas.
-
Agentes expeditivos: Para ellos lo más importante es el plazo de entrega. Dejando en
segundo plano los demás temas.
-
Agentes parejos: A todos los temas le dan la misma importancia
-
Agentes amables: Para ellos lo más importantes es la atención al cliente. Dejando en
segundo plano los demás temas.
Una subcategoría dentro del comportamiento los divide en:
-
Agentes de primer nivel: El tema principal tiene una distribución de probabilidad de
resultado según la tabla 19.A. Las demás según la tabla 19.B. Si es un agente parejo tiene
todos los temas según la tabla 19.B.
Víctor Daniel PODBEREZSKI
- 72 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Agentes de segundo nivel: El tema principal tiene una distribución de probabilidad de
resultado según la tabla 19.B. Las demás según la tabla 19.C Si es un agente parejo tiene
todos los temas según la tabla 19.C.
-
Agentes de mala calidad: El tema principal tiene una distribución de probabilidad de
resultado según la tabla 19.C. Las demás según la tabla 19.D Si es un agente parejo tiene
todos los temas según la tabla 19.D.
A
Valor
1
2
3
4
5
6
7
8
9
10
Total
B
%
C
0
0,025
0,025
0,05
0,05
0,1
0,2
0,25
0,2
0,1
Valor
1
2
3
4
5
6
7
8
9
10
%
0,025
0,05
0,05
0,1
0,1
0,25
0,25
0,1
0,05
0,025
Valor
1
2
3
4
5
6
7
8
9
10
1
Total
1
Total
D
%
0
0,05
0,1
0,15
0,2
0,2
0,15
0,1
0,05
0
Valor
1
2
3
4
5
6
7
8
9
10
%
0,1
0,2
0,2
0,15
0,1
0,05
0,05
0,05
0,05
0,05
1
Total
1
Tabla 19: Distribución de probabilidades.
Con el objetivo de simular el comportamiento del sistema se realiza la interacción entre todos los
agentes compradores/vendedores y se analiza la evolución de la elección del vendedor
seleccionado y sus características a través del tiempo. Para esto se utiliza la arquitectura de
reputación presentada con las características destacadas en las secciones anteriores.
Se proponen la existencia de 16 agentes en el sistema compradores/vendedores. De los cuales:
Según el comportamiento en cuenta a la medición de reputación
-
1 Agente es apurado y porcentual
-
1 Agente es apurado y difuso
-
1 Agente es apurado y 1 a 10
-
1 Agente es apurado y Booleano
-
1 Agente es exigente y porcentual
-
1 Agente es exigente y difuso
-
1 Agente es exigente y 1 a 10
-
1 Agente es exigente y Booleano
-
1 Agente es personal y porcentual
Víctor Daniel PODBEREZSKI
- 73 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
1 Agente es personal y difuso
-
1 Agente es personal y 1 a 10
-
1 Agente es personal y Booleano
-
1 Agente es Standard y porcentual
-
1 Agente es Standard y difuso
-
1 Agente es Standard y 1 a 10
-
1 Agente es Standard y Booleano
Según el cumplimiento de sus obligaciones
-
1 Agente es detallista de primer nivel
-
1 Agente es expeditivo de primer nivel
-
2 Agentes son parejos de primer nivel
-
1 Agente es amable de primer nivel
-
2 Agentes son detallistas de segundo nivel
-
2 Agentes son expeditivos de segundo nivel
-
1 Agente es parejo de segundo
-
1 Agente es amable de segundo
-
1 Agente es detallista de mala calidad
-
1 Agente es expeditivo de mala calidad
-
1 Agente es parejo de mala calidad
-
2 Agentes son amables de mala calidad
5.4.7 Resultados experimentales
Luego de la simulación del caso explicado se pudieron observar varios comportamientos que
comprueban el aprendizaje de los agentes que a medida que interactúan, llegan a realizar
selecciones más afines a sus necesidades.
Dependiendo de la métrica de cada agente la selección de un agente fue más o menos acertada.
Los agentes booleanos y difusos seleccionaron agentes de primer y segundo nivel en su mayoría.
Mientras que los porcentuales y de 1 a 10 de primer nivel.
Víctor Daniel PODBEREZSKI
- 74 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Se consideró que a igual valor de reputación entre dos agentes o más todos los mismos son
seleccionables. Teniendo en cuenta lo último y para los dos tipos de contrato, luego de 12
iteraciones:
- El 100% de los agentes porcentuales seleccionaron agentes de primer nivel.
- El 50% de los agentes con métrica de 1 a 10 seleccionaron agentes de primer Nivel
- El 50% de los agentes con métrica de 1 a 10 seleccionaron agentes de primer y segundo Nivel
indistintamente.
- El 50% de los agentes con métrica difusa seleccionaron agentes de primer Nivel.
- 12,5% de los agentes con métrica difusa seleccionaron agentes de segundo Nivel.
- 37,5% de los agentes con métrica difusa seleccionaron agentes de primer, segundo Nivel y
mala calidad indistintamente.
- El 25% de los agentes con métrica de booleana seleccionaron agentes de primer y segundo
Nivel indistintamente.
- 75% de los agentes con métrica booleana seleccionaron agentes de primer, segundo Nivel y
mala calidad indistintamente.
Víctor Daniel PODBEREZSKI
- 75 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
1 a 10
Porcentual
Primer Nivel
Primer Nivel
Difuso
Primer y Segundo Nivel
Booleano
Primer Nivel
Segundo Nivel
Primer y Segundo Nivel
1er, 2do y Mala Calidad
1er, 2do y Mala Calidad
Figura 13: Resultados experimentales según tipo de métrica utilizada.
Teniendo en cuenta la diferencia entre tipos de contrato, se puede observar que el tipo de
Contrato Harina, que tiene menos temas que lo conforman tuvo más acertado la selección a la
hora de elegir un agente.
- El 75% de los agentes con métrica 1 a 10 seleccionaron para un tipo de contrato de Harina
agentes de primer nivel.
- El 25% de los agentes con métrica 1 a 10 seleccionaron para un tipo de contrato de Harina
agentes de primer o segundo nivel indistintamente.
- El 50% de los agentes con métrica difusa seleccionaron agentes de primer Nivel.
Víctor Daniel PODBEREZSKI
- 76 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
- 25% de los agentes con métrica difusa seleccionaron agentes de segundo Nivel.
- 25% de los agentes con métrica difusa seleccionaron agentes de primer, segundo Nivel y mala
calidad indistintamente.
- Fue indistinto para los agentes con métrica booleana la precisión para selección de agentes
según el tipo de contrato.
Teniendo en cuenta las preferencias de comportamiento de cada agente se pudo observar que:
-
Los agentes Exigentes seleccionaron en un 50% a agentes Detallistas de primer nivel. Del
50% restante seleccionaron agentes de primer nivel con otras características la mitad de
las veces.
-
Los agentes personales seleccionaron en un 37,5% a agentes Amables de primer nivel.
-
Los agentes Standard, seleccionaron indistintamente los agentes, sin tener en cuenta la
característica en particular de los agentes seleccionados.
-
Los agentes apurados no seleccionaron agentes Expeditivos. Esto se puede analizar
teniendo en cuenta que las iteraciones realizadas no alcanzaron para diferenciar aquellos
agentes expeditivos del resto. El tema Entrega era el único que no se consultaba al resto
de los agentes.
Los agentes booleanos no lograron tener capacidad suficiente para seleccionar y reputar agentes.
Esto debido a la pobreza de la métrica utilizada. El intercambio de información booleana a otros
agentes perjudicó al resto de los agentes para la correcta calificación.
5.5 Prototipo
Para la realización de la experimentación se generó un prototipo de la arquitectura utilizando el
lenguaje de programación de agentes Jade. Para la generación de la ontología se utilizó el
programa Protege y fue exportado para utilizar en Jade utilizando la herramienta Ontology Bean
Generador. Para la comunicación y generación de consultas se utilizo el lenguaje de contenido
SL.
Las funcionalidades de la arquitectura fueron modelados, según el paradigma de Jade, por
comportamientos (Behaviours).
Se utilizó la base de datos MySQL para almacenar los conocimientos.
Se utilizó Intellij IDEA como IDE de desarrollo.
Víctor Daniel PODBEREZSKI
- 77 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capítulo 6
Conclusiones y futuras líneas de investigación
6.1 Conclusiones
La arquitectura de reputación propuesta se adecuó a las simulaciones ejercitadas. En los dos
escenarios estudiados, en la sección anterior, se comprobó que a medida que los agentes de
reputación interactúan entre sí van progresivamente seleccionando agentes más competentes o
que se adecuan más a sus necesidades. Como ejemplos podemos citar la evolución de la
reputación global de cada agente en el sitio de subastas o la selección 100% efectiva de agentes
con métrica porcentual de agentes de primer nivel en la cadena de suministros.
Estos dos últimos ejemplos corresponden a situaciones dispares entre si. En el primer caso la
obtención de reputación tiene como característica ser una propiedad global, no contextualizada y
carente de taxonomías que la compongan. La única forma de obtener reputación es mediante la
interacción directa y finalmente medida por todos los agentes mediante una única métrica. Por
otro lado, el segundo ejemplo corresponde a prácticamente una situación opuesta. La reputación
corresponde a una propiedad privada administrada localmente por cada agente. Existen
diferentes contextos de medición de reputación y los mismos tienen una clasificación
taxonómica. Por último, maneja la existencia de diversas métricas y su transformación que
permite la comunicación entre diferentes agentes con métricas diferentes. Las pruebas realizadas
sobre los mismos, permitieron comprobar la adaptabilidad de la arquitectura a dominios
heterogéneos, asegurando su desarrollo para soportar diversos dominios
La arquitectura presentada puede ser utilizada, por lo tanto, en diversos escenarios y su
implementación puede ser adaptada para trabajar con múltiples contextos, temas, métricas y
métodos de cálculo de reputación. Además de ser utilizable en ambientes de administración de
reputación centralizada como también descentralizada.
La arquitectura, junto a la ontología y los protocolos de comunicación contienen todo lo
necesario para su implementación en casos reales y permiten modelizar una amplia cantidad de
mecanismos de generación y evaluación de reputación que fueron analizados.
Se realizó una implementación de prueba del framework que cumple con las especificaciones
indicadas de la arquitectura. Entre estas la posibilidad de trabajar con múltiples contextos, temas,
métricas y métodos de cálculo de reputación. Además de discriminar diferentes tipos de
reputación recabadas según el origen y su administración tanto centralizada o descentralizada.
Víctor Daniel PODBEREZSKI
- 78 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Además el framework no está atado a ningún lenguaje de programación y puede ser portado a
diferentes lenguajes de programación de agentes, como por ejemplo Jack [Jack 2007] y SDML
[Moss et al 1998]
6.1 Futuras líneas de investigación.
Como trabajo futuro para la explotación de la arquitectura soportada por el framework propuesto
se aprecia la importancia de elaborar una metodología que facilite el análisis, desarrollo e
implementación para poder modelizar una situación de administración de reputación.
En otro orden también se considera la evolución y adecuación de la ontología propuesta en el
presente trabajo a fin de asegurar la interoperabilidad semántica, con futuras ontologías de
diversos dominios.
Además queda abierto el análisis de diferentes escenarios en los que puede ser utilizado esta
arquitectura en el marco de la negociación entre agentes, como así también las facilidades de
simulación de situaciones en escenarios emergentes de reputación modelizados en el contexto de
vida artificial.
Víctor Daniel PODBEREZSKI
- 79 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Capítulo 7
Referencias
[Abdul-Rahman & Hailes 2000] Abdul-Rahman A. y Hailes S., 2000, Supporting trust in
virtual communities, En Proceedings of the Hawaii's International conference on Systems
Sciences, Maui Hawaii
[Bond & Gasser 1988] Bond, A. H., Gasser, L. (eds), 1988 Readings in Distributed Artificial
Intelligence. Morgan Kaufmann, San Mateo, CA.
[Botti & Giret, 2003] Vicente J. Botti Navarro, Adriana Giret Boggino, 2003, Aplicaciones
Industriales de los Sistemas Multiagente
[Carbo et al 2002] Carbo J., Molina J. y Davila J., 2002, Comparing predictions of sporas vs. a
fuzzy reputation agent systems. En 3rd International Conference on Fuzzy Sets and Fuzzy
Systems, Interlaken, páginas 147-153
[Carter et al 2002] Carter J., Bitting E. y Ghorbani A, 2002, Reputation formalization for an
information-sharing multi-agent system, Computational Intelligence, 18(2), páginas 515534
[Casare & Simão Sichman 2005] Casare Sara, Simão Sichman Jaime: Towards a functional
ontology of reputation. AAMAS 2005: 505-511
[Castelfranchi & Falcone 1998] Castelfranchi C. y Falcone R., 1998, Principles of trust for
mas: Cognitive anatomy, social importance, and quantification. En Proceedings of the
International Conference on Multi-Agent Systems (IC-MAS'98), Paris Francia, Páginas 7279
[Chang & Makatsoris 2001] Chang Yoon, Makatsoris Harris, 2001, Supply chain modeling
using simulation, En International Journal of Simulation - Systems, Science & Technology,
Vol. 2 No. 1
[Chen et al 1999] Chen Ye, Peng Yun, Finin Tim, Labrou yannis, Cost Scott, Chu BIll, Sun
Rongming y Willhelm Bob, 1999, A negotiation-based multi-agent system for supply chain
management, Workshop on supply chain management, Autonomous Agents '99, Seattle,
Wa, May 1999.
Víctor Daniel PODBEREZSKI
- 80 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[CIM1 2005] Manufactura Integrada por Computador – Cátedra Ierache, Facultad de Ingeniería,
Universidad de Buenos Aires,
[Davis & Smith, 1983] Davis, R. and Smith, R., 1983, Negotiation as a Metaphor for Distributed
Problem Solving, In: Artificial Intelligence 20, pp. 63-109.
[Dean et. Al. 2002] M. Dean, D. Connolly, F. van Harmelen, J. Hendler, I. Horrocks, D.L.
McGuinness, P.F. Patel-Schneider, L.A. Stein, OWL Web Ontology Language 1.0
Reference, W3C Working Draft, 2002. http://www.w3.org/TR/owl-ref/
[DeRemate 2005] DeRemate, 2005, http://www.deremate.com/
[ebay 2005] ebay, 2005, http://www.ebay.com/
[Esfandiari & Chandrasekharan 2001] Esfandiari B., Chandrasekharan S., 2001, On how
agents make friends: Mechanisms for trust acquisition, En Proceedings of the Fourth
Workshop on Deception, Fraud and Trust in Agent Societies, Montreal Canada, páginas
27-34
[Ferber 1999] Ferber J., 1999, MultiAgent Systems: an Introduction to Distributed Artificial
intelligence, Addison Wesley.
[FIPA CNP, 2002] FIPA Contract Net Interaction
http://www.fipa.org/specs/fipa00029/SC00029H.html
Protocol
Specification,
2002,
[FIPA00037] FIPA Communicative Act Library Specification. Foundation for Intelligent
Physical Agents, 2000. http://www.fipa.org/specs/fipa00037/
[FIPA00061] FIPA ACL Message Structure Specification. Foundation for Intelligent Physical
Agents, 2000. http://www.fipa.org/specs/fipa00061
[FIPA00027] FIPA Query Interaction Protocol Specification Foundation for Intelligent Physical
Agents, 2000. http://www.fipa.org/specs/fipa00027
[FIPA00026] FIPA Request Interaction Protocol Specification. Foundation for Intelligent
Physical Agents, 2000. http://www.fipa.org/specs/fipa00026
[Fox 1992] Fox, Mark. S., 1992, Integrated Supply Chain Management, Technical Report,
Enterprise Integration Laboratory, University of Toronto.
[Fox et. al. 2000] Fox Mark S., Barbuceanu Mihai, y Teigen Rune, 2000, Agent-Oriented
Supply-Chain Management, 2000, The International Journal of Flexible Manufacturing
Systems, 12 (2000), pages 165–188
Víctor Daniel PODBEREZSKI
- 81 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Genesereth & Ketchpel 1994] Genesereth, M. R. y Ketchpel, S. P., 1994, Software agents.
Communications of the ACM, 37(7), 48-53.
[Glickman 1999] Glickman Mark, 1999, Parameter Estimation in Large Dynamic Paired
Comparison Experiments, Universidad de Boston, USA
[Görn 2006] Görn Christoph, 2006, An
http://b4mad.net/2006/01/10/trust.html
extended
Ontology
for
Trust
Models,
[Grüninger & Fox 1995] Grüninger M, Fox M. S., 1995, Methodology for the design and
evaluation of ontologies, Workshop on Basic Ontological Issues in Knowledge Sharing,
Montreal, Canada
[Harrington 1973] Harrington J. jr., 1973, Computer Integrated Manufacturing., Pub Industrial
Press, New York.
[Huynh et al 2004a] Huynh Dong, Jennings Nicholas R., Shadbolt Nigel R., 2004, Developing
an Integrated Trust and Reputation Model for Open Multi-Agent Systems, School of
Electronics and Computer Science, University of Southampton, UK.
[Huynh et al 2004b] Huynh, T. D., Jennings, N. R. and Shadbolt, N., 2004, FIRE: an integrated
trust and reputation model for open multi-agent systems. En Proceedings of 16th European
Conference on Artificial Intelligence, pages pp. 18-22, Valencia, Spain.
[ISO/IEC 15939 2002] ISO/IEC 15939: 2002 International Standard, Software Engineering –
Software Measurement Process.
[ISO/IEC ISO14598-1 1999] ISO/IEC ISO14598-1: 1999 International Standard, Information
Technology – Software product evaluation – Part 1: General Overview.
[Jack 2007] Jack, 2007, http://www.jacksos.com/shared/home/
[Jennings et al. 1995] Jennings, N. R.; Corera, J.; y Laresgoiti, I. 1995. Developing Industrial
Multi-Agent Systems. In Proceedings of ICMAS’95 423–430.
[Jennings & Wooldridge 1998] Jennings, N. R., y Wooldridge, M. 1998. Applications of
Intelligent Agents. Agent Technology: Foundations, Applications, and Markets 3–28.
[Kalpakjian & Schmid 2002] Kalpakjian Serope, Schmid Steven R., 2002, Manufactura
ingeniería y tecnología, Pearson educación
Víctor Daniel PODBEREZSKI
- 82 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Lashkari et al 1994] Lashkari Y., Metral M., Maes P., 1994, Collaborative interface agents, En
Proceedings of the Twelfth National Conference on Artificial Intelligence, AAAI-Press
[Lau et. al., 2004] LAU Jason, Huang George Q y Mak K L, 2004, Agent-based modeling of
supply chains for distributed scheduling, IEEE Transactions on Systems, Man and
Cybernetics: Part A, Accepted for publication
[Maes 1994] Maes, P., 1994 Agents that reduce work and information overload.
Communications of the ACM, 37(7), 31-40.
[Marsh 1994] Marsh S., 1994, Formalizing Trust as a Computational Concept. Tesis Doctoral,
Departamento de matemáticas y ciencias de la computación, Universidad de Stirling
[MercadoLibre 2005] MercadoLibre, 2005, http://www.deremate.com/
[Microsoft MSDN 2005] Microsoft MSDN, 2005, http://msdn.microsoft.com/
[Moss et al 1998] Moss, S., Gaylard, H, Wallis, S. and Edmonds, B. (1998). SDML: A Multiagent Language for Organizational Modelling. Computational and Mathematical
Organization Theory, 4 (1), 43-69
[Odell 2001] Odell, James, Van Dyke Parunak, H. and Bauer, B., Representing Agent
Interaction Protocols in UML. In: Agent-Oriented Software Engineering, Ciancarini, P.
and
Wooldridge,
M.,
Eds.,
Springer,
pp.
121-140,
Berlin,
2001.
http://www.fipa.org/docs/input/f-in-00077/
[Osanna & Si 2000] Osanna P. H., Si, L: Multi-Functions Integrated Factory M.F.I.F. - a Model
of the Future Enterprise. Conference Proceedings: Internet Device Builder Conference, Sta.
Clara, Mai 2000, 6S
[Osanna et. al. 2001] Osanna P.H., Durakbasa M.N., Si L.X., 2001, Artificial Intelligence-based
Metrology and Quality Management in Intelligent Production Environment, IPMM – 2001
[Podberezski & Ierache 2006a] Podberezski Víctor Daniel, Ierache Jorge Salvador: Utilización
de Agentes y Reputación en la Administración de la Cadena de Suministros industriales.
JIISIC 2006: 217-224
[Podberezski & Ierache 2006b] Víctor Daniel Podberezski, Jorge Salvador Ierache. Ontología
de administración e intercambio de reputación. Anales del Octavo Workshop de Investigadores
en Ciencias de la Computación (WICC 2006), 2006
Víctor Daniel PODBEREZSKI
- 83 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Pujol et al 2002a] Pujol, J.M., Sangüesa, R. and Delgado J.,2002, Distributed and Adaptable
Ranking Algorithm for Reputation and Relevance Extraction, En Proceedings of the 5th
Catalan Conference on Artificial Intelligence CCIA-02, pp 205-213, Castelló de la Plana,
Spain.
[Pujol et al 2002b] Pujol J.M., Sangüesa R. y Delgado J., Extracting Reputation in Multi Agent
System by means of Social Network Topology, en Proceedings of the First International
Joint Conference on Autonomous Agents and Multi-Agent Systems AAMAS-02. Vol. 1,
pp 467-474. Bologna, Italy.
[Pujol et al 2003] Pujol Josep M., Sangüesa Ramon y Delgado Jordi, 2003, A Ranking
Algorithm based on Graph Topology to Generate Reputation or Relevance, En Web
Intelligence (Ning Zhong, Jiming Liu, and Yiyu Yao eds.), ch 18, pp 382-395, Springer
Verlag, ISBN: 3-540-44384-3.
[Pujol & Sangüesa 2001] Pujol J.M., Sangüesa R., 2001, Reputation Measures based on Social
Networks metrics for Multi Agents Systems, en Proceedings of the 4th Catalan Conference
on Artificial Intelligence CCIA-01, pp 205-213, Barcelona, Spain.
[Ramchurn et al 2004] Ramchurn Sarvapali D., HuynhDong, Jennings Nicholas R.,2004, Trust
in Multi-Agent Systems, School of Electronics and Computer Science, University of
Southampton.
[Rapetti 2002] Rapetti O, 2002, Apunte de Cátedra CIM I, 75.65 Manufactura Integrada por
Computador (CIM) -Facultad de Ingeniería - Universidad de Buenos Aires
[Rossetti & Hin-Tat Chan, 2003] Rossetti Manuel D. and Hin-Tat Chan, 2003 , A prototype
object-oriented supply Chain simulation framework, Proceedings of the 2003 Winter
Simulation Conference
[Russell & Norving 1995] Russell, S. Norving, P. 1995. Artificial Intelligente: A Modern
Approach. Prentice-Hall.
[Sabater 2003] Sabater Mir Jordi, 2003, Trust and reputation for agent societies, Tesis Doctoral,
Universidad Autónoma de Barcelona
[Sabater & Sierra 2002a] Sabater Jordi , Sierra Carles , 2002, Reputation and social network
analysis in multi-agent systems. AAMAS 2002: 475-482
Víctor Daniel PODBEREZSKI
- 84 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Sabater & Sierra, 2002b] Sabater J., Sierra C., 2002, REGRET: a reputation model for
gregarious societies. En C. Castelfranchi y L. Johnson, editors, Proceedings of the 1st
International Joint Conference on Autonomous Agents and Multi-Agent Systems, paginas
475–482.
[Schillo et al 2000] Schillo M., Funk P. y Rovatsos M., 2000, Using trust for detecting deceitful
agents in artificial societies, Applied Artificial Intelligence, Edición especial en Confianza,
engaño y fraude en sociedades de agentes
[Sen & Sajja 2002] Sen S. y Sajja N., 2002, Robustness of reputation-based trus: Booblean case.
En Proceedings of the first international joint conference on autonomous agents and
multiagent systems (AAMAS-02), Bologna Italia, Páginas 288-293
[Shen & Norrie 1999] Shen, W., y Norrie, D., 1999, Agent-Based Systems for Intelligent
Manufacturing: A State-of-the-Art Survey. Knowledge and Information Systems, an
Internatinal Journal 1(2):129–156.
[Shen et al 1998] Shen W., Xue D., y Norrie D.H., 1998, An Agent-Based Manufacturing
Enterprise Infrastructure for Distributed Integrated Intelligent Manufacturing Systems, En
Proceedings of PAAM'98, London, UK.
[Smith, R. G. 1980] Smith, R. G., 1980, The contract net protocol: High- level communication
and control in a distributed problem solver, IEEE Transactions on Computers, Vol.29
No.12, pp.1104-1113.
[Swaminathan et. al. 1998] Swaminathan Jayashankar M., Smith Stephen F. y Sadeh Norman
M., 1998, Modeling Supply Chain Dynamics: A Multiagent Approach, Decision Sciences
Volume 29 Number 3 Summer 1998
[Trust
ontology
2006]
Trust
ontology
http://www.schemaweb.info/schema/SchemaDetails.aspx?id=171
2006,
[Wagner & Guralnik, 2002] Wagner Tom y Guralnik Valerie, Software Agents for Dynamic
Supply Chain Management, 2002
[Waldner 1990] Waldner Jean-Baptiste, 1990, CIM Principles of Computer-integrated
Manufacturing, Wiley
[Wooldridge & Jennings 1995] Wooldridge, M. and Jennings, N.R., 1995. Agent Theories,
Architectures and Languages: a Survey in Eds., Intelligence Agents, Berlin: SpringerVerlag, Vol 1, Nro 22
Víctor Daniel PODBEREZSKI
- 85 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Wooldridge 2002] Wooldridge, M., 2002, An introduction to Multiagent Systems, John Wiley
& Sons Ltd.
[Yu & Singh 2000] Yu, Bin. Singh, P. 2000. A Social Mechanism of Reputation Management in
Electronic Communities. Department of Computer Science. Nort Carolina State University.
[Yu & Singh 2001a] Yu, Bin. Singh, P. 2001a. An Evidential Model of Distributed Reputation
Management. Department of Computer Science. North Carolina State University.
[Yu & Singh 2001b] Yu, Bin. Singh, P. 2001b. Detecting Deception in Reputation Management.
Department of Computer Science. North Carolina State University.
[Zacharia 1999] Zacharia G., 1999, Collaborative reputation mechanisms for online
communities, Tesis para master, Instituto de tecnología de Massachussets
[Zacharia & Maes, 2000] Zacharia G. y Maes P., 2000, Trust through reputation mechanisms.
Applied Artificial Intelligence, 14:881–907.
Víctor Daniel PODBEREZSKI
- 86 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Apéndice A
Ontologías
A.1 Definición de ontologías
En el sentido filosófico, podemos referirnos a una ontología como un sistema particular de
categorías que explican una cierta visión del mundo. Como tal, este sistema no depende de un
lenguaje particular: la ontología de Aristóteles es siempre la misma, independientemente de la
lengua usada para describirla. Por otra parte, en su uso más frecuente en la inteligencia artificial,
una ontología se refiere a una construcción de ingeniería, formado por un vocabulario específico
utilizado para describir una cierta realidad, más un juego de suposiciones explícitas otorgando el
sentido intencionado a las palabras del vocabulario. Este juego de suposiciones tiene por lo
general la forma de una teoría lógica de primer orden, donde las palabras del vocabulario
aparecen como nombres de predicados unarios o binarios, respectivamente llamados conceptos y
relaciones. En el caso más simple, una ontología describe una jerarquía de conceptos
relacionados por relaciones de categorización; en casos más sofisticados, los axiomas
convenientes son añadidos a fin de expresar otras relaciones entre conceptos y obligar su
interpretación intencionada.
Las dos definiciones de “ontología" descritas anteriormente están relacionadas la una con la otra.
A fin de solucionar el callejón sin salida terminológico tenemos que elegir a una de ellas,
inventando un nuevo nombre para la otra. Adoptaremos la lectura de la inteligencia artificial
como tal, usando el término “conceptualización” para referirnos a la lectura filosófica. Entonces
dos ontologías pueden ser diferentes en el vocabulario usado (utilización de palabras inglesas o
italianas, por ejemplo) y compartir la misma conceptualización.
Con esta aclaración terminológica, una ontología puede ser definida como una especificación de
una conceptualización [Gruber 1993]. La última concierne al modo en que un agente estructura
sus percepciones sobre el mundo, mientras que la primera da un sentido al vocabulario usado por
el agente para comunicar tales percepciones. Dos agentes pueden compartir la misma
conceptualización usando vocabularios diferentes. Por ejemplo, la conceptualización (habitual)
bajo el término Inglés “Apple” es la misma en cuanto al término italiano “mela”, y se refiere a la
naturaleza intrínseca y la estructura de todas las manzanas posibles. Los dos términos pertenecen
a dos ontologías diferentes mientras comparten la misma conceptualización. Una separación
clara entre ontología y conceptualización se hace esencial al ocuparse de las cuestiones
relacionadas con traducción, fusión e intercambio de ontologías, que en general implican
lenguajes múltiples y gran número de percepciones del mundo.
Víctor Daniel PODBEREZSKI
- 87 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Una conceptualización no está preocupada por la asignación de sentido, sólo por la estructura
formal de la realidad como es percibida y organizada por un agente, independientemente de:
- el lenguaje utilizado para describirlo;
- La ocurrencia actual de una situación específica.
Una ontología, por otra parte, es primera que todo un vocabulario. Sin embargo, una ontología
que consiste sólo en un vocabulario tendría un uso muy limitado, ya que su sentido intencionado
no sería explícito. Por lo tanto, además de la especificación de un vocabulario, una ontología
debe especificar el sentido intencionado de tal vocabulario, es decir su conceptualización
subyacente. En algunos casos, los términos usados pertenecen a un vocabulario técnico muy
específico, y convienen bien en su sentido dentro de una comunidad de agentes humanos. Las
cosas son diferentes sin embargo en caso de términos ambiguos que pertenecen a la lengua
natural diaria, o cuando los agentes automatizados tienen que comunicarse.
Conceptualización
Lenguaje L
Modelos del lenguaje L
Modelos intencionados
Ontología
Figura A.1: Poder de expresividad de una ontología
Más gráficamente (Figura A.1), una ontología se compone de un lenguaje y un set de axiomas
lógicos designados con el objetivo de explicar el sentido intencionado del vocabulario que
contiene. Estos componentes de la ontología intentan describir una conceptualización.
Víctor Daniel PODBEREZSKI
- 88 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Mediante el lenguaje dado se puede representar un conjunto de situación (modelos) de la
realidad. Algunos de estos modelos carecen de sentido dentro de la conceptualización. Es por eso
que los axiomas entran en escena limitando ciertas expresiones que no tienen sentido en la
conceptualización. Esto limita el conjunto de modelos posibles de representación.
El set de axiomas debe ser designado lo mejor posible de tal forma que los modelos posibles de
representación de realidad se ajusten a los modelos de la conceptualización. Al conjunto de
modelos de la conceptualización, Guarino [Guarino 1998] lo designa como Intended models
(modelos intencionados o esperables)
En palabras más sencillas, los modelos del lenguaje L determinan lo que uno puede decir, los
modelos intencionados, de lo que uno desea hablar y en la ontología lo que uno realmente dice.
(I)
Ontología
buena
(II)
Ontología
mala
(III)
Ontología
muy mala
Figura A.2: calificación de una ontología
La selección de axiomas correctos es fundamental en el éxito de una ontología. Se intenta lograr
que los axiomas permitan acotar los modelos de representación de la realidad para que incluyan
íntegramente los modelos de la conceptualización y limitar al máximo posible la representación
de situaciones imposibles (Figura A.2.I).
Víctor Daniel PODBEREZSKI
- 89 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Una mala ontología dejará expresar un gran conjunto de situaciones que no se corresponden con
la realidad (Figura A.2.II). Aun así contiene en su poder de expresión todas las situaciones
posibles de la realidad, por lo tanto es posible, pero con cierto cuidado su uso.
Finalmente una muy mala ontología (Figura A.2.III) no podrá expresar situaciones reales. Sino,
que mediante su uso se informará de situaciones incoherentes y carentes de realidad. En ese caso
la ontología es inadecuada y su uso inútil para informar sobre una situación real en una
conceptualización.
A.2 Tipos de ontologías
Las ontologías se pueden clasificar de diversas maneras. Algunas de las clasificaciones realizan
una división según:
-
El grado de dependencia a una tarea o dominio dado
-
El nivel de detalle de sus axiomas
-
La naturaleza de su dominio (“meta-level” o “object-level”)
A.2.1 El grado de dependencia a una tarea o dominio
Dentro de la primera clasificación varios autores proponen su visión para la división de las
ontologías. Por ejemplo [Steve et al. 1998] distinguen tres tipos fundamentales de ontologías:
•
Ontologías de un dominio (domain ontology), en las que se representa el conocimiento
especializado pertinente de un dominio o subdominio, como la medicina, las aplicaciones
militares, la cardiología u otro.
•
Ontologías genéricas, en las que se representan conceptos generales y fundacionales del
conocimiento como las estructuras parte/todo, la cuantificación, los procesos o los tipos
de objetos.
•
Ontologías representacionales, en las que se especifican las conceptualizaciones que
subyacen a los formalismos de representación del conocimiento, por lo que también se
denominan meta-ontologías (meta-level o top-level ontologies).
Por otra parte [Guarino 1998] realiza una clasificación similar pero con ciertas diferencias. En
primer lugar añade las ontologías que han sido creadas para una actividad o tarea específica
(denominadas task ontologies), como por ejemplo la venta de productos o el diagnóstico de una
enfermedad y las ontologías creadas para una aplicación específica. Ademas también considera
Víctor Daniel PODBEREZSKI
- 90 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
que las denominadas "top-level ontologies" son genéricas, y por tanto, independientes de un
dominio o tarea específicos, por lo tanto las unifica con las ontologías genéricas.
Figura A.3: Clasificación de ontologías según Guarino
Otra clasificación es la propuesta por [Van Heist et. Al. 1996]:
-
Ontologías terminológicas: Especifican los términos que son usados para representar el
conocimiento en el universo del discurso. Suelen ser usadas para unificar vocabulario en un
campo determinado.
-
Ontologías de información: Especifican la estructura de almacenamiento de bases de datos.
Ofrecen un marco para el almacenamiento estandarizado de información.
-
Ontologías de modelado de conocimiento: Especifican conceptualizaciones del
conocimiento. Contienen una rica estructura interna y suelen estar ajustadas al uso particular
del conocimiento que describen.
A.2.2 El nivel de detalle de sus axiomas
Otra dimensión importante de clasificación de las ontologías es por su nivel de detalle, en otras
palabras el nivel de caracterización del modelo intencionado. Una ontología de grano fino muy
rica en axiomas, escrita en un lenguaje muy expresivo como la lógica de primer orden completa,
se acerca más a especificar el vocabulario intencionado (y por lo tanto puede ser utilizada para
establecer expresiones más cercanas a la realidad y ser compartida dando mayor precisión en el
intercambio de conocimientos o en la base de conocimiento que utiliza ese vocabulario), pero es
usualmente difícil de desarrollar y realizar razonamientos sobre él. Una ontología Gruesa, por el
otro lado, puede consistir en un set de axiomas mínimos, escritos en un lenguaje de mínima
Víctor Daniel PODBEREZSKI
- 91 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
expresividad, para soportar un set limitado de servicios específicos, intencionado a ser
compartido por usuarios que ya acordaron en la conceptualización subyacente. Se puede
distinguir entre Ontologías de regencia detalladas y ontologías de intercambio gruesas o no muy
detalladas. También se las puede definir como ontologías fuera de línea y ontologías en línea.
Las primeras son sólo accedidas de tiempo en tiempo por propósitos de referencia, mientras que
las últimas aportan y soportan funcionalidades centrales del sistema.
A.2.3 Meta-Level Ontologies
Una adicional clase de ontología es constituida por lo que ha sido llamado ontologías de
representación [Van Heijst et al. 1997]. Estas son realmente ontologías de meta-level, que
describen una clasificación de las primitivas usadas por un lenguaje de representación de
conocimiento (como conceptos, atributos y relaciones). Un ejemplo de una ontología de
representación es la ontología OKBC, utilizada para proveer traducciones entre diferentes
lenguajes de representación de conocimiento, Un ejemplo adicional es la ontología de primitivas
de meta nivel presentadas en in [Guarino et al. 94], que difieren de las de OKBC en asumir un
acuerdo ontológico no neutral para la representación de primitivas.
A.3 El problema de integración de ontologías
La integración de información es un área de aplicación de gran importancia para las ontologías.
Incluso si dos agentes adoptan el mismo vocabulario, no hay garantía de que acuerden en cierta
información a menos que se refieran a la misma conceptualización. Asumiendo que cada agente
tiene su propia conceptualizacion, una condición necesaria para lograr un acuerdo posible es que
ciertas partes de los modelos intencionados de ambas conceptualizaciones se solapen (es decir se
manejen ciertos conceptos en común).
Víctor Daniel PODBEREZSKI
- 92 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura A.4: Dos agentes A y B usando el mismo lenguaje L se pueden comunicar unicamente si su set de modelo
intencionados IA(L) y IB(L) asociados a su conceptualizacion se solapan. [Guarino 98]
Suponiendo ahora que estos dos modelos intencionados son aproximados por dos ontologías
diferentes, puede darse el caso donde las ontologías se solapen (por ejemplo tienen algunos
modelos en común) mientras que su modelos intencionados no (figura A.5). Esto significa que el
acercamiento de abajo hacia arriba a la integración de sistemas basados en la integración de
ontologías locales múltiples puede no funcionar, especialmente si las ontologías locales están
únicamente enfocadas en las relaciones conceptuales relevantes a un contexto especifico, y por lo
tanto son débiles y aproximaciones ad hoc del modelo de supuestos. Por lo tanto aparenta ser
más conveniente acordar en una única ontología top-level que concertar en acuerdos basados en
la intersección de diferentes ontologías.
Figura A.5: El set de modelos de dos diferentes axiomatizaciones, correspondientes a ontologías diferentes, pueden
intersectarse mientras que el modelo intencionados no. [Guarino 98]
Al unificar dos o más ontologías que tienen diferentes conceptualizaciones es altamente probable
que surjan problemas con sus vocabularios. Es probable que conceptos similares en cuanto a
significado, pero no idénticos, se representen en cada una de ellas. Por ejemplo, el concepto
representado por “Trabajador” en una conceptualización puede corresponder a un trabajador
cualificado, mientras que otra conceptualización puede usar “Trabajador” para cualquier
trabajador, sea o no cualificado. Ambos conceptos están muy vinculados, pero no son
equivalentes ni deberían mezclarse. Al realizar la integración debería especificarse que el primer
concepto corresponde a una especialización del segundo.
Otro problema, más relacionado con el lenguaje de la ontología es el causado por conceptos
sinónimos y homónimos. Los sinónimos ocurren cuando dos ontologías usan distintos nombres
para referirse al mismo concepto. Por ejemplo, una ontología puede usar Trabajador para el
mismo concepto que otra usa Empleado. En ese caso, se debería especificar a ambos como
idénticos. Los homónimos surgen cuando se usa el mismo nombre para representar conceptos
distintos. Por ejemplo, en una aplicación de una compañía de seguros, Conductor representa a
Víctor Daniel PODBEREZSKI
- 93 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
una persona que tiene contratada una póliza particular con la compañía; mientras que, en una
aplicación de una compañía de taxis, Conductor representa a un trabajador que conduce un taxi
de la compañía. Como es de suponer, si se intentara integrar automáticamente ambas ontologías
basándose en que ambas usan el mismo término (Conductor) para significar lo mismo, se
produciría un error conceptual muy grosero.
A.4 Áreas de Aplicación de las Ontologías
A continuación se citan algunas de las áreas en las que se usan las ontologías según [Martín
2004]:
A.4.1 Ingeniería del Conocimiento.
Dentro del modelado conceptual, donde se crea un glosario de la terminología del dominio de la
aplicación (los conceptos), se definen relaciones entre dichos términos y restricciones en su uso.
Este modelo conceptual explícito es la ontología. Usando la ontología definida como un conjunto
de esquemas o contenedores de conocimiento, se genera la base de conocimiento con instancias
del dominio bajo la forma de reglas, hechos, eventos y restricciones.
A.4.2 Procesamiento de lenguaje natural.
En el área de procesamiento de lenguaje natural, una ontología puede mantener la definición de
elementos gramaticales del lenguaje y la relación entre ellos, permitiendo por ejemplo el análisis
sintáctico de un texto.
A.4.3 Interoperabilidad entre sistemas de información heterogéneos.
En la interoperabilidad de sistemas de información, las ontologías se presentan como una
importante solución para lograr una integración inteligente, en particular en el área de bases de
datos, una ontología puede ser un elemento clave asociado a un mediador (puente), que integra
datos provenientes de fuentes heterogéneas
Con una ontología terminológica, se pueden organizar los términos que son usados en
interacciones entre sistemas heterogéneos, de manera de reconocer cuando una aplicación está
usando un término que es más general o más específico que otro que está en uso por otra
aplicación.
Si la ontología es formal, se puede contar con una definición más completa de cómo se relaciona
un término de un origen con el de otro, y eventualmente usar axiomas definidos que los vinculen
por igualdad o que expresen un término exactamente en función del otro, lo que permitiría
establecer correspondencias seguras y automáticas entre ellos
Víctor Daniel PODBEREZSKI
- 94 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
A.4.4 Búsqueda semántica en sitios Web.
Usando ontologías asociadas a los motores de búsqueda se puede reemplazar la búsqueda
tradicional basada en palabras claves, por una búsqueda semántica, encontrando páginas cuyo
contenido difiere sintácticamente, pero semánticamente son similares. De esta forma las
consultas no serán procesadas a un nivel terminológico, sino conceptual, con los beneficios que
eso supone en el grado de acierto de las respuestas retornadas.
A.4.5 Modelado de empresas.
En el área de modelado de empresas, las ontologías desempeñan entre otros, el rol de mantener
una memoria organizacional colectiva que permita a los distintos niveles de la empresa
interoperar con un lenguaje común y con reglas únicas.
Las Ontologías TOVE (Toronto Virtual Enterprise) desarrolladas en la universidad de Toronto y
la Enterprise Ontology desarrollada en la Universidad de Edimburgo, son ejemplos de este tipo
de ontologías.
A.4.6 Aplicaciones en la Web Semántica.
Las ontologías se volverán un elemento clave en la Web Semántica, ya que permitirán explicitar
la semántica de los contenidos dispersos en la web. Es decir, las ontologías proveen un
vocabulario de marcas consensuado y con un significado bien definido, permitiendo su
procesamiento automático y la inferencia de nuevos conocimientos
A.5 Componentes de una ontologia
Según Gruber [Gruber 1995], las ontologías se componen de:
-
Conceptos: son las ideas básicas que se intentan formalizar. Los conceptos pueden ser clases
de objetos, métodos, planes, estrategias, procesos de razonamiento, etc.
-
Relaciones: representan la interacción y enlace entre los conceptos de un dominio. Suelen
formar la taxonomía del dominio. Por ejemplo: subclase-de, parte-de, parte-exhaustiva-de,
conectado-a, etc.
-
Funciones: son un tipo concreto de relación donde se identifica un elemento mediante el
cálculo de una función que considera varios elementos de la ontología. Por ejemplo, pueden
aparecer funciones como: asignar-fecha, categorizar-clase, etc.
-
Instancias: se utilizan para representar objetos determinados de un concepto.
Víctor Daniel PODBEREZSKI
- 95 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Reglas de restricción o axiomas: son teoremas que se declaran sobre relaciones que deben
cumplir los elementos de la ontología. Por ejemplo: "Si A y B son de la clase C, entonces A
no es subclase de B", "Para todo A que cumpla la condición B1, A es C", etc. Los axiomas,
junto con la herencia de conceptos, permiten inferir conocimiento que no esté indicado
explícitamente en la taxonomía de conceptos.
De estos conceptos se pueden desprender otros:
-
Clase: Es un objeto que define una categoría. Describe conceptos en el dominio del discurso.
-
Subclase: Es en sí misma una clase, pero que es hija de alguna otra clase.
-
Clase jerárquica: La compuesta por una colección de clases conectadas por relaciones "es un
tipo de" (class hierarchy).
Asimismo algunos lenguajes para definición de ontologías agregan:
-
Roles o Propiedades (slots): Propiedades de cada concepto que describen varias
características y atributos del concepto. Ayudan a definir las características de las clases.
-
Facetas: Se utilizan para definir qué tipo de valor puede contener un slot particular, valores
permitidos, número de valores, etc. También se denominan restricciones de roles.
-
Valor: Describe una propiedad que se aplica a alguna clase o instancia.
-
Tipo: Define el tipo de valor (como cadena de caracteres, número, booleano, etc.)
-
Cardinalidad: Define cuántos valores puede tener un slot individual (máximo y mínimo).
-
Herencia (inherence): Es el proceso por el cual las subclases e instancias de alguna clase
heredan propiedades y valores definidos más arriba en la jerarquía.
-
Variable: Espacio vacío que puede llenarse preguntando a clases e instancias. Cada variable
comienza con un signo de interrogación.
A.6 Lenguajes para la representación de ontologías
Existen varios lenguajes con los que se puede representar una ontología. Los mismos
comenzaron a surgir a comienzos de 1990 y se basan principalmente en lógicas de primer orden,
en marcos (frames) combinados con lógicas de primer orden y lógicas descriptivas. De entro los
principales lenguajes de ontologías se pueden destacar los siguientes:
Víctor Daniel PODBEREZSKI
- 96 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
A.6.1 DAML y OIL:
Este lenguaje nació fruto de la cooperación entre OIL y DARPA y unifica los lenguajes DAML
(DARPA's Agent Markup Language) y OIL (Ontology Inference Layer). Se basa en estándares
del W3C. El lenguaje DAML se desarrolló como una extensión del lenguaje XML y de Resource
Description Framework (RDF) y para extender el nivel de expresividad de RDFS. DAML- OIL
hereda muchas de las características de OIL, pero se aleja del modelo basado en clases (frames)
y potencia la lógica descriptiva. Es más potente que RDFS para expresar ontologías. En la última
revisión del lenguaje [DAML+OIL] ofrece un rico conjunto de elementos con los cuales se
pueden crear ontologías y marcar la información para que sea legible y comprensible por una
máquina. También puede funcionar como formato de intercambio. Sin embargo, este lenguaje
presenta algunas carencias debido a su complejidad conceptual y de uso, complejidad que se
intentó solventar con el desarrollo de OWL. No obstante, se desarrollaron muchas aplicaciones
que utilizan DAML-OIL.
A.6.2 FLogic:
Es el acrónimo de Frame Logia. Combina un lenguaje basado en marcos y calculo de predicados
de primer orden. Contiene características de lenguajes orientados a objetos tales como herencia,
polimorfismo y encapsulación. Permite representar conceptos, taxonomías de conceptos,
relaciones binarias, funciones, axiomas y reglas deductivas. Provee un mecanismo de inferencia
(Ontobroker) que puede ser usado para verificación de restricciones y deducción de información
nueva. [Kifer et. Al 1995]
Al implementar una ontología es importante decidir primero las necesidades en términos de
expresividad y servicios de inferencia, porque no todos los lenguajes permiten representar los
mismos componentes de la misma forma. La representación y razonamiento con información
básica, como conceptos, taxonomías, y relaciones binarias, no siempre es suficiente si se quiere
crear una ontología pesada y hacer razonamientos complejos.
A.6.3 KIF:
Sus siglas significan “Knowledge Interchange Format” [KIF]. Es un lenguaje, para representar
ontologías, basado en la lógica de primer orden. KIF está basado en la lógica de predicados con
extensiones para definir términos, metaconocimiento, conjuntos, razonamientos no monotónicos,
etc; y pretende ser un lenguaje capaz de representar la mayoría de los conceptos y distinciones
actuales de los lenguajes más recientes de representación del conocimiento. Se trata de un
lenguaje diseñado para intercambiar conocimiento entre sistemas de computación distintos y
diferentes lenguas; y no para la interacción entre seres humanos. Permite representar conceptos,
taxonomías de conceptos, relaciones n-arias, funciones, axiomas, instancias y procedimientos. El
lenguaje en sí, no provee soporte para razonamiento automático. [Genesereth & Fikes 1992]
Víctor Daniel PODBEREZSKI
- 97 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
A.6.4 Loom:
Es un lenguaje de programación de alto nivel y un ambiente pensando para utilizarse en la
construcción de sistemas expertos y otros tipos de programas de aplicaciones inteligentes. Está
basado en lógica descriptiva, logrando una estrecha integración entre los paradigmas basados en
reglas y en marcos. Inicialmente no fue pensado para implementación de ontologías. Contiene un
lenguaje de descripción para modelar objetos y relaciones y un lenguaje de “afirmaciones” para
especificar restricciones en conceptos y relaciones y para afirmar hechos sobre individuos.
Provee una clasificación automática de conceptos (mediante un motor de inferencias). Puede
representar conceptos, taxonomías de conceptos, relaciones n-arias, funciones, axiomas, y reglas
de producción. [MacGregor 1992]
A.6.5 OCML:
Sus siglas significan Operacional Conceptual Modeling Language y fue desarrollado en el
contexto de un proyecto llamado VITAL. Es un lenguaje basado en marcos que provee
mecanismos para expresar elementos como relaciones, funciones, reglas (con encadenamiento
para adelante y para atrás), clases e instancias. Fue construido para desarrollar ontologías
ejecutables y modelos en métodos de resolución de problemas. Implementa una interfase general
como mecanismo para afirmar hechos y para examinar el contenido del modelo. Contiene
mecanismos lógicos para lograr razonamientos eficientes. [Motta 1999]
A.6.6 OIL:
Sus siglas significan “Ontology Inference Layer”. Este lenguaje, derivado en parte de SHOE, fue
impulsado por el proyecto de la Unión Europea “On-To-Knoledge”. Utiliza la sintaxis del
lenguaje XML y está definido como una extensión de RDFS. Se basa tanto en la lógica
descriptiva (declaración de axiomas) y en los sistemas basados en frames (taxonomías de clases
y atributos). OIL posee varias capas de sub-lenguajes, entre ellas destaca la capa base que es
RDFS, a la que cada una de las capas subsiguientes añade alguna funcionalidad y mayor
complejidad. La principal carencia de este lenguaje es la falta de expresividad para declarar
axiomas.
A.6.7 OWL:
Sus siglas significan “Web Ontology Language” (Lenguaje de Ontologías para la Web)
[OWL][Dean et. Al 2002]. Consiste en un lenguaje de etiquetado semántico para publicar y
compartir ontologías en la Web. Se trata de una recomendación del W3C, y puede usarse para
representar ontologías de forma explícita, es decir, permite definir el significado de términos en
vocabularios y las relaciones entre aquellos términos (ontologías). En realidad, OWL es una
extensión del lenguaje RDF y emplea las tripletas de RDF, aunque es un lenguaje con más poder
expresivo que éste. Se trata de un lenguaje diseñado para usarse cuando la información contenida
Víctor Daniel PODBEREZSKI
- 98 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
en los documentos necesita ser procesada por programas o aplicaciones, en oposición a
situaciones donde el contenido solamente necesita ser presentado a los seres humanos. OWL
surge como una revisión al lenguaje DAML-OIL y es mucho más potente que éste. Al igual que
OIL, OWL se estructura en capas que difieren en la complejidad y puede ser adaptado a las
necesidades de cada usuario, al nivel de expresividad que se precise y a los distintos tipos de
aplicaciones existentes (motores de búsqueda, agentes, etc.).
A.6.8 SHOE:
Sus siglas significan “Simple HTML Ontology Extensions” [Luke & Heflin 2000]. Fue el primer
lenguaje de etiquetado para diseñar ontologías en la Web. Las ontologías y las etiquetas se
incrustaban en archivos HTML. Este lenguaje permite definir clases y reglas de inferencia, pero
no negaciones o disyunciones. A su alrededor se desarrollaron muchos editores, buscadores,
APIS, etc; pero este proyecto fue abandonado a medida que se desarrollaron OIL y DAM.
A.6.9 SL:
SL (Semantic Language) [FIPA00008] es un lenguaje general definido por la FIPA para facilitar
la comunicación entre agentes. Su sintaxis es similar a la del LISP Existen tres subconjuntos del
lenguaje, el más simple es el llamado SL0 (Minimal Subset), SL1 (Propositional Form) y SL2
(Decidability Restrictions. SL0 permite la representación de acciones, la determinación de un
resultado de un término que representa un cálculo, la finalización de una acción y proposiciones
binarias simples. SL1 agrega la posibilidad de representar expresiones proposicionales.
Finalmente SL2 permite predicados de primer orden y lógica modal.
A.7 Herramientas para la creación de ontologías
En los últimos años se desarrollaron entornos de desarrollo, con el objetivo de integrar
ontologías a sistemas de información existentes. Por lo general son extensibles, basados en
arquitecturas de componentes y lo más importante: por lo general son independientes del
lenguaje de implementación de la ontología. Entre los más populares pueden citarse los
siguientes:
A.7.1 Protégé 2000
Protégé-2000 fue desarrollado por el Stanford Medical Informatics (SMI) de la universidad de
Stanford. Es un proyecto Java de fuente libre Java que provee una arquitectura extensible para la
creación de herramientas de bases de conocimiento. Es una herramienta porque permite al
usuario construir el dominio de una ontología, configurar formularios para relevamiento de datos
e ingresar el dominio de conocimiento. Es una plataforma que puede ser extendida con gráficos,
diagramas, componentes animados para acceder a aplicaciones embebidas en sistemas de bases
de conocimientos. Es también una librería que otras aplicaciones pueden acceder [Protégé 2000].
Víctor Daniel PODBEREZSKI
- 99 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
A.7.2 WebOde
WebOde es el sucesor de ODE (Ontology Design Environment) y fue desarrollada en el
Laboratorio de Inteligencia Artificial de la Universidad Técnica de Madrid (UPM). No es usada
como aplicación Stand-Alone sino a través de la web. El corazón de este entorno es el servicio de
acceso a ontologías, que es usado por todos los servicios y aplicaciones que se agregan al
servidor. Los servicios que presta son edición de ontologías, importación/exportación, edición de
axiomas, documentación evaluación y combinación de ontologías [WebOde].
A.7.3 KAON
KAON (Karlsruhe Ontology) es un entorno flexible y extensible en la misma medida que los
anteriores. KAON también es un proyecto JAVA de fuente libre con infraestructura para editar y
mantener ontologías. Es el sucesor de OntoEdit y fue desarrollado por AIFB en la universidad de
Karlsruhe. Brinda una interfase de programación JAVA para acceder a ontologías e instancias,
independientemente del formato de implementación de la ontología. Provee de una simple
herramienta para generar portales web con soporte multilingual basados en ontologías [KAON]
A.8 Diseño de ontologías
La construcción de ontologías no responde a una única aproximación lógica sino que depende,
en gran manera, del contexto en el que se construyen. Además hay que tener en cuenta que una
ontología especifica una conceptualización, una forma de ver el mundo. Por lo cual cada
ontología incorpora un punto de vista. Una ontología pues, contiene definiciones que se proveen
del vocabulario para referirse a un dominio y éstas dependen del lenguaje que se usa para
describirlas.
Algunas cuestiones sobre el diseño [Gruber 1993]:
-
Claridad y objetividad: la ontología debe proveer el significado de los términos definidos
proveyendo definiciones objetivas y documentación en lenguaje natural. Debe poder
comunicar de manera efectiva el significado de sus términos.
-
Completitud: una definición expresada en términos de condición necesaria y suficiente es
preferible sobre una definición parcial (definida sólo sobre condición necesaria o suficiente)
-
Coherencia: permite hacer inferencias válidas consistentes con las definiciones
-
Máxima extensibilidad monotónica: los nuevos términos (generales o especializados)
debieran ser incluidos en la ontología de manera que no requiera la revisión de definiciones
existentes
Víctor Daniel PODBEREZSKI
- 100 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Mínimo compromiso ontológico: minimizar como sea posible el mundo que se está
modelando
Otros principios son: estandarización de nombres (tanto como sea posible), modularidad (para
minimizar el acoplamiento entre módulos) y el hecho de que las clases en una ontología debieran
ser disjuntas.
No hay una única aproximación a la hora de diseñar una ontología. Existen varios autores que
proponen diferentes aproximaciones. Cada uno de ellos propone los pasos y criterios para la
construcción que creen adecuados. A continuación se presentan 2 de estas metodologías.
A.8.1 Metodología de Grüninger y Fox
Esta metodología [Grüninger & Fox 1995] propone un método formalizado para construir una
ontología. La misma se compone de 6 pasos.
Paso 1: Definición de los escenarios motivadores
Cada ontología surge de un escenario concreto de una aplicación. Los mismos pueden ser
presentados como la descripción de problemas que no han podido ser resueltos hasta el momento
y posibles aplicaciones donde la ontología podrá ser utilizada.
Un escenario motivador suele proveer un conjunto de soluciones posibles que se obtienen
intuitivamente. De estas soluciones se obtiene una semántica informal para los conceptos y sus
relaciones para ser posteriormente utilizados en la ontología.
Paso 2: Especificación informal de las preguntas pertinentes (Competency questions)
Dado un escenario motivador, surgen un conjunto de preguntas que la ontología a construir
deberá responder. Las preguntas pueden ser tomadas como requerimientos en forma de
interrogantes (Competency questions). Esos interrogantes deben ser posibles de formular usando
la terminología de la ontología y ser capaces de caracterizar sus respuestas a las mismas
utilizando los axiomas y las definiciones provistas por la misma. El alcance de la ontología
puede fijarse mediante estas preguntas.
Las preguntas no generan compromisos ontológicos de diseño sino que son utilizadas para más
adelante evaluar si la ontología construida es capaz de satisfacer los requerimientos que de ella
se espera. Además las mismas no se expresan en un lenguaje formal.
Paso 3: Especificación de la terminología
En base a las preguntas desarrolladas en el paso anterior, se pueden obtener un conjunto de
términos para su expresión y ser consideradas como la base para la terminología a utilizar en el
lenguaje formal. En una nueva ontología para cada interrogante informal deben existir clases,
Víctor Daniel PODBEREZSKI
- 101 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
atributos y relaciones que son requeridos para resolver la pregunta. En primer lugar se debe
identificar los objetos del dominio de aplicación para ser representados mediante constantes y
variables del lenguaje. Posteriormente se definen los atributos de los objetos y sus relaciones,
utilizando predicados en lógica de primer orden, o un formalismo equivalente.
Paso 4: Formalización de las preguntas pertinentes (Competency questions)
Con la terminología definida de la ontología, se definen formalmente las preguntas pertinentes en
función a la misma.
Paso 5: Especificación de axiomas formales
Se definen los axiomas que especifican las definiciones de términos y las restricciones en su
interpretación.
Paso 6: Verificar la completitud de la ontología
Se debe definir las condiciones bajo las cuales las soluciones son consideradas completas.
A.8.2 Metodología Unschold y King
Los autores [Uschold et. al. 1998] proponen una serie de pasos para construir una ontología
Paso 1: Identificar el propósito
Dejar en claro por qué se construye la ontología y que uso se le pretende dar. Identificar y
caracterizar el rango de posibles aplicaciones y usuarios de la ontología.
Paso 2: Construcción de la ontología:
Esta etapa se puede subdividir en 3 sub-tareas:
-
Capturar la ontología: Esta etapa incluye identificar los conceptos clave y relaciones en el
dominio de interés, producir definiciones textuales precisas y carentes de ambigüedad que
describan a los conceptos y relaciones y por último identificar los términos para referirse a
los mismos. Para eso los autores sugieren identificar los conceptos más importantes para ser
utilizados para obtener el resto en la jerarquía por medio de generalización y especialización.
-
Codificación: Representar el conocimiento adquirido en el paso anterior mediante un
lenguaje formal
-
Integración de ontologías existentes: Durante los procesos anteriores se debe analizar si
corresponde utilizar ontologías existentes y cómo hacerlo.
Paso 3: Evaluación
Evaluar la ontología construida con respecto a un marco de referencia que pueden ser
especificaciones de requerimientos, preguntas y/o el mundo real.
Víctor Daniel PODBEREZSKI
- 102 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Paso 4: Documentación
Se procede a establecer pautas para documentar la ontología de acuerdo al tipo y su propósito.
[Corcho & Gómez-Pérez] Oscar Corcho, Asunción Gómez-Pérez, A Roadmap to Ontology
Specification Languages, EKAW00. 12th International Conference on Knowledge Engineering
and Knowledge Management
A.9 Referencias
[DAML+OIL] DAML+OIL March 2001, http://www.daml.org/2001/03/daml+oil-index
[Dean et. Al 2002] M. Dean, D. Connolly, F. van Harmelen, J. Hendler, I. Horrocks, D.L.
McGuinness, P.F. Patel-Schneider, L.A. Stein, OWL Web Ontology Language 1.0
Reference, W3C Working Draft, 2002. http://www.w3.org/TR/owl-ref/
[FIPA00008] FIPA SL Content Language Specification, Foundation for Intelligent Physical
Agents, 2000. http://www.fipa.org/specs/fipa00008/
[FIPA00086] FIPA Ontology Service Specification. Foundation for Intelligent Physical Agents,
2000. http://www.fipa.org/specs/fipa00086
[Genesereth & Fikes 1992] M. Genesereth, R. Fikes, Knowledge interchange format, Technical
Report Logic-92-1, Computer Science Department, Stanford University, 1992
[Guarino 1998] Guarino, N. 1998. Formal Ontology in Information Systems. In N. Guarino
(ed.) Formal Ontology in Information Systems. Proceedings of FOIS'98, Trento, Italy, 68 June 1998. IOS Press, Amsterdam: 3-15.
[Guarino et. al. 1994] Guarino, N., Carrara, M., and Giaretta, P. 1994. An Ontology of MetaLevel Categories. In D. J., E. Sandewall and P. Torasso (eds.), Principles of Knowledge
Representation and Reasoning: Proceedings of the Fourth International Conference
(KR94). Morgan Kaufmann, San Mateo, CA: 270-280.
[Gruber 1993] T. R. Gruber, A translation approach to portable ontology specifications,
Knowledge Acquisition 5 (1993) 199-220
[Gruber 1995] Gruber, T. R. 1995. Toward Principles for the Design of Ontologies Used for
Knowledge Sharing. International Journal of Human and Computer Studies, 43(5/6):
907-928.
Víctor Daniel PODBEREZSKI
- 103 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Grüninger & Fox 1995] Grüninger M, Fox M. S., 1995, Methodology for the design and
evaluation of ontologies, Workshop on Basic Ontological Issues in Knowledge Sharing,
Montreal, Canada
[KAON] http://kaon.semanticweb.org
[KIF] Knowledge Interchange Format. Draft proposed American National Standard (dpANS)
NCITS.T2/98-004, http://logic.stanford.edu/kif/dpans.html
[Kifer et. Al 1995] M. Kifer, G. Lausen, J. Wu, Logical foundations of object-oriented and
frame-based languages, Journal of the ACM 42 (4) (1995) 741-843.
[Luke & Heflin 2000] S. Luke, J. Heflin, SHOE 1.01. Proposed Specification, SHOE. Project
technical
report,
University
of
Maryland,
2000,
http://www.cs.umd.edu/projects/plus/SHOE/spec.html
[MacGregor 1992] R. MacGregor, Inside the LOOM clasifier, SIGART bulletin 2 (3) (1991)
70-76
[Martín 2004] Martín, M, 2004, Sistema de de Catalogación de Métricas e Indicadores con
Potencia de Web Semántica, Tesis de Magíster en Ingeniería de Software, Facultad de
Informática Universidad Nacional de La Plata, Argentina.
[Motta 1999] E. Motta, Reusable Components for Knowledge Modelling, IOS Press,
Amsterdam, 1999.
[Noy & McGuinness 2000] Noy NF, McGuinness DL. Ontology Development 101: A Guide to
Creating
Your
First
Ontology.
2000,
http://www.cs.man.ac.uk/~carole/old/GGF%20Tutorial%20Stuff/ontology101.pdf
[OWL] OWL Web Ontology Language, http://www.w3.org/TR/owl-features/
[Protégé 2000] http://protege.stanford.edu
[Steve et. al 1998] Steve, G, A. Gangemi, D. Pisanelli, 1998. "Integrating Medical
Terminologies with ONIONS Methodology". http://saussure.irmkant.rm.cnr.it.
[Uschold 1996] M. Uschold. Building ontologies: towards a unified methodology. In Expert
Systems 96, 1996
Víctor Daniel PODBEREZSKI
- 104 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Uschold et. al. 1998] Uschold M, King M, Moralee S, Zorgios Yannis, 1998, The Enterprise
Ontology. The Knowledge Engineering Review, Vol. 13, Special Issue on Putting
Ontologies to Use (eds. Mike Uschold and Austin Tate)
[Van Heijst et. al 1996] VAN HEIJST, G., SCHEREIBER, A.T. Y WIELINGA, B.J. "Using
Explicit Ontologies in KBS Development" en International Journal of Human and
Computer Studies, 1996
[WebOde] http://webode.dia.fi.upm.es/WebODEWeb/index.html
Víctor Daniel PODBEREZSKI
- 105 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Apéndice B:
Jade
B.1 Introducción
JADE (Java Agent Development Framework) es una plataforma de desarrollo de aplicaciones
multiagente conforme a los estándares de FIPA. Ha sido implementado completamente en Java
como código abierto. Se compone de dos elementos principales: una plataforma para agentes
conformes a las especificaciones de FIPA y un paquete para desarrollar estos agentes en Java.
Cabe destacar que JADE es Software Libre y que se distribuye bajo los términos de la licencia
LGPL (Lesser General Public License Version 2).
B.2 Arquitectura
Según FIPA, los agentes son entidades software que están localizadas en una única plataforma.
Una plataforma de agentes es un entorno de ejecución en donde los agentes están ejecutándose y
a través del cual disponen de un servicio de páginas blancas para buscar otros agentes, un
servicio de páginas amarillas para buscar servicios que otros agentes ofrecen, un módulo de
gestión a través del cual se accede a estas facilidades y por último un sistema de envío/recepción
de mensajes.
FIPA incorpora en su plataforma el AMS (Agent Management System) que es el agente que
supervisa el acceso y uso de la plataforma de agentes. Sólo existe un AMS por plataforma. El
AMS es el encargado de proporcionar los servicios de páginas blancas y de ciclo de vida para los
agentes y de mantener el directorio de los identificadores de los agentes y su estado. Cada agente
debe registrarse con el AMS para obtener un identificador válido. El DF (Directory Facilitator)
es el agente que proporciona el servicio de páginas amarillas. El ACC (Agent Communication
Channel) es el software que controla el intercambio de mensajes, tanto dentro de la plataforma
como con otras remotas.
A parte de todos estos detalles propios de FIPA, JADE incluye la noción de contenedor. Un
contenedor es una instancia del entorno de ejecución de JADE. En un contenedor es posible
albergar un número indeterminado de agentes. Existe un tipo especial de contenedor denominado
principal (i.e. main container). Debe existir uno y solo uno de estos contenedores por cada
plataforma FIPA de agentes y el resto de contenedores de la plataforma, una vez ejecutados (i.e.
una vez ejecutado el correspondiente entorno de ejecución JADE) deben subscribirse al
principal, por lo que el responsable de ejecutarlos también es responsable de indicar en dónde se
localiza el contenedor principal.
Víctor Daniel PODBEREZSKI
- 106 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
La arquitectura se puede observar en la figura 1, donde aparecen dos plataformas diferentes
(platform1 y platform2), cada una con sus contenedores principales y contenedores normales.
Figura B.1: Arquitectura de Jade
B.3 Descarga e instalación
La última versión de JADE (la 3.4 en el momento de escribir este apéndice) se puede conseguir
en el sitio de JADE:
http://jade.tilab.com/
Para descargar el software se requiere estar registrado previamente en el sitio. A la hora de la
descarga se pueden obtener los siguientes archivos:
-
jadeAll.zip: Contiene todo JADE. Esta compuesto por los cuatro archivos descriptos
posteriormente.
-
jadeBin.zip: Contiene JADE compilado y listo para usar.
-
jadeDoc.zip: Contiene la documentación de JADE. Es la misma que se puede conseguir
en el sitio online
-
jadeSrc.zip: Contiene el código fuente completo de JADE
-
jadeExamples.zip: Contiene el código fuente de ejemplos y una demo simple.
El único requisito para ejecutar JADE es tener una versión de Java Run Time Environment 1.4 o
superior.
Víctor Daniel PODBEREZSKI
- 107 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Se debe crear una carpeta y descomprimir los archivos descargados. Se creará un directorio
“jade” y dentro de él otro llamado “lib” que es donde se encuentran los “jars” necesarios para
ejecutar la plataforma.
B.3 Entorno de ejecución
La característica más importante del entorno de ejecución de JADE es la interfaz gráfica que
proporciona, desde la que podemos controlar y depurar los agentes existentes. Todas las
herramientas han sido desarrolladas como agentes y siguen sus mismas reglas.
B.3.1 Interfaz RMA
El agente RMA (Remote Monitoring Agent) permite controlar al resto de agentes en una
plataforma. Provee una interfaz gráfica (figura 2) que facilita las funciones de monitorización y
control. Solo puede existir un agente RMA por container, aunque puede haber varios por
plataforma.
Figura B.2: Interfaz gráfica del RMA
La interfaz gráfica permite las siguientes acciones, todas ellas llevadas a cabo a través de un
sistema de menús:
-
Terminar la ejecución del agente RMA (se invoca al método doDelete()).
-
Terminar con la ejecución del agente RMA y de todos los agentes del container donde se
encuentre RMA.
-
Terminar con la ejecución de la plataforma en la que se encuentra.
Víctor Daniel PODBEREZSKI
- 108 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Comenzar un nuevo agente.
-
Terminar con la ejecución agentes. La terminación se realiza internamente llamando al
método doDelete().
-
Detener la ejecución de los agentes. Internamente se realiza una llamada al método
doSuspend.
-
Continuar la ejecución de agentes suspendidos. Los pone en estado Activo y llama al
método doActivate().
-
Mandar un mensaje (formato ACL) a agentes seleccionados. Esta función se realiza
mediante un cuadro de diálogo en el cual se tendrán que rellenar los campos del mensaje.
-
Migrar un agente de un contenedor a otro.
-
Clonar un agente, introduciendo el nombre del nuevo agente y el container donde se
encontrará.
B.3.2 Agente Dummy
El agente Dummy (figura 3) permite interactuar con otros agentes. Proporciona un interfaz
gráfico que nos permite construir mensajes ACL, mandarlos, almacenarlos (también los que nos
envíen a nuestro agente Dummy), y verlos en detalle.
Víctor Daniel PODBEREZSKI
- 109 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura B.3: Interfaz gráfica del agente Dummy.
B.3.3 Interfaz DF
El agente DF, Directory Facilitator, proporciona también una interfaz gráfica, figura 4. Este
Agente es el que provee los servicios de Páginas Amarillas. A través de la interfaz gráfica se
pueden ver descripciones de los agentes registrados, registrar y quitar agentes, buscar
descripciones y modificarlas.
Víctor Daniel PODBEREZSKI
- 110 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura B.4: Interfaz gráfica del agente DF.
A través de la GUI también podemos combinar nuestro DF con otros DF y crear dominios y
subdominios de páginas amarillas.
B.3.4 Agente Sniffer
Gracias al agente Sniffer (figura 5) se pueden monitorizar todos los mensajes que un agente, o un
grupo de ellos, intercambian. Existen opciones para poder monitorizar mensajes con un
performative exclusivo.
Víctor Daniel PODBEREZSKI
- 111 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura B.5: Interfaz gráfica del agente sniffer.
B.3.5 Agente Instrospector
Permite monitorizar la ejecución de un agente, y los mensajes intercambiados por este. También
permite la monitorización de sus comportamientos y la ejecución paso a paso de estos.
Figura B.6: Interfaz gráfica del agente instrocpector.
Víctor Daniel PODBEREZSKI
- 112 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
B.4 Agentes
La clase jade.core.Agent representa la base común para todos los agentes de Jade. La
herencia de esta clase le proporciona la capacidad de realizar las interacciones básicas con la
plataforma (tales como registro o configuración) y para implementar el comportamiento (por
ejemplo, el envío y recepción de mensajes o el uso de protocolos de interacción).
El agente tiene un método setup que debe emplearse para la inicialización del agente. Este
método se ejecuta después de la inicialización relacionada con la plataforma. Es por tanto aquí
donde comienza el comportamiento definido por el usuario.
Los agentes de Jade se implementan con un único thread de ejecución. Para gestionar los
comportamientos de un agente la clase Agent tiene los métodos addBehaviour y
removeBehaviour. Los comportamientos pueden ser añadidos y eliminados en cualquier
momento de la vida del agente.
Un planificador implementado por la clase Agent y oculto al programador selecciona el
Behaviour a ejecutar según un round-robin entre los Behaviour preparados. El Behaviour lleva a
cabo su tarea con el método action. El método action es invocado cuando tiene lugar el
evento asociado al Behaviour. Este evento puede ser la llegada de un mensaje o una
temporización por ejemplo. La aproximación a la planificación hecha por Jade, recomienda que
los métodos action no tengan un tiempo de ejecución alto ya que mientras se ejecutan no
pueden ser interrumpidos por otro comportamiento. Cuando termina el método action, se
invoca al método done para saber si ha terminado su tarea. En caso de que no haya terminado
queda reprogramado para la siguiente ronda.
Igual que las threads en Java, en un agente pueden ejecutarse a la vez tantos comportamientos
como sea necesario. Sin embargo, a diferencia de las threads en JAVA, el decidir qué
comportamiento se ejecuta en cada momento es tarea nuestra (en JAVA lo decide la máquina
virtual). Esto es así para que cada agente equivalga únicamente a un único thread, con el
consiguiente ahorro de ciclos de CPU y memoria que esto implica.
Víctor Daniel PODBEREZSKI
- 113 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Figura B.7: El ciclo de ejecución de un agente
En la figura 7 puede verse el camino por el que atraviesa un agente desde que comienza su
ejecución hasta que finaliza y se elimina. Como puede verse, lo primero a ejecutar es el método
setup(). Tras esto se comprueba que el agente sigue vivo y después se selecciona el siguiente
comportamiento a ejectuar del conjunto de comportamientos que aun le quedan por ejecutar al
agente. Se ejecuta su método b.action() y tras esto se pregunta si ha finalizado. Es posible que no
lo haya hecho ya que un comportamiento puede ser o un simple trozo de código que se ejecuta
una sola vez o bien varias veces dependiendo de otros factores. Si está ejecutado se elimina del
conjunto de comportamientos del agente y no vuelve a ejecutarse. En todo caso, se vuelve a
comenzar.
Víctor Daniel PODBEREZSKI
- 114 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Para realizar comunicaciones entre agentes es necesario que estos estén identificados de forma
única en la plataforma. De acuerdo con las especificaciones de FIPA, cada agente posee un
Identificador de Agente (AID = Agent Identifier). La estructura del AID se compone de varios
campos, siendo los más importante los de nombre y dirección. El nombre del agente es un
identificador global único para él. JADE construye dicho identificador concatenando el nombre
dado al agente en la plataforma por el usuario con el nombre de la plataforma inicial del agente
(HAP = Home Agent Platform) separados por el carácter ‘@’. Un ejemplo de este nombre sería
pepe@labo:1099/JADE, donde “pepe” es el nombre del agente y “labo:1099/JADE” el de la
plataforma. Sólo los nombres completos son válidos dentro de los mensajes ACL. Las
direcciones por el contrario pueden contener varias direcciones de transporte en las cuales
contactar al agente. La sintaxis de estas direcciones es una secuencia de URI.
B.5 Comportamientos.
Las diferentes tareas que realiza un agente se han de encapsular en comportamientos que heredan
de la clase jade.core.behaviours.Behaviour. Existen varias subclases de Behaviour
predefinidas. Los dos métodos principales que debe definir un Behaviour son action y done.
Los comportamientos se pueden clasificar en dos grandes grupos: Primitivos y compuestos.
B.5.1 Primitive Behaviours
Algunos de los comportamientos primitivos son los siguientes:
-
SimpleBehaviour: Es el comportamiento mas básico que puede ser heredado para generar
cualquier comportamiento requerido.
-
CyclicBehaviour: Este comportamiento permanece activo mientras que el agente este
vivo y es llamado repetidamente luego de cada evento. Especialmente útil para utilizar en
la recepción de mensajes.
-
TickerBehaviour: Es un comportamiento cíclico que se ejecuta periódicamente y realiza
código definido por el usuario.
-
OneShotBehaviour: Este comportamiento se ejecuta una vez y finaliza. No se puede
establecer en que momento exacto se ejecuta.
-
WakerBehaviour: Ejecuta código del usuario una vez en un tiempo especificado.
-
ReceiverBehaviour: Se ejecuta cuando un tipo de mensaje es recibido o un timeout
expira.
-
SenderBehaviour: Encapsula la acción de envío de un mensaje ACL. Este mensaje se le
debe especificar en el constructor.
Víctor Daniel PODBEREZSKI
- 115 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
B.5.2 Composite Behaviours
Los comportamientos compuestos permiten combinar los previamente definidos de manera
conveniente. Algunos de ellos son:
-
ParallelBehaviour: Controla un conjunto de comportamientos hijos que se ejecutan en
paralelo. La condición de finalización puede especificarse para finalizar cuando todos los
hijos finalizan, N finalicen o alguno finalice.
-
SequentialBehaviour: Este comportamiento ejecuta sus comportamientos uno tras el otro
y finaliza cuando el último hijo finaliza.
-
FSMBehaviour: Esta clase permite definir una Máquina de Estados Finita mediante subbehaviours. Cada sub-comportamiento representa un estado de la máquina, y las
transiciones se van produciendo según la salida de dichos estados. La finalización se
alcanza cuando se termine de ejecutar algún sub-behaviour que se haya registrado como
estado final.
B.6 Comunicación entre agentes
La comunicación entre los agentes es una de las más importantes características que aporta
JADE. Se basa en un modelo de paso de mensajes asíncrono. Cada agente tiene un buzón en el
cual se van almacenando los mensajes enviados por otros agentes. Cuando llega un mensaje
nuevo, se le notifica al agente que lo ha recibido para que lo procese.
Los mensajes intercambiados entre los agentes siguen un formato concreto que ha sido definido
por la FIPA denominado ACL.
Todos los mensajes que se envían y reciben son instancias de la clase ACLMessage, que
incorpora una serie de métodos para construir mensajes FIPA correctos y obtener las
características de un determinado mensaje.
Utilizando el método blockingReceive hacemos que el comportamiento quede detenido hasta que
se reciba un mensaje, sea el tipo de mensaje que sea.
La estructura de un mensaje está compuesta por los siguientes campos:
•
•
•
•
•
•
Performative: El tipo de mensaje FIPA (INFORM, QUERY, PROPOSE, ...)
Receiver: Destinatario del mensaje
Sender: Emisor del mensaje (inicializado automáticamente)
Content: Contenido del mensaje
ConversationID: Usado para identificar los mensajes de la misma conversación
Language: Especifica que lenguaje es utilizado en el content.
Ontology: Especifica que ontología es utilizada en el content.
Víctor Daniel PODBEREZSKI
- 116 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
•
•
•
•
Protocol: Específica el protocolo.
ReplyWith: Especifica una expression a utilizar para distinguir las respuestas de un
mensaje.
InReplyTo: Especifica una expresión utilizada en la respuesta para distinguir una
respuesta perteneciente a una conversación.
ReplyBy: Utilizado para definer un tiempo limite para responder el mensaje.
B.7 Ontologías
Un elemento fundamental en los sistemas de agentes son las ontologías. Estas tienen como
misión poner de acuerdo a los agentes en el vocabulario con el que comunicarse. Jade
proporciona soporte para las ontologías. Las ontologías y sus componentes son traducidos a
clases Java que luego son invocadas por los agentes.
En esencia, el soporte que proporciona Jade para las ontologías permite trabajar con ellas en el
modo reflejado en la figura.
Figura B.8: Conversión realizada por el soporte de Jade para ontologías.
El soporte de Jade para ontologías incluye las clases para trabajar con estas y con los lenguajes
de contenido. Los lenguajes de contenido tienen que ver con la representación interna del
contenido de los mensajes ACL. Las ontologías tienen que ver con la semántica de los mensajes
que se intercambian y su chequeo.
Víctor Daniel PODBEREZSKI
- 117 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Jade incorpora en el paquete jade.content soporte, codecs, para dos lenguajes de
contenido. El lenguaje SL es legible por los humanos y codifica las expresiones como string. El
lenguaje LEAP no es legible por los humanos y es byte-encoded.
Una ontología en JADE es una instancia de la clase jade.content.onto.Ontology en la cual se
definen los esquemas de la estructura de los predicados, acciones de los agentes y conceptos
relevantes al dominio del problema. Estos esquemas son instancias de las clases
PredicateSchema, AgentActionSchema y ConceptSchema incluidas en el paquete
jade.content.schema. La primera representa a los predicados de la ontologia, la segunda a los
agentes intervinientes y la tercera a los conceptos propiamente dichos de la misma. Además, para
cada uno de estos elementos que definamos en la ontología se deberá crear una clase asociada.
Para cada uno de los esquemas se definirán una serie de campos (por ejemplo, podríamos definir
el concepto libro con los campos título y autor). Estos campos se corresponderán con una
variable de la clase correspondiente al esquema, y por lo tanto tendrán asociado un tipo.
•
Cada esquema añadido a la ontología está asociado a una clase java. Por ejemplo, el
esquema para el concepto Titulo está asociado a la clase Titulo.java. Estas clases deben
tener una estructura tal como se comenta más adelante.
•
Cada campo de un esquema debe tener un nombre y un tipo. Este tipo se debe
corresponder con un determinado esquema. Para los tipos básicos (int, String, etc.)
podemos usar los campos correspondientes de la clase BasicOntology.
•
Un campo puede ser declarado OPTIONAL con lo que su valor puede ser null. En otro
caso el campo es considerado MANDATORY.
•
Otro de los atributos que se le puede dar a un campo (como OPTIONAL) es
UNLIMITED, con lo que la cardinalidad de ese campo podrá ser mayor que 1.
•
Aunque en este ejemplo no se da el caso, un esquema puede tener un número de superesquemas. Esto se hace mediante el método addSuperSchema.
La estructura de estas clases debe ser coherente con sus esquemas asociados. Más en concreto
deben obedecer las siguientes reglas:
1. implementar la interfaz adecuada:
o
Si el esquema es un ConceptSchema la clase debe implementar (directa o
indirectamente mediante herencia) la interfaz Concept.
o
Si el esquema es un PredicateSchema la clase debe implementar (directa o
indirectamente mediante herencia) la interfaz Predicate.
Víctor Daniel PODBEREZSKI
- 118 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
o
Si el esquema es un AgentActionSchema la clase debe implementar (directa o
indirectamente mediante herencia) la interfaz AgentAction.
2. tener las relaciones de herencia adecuadas. Por ejemplo, si S1 es un super-esquema de S2
entonces la clase C2 asociada al esquema S2 debe extender la clase C1 asociada al
esquema S1.
3. tener las variables miembro y los métodos de acceso adecuados:
Por cada campo en el esquema S1 con nombre nnn y tipo S2 la clase C1 asociada
al esquema S1 debe tener dos métodos de acceso de la siguiente forma:
public void setNnn(C2 c);
public C2 getNnn();
donde C2 es la clase asociada al esquema S2. Si S2 es un esquema definido en
BasicOntology, entonces:
o
si S2 es el esquema de STRING entonces C2 es java.lang.String
si S2 es el esquema de INTEGER entonces C2 es int, long,
java.lang.Integer o java.lang.Long
si S2 es el esquema de BOOLEAN entonces C2 es boolean o
java.lang.Boolean
si S2 es el esquema de FLOAT entonces C2 es float, double,
java.lang.Float o java.lang.Double
si S2 es el esquema de DATE entonces C2 es java.util.Date
si S2 es el esquema de BYTE_SEQUENCE entonces C2 es byte[]
si S2 es el equema de AID (identificador de agente) entonces C2 es
jade.core.AID
Por cada campo en el esquema S1 con nombre nnn, tipo S2 y cardinalidad mayor
que 1 la clase C1 asociada al esquema S1 debe tener dos métodos de acceso de la
siguiente forma:
public void setNnn(jade.util.leap.List l);
public jade.util.leap.List getNnn();
Víctor Daniel PODBEREZSKI
- 119 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Para que un agente de Jade use una ontología debe importarla y registrarla. Luego la utilizará con
la API correspondiente de Jade.
B.8 Manejo de Ontologías: Ontology Bean Generator.
Construir manualmente las ontologías de este modo resulta muy tedioso. Para automatizar la
tarea, la Universiteit van Amsterdam ha desarrollado el Ontology Bean Generator
(http://gaper.swi.psy.uva.nl/beangenerator/content/main.php). A partir de una ontología
desarrollada con Protégé, el Bean Generator genera las clases necesarias para su manejo desde
Jade.
Para realizar la transformación hay que seguir los siguientes pasos:
1. Abrir un proyecto nuevo o existente de Protégé.
2. Incluir el proyecto SimpleJADEAbstractOntology.pprj mediante el menú Project →
Include... de Protégé.
3. Crear los conceptos de la ontología como subclases de Concept.
4. Crear los agentes de la ontología como subclases de Agent.
5. Crear los predicados de la ontología como subclases de Predicate.
6. Crear las acciones de los agentes de la ontología como subclases de AgentAction.
7. Ir al menú de Protégé Project → Configure… y seleccionar el checkbox
OntologyBeanGeneratorTab.
8. Seleccionar la pestaña del Ontology Bean Generator.
9. Especificar o seleccionar de la lista desplegable el nombre del paquete para la
ontología.
10. Especificar o seleccionar el directorio donde serán volcadas las clases java que
traducen la ontología. El directorio debe existir.
11. Presionar el botón Generate.
El uso de una ontología generada por Protégé desde Jade requiere incluir la librería
beangenerator.jar.
B.9 Referencias
[Agudo & Fuentes Fernández 2003] B. Agudo, R. Fuentes Fernández, “Introducción a Jade”,
Departamento de Sistemas Informáticos y Programación, UCM, 26/3/2003
Víctor Daniel PODBEREZSKI
- 120 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Caire 2006a] G. Caire. "JADE Tutorial: JADE programming for Beginners". CSELT S.p.A. y
TILab S.p.A.. Disponible en [JADE 2006].
[Bellifemine & Caire 2003] F. Bellifemine, G. Caire, A. Poggi, G. Rimassa. "JADE, a White
Paper". EXP- Volume3 - n3- September 2003. Disponible en [JADE 2006].
[Bellifemine et. al 2006] F. Bellifemine, G. Caire, T. trucco, G. Rimassa. "JADE
Administrator’s guide". CSELT S.p.A. y TILab S.p.A.. Disponible en [JADE 2006].
[Bellifemine et al 2006] F. Bellifemine, G. Caire, T. trucco, G. Rimassa. "JADE Programmer’s
GUIDE". CSELT S.p.A. y TILab S.p.A.. Disponible en [JADE 2006].
[Caire 2006b] G. Caire, “JADE TUTORIAL APPLICATION-DEFINED
LANGUAGES AND ONTOLOGIES”, TILAB, Disponible en [JADE 2006].
CONTENT
[JADE 2006] Sitio Web de JADE. http://jade.tilab.com
[Bragado 2004] J. Garamendi Bragado, “Agentes Inteligentes: JADE”, Programa de Doctorado:
Informática y Modelización Matemática, Universidad Rey Juan Carlos, Abril 2004
[Vaucher & Ncho 2003] J. Vaucher, A. Ncho, JADE Tutorial and Primer, Dep. d'informatique,
Université de Montreal, September 2003
Víctor Daniel PODBEREZSKI
- 121 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Apéndice C
La reputación en la manufactura inteligente
C.1 Manufactura integrada por computador
La manufactura integrada por computador (CIM) es un concepto acuñado a principios de los ´70
[Harrington 1973]. Esta se propone utilizar el poder de análisis, cálculo y procesamiento de las
computadoras al servicio de la producción de bienes de mercado [Waldner 1990, Rapetti 2002,
Kalpakjian & Schmid 2002]. CIM cubre varios aspectos de la industria, que van desde el diseño,
la ingeniería, la manufactura hasta la logística, el almacenamiento y la distribución de los
productos. El objetivo de esta tecnología es incrementar la capacidad de manufacturar piezas,
productos terminados o semielaborados usando el mismo grupo de máquinas. Para ello se
requiere que las herramientas utilizadas sean flexibles y capaces de modificar su programación
adaptándose a los nuevos requerimientos del mercado.
CIM cubre varios aspectos de la industria, desde el diseño, ingeniería, manufactura hasta la
logística, almacenamiento y distribución de los productos. CIM trasciende el rótulo de tecnología
para ser considerada más una filosofía o estrategia de la empresa.
CIM nos permite conseguir los objetivos antes planteados mediante la tecnología de manufactura
flexible. Su utilización conduce a beneficios como el mejoramiento en calidad, la reducción en
costos e inventario, y un mejor manejo de los productos. El objetivo de esta tecnología es la
capacidad de manufacturar piezas, productos terminados o semielaborados usando el mismo
grupo de máquinas. Para lo mismo se requiere que las herramientas utilizadas sean flexibles y
capaces de modificar su programación adaptándose a los nuevos requerimientos del mercado.
La manufactura flexible como aproximación clásica postula la creación de celdas flexibles de
producción dentro de la fábrica.
Una celda de manufactura flexible es un centro simple o un pequeño conjunto de máquinas que
unidas producen una parte, sub-ensamble o producto. Juntas se complementan para efectuar una
actividad relacionada incluyendo tanto su manipulación como su obtención y puesta a
disponibilidad a otras celdas.
El enfoque CIM pretende ampliar los diversos niveles de automatización de las operaciones de
fabricación, incluyendo funciones de procesamiento de información y usando una extensa red de
computadores. Los sistemas CIM consisten de subsistemas que se integran en un todo, en la
Figura 1 se puede ver un esquema de un CIM. Estos subsistemas suelen ser: Planificación y
Respaldo Comercial, Diseño del Producto, Planificación del proceso de fabricación, Control del
Víctor Daniel PODBEREZSKI
- 122 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
proceso, Sistemas de monitorización del taller, y Automatización del proceso. Los subsistemas
se diseñan, desarrollan y aplican de tal manera que la salida de uno sea la entrada de otro.
Figura C.1: Estructura de un sistema de CIM
Recientemente es introducido el concepto de Multi-Functions Integrated Factories (MFIF)
[Osanna & Si 2000; Osanna et. al. 2001]. En esta concepción la aplicación de la flexibilidad en la
producción abandona el ámbito intra-fábrica para pasar a ser Inter- fábrica. Este paradigma
incluye la interconexión de diversas fábricas geográficamente separadas que interactúan entre si
para la elaboración de un producto. Cada fábrica se especializa en un conjunto de tareas que
ofrece a quien quiera contratarla. Estas tareas sirven para un conjunto de productos cuyo
desarrollo debe repartirse en el tiempo para aumentar la utilidad de producción.
C.2 La manufactura y el paradigma de agentes
Víctor Daniel PODBEREZSKI
- 123 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
La manufactura en su sentido más amplio, es el proceso de convertir la materia prima en
productos. Incluye: el diseño del producto, la selección de la materia prima, y la secuencia de
procesos a través de los cuales será fabricado el producto [Kalpakjian & Schmid, 2002].
Las empresas de fabricación del siglo XXI se encuentran en un entorno en el cual los mercados
son muy cambiantes, nuevas tecnologías emergen constantemente, y los competidores se
multiplican globalmente. Las estrategias de fabricación deben cambiar para soportar la
competitividad global, la innovación e introducción de nuevos productos, y la respuesta rápida al
mercado.
Tales sistemas de fabricación necesitarán satisfacer los siguientes requisitos fundamentales [Shen
& Norrie 1999]:
-
Integración de la Empresa: Para lograr la competitividad global y la respuesta rápida al
mercado, la empresa de fabricación individual o colectiva deberá integrarse con su
sistema de administración (compra, órdenes de trabajo, diseño, fabricación, planificación
y asignación de recursos, control, transporte, recursos, personal, materiales, calidad, etc.)
y sus socios a través de una red.
-
Organización Distribuida: Para una integración efectiva de la empresa a través de
organizaciones distribuidas, serán necesarios sistemas distribuidos basados en el
conocimiento para enlazar la administración de demandas directamente a los recursos, la
planificación de capacidades y asignación de recursos.
-
Entornos Heterogéneos: Tales sistemas de fabricación necesitarán acomodar software y
hardware heterogéneos tanto en sus entornos de fabricación como en sus entornos de
información.
-
Inter-operabilidad: Entornos heterogéneos de información pueden utilizar lenguajes de
programación diferentes, representar los datos con diferentes lenguajes y modelos de
representación, y operar en diferentes plataformas de procesamiento. Los sub-sistemas y
componentes de tales entornos heterogéneos deberían Inter-operar de una manera
eficiente.
-
Cooperación: Las empresas de fabricación deberán cooperar con sus proveedores, socios,
y clientes para el suministro de materiales, fabricación de partes, comercialización del
producto final, etc. Tal cooperación debería ser eficiente y de respuesta rápida.
-
Integración de humanos con el software y hardware: Las personas y los computadores
necesitan estar integrados para trabajar de manera colectiva a varios niveles de desarrollo
Víctor Daniel PODBEREZSKI
- 124 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
en el proceso de fabricación y en todo el ciclo de vida del producto, con acceso rápido al
conocimiento y la información. Fuentes de información heterogéneas deben ser
integradas para soportar estas necesidades y para mejorar las capacidades de decisión del
sistema. Se requieren entornos de comunicación bi-direccional para permitir
comunicación efectiva y rápida entre los humanos y los computadores para facilitar así su
interacción.
-
Agilidad: Se debe prestar considerable atención en reducir el tiempo del ciclo del
producto para ser capaces de responder a los deseos de los clientes de manera más rápida.
La fabricación ágil es la habilidad de adaptarse rápidamente a entornos de fabricación de
cambio continuo y no anticipado, y, además, es el componente clave en las estrategias de
fabricación para la competitividad global. Para lograr la agilidad, las utilidades de
fabricación deben ser capaces de re-configuración rápida e interacción con sistemas y
socios heterogéneos. Idealmente, los socios se contratan de manera dinámica sólo para el
tiempo requerido para completar una tarea específica.
-
Escalable: Un sistema de fabricación es escalable cuando recursos adicionales pueden ser
incorporados dentro de la organización cuando éstos sean necesarios. Esta capacidad
debería estar disponible en cualquier nodo de trabajo en el sistema y en cualquier nivel
dentro de los nodos. La expansión de recursos debería ser posible sin alterar los enlaces
previamente establecidos en la organización.
-
Tolerancia a Fallos: El sistema debería ser tolerante a fallos tanto a nivel de sistema como
a nivel de sub-sistema para detectar y recuperarse de fallos a cualquier nivel, y, así,
minimizar el impacto que estos fallos pudieran tener en el entorno de trabajo.
Con el propósito de lograr desempeñar estos requisitos se han propuesto numerosos paradigmas
y arquitecturas. Entre ellas los sistemas multiagentes. Los sistemas multiagentes están
íntimamente relacionados con la inteligencia artificial distribuida y además toman ideas y
principios de disciplinas tan diferentes como economía, filosofía, lógica, ecología y ciencias
sociales. Se presta especial atención a la interacción entre distintas entidades, llamadas agentes,
entre si.
Hay varios factores que señalan la conveniencia de un acercamiento mediante el paradigma de
Agentes [ Bond & Gasser 1988, Jennings & Wooldridge 1998]:
-
El ambiente es abierto, o al menos altamente dinámico, incierto o complejo. En esos
ambientes sistemas capaces de un accionar autónomo y flexible son a menudo la única
solución.
Víctor Daniel PODBEREZSKI
- 125 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Los agentes son una metáfora natural. Muchos ambientes (incluyendo la mayoría de las
organizaciones y cualquier ambiente competitivo o comercial) son modelados
naturalmente como sociedades de agentes, bien cooperando entre ellos para resolver un
problema complejo, o compitiendo entre ellos. En ocasiones, como en las interfaces
inteligentes, la idea de un agente es vista como una metáfora natural: Maes [Maes 1994]
plantea a los agentes como asistentes expertos, cooperando con el usuario para trabajar en
un problema.
-
Distribución de información, control o experticia. En algunos ambientes, la distribución
de información, control o experticia determina que una solución centralizada como mejor
caso es extremadamente dificultosa o en el peor caso imposible. En esos casos la solución
se puede modelar como un sistema multiagente en el cual cada componente se comporta
en forma autónoma o semi-autónoma.
-
Sistemas heredados. Un problema enfrentado por desarrolladores de software es el del
legado: sistemas que están obsoletos tecnológicamente pero son funcionalmente
esenciales para la organización. Ese software generalmente no puede ser desechado por el
costo a corto plazo de reescribirlos. Y a menudo se requiere que este interactué con otros
componentes de software, funcionalidades que nunca fueron planeadas por los
desarrolladores originales. Una solución a este problema es encapsular los componentes
heredados, proveyéndolos con una funcionalidad de 'agent layer', permitiéndoles
comunicarse y cooperar con otros componentes [Genesereth & Ketchpel 1994].
Como puede observarse las necesidades de los sistemas de fabricación modernos encuadran
dentro de las bondades de los sistemas multiagentes. Es por eso que su utilización es por muchos
considerada un acierto y se pueden encontrar diversos campos de aplicación dentro de los
procesos de una planta productiva. Entre ellas se encuentra la administración de la cadena de
suministros.
C.3 La cadena de suministros.
Una cadena de suministro puede ser definida como una red de entidades autónomas o
semiautónomas de negocio colectivamente responsables de las actividades de adquisición,
fabricación y distribución asociadas con una o más familias de productos relacionados.
Diferentes entidades de una cadena de suministro funcionan sujeto a diferentes restricciones y
objetivos [Swaminathan et. al. 1998].
El concepto de Administración de la cadena de suministros (Supply Chain Management) fue
comenzado a utilizarse en los comienzos de los 90 [Fox 1992]. Se entiende como el proceso de
integrar y utilizar proveedores (suppliers), productores (manufacturers), almacenes (warehouses)
Víctor Daniel PODBEREZSKI
- 126 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
y vendedores (retailers) para que los bienes sean producidos y distribuidos en las cantidades
correctas, minimizando los costos y satisfaciendo los requerimientos del cliente.
La administración de la cadena de suministros concentra la realización de las decisiones
estratégicas, tácticas y operacionales que optimizan la performance de la cadena de suministros.
El nivel estratégico define la red de la cadena de suministros; es decir la selección de
proveedores, rutas de transporte, instalaciones industriales, niveles de producción, depósitos, y
otros. El nivel táctico planea y programa la cadena de suministros para satisfacer la exigencia
actual. El nivel operacional ejecuta los planes. Funciones de toma de decisión de nivel táctico y
operaciones están distribuidas a través de la cadena de suministros [Fox et. al. 2000].
Figura C.2: Actores en la cadena de suministros
Dentro de una cadena de suministro se pueden identificar 3 actores (Figura 2):
-
Los clientes que realizan, modifican y anulan pedidos.
-
La compañía propiamente dicha que elabora el producto pedido por el cliente.
-
Los proveedores de materia prima y servicios a la compañía para la elaboración de los
productos.
Una correcta administración de la cadena de suministros otorga varios beneficios, entre ellos
[Chang & Makatsoris 2001]:
-
Mejora de rendimiento: Mejor coordinación del material y capacidad de prevenir la pérdida
de utilización por la espera de partes.
Víctor Daniel PODBEREZSKI
- 127 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Reducción del tiempo de ciclo: Al considerar las limitaciones y las alternativas en la cadena
de suministros ayuda a reducir el tiempo del ciclo de producción.
-
Reducción de costos de inventario: Pues se conoce qué comprar y cuándo, además de el
mínimo requerido y máximo tolerado.
-
Optimización
del
transporte:
mejorando
la
logística
y
carga
de
vehículos.
Una descomposición funcional de las actividades de una cadena de suministros usual es [Fox et.
al. 2000, Chang & Makatsoris 2001]:
-
Adquisición de pedidos: responsable de tomar los pedidos de los clientes, negociar acerca de
precios, fechas y similares. Debe también manejar las modificaciones y cancelaciones de las
órdenes. Cuando un plan viola los requerimientos de un cliente (por ejemplo de fechas) debe
negociar con el cliente y con la logística por un plan alternativo.
-
Logística: Responsable de coordinar los planes de producción, los proveedores y los
distribuidores para obtener el mejor posible resultado en términos del objetivo de la cadena
de suministros, incluyendo el envío en tiempo, minimización de costos, entre otros. Maneja
el movimiento de los productos y materiales a través de la cadena de suministro desde la
materia prima desde el proveedor hasta el producto final para el consumidor.
-
Transporte: Encargado de la asignación y agendado de los recursos de transporte. Debe
considerar varios tipos de rutas y de transportes.
-
Planificación: Responsable de programar y reprogramar las actividades de la fábrica
explorando los escenarios probables para nuevas órdenes potenciales y generando agendas
que son enviadas a los administradores de ejecución para ser llevadas a cabo. Asigna
recursos y tiempo de inicio a las actividades que pueden realizarse a la vez que intenta
optimizar algún criterio como minimizar la demora y el trabajo en progreso. Puede generar
una agenda desde la nada o modificar una existente que ha violado alguna restricción. En
anticipación de ciertas incertezas como el rompimiento de una máquina o la falta de una
materia prima puede reducir la precisión de las tareas agendadas incrementando el grado de
libertad con el que trabajan los administradores de ejecución. Por ejemplo aumentando en un
valor dado el tiempo esperado de ejecución de un proceso a realizar.
-
Gestión de recursos: Realiza el control de inventario y la gestión de compras. Debe tener en
cuenta en forma dinámica la disponibilidad de materia prima para que los planes de
producción puedan ser ejecutados. Determina la demanda de materiales y la cantidad a pedir
Víctor Daniel PODBEREZSKI
- 128 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
en las órdenes de compra. Debe seleccionar un proveedor para minimizar el costo y
maximizar los beneficios de disponibilidad de recursos. Cuando un pedido no llega en el
momento adecuado debe ayudar al planificador a buscar una alternativa de producción.
-
Administración de ejecución: Ejecuta la agenda de producción en tiempo real según lo
dictado por el planificador. En principio funciona de forma autónoma mientras que los pasos
del plan se cumplan de acuerdo a lo previsto. Cuando ocurre una desviación del plan le debe
comunicar al planificador para esperar una nueva agenda. Dado el grado de libertad del plan
el administrador de ejecución determina qué hacer luego. En esa decisión debe balancear el
costo de cada actividad, el tiempo requerido para hacerlo y el nivel de incerteza de la célula
de producción.
C.4 Administración de la cadena de suministros mediante agentes
La administración de cadena de suministros mediante la utilización de agentes ha sido estudiada
por diversos autores, entre ellos [Chang & Makatsoris 2001; Fox 1992; Fox et. al. 2000; Lau et.
al. 2004; Rossetti & Hin-Tat Chan 2003; Swaminathan et. al. 1998; Wagner & Guralnik, 2002].
El primer desafío que se debe resolver para enfrentar la realización de la administración de la
cadena de suministros es determinar que actividades de las mismas serán ejecutadas por que
agentes. Para realizar esto se deben tener en cuenta las regulaciones organizativas, los sistemas
existentes y limitaciones algorítmicas. El sistema debe lidiar con la planificación, el agendado y
coordinación entre las partes.
Una división funcional propuesta por [Fox et. al. 2000] para organizar con agentes la
administración de cadena de suministros propone utilizar los siguientes agentes: agente de
adquisición de órdenes, agente de logística, agente de transporte, agente de agendado, agente de
recursos y agente de despachos. Las funciones que realizan cada uno de ellas se corresponden a
las homónimas establecidas en la sección 1.3.
Entre estas partes es necesaria una correcta coordinación. Para el correcto funcionamiento de las
partes se debe lograr una transferencia de conocimiento entre partes y que las decisiones tomadas
locales tratando de maximizar su utilidad a su vez maximicen la utilidad global y eficiencia del
sistema.
La solución debe ser flexible teniendo en cuenta que ciertos procesos pueden cancelarse,
modificarse o agregarse. Los agentes que conforman el sistema deben poder volver a programar
sus tareas y modificar los acuerdos pactados. Los tiempo de respuesta deben ser aceptables a
nivel productivo y debe poder circular la información y conocimiento para resolver las tareas.
Víctor Daniel PODBEREZSKI
- 129 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Fox et al [Fox et. al. 2000] proponen la utilización de ABS [Barbuceanu and Fox, 1996a] como
solución a estos problema. ABS son las siglas de Agent Building Shell y es una colección de
componentes e interfaces resusables de software que proveen soporte para servicios de
aplicaciones independientes de agentes. Dentro de este esquema se establecen los diferentes
agentes antes descriptos y su forma de comunicarse. Para la solución de la comunicación generan
un grafo que muestra los diferentes estados en los que puede estar un agente dentro de la
comunicación y de acuerdo a la respuesta conseguida cual será el próximo estado en la misma.
ABS proporciona una ontología conversacional completa, conteniendo Planes de conversación,
reglas de conversación, y conversaciones actuales, en términos de las cuales las interacciones
complejas son descritas. La siguiente capa de ABS se ocupa de modelos genéricos de acción y
comportamiento, la representación de obligaciones y prohibiciones derivadas de las autoridad de
los agentes en la organización, el uso de obligaciones en la negociación, y las formas en las
cuales los agentes planean su comportamiento y ejecutan las actividades planeadas.
Swaminathan et. al [Swaminathan et. al. 1998] propone utilizar agentes basados en el
conocimiento. Identifican diferentes tipos de agentes en la cadena de suministros. A cada uno de
estos agentes le provee la capacidad de utilizar un subconjunto de elementos de control. Los
elementos de control ayudan en la toma de decisión en el nivel de agente utilizando varias
políticas (sacado de modelos analíticos como políticas de inventario, liberación justo a tiempo, y
algoritmos de ruteo) para demanda, suministro, información, y control de materiales dentro de la
cadena de suministro. Se parte de un agente genérico al que luego se lo especializa. Los
diferentes roles tomados por los agentes corresponden a los mismos utilizados por [Fox et. al.
2000].
El MetaMorph II [Shen et al 1998] usa una arquitectura híbrida basada en agentes y
centralizada con mediadores para integrar dinámicamente a socios, proveedores y clientes con la
empresa principal a través de sus respectivos mediadores dentro de una red de cadena de
suministro vía el Internet e Intranet. En MetaMorph II, los agentes pueden ser usados para
representar recursos industriales (máquinas, instrumentos etc.) y partes, encapsular sistemas de
software existentes, funcionar como coordinadores de sistema/subsistema (mediadores), y
realizar una o varias funciones de cadena de suministro.
La solución propuesta por Chen et al [Chen et al 1999] consiste en tipos de agentes
heterogéneos, que implementan alguna funcionalidad de la administración de la cadena de
suministros, llamados agentes funcionales. Todos ellos tienen algún entendimiento de la
ontología del sistema y usan una Lengua de Comunicación entre Agentes (ACL) para efectuar
conversaciones. La ontología del sistema incluye el conocimiento sobre los productos que el
sistema maneja y reglas de interacción, por ejemplo el protocolo de negociación usado en el
Víctor Daniel PODBEREZSKI
- 130 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
sistema. Ampliamente, los agentes funcionales pueden ser divididos en dos tipos. Unos son
usados para proporcionar la información de sistema, llamados agentes de Información, y pueden
interactuar con el exterior. El otro tipo de agentes está relacionado con un cierto producto, por
ejemplo, ordenador portátil y implementa un papel especial de la cadena de suministro.
El número de agentes de información es predefinido, estos son responsables de proporcionar
diferente información de sistema. Excepto por estos agentes, otros componentes de sistema no
son fijos. Los agentes funcionales pueden afiliarse al sistema y dejarlo según sus propias reglas u
órdenes de sus dueños. Se dice que un agente funcional se afilia al sistema si este anuncia sus
capacidades y papel deseado en una cadena a uno de los agentes de información. Del mismo
modo, cuando un agente de función quiere marcharse, este tiene que notificar al agente de
información en el cual se registró. No hay ningún superagente centralizado o mediadores
distribuidos para manejar la cooperación entre agentes.
C.5 Reputación en la cadena de suministros
Para la selección de un socio en un proceso productivo - quien proveerá materia prima, insumos
o un subproceso - se tienen en cuenta varios aspectos que van desde el precio y la calidad hasta
el compromiso y garantía. Entre ellos algunos son fácilmente mensurables y comparables. Por
otra parte otros son de difícil captación y se logran mediante la experiencia e interacción entre
partes (como el compromiso, respaldo y seriedad).
El proceso de selección debe tener en cuenta todas estas variables y mediante su comparación
determinar aquel oferente que realice la tarea de la forma más eficaz y presente las garantías de
éxito más altas. Dependiendo el proceso o parte de un producto dado puede ser deseable la
preeminencia de ciertas características (por ejemplo el precio, la confiabilidad del proveedor o la
entrega en término) por sobre otras.
Los agentes dentro del ambiente de la cadena de suministros son dinámicos, su comportamiento
se modifica con el tiempo. Por ejemplo el cambio de una máquina puede hacer que un fabricante
mejore la calidad de su producción o aumente su velocidad de respuesta. Asimismo puede
ocurrir que por problemas financieros los servicios brindados por ella se degraden. El aspecto
temporal tiene que tenerse en cuenta. Las mediciones más recientes deben tener más peso que las
mediciones más lejanas en el tiempo.
Un mismo agente puede brindar diferentes servicios o productos, por ejemplo puede ofrecer
cierres y botones. La calidad de cada uno de ellos puede ser diferente. Diferenciar entre ellos la
información obtenida para construir modelos de reputación más adecuados a la realidad es
deseable. No obstante la fragmentación de la reputación ocasiona que el sistema tarde más en
aprender.
Víctor Daniel PODBEREZSKI
- 131 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
No debe olvidarse que la utilización de agentes en la administración de la cadena de suministros
y el modelado de la reputación está condicionada por la realidad actual de los procesos
productivos. Dentro de ellos y para la decisión de a quien confiar una tarea o subproducto se
tienen en cuenta estándares de calidad establecidos por entidades reconocidas. Ejemplos de estas
son: ISO o IRAM. El sistema de reputación debe adecuarse, soportar y valorar dichos tipos de
credenciales.
La utilización de la reputación como mecanismo de valoración de un agente debe insertarse
dentro del proceso de selección de ofertante. En un sistema multiagente que tenga en cuenta la
reputación como parte integrante del mecanismo de selección se debe implementar una serie de
modificaciones en el protocolo para asegurar su correcto funcionamiento. Debe tenerse en cuenta
la posibilidad de solicitar y atender consultas de reputación de terceros. Por otra parte el agente
debe poder administrar su propia base de conocimiento de reputación. Para eso debe ser capaz de
mantener un historial y una calificación de las últimas interacciones con el ofertante y en base a
ellas poder sopesar y seleccionar si el agente es el conveniente para la tarea a realizar.
Debe actualizar la reputación ingresando nueva información luego de la concreción de un
contrato.
Debe tenerse en cuenta que diversos agentes pueden calificar de diversas formas y con diferentes
variables, se hace entonces necesario lograr algún mecanismo que permita compatibilizar entre
las diferentes formas de medición. Por otro lado un agente puede tener conceptos de confianza
diferentes a uno o no estar dispuesto a proporcionar información veraz, por lo tanto no siempre la
información brindada debe ser utilizada y se debe analizar su uso.
C.6 Modelos de reputación existentes en la administración de la
cadena de suministros
Dentro de los sistemas de reputación se encuentran aquellos centralizados donde el valor de
reputación es global y no subjetivo. Ejemplo de estos son los sistemas de reputación on-line y
Sporas [Zacharia 1999]. Debido a que diferentes agentes en la cadena de suministros tienen
formas diferentes de calificar las interacciones, esta aproximación centralizada no es adecuada.
Por lo tanto es poco recomendable su utilización.
Otros modelos de reputación utilizan como información la observación directa, que como ya se
dijo es la obtención de valores de reputación mediante la observación de la interacción entre dos
agentes y sus resultados. Este tipo de obtención de reputación no puede utilizarse en la
administración de cadena de suministro, en primer lugar por que muchas de las variables que se
tienen en cuenta en el análisis de una interacción requieren la evaluación directa sobre el
resultado obtenido (un elemento físico y no lógico). Por lo tanto la utilización de la observación
Víctor Daniel PODBEREZSKI
- 132 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
directa no es una táctica apropiada. Algunos métodos que utilizan esta aproximación son
[Esfandiari & Chandrasekharan 2001], [Schillo et al 2000] y [Sen & Sajja 2002]
Otras soluciones, como [Carter et al 2002] trabajan en base a ambientes con agentes sociales,
donde la reputación se gana de acuerdo a la existencia de roles preestablecidos en una sociedad y
su cumplimiento por parte de los agentes. En la administración de cadena de suministros no
existe una sociedad armada de agentes, las relaciones de reputación se basan en la interacción y
no en “posiciones sociales”, por lo tanto este tipo de acercamiento no es el más adecuado.
En la interacción entre agentes en una cadena de suministros el resultado que mide la
satisfacción es un valor complejo. Existen diversos aspectos en la transacción que son evaluados.
La dimensión ontológica debe tenerse en cuenta, de no hacerlo se pierde mucha de esta
información y la misma pierde calidad. Algunos de los modelos que tienen en cuenta el aspecto
multicontextual son [Esfandiari & Chandrasekharan 2001], REGRET [Sabater & Sierra 2002a,
Sabater & Sierra 2002b, Sabater 2003] y FIRE [Huynh et al 2004a, Huynh et al 2004b].
La forma de mediar cada valor de reputación es también un parámetro a tener en cuenta. Existen
sistemas de administración de reputación que califican las interacciones utilizando valores
booleanos: éxito y fracaso, ejemplo de ellos son [Schillo et al 2000] y [Esfandiari &
Chandrasekharan 2001]. Estos modelos no tienen en cuenta que un contrato se puede llevar a
cabo, pero que los resultados obtenidos tengan un grado de satisfacción. En la cadena de
suministros un contrato con un tercero es analizado y mas allá de si fue un éxito es deseable
conocer el grado de satisfacción logrado. De esa forma es posible más adelante comparar entre
agentes que cumplen su contrato pero que lo realizan brindando diferentes calidades o
prestaciones. Otros sistemas que tienen esto en cuenta son REGRET [Sabater & Sierra 2002a,
Sabater & Sierra 2002b, Sabater 2003], FIRE [Huynh et al 2004a, Huynh et al 2004b], [Sen &
Sajja 2002], [Carter et al 2002], [Yu & Singh, 2000; 2001a; 2001b] y NodeRanking [Pujol &
Sangüesa 2001, Pujol et al 2002a, Pujol et al 2002b, Pujol et al 2003] utilizando para representar
un intervalo continuo; y [Abdul-Rahman & Hailes 2000] y AFRAS [Carbo et al 2002] utilizando
intervalos difusos.
La utilización de mecanismos de cálculo de reputación donde los valores de reputación de un
agente dependen de los agentes con los que tiene tratos, por ejemplo NodeRanking [Pujol &
Sangüesa 2001, Pujol et al 2002a, Pujol et al 2002b, Pujol et al 2003] no son adecuados, pues un
agente que tiene tratos con otro agente de baja reputación no tiene por que serlo, de igual forma
en el caso contrario con agentes de alta reputación.
Ninguno de los modelos de reputación anterior contempla la coexistencia de agentes de
reputación centralizados y descentralizados. En la selección de socios en los procesos
Víctor Daniel PODBEREZSKI
- 133 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
productivos además de la experiencia previa y la reputación dada por pares se tiene en cuenta la
certificación de calidad provista por ciertos agentes certificadores de calidad (por ejemplo: ISO).
Las certificaciones en ciertos ambientes son obligatorias por legislación o por política de
empresa, por lo tanto debería incluirse este tipo de validación de reputación en el método
propuesto y una forma de cuantificarla.
C.7 Referencias
[Abdul-Rahman & Hailes 2000] Abdul-Rahman A. y Hailes S., 2000, Supporting trust in
virtual communities, En Proceedings of the Hawaii's International conference on Systems
Sciences, Maui Hawaii
[Harrington 1973] Harrington J. jr., 1973, Computer Integrated Manufacturing., Pub Industrial
Press, New York.
[Waldner 1990] Waldner Jean-Baptiste, 1990, CIM Principles of Computer-integrated
Manufacturing, Wiley
[Rapetti 2002] Rapetti O, 2002, Apunte de Cátedra CIM I, 75.65 Manufactura Integrada por
Computador (CIM) -Facultad de Ingeniería - Universidad de Buenos Aires
[Kalpakjian & Schmid 2002] Kalpakjian Serope, Schmid Steven R., 2002, Manufactura
ingeniería y tecnología, Pearson educación
[Osanna & Si 2000] Osanna P. H., Si, L: Multi-Functions Integrated Factory M.F.I.F. - a Model
of the Future Enterprise. Conference Proceedings: Internet Device Builder Conference, Sta.
Clara, Mai 2000, 6S
[Osanna et. al. 2001] Osanna P.H., Durakbasa M.N., Si L.X., 2001, Artificial Intelligence-based
Metrology and Quality Management in Intelligent Production Environment, IPMM – 2001
[Shen & Norrie 1999] Shen, W., y Norrie, D., 1999, Agent-Based Systems for Intelligent
Manufacturing: A State-of-the-Art Survey. Knowledge and Information Systems, an
Internatinal Journal 1(2):129–156.
[Bond & Gasser 1988] Bond, A. H., Gasser, L. (eds), 1988 Readings in Distributed Artificial
Intelligence. Morgan Kaufmann, San Mateo, CA.
[Jennings & Wooldridge 1998] Jennings, N. R., y Wooldridge, M. 1998. Applications of
Intelligent Agents. Agent Technology: Foundations, Applications, and Markets 3–28.
[Maes 1994] Maes, P., 1994 Agents that reduce work and information overload.
Communications of the ACM, 37(7), 31-40.
[Genesereth & Ketchpel 1994] Genesereth, M. R. y Ketchpel, S. P., 1994, Software agents.
Communications of the ACM, 37(7), 48-53.
Víctor Daniel PODBEREZSKI
- 134 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Swaminathan et. al. 1998] Swaminathan Jayashankar M., Smith Stephen F. y Sadeh Norman
M., 1998, Modeling Supply Chain Dynamics: A Multiagent Approach, Decision Sciences
Volume 29 Number 3 Summer 1998
[Fox 1992] Fox, Mark. S., 1992, Integrated Supply Chain Management, Technical Report,
Enterprise Integration Laboratory, University of Toronto.
[Fox et. al. 2000] Fox Mark S., Barbuceanu Mihai, y Teigen Rune, 2000, Agent-Oriented
Supply-Chain Management, 2000, The International Journal of Flexible Manufacturing
Systems, 12 (2000), pages 165–188
[Chang & Makatsoris 2001] Chang Yoon, Makatsoris Harris, 2001, Supply chain modeling
using simulation, En International Journal of Simulation - Systems, Science & Technology,
Vol. 2 No. 1
[Lau et. al., 2004] LAU Jason, Huang George Q y Mak K L, 2004, Agent-based modeling of
supply chains for distributed scheduling, IEEE Transactions on Systems, Man and
Cybernetics: Part A, Accepted for publication
[Rossetti & Hin-Tat Chan, 2003] Rossetti Manuel D. and Hin-Tat Chan, 2003 , A prototype
object-oriented supply Chain simulation framework, Proceedings of the 2003 Winter
Simulation Conference
[Wagner & Guralnik, 2002] Wagner Tom y Guralnik Valerie, Software Agents for Dynamic
Supply Chain Management, 2002
[Barbuceanu and Fox, 1996] M. Barbuceanu, M. S. Fox, (1996), Coordinating Multiple Agents
in the Supply Chain, Proceedings of Fifth Workshop on Enabling Technologies:
Infrastructure for Collaborative Enterprises, Stanford, CA, IEEE Computer Society Press,
pp 134-142.
[Shen et al 1998] Shen W., Xue D., y Norrie D.H., 1998, An Agent-Based Manufacturing
Enterprise Infrastructure for Distributed Integrated Intelligent Manufacturing Systems, En
Proceedings of PAAM'98, London, UK.
[Chen et al 1999] Chen Ye, Peng Yun, Finin Tim, Labrou yannis, Cost Scott, Chu BIll, Sun
Rongming y Willhelm Bob, 1999, A negotiation-based multi-agent system for supply chain
management, Workshop on supply chain management, Autonomous Agents '99, Seattle,
Wa, May 1999.
[Zacharia 1999] Zacharia G., 1999, Collaborative reputation mechanisms for online
communities, Tesis para master, Instituto de tecnología de Massachussets
[Esfandiari & Chandrasekharan 2001] Esfandiari B., Chandrasekharan S., 2001, On how
agents make friends: Mechanisms for trust acquisition, En Proceedings of the Fourth
Víctor Daniel PODBEREZSKI
- 135 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Workshop on Deception, Fraud and Trust in Agent Societies, Montreal Canada, páginas
27-34
[Schillo et al 2000] Schillo M., Funk P. y Rovatsos M., 2000, Using trust for detecting deceitful
agents in artificial societies, Applied Artificial Intelligence, Edición especial en Confianza,
engaño y fraude en sociedades de agentes
[Sen & Sajja 2002] Sen S. y Sajja N., 2002, Robustness of reputation-based trus: Booblean case.
En Proceedings of the first international joint conference on autonomous agents and
multiagent systems (AAMAS-02), Bologna Italia, Páginas 288-293
[Carter et al 2002] Carter J., Bitting E. y Ghorbani A, 2002, Reputation formalization for an
information-sharing multi-agent system, Computational Intelligence, 18(2), páginas 515534
[Sabater 2003] Sabater Mir Jordi, 2003, Trust and reputation for agent societies, Tesis Doctoral,
Universidad Autónoma de Barcelona
[Sabater & Sierra 2002a] Sabater Jordi , Sierra Carles , 2002, Reputation and social network
analysis in multi-agent systems. AAMAS 2002: 475-482
[Sabater & Sierra, 2002b] Sabater J., Sierra C., 2002, REGRET: a reputation model for
gregarious societies. En C. Castelfranchi y L. Johnson, editors, Proceedings of the 1st
International Joint Conference on Autonomous Agents and Multi-Agent Systems, paginas
475–482.
[Yu & Singh 2000] Yu, Bin. Singh, P. 2000. A Social Mechanism of Reputation Management in
Electronic Communities. Department of Computer Science. Nort Carolina State University.
[Yu & Singh 2001a] Yu, Bin. Singh, P. 2001a. An Evidential Model of Distributed Reputation
Management. Department of Computer Science. North Carolina State University.
[Yu & Singh 2001b] Yu, Bin. Singh, P. 2001b. Detecting Deception in Reputation Management.
Department of Computer Science. North Carolina State University.
[Pujol et al 2002a] Pujol, J.M., Sangüesa, R. and Delgado J.,2002, Distributed and Adaptable
Ranking Algorithm for Reputation and Relevance Extraction, En Proceedings of the 5th
Catalan Conference on Artificial Intelligence CCIA-02, pp 205-213, Castelló de la Plana,
Spain.
[Pujol et al 2002b] Pujol J.M., Sangüesa R. y Delgado J., Extracting Reputation in Multi Agent
System by means of Social Network Topology, en Proceedings of the First International
Joint Conference on Autonomous Agents and Multi-Agent Systems AAMAS-02. Vol. 1,
pp 467-474. Bologna, Italy.
Víctor Daniel PODBEREZSKI
- 136 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
[Pujol et al 2003] Pujol Josep M., Sangüesa Ramon y Delgado Jordi, 2003, A Ranking
Algorithm based on Graph Topology to Generate Reputation or Relevance, En Web
Intelligence (Ning Zhong, Jiming Liu, and Yiyu Yao eds.), ch 18, pp 382-395, Springer
Verlag, ISBN: 3-540-44384-3.
[Pujol & Sangüesa 2001] Pujol J.M., Sangüesa R., 2001, Reputation Measures based on Social
Networks metrics for Multi Agents Systems, en Proceedings of the 4th Catalan Conference
on Artificial Intelligence CCIA-01, pp 205-213, Barcelona, Spain.
[Carbo et al 2002] Carbo J., Molina J. y Davila J., 2002, Comparing predictions of sporas vs. a
fuzzy reputation agent systems. En 3rd International Conference on Fuzzy Sets and Fuzzy
Systems, Interlaken, páginas 147-153
[Huynh et al 2004a] Huynh Dong, Jennings Nicholas R., Shadbolt Nigel R., 2004, Developing
an Integrated Trust and Reputation Model for Open Multi-Agent Systems, School of
Electronics and Computer Science, University of Southampton, UK.
[Huynh et al 2004b] Huynh, T. D., Jennings, N. R. and Shadbolt, N., 2004, FIRE: an integrated
trust and reputation model for open multi-agent systems. En Proceedings of 16th European
Conference on Artificial Intelligence, pages pp. 18-22, Valencia, Spain.
Víctor Daniel PODBEREZSKI
- 137 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Apéndice D
Código Fuente
Se transcribe a continuación parte del código fuente generado para la realización del prototipo de
prueba. Se incluyen las partes más importantes: La arquitectura y la ontología.
D.1 Framework
D.1.1 Administrador
package Reputation.Framework;
import Reputation.ontology.*;
import java.util.*;
import jade.core.*;
import jade.core.behaviours.*;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 14:32:03
* To change this template use File | Settings | File Templates.
*/
enum Action {AGREGAR,PEDIR,INOFRMAR}
public abstract class Administrador extends WakerBehaviour {
Agente_Reputador reputador;
Agente_Administrador administrador;
ArrayList ResultList;
private Reputacion ResultRep;
protected Action action;
Medidor medidor;
public Administrador(Agent agent, long l) {
super(agent, l);
reputador = new Agente_Reputador();
reputador.setName(agent.getAID().getName());
reputador.setLocalName(agent.getAID().getName());
Víctor Daniel PODBEREZSKI
- 138 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
administrador = new Agente_Administrador();
administrador.setName(agent.getAID().getName());
administrador.setLocalName(agent.getAID().getName());
}
protected int tipoActividad = 0;
public void agregarReputacion(Reputacion reputacion) throws Exception
{
action = Action.AGREGAR;
// Verifico que conozco el tipo de contrato
ArrayList tContratos = obtenerTiposContratos();
if (!tContratos.contains(reputacion.getPor_la_interaccion().getDel_tipo()))
throw new Exception("agregarReputacion::Tipo de Contrato desconocido");
ArrayList<Tema> temas = obtenerTemas();
if (!temas.contains(reputacion.getSobre_el__tema()))
throw new Exception("agregarReputacion::Tema desconocido");
ArrayList<Metrica> metricas = obtenerMetricas();
if (!metricas.contains(reputacion.getMedido_en()))
throw new Exception("agregarReputacion::Metrica desconocido");
Recopilador recopilador = getRecopilador(reputacion.getSobre_el__tema());
recopilador.agregarReputacionTema(reputacion);
myAgent.addBehaviour(recopilador);
}
public void agregarReputacion(Fuente_de_Informacion fInformacion,
Agente_Reputado reputado,
Contrato contrato,
Tema tema,
Metrica metrica,
String Valor) throws Exception
{
action = Action.AGREGAR;
// Verifico que conozco el tipo de contrato
ArrayList tContratos = obtenerTiposContratos();
if (!tContratos.contains(contrato.getDel_tipo()))
throw new Exception("agregarReputacion::Tipo de Contrato desconocido");
ArrayList<Tema> temas = obtenerTemas();
if (!temas.contains(tema))
throw new Exception("agregarReputacion::Tema desconocido");
Víctor Daniel PODBEREZSKI
- 139 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
ArrayList<Metrica> metricas = obtenerMetricas();
if (!metricas.contains(metrica))
throw new Exception("agregarReputacion::Metrica desconocido");
Reputacion reputacion = new Reputacion();
reputacion.setSobre_el__tema(tema);
reputacion.setMedido_en(metrica);
reputacion.setPor_la_interaccion(contrato);
reputacion.setValor(Valor);
reputacion.setPor_medio_de(fInformacion);
reputacion.setEs_referido_a(reputado);
reputacion.setFue_reputado_por(reputador);
reputacion.setEs_Administrado_Por(administrador);
Recopilador recopilador = getRecopilador(tema);
recopilador.agregarReputacionTema(reputacion);
myAgent.addBehaviour(recopilador);
}
protected void onWake()
{
switch(action)
{
case PEDIR:
case INOFRMAR:
case AGREGAR:
break;
}
}
public void informarReputacion(Agente_Reputado reputado,
Tema tema,
Fuente_de_Informacion fInf) throws Exception {
action = Action.INOFRMAR;
ArrayList<Tema> temas = obtenerTemas();
if (!temas.contains(tema))
throw new Exception("informarReputacion::Tema desconocido - " + tema.getIdentificador());
ArrayList<Metrica> metricas = obtenerMetricas();
Recopilador recopilador = getRecopilador(tema);
ArrayList<Fuente_de_Informacion> fInformacion= new ArrayList<Fuente_de_Informacion>();
fInformacion.add(fInf);
Víctor Daniel PODBEREZSKI
- 140 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
recopilador.setResultRep(ResultRep);
recopilador.obtenerReputacionTema(reputado,fInformacion);
myAgent.addBehaviour(recopilador);
}
public void informarReputacion(Agente_Reputado reputado,
Tema tema) throws Exception {
action = Action.INOFRMAR;
ArrayList<Tema> temas = obtenerTemas();
if (!temas.contains(tema))
throw new Exception("informarReputacion::Tema desconocido - " + tema.getIdentificador());
Recopilador recopilador = getRecopilador(tema);
ArrayList<Fuente_de_Informacion> fInformacion=getFuentesDeInformacion(tema);
recopilador.setResultRep(ResultRep);
recopilador.obtenerReputacionTema(reputado,fInformacion);
myAgent.addBehaviour(recopilador);
}
public void pedirReputación(Agente_Reputado reputado,
Tipo_de_Contrato tContrato) throws Exception
{
action = Action.PEDIR;
// Verifico que conozco el tipo de contrato
ArrayList tContratos = obtenerTiposContratos();
if (!tContratos.contains(tContrato))
throw new Exception("pedirReputación::Tipo de Contrato desconocido");
//Obtengo el medidor correspondiente del tipo de contrato.
medidor = getMedidor(tContrato);
myAgent.addBehaviour(medidor);
medidor.setReputacion(ResultRep);
// Solicito el calculo de su reputacion.
medidor.obtenerReputacion(reputado);
}
abstract public ArrayList ObtenerTaxonomía(Tipo_de_Contrato tContrato);
abstract public ArrayList ObtenerTaxonomía(Tema tema) ;
abstract public ArrayList<Metrica> obtenerMetricas();
Víctor Daniel PODBEREZSKI
- 141 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
abstract public ArrayList<Tipo_de_Contrato> obtenerTiposContratos();
abstract public ArrayList<Tema> obtenerTemas();
abstract protected Medidor getMedidor(Tipo_de_Contrato tContratos);
abstract protected Recopilador getRecopilador(Tema tema);
protected abstract ArrayList<Fuente_de_Informacion> getFuentesDeInformacion(Tema tema);
public Reputacion getReputacion() {
return ResultRep;
}
public void setReputacion(Reputacion reputacion) {
ResultRep = reputacion;
}
}
D.1.2 Medidor
package Reputation.Framework;
import Reputation.ontology.*;
import java.util.*;
import jade.core.behaviours.WakerBehaviour;
import jade.core.Agent;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 15:11:08
* To change this template use File | Settings | File Templates.
*/
public abstract class Medidor extends WakerBehaviour {
protected Reputacion resultRep;
private ArrayList<Reputacion> Reputaciones;
protected Tipo_de_Contrato tipo_de_contrato = new Tipo_de_Contrato();
protected Metrica metrica;
protected Tema tema;
public Medidor(Agent agent, long l) {
super(agent, l);
}
protected abstract void calcularReputacion(ArrayList<Reputacion> Reputaciones);
public abstract ArrayList<Tema> obtenerTaxonomia();
protected void onWake()
Víctor Daniel PODBEREZSKI
- 142 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
{
calcularReputacion(Reputaciones);
Contrato contrato = new Contrato();
contrato.setDel_tipo(tipo_de_contrato);
resultRep.setPor_la_interaccion(contrato);
resultRep.setSobre_el__tema(tema);
Agente_Administrador administrador = new Agente_Administrador();
administrador.setIdentificador(myAgent.getLocalName());
administrador.setLocalName(myAgent.getLocalName());
administrador.setName(myAgent.getName());
resultRep.setEs_Administrado_Por(administrador);
Agente_Reputador reputador = new Agente_Reputador();
reputador.setIdentificador(myAgent.getLocalName());
reputador.setLocalName(myAgent.getLocalName());
reputador.setName(myAgent.getName());
resultRep.setFue_reputado_por(reputador);
}
public void obtenerReputacion(Agente_Reputado reputado)
{
ArrayList<Tema> Temas = obtenerTaxonomia();
Reputaciones = new ArrayList<Reputacion>();
for (Tema tema : Temas) {
Reputacion reputacion;
reputacion = new Reputacion();
reputacion.setSobre_el__tema(tema);
reputacion.setEs_referido_a(reputado);
Recopilador recopilador = getRecopilador(tema);
ArrayList<Fuente_de_Informacion> fInformacion = getFuentesDeInformacion(tema);
Reputaciones.add(reputacion);
recopilador.setResultRep(reputacion);
recopilador.obtenerReputacionTema(reputado,fInformacion);
resultRep.setMedido_en(metrica);
resultRep.setEs_referido_a(reputado);
myAgent.addBehaviour(recopilador);
}
}
public Reputacion getResult() {
return resultRep;
}
public void setResult(Reputacion resultRep) {
this.resultRep = resultRep;
Víctor Daniel PODBEREZSKI
- 143 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
public ArrayList<Reputacion> getReputaciones() {
return Reputaciones;
}
public void setReputaciones(ArrayList<Reputacion> reputaciones) {
this.Reputaciones = reputaciones;
}
public Reputacion getReputacion() {
return resultRep;
}
public void setReputacion(Reputacion reputacion) {
resultRep = reputacion;
}
protected abstract Recopilador getRecopiladorReply(Tema tema);
protected abstract Recopilador getRecopilador(Tema tema);
protected abstract ArrayList<Fuente_de_Informacion> getFuentesDeInformacion(Tema tema);
}
D.1.3 Recopilador
package Reputation.Framework;
import Reputation.ontology.*;
import java.util.*;
import jade.core.behaviours.WakerBehaviour;
import jade.core.Agent;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 15:20:06
* To change this template use File | Settings | File Templates.
*/
enum Recopilador_Action {AGREGAR,OBTENER}
public abstract class Recopilador extends WakerBehaviour {
protected Tema tema;
protected Metrica metrica;
Agente_Reputado reputado;
protected ArrayList<Reputacion> Reputaciones;
Víctor Daniel PODBEREZSKI
- 144 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
protected Reputacion resultRep;
protected Recopilador_Action action;
public Recopilador(Agent agent, long l) {
super(agent, l);
}
protected void onWake()
{
switch(action)
{
case OBTENER:
depurar(Reputaciones);
for (Reputacion reputacion : Reputaciones)
{
if (!metrica.equals(reputacion.getMedido_en())) {
Transformador transformador = getTransformador(reputacion.getMedido_en(), metrica);
transformador.Transformar(reputacion);
}
}
calcularReputacion(Reputaciones);
resultRep.setMedido_en(metrica);
resultRep.setEs_referido_a(reputado);
break;
case AGREGAR:
break;
}
}
public void obtenerReputacionTema(Agente_Reputado reputado,
ArrayList<Fuente_de_Informacion> FuentesInformacion,
Metrica metrica)
{
this.metrica = metrica;
obtenerReputacionTema(reputado,FuentesInformacion);
}
public void obtenerReputacionTema(Agente_Reputado reputado,
ArrayList<Fuente_de_Informacion> FuentesInformacion)
{
action = Recopilador_Action.OBTENER;
Difusor difusor = getDifusor();
myAgent.addBehaviour(difusor);
Reputaciones = new ArrayList<Reputacion>();
for (Fuente_de_Informacion fInformacion : FuentesInformacion) {
ArrayList<Agente_Administrador> Administradores =
difusor.obtenerAdministradoresConsulta(tema,fInformacion);
for (Agente_Administrador administrador : Administradores) {
Contacto contacto = getContacto(fInformacion);
contacto.setReputaciones(Reputaciones);
Víctor Daniel PODBEREZSKI
- 145 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
contacto.consultarReputacion(administrador,tema,reputado);
myAgent.addBehaviour(contacto);
}
}
resultRep.setEs_referido_a(reputado);
}
protected abstract Reputacion nivelar(Agente_Reputado reputado,
Reputacion reputacion);
protected abstract ArrayList depurar(ArrayList Reputaciones);
protected abstract void actualizarApreciaciones(Agente_Reputado reputado,
String Valor,
ArrayList Reputaciones);
public void agregarReputacionTema(Reputacion reputacion)
{
action = Recopilador_Action.AGREGAR;
Difusor difusor = getDifusor();
myAgent.addBehaviour(difusor);
ArrayList<Agente_Administrador> Administradores =
difusor.obtenerAdministradoresInformacion(reputacion.getSobre_el__tema());
for (Agente_Administrador administrador : Administradores) {
ArrayList<Metrica> metricas = difusor.obtenerMetricasAdministrador(administrador,tema);
if (metricas.size()==1) {
Reputacion rep = new Reputacion();
rep.setEs_Administrado_Por(administrador);
rep.setEs_referido_a(reputacion.getEs_referido_a());
rep.setFue_reputado_por(reputacion.getFue_reputado_por());
rep.setMedido_en(reputacion.getMedido_en());
rep.setPor_la_interaccion(reputacion.getPor_la_interaccion());
rep.setPor_medio_de(reputacion.getPor_medio_de());
rep.setSobre_el__tema(reputacion.getSobre_el__tema());
rep.setValor(reputacion.getValor());
Metrica destino = metricas.get(0);
if (!destino.equals(rep.getMedido_en())) {
Transformador transformador = getTransformador(rep.getMedido_en(), destino);
transformador.Transformar(rep);
}
Contacto contacto = getContacto(rep.getPor_medio_de());
contacto.informarReputacion(rep);
Víctor Daniel PODBEREZSKI
- 146 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
myAgent.addBehaviour(contacto);
}
}
}
protected abstract void calcularReputacion(ArrayList<Reputacion> Reputaciones);
protected abstract boolean verificarConocimientoReputacionContrato(Tema tema,
Agente_Reputador reputador,
Agente_Reputado reputado,
Fuente_de_Informacion fInformacion,
Contrato contrato);
public Reputacion getResultRep() {
return resultRep;
}
public void setResultRep(Reputacion resultRep) {
this.resultRep = resultRep;
}
public abstract Difusor getDifusor();
public abstract Contacto getContacto(Fuente_de_Informacion fInformacion);
public abstract Transformador getTransformador(Metrica Origen, Metrica Destino);
}
D.1.4 Contacto
package Reputation.Framework;
import Reputation.ontology.*;
import Reputation.ReputationAgent;
import java.util.*;
import java.text.SimpleDateFormat;
import jade.core.behaviours.WakerBehaviour;
import jade.core.Agent;
import jade.core.AID;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
import jade.content.ContentManager;
import jade.content.ContentElement;
import jade.content.lang.Codec;
import jade.content.lang.sl.SLCodec;
import jade.content.onto.Ontology;
import jade.content.onto.OntologyException;
Víctor Daniel PODBEREZSKI
- 147 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
import jade.domain.FIPAAgentManagement.*;
import static jade.domain.AMSService.search;
import jade.domain.FIPAException;
import jade.domain.DFService;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 17:46:51
* To change this template use File | Settings | File Templates.
*/
enum Contacto_Action {INFORMAR,CONSULTAR,UNSET}
public abstract class Contacto extends jade.core.behaviours.WakerBehaviour {
private boolean finish=false;
protected ArrayList<Reputacion> Reputaciones;
protected String conversationId = null;
protected Contacto_Action action = null;
Agente_Administrador administrador = null;
Tema tema = null;
Agente_Reputado reputado = null;
public Contacto(Agent agent, long l) {
super(agent,l);
action = Contacto_Action.UNSET;
}
public void consultarReputacion(Agente_Administrador administrador,
Tema tema,
Agente_Reputado reputado)
{
this.administrador = administrador;
this.tema = tema;
this.reputado = reputado;
Consultar_Step1();
action = Contacto_Action.CONSULTAR;
}
protected abstract void obtenerReputacionLocal(Tema tema, Agente_Reputado reputado);
public boolean informarReputacion(Reputacion reputacion)
{
action = Contacto_Action.INFORMAR;
if (reputacion.getEs_Administrado_Por().getLocalName().equals(myAgent.getLocalName()))
informarReputacionLocal(reputacion);
else
Víctor Daniel PODBEREZSKI
- 148 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
{
Calendar now = Calendar.getInstance();
long milli = now.getTimeInMillis();
ContentManager manager = myAgent.getContentManager();
Ontology reputationOntology = ReputationOntology.getInstance();
manager.registerOntology(reputationOntology);
Codec language = new SLCodec();
manager.registerLanguage(language);
ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
msg.setConversationId(myAgent.getLocalName() + Long.toString(milli));
msg.setLanguage(language.getName());
msg.setOntology(reputationOntology.getName());
Envelope env = new Envelope();
env.setDate(now.getTime());
env.setFrom(myAgent.getAID());
msg.setEnvelope(env);
AID aid = new AID( administrador.getLocalName(), AID.ISLOCALNAME);
msg.addReceiver(aid);
try {
manager.fillContent(msg, reputacion);
myAgent.send(msg);
}
catch (Codec.CodecException ce) {
ce.printStackTrace();
}
catch (OntologyException oe) {
oe.printStackTrace();
}
}
finish = true;
return true;
}
protected abstract boolean informarReputacionLocal(Reputacion reputacion);
public abstract ArrayList solicitarMetricas(Agente_Administrador administrador, Tema tema);
public abstract ArrayList solicitarMetricas(Agente_Administrador administrador);
public abstract ArrayList solicitarTipoContratos(Agente_Administrador administrador);
Víctor Daniel PODBEREZSKI
- 149 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
public abstract ArrayList solicitarTemas(Agente_Administrador administrador);
public ArrayList<Reputacion> getReputaciones() {
return Reputaciones;
}
public void setReputaciones(ArrayList<Reputacion> reputaciones) {
Reputaciones = reputaciones;
}
protected void onWake() {
if (action == Contacto_Action.CONSULTAR && !finish)
{
Consultar_Step2();
}
}
private void Consultar_Step1() {
if (administrador.getLocalName().equals(myAgent.getLocalName()))
{
System.out.println("Contacto::Informacion local");
obtenerReputacionLocal(tema,reputado);
finish = true;
}
else
{
send ++;
Reputacion rep = new Reputacion();
rep.setSobre_el__tema(tema);
rep.setEs_referido_a(reputado);
rep.setEs_Administrado_Por(administrador);
Unidad unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Numerica escala = new Escala_Numerica();
escala.setMaximo(99999999);
escala.setMinimo(1);
escala.setSalto(1);
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
Metrica metrica = new Metrica();
metrica.setIdentificador("Valor");
metrica.setContiene_escala(escala);
Agente_Reputador reputador = new Agente_Reputador();
reputador.setName(myAgent.getAID().toString());
reputador.setIdentificador(myAgent.getAID().toString());
Víctor Daniel PODBEREZSKI
- 150 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Observacion_Directa directa = new Observacion_Directa();
directa.setIdentificador("1");
Calendar now = Calendar.getInstance();
Tipo_de_Contrato tipo_de_contrato = new Tipo_de_Contrato();
tipo_de_contrato.setIdentificador("1");
Contrato contrato = new Contrato();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
String fecha = sdf.format(now.getTime());
contrato.setFecha(fecha);
contrato.setIdentificador("");
contrato.setDel_tipo(tipo_de_contrato);
contrato.setDescripcion("");
rep.setValor("");
rep.setMedido_en(metrica);
rep.setFue_reputado_por(reputador);
rep.setPor_medio_de(directa);
rep.setPor_la_interaccion(contrato);
long milli = now.getTimeInMillis();
ContentManager manager = myAgent.getContentManager();
Ontology reputationOntology = ReputationOntology.getInstance();
manager.registerOntology(reputationOntology);
Codec language = new SLCodec();
manager.registerLanguage(language);
ACLMessage msg = new ACLMessage(ACLMessage.REQUEST);
conversationId = myAgent.getLocalName() + Long.toString(milli);
msg.setConversationId(conversationId);
ReputationAgent repAgent = (ReputationAgent) myAgent;
repAgent.convPrivadas.add(conversationId);
msg.setLanguage(language.getName());
msg.setOntology(reputationOntology.getName());
Envelope env = new Envelope();
env.setDate(now.getTime());
env.setFrom(myAgent.getAID());
msg.setEnvelope(env);
try {
AID aid = new AID( administrador.getLocalName(), AID.ISLOCALNAME);
msg.addReceiver(aid);
Víctor Daniel PODBEREZSKI
- 151 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
manager.fillContent(msg, rep);
myAgent.send(msg);
}
catch (Codec.CodecException ce) {
ce.printStackTrace();
}
catch (OntologyException oe) {
oe.printStackTrace();
}
}
}
private void Consultar_Step2() {
MessageTemplate template = MessageTemplate.MatchConversationId(conversationId);
ACLMessage msg = myAgent.receive(template);
if (msg!=null)
{
ContentManager manager = myAgent.getContentManager();
Codec language = new SLCodec();
manager.registerLanguage(language);
Ontology ontology = ReputationOntology.getInstance();
manager.registerOntology(ontology);
ContentElement ce;
ce = null;
try {
ce =manager.extractContent(msg);
} catch (Codec.CodecException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (OntologyException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
if (ce instanceof Reputacion) {
Reputacion reputacion = (Reputacion) ce;
Reputaciones.add(reputacion);
}
ReputationAgent repAgent = (ReputationAgent) myAgent;
repAgent.convPrivadas.remove(conversationId);
finish=true;
}
}
}
D.1.5 Difusor
package Reputation.Framework;
Víctor Daniel PODBEREZSKI
- 152 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
import Reputation.ontology.*;
import java.util.*;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 17:36:55
* To change this template use File | Settings | File Templates.
*/
public abstract class Difusor extends jade.core.behaviours.OneShotBehaviour{
public void action() {
}
public abstract ArrayList<Agente_Administrador> obtenerAdministradoresConsulta(Tema tema,
Fuente_de_Informacion fInformacion);
public abstract ArrayList<Agente_Administrador> obtenerAdministradoresConsulta(Tema tema);
public abstract ArrayList<Metrica> obtenerMetricasAdministrador(Agente_Administrador administrador, Tema
tema);
public abstract ArrayList<Metrica> obtenerMetricasAdministrador(Agente_Administrador administrador);
public abstract ArrayList<Agente_Administrador> obtenerAdministradoresInformacion(Tema tema, ArrayList
FuentesInformacion);
public abstract ArrayList<Agente_Administrador> obtenerAdministradoresInformacion(Tema tema);
}
D.1.6 Transformador
package Reputation.Framework;
import Reputation.ontology.*;
import java.util.*;
/*
* Created by IntelliJ IDEA.
* User: Victor
* Date: 07/04/2007
* Time: 18:00:02
* To change this template use File | Settings | File Templates.
*/
public abstract class Transformador {
protected Metrica origen;
protected Metrica destino;
protected Transformador(Metrica origen, Metrica destino)
Víctor Daniel PODBEREZSKI
- 153 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
{
this.origen = origen;
this.destino = destino;
}
public abstract Reputacion Transformar(Reputacion reputacion);
}
D.1.7 Timers
package Reputation.Framework;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 13/07/2007
* Time: 11:57:31 PM
* To change this template use File | Settings | File Templates.
*/
public class Timers {
private static long base = 58000;
private static long administradorLapso = base + 3900;
private static long medidorLapso = base + 2500;
private static long recopiladorLapso = base + 900;
private static long contactoLapso = base;
private static long baseReply = 1900;
private static long administradorReplyLapso = baseReply + 900;
private static long recopiladorReplyLapso = baseReply + 300;
private static long contactoReplyLapso = baseReply;
private static long vencimiento = 1000000;
public static long getAdministradorLapso() {
return administradorLapso;
}
public static long getMedidorLapso() {
return medidorLapso;
}
public static long getRecopiladorLapso() {
return recopiladorLapso;
}
public static long getContactoLapso() {
return contactoLapso;
}
public static long getAdministradorReplyLapso() {
return administradorReplyLapso;
}
Víctor Daniel PODBEREZSKI
- 154 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
public static long getRecopiladorReplyLapso() {
return recopiladorReplyLapso;
}
public static long getContactoReplyLapso() {
return contactoReplyLapso;
}
public static long getVencimiento() {
return vencimiento;
}
}
D.2 Ontología
D.2.1 Agente
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Agente
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Agente extends AID{
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
}
}
D.2.2 Agente Administrador
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
Víctor Daniel PODBEREZSKI
- 155 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
* Protege name: Agente Administrador
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Agente_Administrador extends Agente_de_reputacion{
// public AID aid;
}
D.2.3 Agente de Reputación
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Agente de reputacion
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Agente_de_reputacion extends Agente{
/*
* Protege name: Conoce los tipos de contrato
*/
private List conoce_los_tipos_de_contrato = new ArrayList();
public void addConoce_los_tipos_de_contrato(Tipo_de_Contrato elem) {
List oldList = this.conoce_los_tipos_de_contrato;
conoce_los_tipos_de_contrato.add(elem);
}
public boolean removeConoce_los_tipos_de_contrato(Tipo_de_Contrato elem) {
List oldList = this.conoce_los_tipos_de_contrato;
boolean result = conoce_los_tipos_de_contrato.remove(elem);
return result;
}
public void clearAllConoce_los_tipos_de_contrato() {
List oldList = this.conoce_los_tipos_de_contrato;
conoce_los_tipos_de_contrato.clear();
}
public Iterator getAllConoce_los_tipos_de_contrato() {return conoce_los_tipos_de_contrato.iterator(); }
public List getConoce_los_tipos_de_contrato() {return conoce_los_tipos_de_contrato; }
public void setConoce_los_tipos_de_contrato(List l) {conoce_los_tipos_de_contrato = l; }
/*
* Protege name: Conoce los temas
*/
private List conoce_los_temas = new ArrayList();
public void addConoce_los_temas(Tema elem) {
List oldList = this.conoce_los_temas;
conoce_los_temas.add(elem);
}
public boolean removeConoce_los_temas(Tema elem) {
Víctor Daniel PODBEREZSKI
- 156 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
List oldList = this.conoce_los_temas;
boolean result = conoce_los_temas.remove(elem);
return result;
}
public void clearAllConoce_los_temas() {
List oldList = this.conoce_los_temas;
conoce_los_temas.clear();
}
public Iterator getAllConoce_los_temas() {return conoce_los_temas.iterator(); }
public List getConoce_los_temas() {return conoce_los_temas; }
public void setConoce_los_temas(List l) {conoce_los_temas = l; }
/*
* Protege name: Conoce las metricas
*/
private List conoce_las_metricas = new ArrayList();
public void addConoce_las_metricas(Metrica elem) {
List oldList = this.conoce_las_metricas;
conoce_las_metricas.add(elem);
}
public boolean removeConoce_las_metricas(Metrica elem) {
List oldList = this.conoce_las_metricas;
boolean result = conoce_las_metricas.remove(elem);
return result;
}
public void clearAllConoce_las_metricas() {
List oldList = this.conoce_las_metricas;
conoce_las_metricas.clear();
}
public Iterator getAllConoce_las_metricas() {return conoce_las_metricas.iterator(); }
public List getConoce_las_metricas() {return conoce_las_metricas; }
public void setConoce_las_metricas(List l) {conoce_las_metricas = l; }
}
D.2.4 Agente Reputado
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Agente Reputado
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Agente_Reputado extends Agente{
}
Víctor Daniel PODBEREZSKI
- 157 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.2.5 Agente Reputador
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Agente Reputador
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Agente_Reputador extends Agente_de_reputacion{
}
D.2.6 Contrato
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Contrato
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Contrato implements Concept {
/*
* Protege name: Descripcion
*/
private String descripcion;
public void setDescripcion(String value) {
this.descripcion=value;
}
public String getDescripcion() {
return this.descripcion;
}
/*
* Protege name: Fecha
*/
private String fecha;
public void setFecha(String value) {
this.fecha=value;
}
public String getFecha() {
return this.fecha;
Víctor Daniel PODBEREZSKI
- 158 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
}
/*
* Protege name: Del tipo
*/
private Tipo_de_Contrato del_tipo;
public void setDel_tipo(Tipo_de_Contrato value) {
this.del_tipo=value;
}
public Tipo_de_Contrato getDel_tipo() {
return this.del_tipo;
}
}
D.2.7 Escala
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Escala
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Escala implements Concept {
/*
* Protege name: Tipo
*/
private String tipo;
public void setTipo(String value) {
this.tipo=value;
}
public String getTipo() {
return this.tipo;
}
}
Víctor Daniel PODBEREZSKI
- 159 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.2.8 Escala categórica
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Escala Categorica
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Escala_Categorica extends Escala{
/*
* Protege name: Valores permitidos
*/
private List valores_permitidos = new ArrayList();
public void addValores_permitidos(String elem) {
List oldList = this.valores_permitidos;
valores_permitidos.add(elem);
}
public boolean removeValores_permitidos(String elem) {
List oldList = this.valores_permitidos;
boolean result = valores_permitidos.remove(elem);
return result;
}
public void clearAllValores_permitidos() {
List oldList = this.valores_permitidos;
valores_permitidos.clear();
}
public Iterator getAllValores_permitidos() {return valores_permitidos.iterator(); }
public List getValores_permitidos() {return valores_permitidos; }
public void setValores_permitidos(List l) {valores_permitidos = l; }
}
D.2.9 Escala numérica
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Escala Numerica
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Escala_Numerica extends Escala{
Víctor Daniel PODBEREZSKI
- 160 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
/*
* Protege name: Salto
*/
private float salto;
public void setSalto(float value) {
this.salto=value;
}
public float getSalto() {
return this.salto;
}
/*
* Protege name: Maximo
*/
private int maximo;
public void setMaximo(int value) {
this.maximo=value;
}
public int getMaximo() {
return this.maximo;
}
/*
* Protege name: Tipo escala
*/
private String tipo_escala;
public void setTipo_escala(String value) {
this.tipo_escala=value;
}
public String getTipo_escala() {
return this.tipo_escala;
}
/*
* Protege name: Utiliza la unidad
*/
private Unidad utiliza_la_unidad;
public void setUtiliza_la_unidad(Unidad value) {
this.utiliza_la_unidad=value;
}
public Unidad getUtiliza_la_unidad() {
return this.utiliza_la_unidad;
}
/*
* Protege name: Minimo
*/
private int minimo;
public void setMinimo(int value) {
this.minimo=value;
}
public int getMinimo() {
return this.minimo;
}
Víctor Daniel PODBEREZSKI
- 161 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
D.2.10 Fuente de información
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Fuente de Informacion
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Fuente_de_Informacion implements Concept {
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
}
}
D.2.11 Fuente primaria
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Fuente Primaria
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Fuente_Primaria extends Fuente_de_Informacion{
public Fuente_Primaria()
{
this.setIdentificador("1-2");
}
}
Víctor Daniel PODBEREZSKI
- 162 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.2.12 Fuente secundaria
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Fuente Secundaria
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Fuente_Secundaria extends Fuente_de_Informacion{
public Fuente_Secundaria()
{
this.setIdentificador("3-4-5");
}
}
D.2.13 Información propagada
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Informacion propagada
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Informacion_propagada extends Fuente_Secundaria{
public Informacion_propagada()
{
this.setIdentificador("3");
}
}
D.2.14 Información sociológica
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Informacion Sociologica
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
Víctor Daniel PODBEREZSKI
- 163 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
public class Informacion_Sociologica extends Fuente_Secundaria{
public Informacion_Sociologica()
{
setIdentificador("5");
}
}
D.2.15 Interacción directa
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Interaccion Directa
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Interaccion_Directa extends Fuente_Primaria{
public Interaccion_Directa()
{
this.setIdentificador("1");
}
}
D.2.16 Métrica
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Metrica
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Metrica implements Concept {
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
Víctor Daniel PODBEREZSKI
- 164 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
/*
* Protege name: Contiene escala
*/
private Escala contiene_escala;
public void setContiene_escala(Escala value) {
this.contiene_escala=value;
}
public Escala getContiene_escala() {
return this.contiene_escala;
}
public boolean equals(Object o)
{
return (o != null) && (o instanceof Metrica) &&
(identificador.equals(((Metrica)o).identificador));
}
public int hashCode() {
return identificador.hashCode();
}
}
D.2.17 Observación directa
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Observacion Directa
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Observacion_Directa extends Fuente_Primaria{
public Observacion_Directa() {
this.setIdentificador("2");
}
}
D.2.18 Prejuicio
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
Víctor Daniel PODBEREZSKI
- 165 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
import jade.core.*;
/*
* Protege name: Prejuicio
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Prejuicio extends Fuente_Secundaria{
public Prejuicio()
{
setIdentificador("4");
}
}
D.2.19 Reputación
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Reputacion
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Reputacion implements Predicate {
/*
* Protege name: Sobre el tema
*/
private Tema sobre_el__tema;
public void setSobre_el__tema(Tema value) {
this.sobre_el__tema=value;
}
public Tema getSobre_el__tema() {
return this.sobre_el__tema;
}
/*
* Protege name: Es referido a
*/
private Agente_Reputado es_referido_a;
public void setEs_referido_a(Agente_Reputado value) {
this.es_referido_a=value;
}
public Agente_Reputado getEs_referido_a() {
return this.es_referido_a;
}
/*
* Protege name: Valor
Víctor Daniel PODBEREZSKI
- 166 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
*/
private String valor;
public void setValor(String value) {
this.valor=value;
}
public String getValor() {
return this.valor;
}
/*
* Protege name: Es Administrado Por
*/
private Agente_Administrador es_Administrado_Por;
public void setEs_Administrado_Por(Agente_Administrador value) {
this.es_Administrado_Por=value;
}
public Agente_Administrador getEs_Administrado_Por() {
return this.es_Administrado_Por;
}
/*
* Protege name: Por la interaccion
*/
private Contrato por_la_interaccion;
public void setPor_la_interaccion(Contrato value) {
this.por_la_interaccion=value;
}
public Contrato getPor_la_interaccion() {
return this.por_la_interaccion;
}
/*
* Protege name: Fue reputado por
*/
private Agente_Reputador fue_reputado_por;
public void setFue_reputado_por(Agente_Reputador value) {
this.fue_reputado_por=value;
}
public Agente_Reputador getFue_reputado_por() {
return this.fue_reputado_por;
}
/*
* Protege name: Por medio de
*/
private Fuente_de_Informacion por_medio_de;
public void setPor_medio_de(Fuente_de_Informacion value) {
this.por_medio_de=value;
}
public Fuente_de_Informacion getPor_medio_de() {
return this.por_medio_de;
}
/*
* Protege name: Medido en
Víctor Daniel PODBEREZSKI
- 167 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
*/
private Metrica medido_en;
public void setMedido_en(Metrica value) {
this.medido_en=value;
}
public Metrica getMedido_en() {
return this.medido_en;
}
}
D.2.20 Tema
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Tema
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Tema implements Concept {
/*
* Protege name: Forma parte de
*/
private List forma_parte_de = new ArrayList();
public void addForma_parte_de(Tema elem) {
List oldList = this.forma_parte_de;
forma_parte_de.add(elem);
}
public boolean removeForma_parte_de(Tema elem) {
List oldList = this.forma_parte_de;
boolean result = forma_parte_de.remove(elem);
return result;
}
public void clearAllForma_parte_de() {
List oldList = this.forma_parte_de;
forma_parte_de.clear();
}
public Iterator getAllForma_parte_de() {return forma_parte_de.iterator(); }
public List getForma_parte_de() {return forma_parte_de; }
public void setForma_parte_de(List l) {forma_parte_de = l; }
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
Víctor Daniel PODBEREZSKI
- 168 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
public String getIdentificador() {
return this.identificador;
}
/*
* Protege name: contiene a
*/
private List contiene_a = new ArrayList();
public void addContiene_a(Tema elem) {
List oldList = this.contiene_a;
contiene_a.add(elem);
}
public boolean removeContiene_a(Tema elem) {
List oldList = this.contiene_a;
boolean result = contiene_a.remove(elem);
return result;
}
public void clearAllContiene_a() {
List oldList = this.contiene_a;
contiene_a.clear();
}
public Iterator getAllContiene_a() {return contiene_a.iterator(); }
public List getContiene_a() {return contiene_a; }
public void setContiene_a(List l) {contiene_a = l; }
public boolean equals(Object o)
{
return (o != null) && (o instanceof Tema) &&
(identificador.equals(((Tema)o).identificador));
}
public int hashCode() {
return identificador.hashCode();
}
}
D.2.21 Tipo de contrato
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Tipo de Contrato
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Tipo_de_Contrato implements Concept {
Víctor Daniel PODBEREZSKI
- 169 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
/*
* Protege name: Identificador
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
}
public boolean equals(Object o)
{
return (o != null) && (o instanceof Tipo_de_Contrato) &&
(identificador.equals(((Tipo_de_Contrato)o).identificador));
}
public int hashCode() {
return identificador.hashCode();
}
}
D.2.22 Unidad
package Reputation.ontology;
import jade.content.*;
import jade.util.leap.*;
import jade.core.*;
/*
* Protege name: Unidad
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class Unidad implements Concept {
/*
* Protege name: Descripcion
*/
private String descripcion;
public void setDescripcion(String value) {
this.descripcion=value;
}
public String getDescripcion() {
return this.descripcion;
}
/*
* Protege name: Identificador
Víctor Daniel PODBEREZSKI
- 170 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
*/
private String identificador;
public void setIdentificador(String value) {
this.identificador=value;
}
public String getIdentificador() {
return this.identificador;
}
}
D.2.23 ReputationOntology
// file: ReputationOntology.java generated by ontology bean generator. DO NOT EDIT, UNLESS YOU ARE
REALLY SURE WHAT YOU ARE DOING!
package Reputation.ontology;
import jade.content.onto.*;
import jade.content.schema.*;
import jade.util.leap.HashMap;
import jade.content.lang.Codec;
import jade.core.CaseInsensitiveString;
/* file: ReputationOntology.java
* @author ontology bean generator
* @version 2007/04/5, 11:31:24
*/
public class ReputationOntology extends jade.content.onto.Ontology {
//NAME
public static final String ONTOLOGY_NAME = "Reputation";
// The singleton instance of this ontology
private static ReflectiveIntrospector introspect = new ReflectiveIntrospector();
private static Ontology theInstance = new ReputationOntology();
public static Ontology getInstance() {
return theInstance;
}
// VOCABULARY
public static final String REPUTACION_MEDIDO_EN="Medido_en";
public static final String REPUTACION_POR_MEDIO_DE="Por_medio_de";
public static final String REPUTACION_FUE_REPUTADO_POR="Fue_reputado_por";
public static final String REPUTACION_POR_LA_INTERACCION="Por_la_interaccion";
public static final String REPUTACION_ES_ADMINISTRADO_POR="Es_Administrado_Por";
public static final String REPUTACION_VALOR="Valor";
public static final String REPUTACION_ES_REFERIDO_A="Es_referido_a";
public static final String REPUTACION_SOBRE_EL__TEMA="Sobre_el__tema";
public static final String REPUTACION="Reputacion";
public static final String AGENTE_REPUTADO="Agente_Reputado";
public static final String AGENTE_DE_REPUTACION_CONOCE_LAS_METRICAS="Conoce_las_metricas";
public static final String AGENTE_DE_REPUTACION_CONOCE_LOS_TEMAS="Conoce_los_temas";
public static final String
AGENTE_DE_REPUTACION_CONOCE_LOS_TIPOS_DE_CONTRATO="Conoce_los_tipos_de_contrato";
public static final String AGENTE_DE_REPUTACION="Agente_de_reputacion";
Víctor Daniel PODBEREZSKI
- 171 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
public static final String AGENTE_REPUTADOR="Agente_Reputador";
public static final String AGENTE_IDENTIFICADOR="Identificador";
public static final String AGENTE="Agente";
public static final String AGENTE_ADMINISTRADOR="Agente_Administrador";
public static final String
INTERCAMBIAR_REPUTACION_REPUTACION_INTERCAMBIADA="Reputacion_Intercambiada";
public static final String INTERCAMBIAR_REPUTACION_DESTINATARIO="Destinatario";
public static final String INTERCAMBIAR_REPUTACION="Intercambiar_Reputacion";
public static final String INFORMACION_SOCIOLOGICA="Informacion_Sociologica";
public static final String FUENTE_PRIMARIA="Fuente_Primaria";
public static final String TIPO_DE_CONTRATO_IDENTIFICADOR="Identificador";
public static final String TIPO_DE_CONTRATO="Tipo_de_Contrato";
public static final String FUENTE_SECUNDARIA="Fuente_Secundaria";
public static final String PREJUICIO="Prejuicio";
public static final String INFORMACION_PROPAGADA="Informacion_propagada";
public static final String TEMA_CONTIENE_A="contiene_a";
public static final String TEMA_IDENTIFICADOR="Identificador";
public static final String TEMA_FORMA_PARTE_DE="Forma_parte_de";
public static final String TEMA="Tema";
public static final String INTERACCION_DIRECTA="Interaccion_Directa";
public static final String ESCALA_CATEGORICA_VALORES_PERMITIDOS="Valores_permitidos";
public static final String ESCALA_CATEGORICA="Escala_Categorica";
public static final String CONTRATO_DEL_TIPO="Del_tipo";
public static final String CONTRATO_IDENTIFICADOR="Identificador";
public static final String CONTRATO_FECHA="Fecha";
public static final String CONTRATO_DESCRIPCION="Descripcion";
public static final String CONTRATO="Contrato";
public static final String OBSERVACION_DIRECTA="Observacion_Directa";
public static final String ESCALA_TIPO="Tipo";
public static final String ESCALA="Escala";
public static final String UNIDAD_IDENTIFICADOR="Identificador";
public static final String UNIDAD_DESCRIPCION="Descripcion";
public static final String UNIDAD="Unidad";
public static final String FUENTE_DE_INFORMACION_IDENTIFICADOR="Identificador";
public static final String FUENTE_DE_INFORMACION="Fuente_de_Informacion";
public static final String METRICA_CONTIENE_ESCALA="Contiene_escala";
public static final String METRICA_IDENTIFICADOR="Identificador";
public static final String METRICA="Metrica";
public static final String ESCALA_NUMERICA_MINIMO="Minimo";
public static final String ESCALA_NUMERICA_UTILIZA_LA_UNIDAD="Utiliza_la_unidad";
public static final String ESCALA_NUMERICA_TIPO_ESCALA="Tipo_escala";
public static final String ESCALA_NUMERICA_MAXIMO="Maximo";
public static final String ESCALA_NUMERICA_SALTO="Salto";
public static final String ESCALA_NUMERICA="Escala_Numerica";
/*
* Constructor
*/
private ReputationOntology(){
super(ONTOLOGY_NAME, BasicOntology.getInstance());
try {
// adding Concept(s)
ConceptSchema escala_NumericaSchema = new ConceptSchema(ESCALA_NUMERICA);
add(escala_NumericaSchema, Reputation.ontology.Escala_Numerica.class);
Víctor Daniel PODBEREZSKI
- 172 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
ConceptSchema metricaSchema = new ConceptSchema(METRICA);
add(metricaSchema, Reputation.ontology.Metrica.class);
ConceptSchema fuente_de_InformacionSchema = new ConceptSchema(FUENTE_DE_INFORMACION);
add(fuente_de_InformacionSchema, Reputation.ontology.Fuente_de_Informacion.class);
ConceptSchema unidadSchema = new ConceptSchema(UNIDAD);
add(unidadSchema, Reputation.ontology.Unidad.class);
ConceptSchema escalaSchema = new ConceptSchema(ESCALA);
add(escalaSchema, Reputation.ontology.Escala.class);
ConceptSchema observacion_DirectaSchema = new ConceptSchema(OBSERVACION_DIRECTA);
add(observacion_DirectaSchema, Reputation.ontology.Observacion_Directa.class);
ConceptSchema contratoSchema = new ConceptSchema(CONTRATO);
add(contratoSchema, Reputation.ontology.Contrato.class);
ConceptSchema escala_CategoricaSchema = new ConceptSchema(ESCALA_CATEGORICA);
add(escala_CategoricaSchema, Reputation.ontology.Escala_Categorica.class);
ConceptSchema interaccion_DirectaSchema = new ConceptSchema(INTERACCION_DIRECTA);
add(interaccion_DirectaSchema, Reputation.ontology.Interaccion_Directa.class);
ConceptSchema temaSchema = new ConceptSchema(TEMA);
add(temaSchema, Reputation.ontology.Tema.class);
ConceptSchema informacion_propagadaSchema = new ConceptSchema(INFORMACION_PROPAGADA);
add(informacion_propagadaSchema, Reputation.ontology.Informacion_propagada.class);
ConceptSchema prejuicioSchema = new ConceptSchema(PREJUICIO);
add(prejuicioSchema, Reputation.ontology.Prejuicio.class);
ConceptSchema fuente_SecundariaSchema = new ConceptSchema(FUENTE_SECUNDARIA);
add(fuente_SecundariaSchema, Reputation.ontology.Fuente_Secundaria.class);
ConceptSchema tipo_de_ContratoSchema = new ConceptSchema(TIPO_DE_CONTRATO);
add(tipo_de_ContratoSchema, Reputation.ontology.Tipo_de_Contrato.class);
ConceptSchema fuente_PrimariaSchema = new ConceptSchema(FUENTE_PRIMARIA);
add(fuente_PrimariaSchema, Reputation.ontology.Fuente_Primaria.class);
ConceptSchema informacion_SociologicaSchema = new ConceptSchema(INFORMACION_SOCIOLOGICA);
add(informacion_SociologicaSchema, Reputation.ontology.Informacion_Sociologica.class);
// adding AgentAction(s)
AgentActionSchema intercambiar_ReputacionSchema = new
AgentActionSchema(INTERCAMBIAR_REPUTACION);
add(intercambiar_ReputacionSchema, Reputation.ontology.Intercambiar_Reputacion.class);
// adding AID(s)
ConceptSchema agente_AdministradorSchema = new ConceptSchema(AGENTE_ADMINISTRADOR);
add(agente_AdministradorSchema, Reputation.ontology.Agente_Administrador.class);
ConceptSchema agenteSchema = new ConceptSchema(AGENTE);
add(agenteSchema, Reputation.ontology.Agente.class);
ConceptSchema agente_ReputadorSchema = new ConceptSchema(AGENTE_REPUTADOR);
add(agente_ReputadorSchema, Reputation.ontology.Agente_Reputador.class);
ConceptSchema agente_de_reputacionSchema = new ConceptSchema(AGENTE_DE_REPUTACION);
add(agente_de_reputacionSchema, Reputation.ontology.Agente_de_reputacion.class);
ConceptSchema agente_ReputadoSchema = new ConceptSchema(AGENTE_REPUTADO);
add(agente_ReputadoSchema, Reputation.ontology.Agente_Reputado.class);
// adding Predicate(s)
PredicateSchema reputacionSchema = new PredicateSchema(REPUTACION);
add(reputacionSchema, Reputation.ontology.Reputacion.class);
// adding fields
Víctor Daniel PODBEREZSKI
- 173 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
escala_NumericaSchema.add(ESCALA_NUMERICA_SALTO,
(TermSchema)getSchema(BasicOntology.FLOAT), ObjectSchema.OPTIONAL);
escala_NumericaSchema.add(ESCALA_NUMERICA_MAXIMO,
(TermSchema)getSchema(BasicOntology.INTEGER), ObjectSchema.OPTIONAL);
escala_NumericaSchema.add(ESCALA_NUMERICA_TIPO_ESCALA,
(TermSchema)getSchema(BasicOntology.STRING), ObjectSchema.OPTIONAL);
escala_NumericaSchema.add(ESCALA_NUMERICA_UTILIZA_LA_UNIDAD, unidadSchema,
ObjectSchema.MANDATORY);
escala_NumericaSchema.add(ESCALA_NUMERICA_MINIMO,
(TermSchema)getSchema(BasicOntology.INTEGER), ObjectSchema.OPTIONAL);
metricaSchema.add(METRICA_IDENTIFICADOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
metricaSchema.add(METRICA_CONTIENE_ESCALA, escalaSchema, ObjectSchema.MANDATORY);
fuente_de_InformacionSchema.add(FUENTE_DE_INFORMACION_IDENTIFICADOR,
(TermSchema)getSchema(BasicOntology.STRING), ObjectSchema.MANDATORY);
unidadSchema.add(UNIDAD_DESCRIPCION, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.OPTIONAL);
unidadSchema.add(UNIDAD_IDENTIFICADOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
escalaSchema.add(ESCALA_TIPO, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.OPTIONAL);
contratoSchema.add(CONTRATO_DESCRIPCION, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.OPTIONAL);
contratoSchema.add(CONTRATO_FECHA, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
contratoSchema.add(CONTRATO_IDENTIFICADOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
contratoSchema.add(CONTRATO_DEL_TIPO, tipo_de_ContratoSchema, ObjectSchema.MANDATORY);
escala_CategoricaSchema.add(ESCALA_CATEGORICA_VALORES_PERMITIDOS,
(TermSchema)getSchema(BasicOntology.STRING), 1, ObjectSchema.UNLIMITED);
temaSchema.add(TEMA_FORMA_PARTE_DE, temaSchema, 0, ObjectSchema.UNLIMITED);
temaSchema.add(TEMA_IDENTIFICADOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
temaSchema.add(TEMA_CONTIENE_A, temaSchema, 0, ObjectSchema.UNLIMITED);
tipo_de_ContratoSchema.add(TIPO_DE_CONTRATO_IDENTIFICADOR,
(TermSchema)getSchema(BasicOntology.STRING), ObjectSchema.MANDATORY);
intercambiar_ReputacionSchema.add(INTERCAMBIAR_REPUTACION_DESTINATARIO,
agente_de_reputacionSchema, ObjectSchema.MANDATORY);
intercambiar_ReputacionSchema.add(INTERCAMBIAR_REPUTACION_REPUTACION_INTERCAMBIADA,
reputacionSchema, ObjectSchema.MANDATORY);
agenteSchema.add(AGENTE_IDENTIFICADOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
agente_de_reputacionSchema.add(AGENTE_DE_REPUTACION_CONOCE_LOS_TIPOS_DE_CONTRATO,
tipo_de_ContratoSchema, 0, ObjectSchema.UNLIMITED);
agente_de_reputacionSchema.add(AGENTE_DE_REPUTACION_CONOCE_LOS_TEMAS, temaSchema, 0,
ObjectSchema.UNLIMITED);
agente_de_reputacionSchema.add(AGENTE_DE_REPUTACION_CONOCE_LAS_METRICAS,
metricaSchema, 0, ObjectSchema.UNLIMITED);
reputacionSchema.add(REPUTACION_SOBRE_EL__TEMA, temaSchema, ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_ES_REFERIDO_A, agente_ReputadoSchema,
ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_VALOR, (TermSchema)getSchema(BasicOntology.STRING),
ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_ES_ADMINISTRADO_POR, agente_AdministradorSchema,
ObjectSchema.MANDATORY);
Víctor Daniel PODBEREZSKI
- 174 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
reputacionSchema.add(REPUTACION_POR_LA_INTERACCION, contratoSchema,
ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_FUE_REPUTADO_POR, agente_ReputadorSchema,
ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_POR_MEDIO_DE, fuente_de_InformacionSchema,
ObjectSchema.MANDATORY);
reputacionSchema.add(REPUTACION_MEDIDO_EN, metricaSchema, ObjectSchema.MANDATORY);
// adding name mappings
// adding inheritance
escala_NumericaSchema.addSuperSchema(escalaSchema);
observacion_DirectaSchema.addSuperSchema(fuente_PrimariaSchema);
escala_CategoricaSchema.addSuperSchema(escalaSchema);
interaccion_DirectaSchema.addSuperSchema(fuente_PrimariaSchema);
informacion_propagadaSchema.addSuperSchema(fuente_SecundariaSchema);
prejuicioSchema.addSuperSchema(fuente_SecundariaSchema);
fuente_SecundariaSchema.addSuperSchema(fuente_de_InformacionSchema);
fuente_PrimariaSchema.addSuperSchema(fuente_de_InformacionSchema);
informacion_SociologicaSchema.addSuperSchema(fuente_SecundariaSchema);
agente_AdministradorSchema.addSuperSchema(agente_de_reputacionSchema);
agente_ReputadorSchema.addSuperSchema(agente_de_reputacionSchema);
agente_de_reputacionSchema.addSuperSchema(agenteSchema);
agente_ReputadoSchema.addSuperSchema(agenteSchema);
}catch (java.lang.Exception e) {e.printStackTrace();}
}
}
D.3 Agente de reputación de ejemplo
Se detalla a continuación un fragmento de un agente de reputación que utiliza la arquitectura y la
ontología de reputación
D.3.1 ReputationAgent
package Reputation;
import jade.core.Agent;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 25/06/2007
* Time: 05:31:20 PM
* To change this template use File | Settings | File Templates.
*/
public class ReputationAgent extends Agent {
public ArrayList<String> convPrivadas = new ArrayList<String>();
}
Víctor Daniel PODBEREZSKI
- 175 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.3.2 Administrador
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import jade.core.Agent;
import java.util.ArrayList;
import Reputation.ontology.*;
import Reputation.Framework.Medidor;
import Reputation.Framework.Recopilador;
import Reputation.Framework.Timers;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 2/07/2007
* Time: 11:48:49 AM
* To change this template use File | Settings | File Templates.
*/
public class Administrador extends Reputation.Framework.Administrador {
public Administrador(Agent agent, long l) {
super(agent, l);
}
public ArrayList ObtenerTaxonomía(Tipo_de_Contrato tContrato) {
ArrayList<Tema> Temas = new ArrayList<Tema>();
Tema t;
if (tContrato.getIdentificador().equals("1"))
{
t = new Tema();
t.setIdentificador("Entrega");
Temas.add(t);
t = new Tema();
t.setIdentificador("Calidad");
Temas.add(t);
t = new Tema();
t.setIdentificador("Atencion");
Temas.add(t);
}
else if (tContrato.getIdentificador().equals("2"))
{
t = new Tema();
t.setIdentificador("PostVenta");
Temas.add(t);
t = new Tema();
t.setIdentificador("Asistencia");
Temas.add(t);
Víctor Daniel PODBEREZSKI
- 176 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
t = new Tema();
t.setIdentificador("Entrega");
Temas.add(t);
t = new Tema();
t.setIdentificador("Calidad");
Temas.add(t);
t = new Tema();
t.setIdentificador("Atencion");
Temas.add(t);
}
return Temas;
}
public ArrayList ObtenerTaxonomía(Tema tema) {
ArrayList<Tema> Temas = new ArrayList<Tema>();
Tema t;
if (tema.getIdentificador().equals("Harina"))
{
t = new Tema();
t.setIdentificador("Entrega");
Temas.add(t);
t = new Tema();
t.setIdentificador("Calidad");
Temas.add(t);
t = new Tema();
t.setIdentificador("Atencion");
Temas.add(t);
}
else if (tema.getIdentificador().equals("Motor"))
{
t = new Tema();
t.setIdentificador("PostVenta");
Temas.add(t);
t = new Tema();
t.setIdentificador("Asistencia");
Temas.add(t);
t = new Tema();
t.setIdentificador("Entrega");
Temas.add(t);
t = new Tema();
t.setIdentificador("Calidad");
Temas.add(t);
t = new Tema();
t.setIdentificador("Atencion");
Temas.add(t);
}
Víctor Daniel PODBEREZSKI
- 177 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
return Temas;
}
public ArrayList<Metrica> obtenerMetricas() {
ArrayList<Metrica> Metricas = new ArrayList<Metrica>();
Unidad unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Numerica escala = new Escala_Numerica();
escala.setMaximo(1);
escala.setMinimo(10);
escala.setSalto(1);
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
Metrica metrica = new Metrica();
metrica.setIdentificador("Calificacion de 1 a 10");
metrica.setContiene_escala(escala);
Metricas.add(metrica);
unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Categorica escalac = new Escala_Categorica();
escalac.addValores_permitidos("0");
escalac.addValores_permitidos("1");
escalac.setTipo("categorica");
metrica = new Metrica();
metrica.setIdentificador("Calificacion Booleana");
metrica.setContiene_escala(escalac);
Metricas.add(metrica);
unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
escalac = new Escala_Categorica();
escalac.addValores_permitidos("Malo");
escalac.addValores_permitidos("Regular");
escalac.addValores_permitidos("Bueno");
escalac.addValores_permitidos("Muy Bueno");
escalac.addValores_permitidos("Excelente");
escalac.setTipo("categorica");
metrica = new Metrica();
metrica.setIdentificador("Calificacion difusa por calidad");
metrica.setContiene_escala(escalac);
Metricas.add(metrica);
unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
escala = new Escala_Numerica();
escala.setMaximo(1);
escala.setMinimo(0);
escala.setSalto((float) 0.01);
Víctor Daniel PODBEREZSKI
- 178 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
metrica = new Metrica();
metrica.setIdentificador("Calificacion porcentual");
metrica.setContiene_escala(escala);
Metricas.add(metrica);
return Metricas;
}
public ArrayList<Tipo_de_Contrato> obtenerTiposContratos() {
ArrayList<Tipo_de_Contrato> tContratos = new ArrayList<Tipo_de_Contrato>();
Tipo_de_Contrato tContrato = new Tipo_de_Contrato();
tContrato.setIdentificador("1");
tContratos.add(tContrato);
tContrato = new Tipo_de_Contrato();
tContrato.setIdentificador("2");
tContratos.add(tContrato);
return tContratos;
}
public ArrayList<Tema> obtenerTemas(){
ArrayList<Tema> Temas = new ArrayList<Tema>();
Tema tema = new Tema();
tema.setIdentificador("PostVenta");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Entrega");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Calidad");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Atencion");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Asistencia");
Temas.add(tema);
return Temas;
}
protected Medidor getMedidor(Tipo_de_Contrato tContratos)
{
Medidor medidor=null;
if (tContratos.getIdentificador().equals("1"))
{
Víctor Daniel PODBEREZSKI
- 179 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
medidor = new MedidorHarina(myAgent, Timers.getMedidorLapso());
}
else if (tContratos.getIdentificador().equals("2"))
{
medidor = new MedidorMotor(myAgent,Timers.getMedidorLapso());
}
return medidor;
}
protected Recopilador getRecopilador(Tema tema) {
Recopilador recopilador=null;
if (tema.getIdentificador().equals("PostVenta"))
{
recopilador = new RecopiladorPostVenta(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Entrega"))
{
recopilador = new RecopiladorEntrega(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Calidad"))
{
recopilador = new RecopiladorCalidad(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Atencion"))
{
recopilador = new RecopiladorAtencion(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Asistencia"))
{
recopilador = new RecopiladorAsistencia(myAgent,Timers.getRecopiladorReplyLapso());
}
return recopilador;
}
protected ArrayList<Fuente_de_Informacion> getFuentesDeInformacion(Tema tema) {
ArrayList<Fuente_de_Informacion> fuentesDeImformacion = new ArrayList<Fuente_de_Informacion>();
Interaccion_Directa id = new Interaccion_Directa();
fuentesDeImformacion.add(id);
return fuentesDeImformacion;
}
}
D.3.3 CalculadorStandard_Porcentual
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import Calculadores.Calculador;
Víctor Daniel PODBEREZSKI
- 180 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
import Reputation.ontology.Reputacion;
import Reputation.ontology.Informacion_propagada;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 6/07/2007
* Time: 01:05:31 PM
* To change this template use File | Settings | File Templates.
*/
public class CalculadorStandard_Porcentual extends Calculador {
public Reputacion Calcular(ArrayList<Reputacion> reputaciones) {
Reputacion reputacion = new Reputacion();
int cant = reputaciones.size();
double total = 0;
if (reputaciones.size() == 1)
total = Double.parseDouble(reputaciones.get(0).getValor());
else
for (Reputacion rep : reputaciones)
{
String Valor = rep.getValor();
if (Valor==null)
{
Valor = "0.5";
}
double val = Double.parseDouble(Valor);
val/=cant;
total+=val;
}
reputacion.setValor("" + total);
Informacion_propagada ip = new Informacion_propagada();
reputacion.setPor_medio_de(ip);
return reputacion;
}
}
D.3.4 Contacto
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import jade.core.Agent;
Víctor Daniel PODBEREZSKI
- 181 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
import Reputation.ontology.*;
import java.sql.Connection;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import data.GetDAOFactory;
import data.vo.AgentesPK;
import data.exception.ReputacionException;
import data.dao.*;
import data.factory.DAOFactory;
import CadenaTest.CadenaAgent;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 2/07/2007
* Time: 10:44:20 PM
* To change this template use File | Settings | File Templates.
*/
public class Contacto extends Reputation.Framework.Contacto{
public Contacto(Agent agent, long l) {
super(agent, l);
}
protected void obtenerReputacionLocal(Tema tema, Agente_Reputado reputado) {
Connection con = ((CadenaAgent) myAgent).conection;
DAOFactory daofactory = GetDAOFactory.getFactory();
ReputacionDAO repDAO = daofactory.createReputacionDAO();
Object[] params = new Object[3];
params[0] = myAgent.getLocalName();
params[1] = tema.getIdentificador();
params[2] = reputado.getLocalName();
data.vo.Reputacion[] reputaciones = null;
try {
reputaciones = repDAO.findExecutingUserWhere("Adminitrador = ? and Tema = ? and Reputado =
?",params,con);
} catch (ReputacionException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
AgentesDAO agentesDAO = daofactory.createAgentesDAO();
ContratoDAO contratoDAO = daofactory.createContratoDAO();
TipocontratoDAO tipoContratoDAO = daofactory.createTipocontratoDAO();
MetricaDAO metricaDAO = daofactory.createMetricaDAO();
for (data.vo.Reputacion reputacion : reputaciones)
Víctor Daniel PODBEREZSKI
- 182 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
{
Reputacion rep = new Reputacion();
try {
AgentesPK agentespk = new AgentesPK();
agentespk.setAgenteid(reputacion.getAdminitrador());
data.vo.Agentes agente = agentesDAO.findByPrimaryKey(agentespk,con);
Agente_Administrador administrador = new Agente_Administrador();
administrador.setIdentificador(agente.getAgenteid());
administrador.setName(agente.getDescripcion());
administrador.setLocalName(agente.getDescripcion());
rep.setEs_Administrado_Por(administrador);
agentespk.setAgenteid(reputacion.getReputador());
agente = agentesDAO.findByPrimaryKey(agentespk,con);
Agente_Reputador reputador = new Agente_Reputador();
reputador.setIdentificador(agente.getAgenteid());
reputador.setName(agente.getDescripcion());
reputador.setLocalName(agente.getDescripcion());
rep.setFue_reputado_por(reputador);
rep.setSobre_el__tema(tema);
rep.setEs_referido_a(reputado);
rep.setValor(reputacion.getValor());
data.vo.ContratoPK contratopk = new data.vo.ContratoPK();
contratopk.setContratoid(reputacion.getContrato());
data.vo.Contrato contrato = contratoDAO.findByPrimaryKey(contratopk,con);
Contrato cont = new Contrato();
cont.setFecha(contrato.getFecha().toString());
cont.setIdentificador(contrato.getContratoid());
cont.setDescripcion(contrato.getDescripcion());
data.vo.TipocontratoPK tipocontratopk = new data.vo.TipocontratoPK();
tipocontratopk.setTipocontratoid(contrato.getTipocontrato());
data.vo.Tipocontrato tipocontrato = tipoContratoDAO.findByPrimaryKey(tipocontratopk,con);
Tipo_de_Contrato tipoCont = new Tipo_de_Contrato();
tipoCont.setIdentificador(tipocontrato.getTipocontratoid());
cont.setDel_tipo(tipoCont);
rep.setPor_la_interaccion(cont);
data.vo.MetricaPK metricapk = new data.vo.MetricaPK();
metricapk.setMetricaid(reputacion.getMetrica());
data.vo.Metrica metrica = metricaDAO.findByPrimaryKey(metricapk,con);
Metrica met = new Metrica();
Escala escala = new Escala();
Víctor Daniel PODBEREZSKI
- 183 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
met.setIdentificador(metrica.getMetricaid());
escala.setTipo(metrica.getEscala());
met.setContiene_escala(escala);
rep.setMedido_en(met);
Fuente_de_Informacion fuente = null;
switch (Integer.parseInt(reputacion.getFuenteinformacion()))
{
case 1:
fuente = new Interaccion_Directa();
break;
case 2:
fuente = new Observacion_Directa();
break;
case 3:
fuente = new Informacion_propagada();
break;
case 4:
fuente = new Prejuicio();
break;
case 5:
fuente = new Informacion_Sociologica();
break;
}
rep.setPor_medio_de(fuente);
Reputaciones.add(rep);
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected boolean informarReputacionLocal(Reputacion reputacion) {
Connection con = ((CadenaAgent) myAgent).conection;
DAOFactory daofactory = GetDAOFactory.getFactory();
ReputacionDAO repDAO = daofactory.createReputacionDAO();
ContratoDAO conDAO = daofactory.createContratoDAO();
try {
data.vo.ContratoPK contpk = new data.vo.ContratoPK();
contpk.setContratoid(reputacion.getPor_la_interaccion().getIdentificador());
data.vo.Contrato cont = conDAO.findByPrimaryKey(contpk,con);
if (cont==null)
{
Contrato contrato = reputacion.getPor_la_interaccion();
cont = new data.vo.Contrato();
cont.setContratoid(contrato.getIdentificador());
Víctor Daniel PODBEREZSKI
- 184 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
cont.setDescripcion(contrato.getDescripcion());
System.out.println(contrato.getFecha());
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
Date fecha = df.parse(contrato.getFecha());
Timestamp t = new Timestamp(fecha.getTime());
cont.setFecha(t);
cont.setTipocontrato(contrato.getDel_tipo().getIdentificador());
conDAO.insert(cont,con);
}
data.vo.Reputacion rep = new data.vo.Reputacion();
rep.setAdminitrador(reputacion.getEs_Administrado_Por().getLocalName());
rep.setReputado(reputacion.getEs_referido_a().getLocalName());
rep.setContrato(reputacion.getPor_la_interaccion().getIdentificador());
rep.setFuenteinformacion(reputacion.getPor_medio_de().getIdentificador());
rep.setMetrica(reputacion.getMedido_en().getIdentificador());
rep.setTema(reputacion.getSobre_el__tema().getIdentificador());
rep.setReputador(reputacion.getFue_reputado_por().getLocalName());
rep.setValor(reputacion.getValor());
repDAO.insert(rep,con);
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return true;
}
public ArrayList solicitarMetricas(Agente_Administrador administrador, Tema tema) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList solicitarMetricas(Agente_Administrador administrador) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList solicitarTipoContratos(Agente_Administrador administrador) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList solicitarTemas(Agente_Administrador administrador) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
}
Víctor Daniel PODBEREZSKI
- 185 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.3.5 Difusor
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import Reputation.ontology.*;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 2/07/2007
* Time: 10:45:11 PM
* To change this template use File | Settings | File Templates.
*/
public class Difusor extends Reputation.Framework.Difusor {
public ArrayList<Agente_Administrador> obtenerAdministradoresConsulta(Tema tema, Fuente_de_Informacion
fInformacion) {
ArrayList<Agente_Administrador> administradores = new ArrayList<Agente_Administrador>();
Agente_Administrador administrador = new Agente_Administrador();
String name = myAgent.getLocalName();
// Se llaman CadenaXXX
if (!tema.getIdentificador().equals("Entrega") && !fInformacion.getIdentificador().equals("1"))
{
int nro = Integer.parseInt(name.substring(6));
for (int j=1;j<4;j++)
{
int valor = (nro-1+j) % 16 + 1;
System.out.println(myAgent.getLocalName() + "::" + valor);
administrador.setIdentificador("Cadena" + valor);
administrador.setLocalName("Cadena" + valor);
administrador.setName("Cadena" + valor);
administradores.add(administrador);
}
}
else {
System.out.println("Informacion local");
administrador.setIdentificador(name);
administrador.setLocalName(name);
administrador.setName(name);
administradores.add(administrador);
}
return administradores;
}
public ArrayList<Agente_Administrador> obtenerAdministradoresConsulta(Tema tema) {
Víctor Daniel PODBEREZSKI
- 186 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList<Metrica> obtenerMetricasAdministrador(Agente_Administrador administrador, Tema tema) {
ArrayList<Metrica> metricas = new ArrayList<Metrica>();
Unidad unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Numerica escala = new Escala_Numerica();
escala.setMaximo(1);
escala.setMinimo(0);
escala.setSalto((float) 0.01);
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
Metrica metrica = new Metrica();
metrica.setIdentificador("Calificacion porcentual");
metrica.setContiene_escala(escala);
metricas.add(metrica);
return metricas; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList<Metrica> obtenerMetricasAdministrador(Agente_Administrador administrador) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList<Agente_Administrador> obtenerAdministradoresInformacion(Tema tema, ArrayList
FuentesInformacion) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public ArrayList<Agente_Administrador> obtenerAdministradoresInformacion(Tema tema) {
ArrayList<Agente_Administrador> administradores = new
ArrayList<Agente_Administrador>();
Agente_Administrador administrador = new Agente_Administrador();
String name = myAgent.getLocalName();
// Se llaman CadenaXXX
administrador.setIdentificador(name);
administrador.setLocalName(name);
administrador.setName(name);
administradores.add(administrador);
return administradores;
}
}
Víctor Daniel PODBEREZSKI
- 187 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
D.3.6 Medidor Motor
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import jade.core.Agent;
import Reputation.ontology.*;
import Reputation.Framework.Recopilador;
import Reputation.Framework.Timers;
import java.util.ArrayList;
import Calculadores.Calculador;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 2/07/2007
* Time: 10:46:57 PM
* To change this template use File | Settings | File Templates.
*/
public class MedidorMotor extends Reputation.Framework.Medidor {
public MedidorMotor(Agent agent, long l) {
super(agent, l);
tipo_de_contrato.setIdentificador("2");
tema = new Tema();
tema.setIdentificador("Motor");
Unidad unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Numerica escala = new Escala_Numerica();
escala.setMaximo(1);
escala.setMinimo(0);
escala.setSalto((float) 0.01);
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
metrica = new Metrica();
metrica.setIdentificador("Calificacion porcentual");
metrica.setContiene_escala(escala);
}
protected void calcularReputacion(ArrayList<Reputacion> Reputaciones)
{
Calculador calc = new CalculadorStandard_Porcentual();
Reputacion rep = calc.Calcular(Reputaciones);
resultRep.setValor(rep.getValor());
resultRep.setSobre_el__tema(tema);
resultRep.setMedido_en(metrica);
Víctor Daniel PODBEREZSKI
- 188 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Agente_Administrador administrador = new Agente_Administrador();
administrador.setIdentificador(myAgent.getLocalName());
administrador.setName(myAgent.getName());
administrador.setLocalName(myAgent.getLocalName());
resultRep.setEs_Administrado_Por(administrador);
Informacion_propagada ip = new Informacion_propagada();
resultRep.setPor_medio_de(ip);
}
public ArrayList<Tema> obtenerTaxonomia()
{
ArrayList<Tema> Temas = new ArrayList<Tema>();
Tema tema;
tema = new Tema();
tema.setIdentificador("PostVenta");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Entrega");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Calidad");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Atencion");
Temas.add(tema);
tema = new Tema();
tema.setIdentificador("Asistencia");
Temas.add(tema);
return Temas;
}
protected Recopilador getRecopiladorReply(Tema tema) {
Recopilador recopilador=null;
if (tema.getIdentificador().equals("PostVenta"))
{
recopilador = new RecopiladorPostVenta(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Entrega"))
{
recopilador = new RecopiladorEntrega(myAgent,Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Calidad"))
{
recopilador = new RecopiladorCalidad(myAgent,Timers.getRecopiladorReplyLapso());
Víctor Daniel PODBEREZSKI
- 189 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
else if (tema.getIdentificador().equals("Atencion"))
{
recopilador = new RecopiladorAtencion(myAgent, Timers.getRecopiladorReplyLapso());
}
else if (tema.getIdentificador().equals("Asistencia"))
{
recopilador = new RecopiladorAsistencia(myAgent,Timers.getRecopiladorReplyLapso());
}
return recopilador;
}
protected Recopilador getRecopilador(Tema tema) {
Recopilador recopilador=null;
if (tema.getIdentificador().equals("PostVenta"))
{
recopilador = new RecopiladorPostVenta(myAgent,Timers.getRecopiladorLapso());
}
else if (tema.getIdentificador().equals("Entrega"))
{
recopilador = new RecopiladorEntrega(myAgent,Timers.getRecopiladorLapso());
}
else if (tema.getIdentificador().equals("Calidad"))
{
recopilador = new RecopiladorCalidad(myAgent,Timers.getRecopiladorLapso());
}
else if (tema.getIdentificador().equals("Atencion"))
{
recopilador = new RecopiladorAtencion(myAgent, Timers.getRecopiladorLapso());
}
else if (tema.getIdentificador().equals("Asistencia"))
{
recopilador = new RecopiladorAsistencia(myAgent,Timers.getRecopiladorLapso());
}
return recopilador;
}
protected ArrayList<Fuente_de_Informacion> getFuentesDeInformacion(Tema tema) {
ArrayList<Fuente_de_Informacion> fuentesDeImformacion = new ArrayList<Fuente_de_Informacion>();
Interaccion_Directa id = new Interaccion_Directa();
fuentesDeImformacion.add(id);
if (!tema.getIdentificador().equals("Entrega"))
{
Informacion_propagada ip = new Informacion_propagada();
fuentesDeImformacion.add(ip);
}
return fuentesDeImformacion;
Víctor Daniel PODBEREZSKI
- 190 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
}
D.3.7 Recopilador Asistencia
package CadenaTest.Agentes.AgentCadenaPorcentualStandard;
import Reputation.Framework.Recopilador;
import Reputation.Framework.Transformador;
import Reputation.Framework.Timers;
import Reputation.ontology.*;
import jade.core.Agent;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 2/07/2007
* Time: 10:55:38 PM
* To change this template use File | Settings | File Templates.
*/
public class RecopiladorAsistencia extends Recopilador
{
public RecopiladorAsistencia(Agent agent, long l) {
super(agent, l);
tema = new Tema();
tema.setIdentificador("Asistencia");
Unidad unidad = new Unidad();
unidad.setDescripcion("");
unidad.setIdentificador("0");
Escala_Numerica escala = new Escala_Numerica();
escala.setMaximo(1);
escala.setMinimo(0);
escala.setSalto((float) 0.01);
escala.setUtiliza_la_unidad(unidad);
escala.setTipo_escala("Nominal");
metrica = new Metrica();
metrica.setIdentificador("Calificacion porcentual");
metrica.setContiene_escala(escala);
}
protected Reputacion nivelar(Agente_Reputado reputado, Reputacion reputacion) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
protected ArrayList depurar(ArrayList Reputaciones) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
Víctor Daniel PODBEREZSKI
- 191 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
protected void actualizarApreciaciones(Agente_Reputado reputado, String Valor, ArrayList Reputaciones) {
//To change body of implemented methods use File | Settings | File Templates.
}
protected void calcularReputacion(ArrayList<Reputacion> Reputaciones) {
double valor =0;
for (Reputacion reputacion : Reputaciones)
{
valor += Double.parseDouble(reputacion.getValor());
}
if (Reputaciones.size() > 0)
valor = valor / Reputaciones.size();
else
valor = 0.5;
String sValor = "" + valor;
resultRep.setValor(sValor);
resultRep.setSobre_el__tema(tema);
resultRep.setMedido_en(metrica);
Agente_Administrador administrador = new Agente_Administrador();
administrador.setIdentificador(myAgent.getLocalName());
administrador.setName(myAgent.getName());
administrador.setLocalName(myAgent.getLocalName());
resultRep.setEs_Administrado_Por(administrador);
}
protected boolean verificarConocimientoReputacionContrato(Tema tema, Agente_Reputador reputador,
Agente_Reputado reputado, Fuente_de_Informacion fInformacion, Contrato contrato) {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
public Reputation.Framework.Difusor getDifusor() {
return new Difusor();
}
public Reputation.Framework.Contacto getContacto(Fuente_de_Informacion fInformacion) {
return new Contacto(myAgent, Timers.getContactoLapso());
}
public Transformador getTransformador(Metrica Origen, Metrica Destino) {
if (Origen.getIdentificador().equals("Calificacion Booleana"))
return new Transformadores.TransformadorBooleano_Porcentual(Origen,Destino);
else if (Origen.getIdentificador().equals("Calificacion de 1 a 10"))
return new Transformadores.Transformador1a10_Porcentual(Origen,Destino);
else
return new Transformadores.TransformadorDifusa_Porcentual(Origen,Destino);
Víctor Daniel PODBEREZSKI
- 192 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
}
}
D.3.8 Administrador Factory
package CadenaTest;
import Reputation.Framework.Administrador;
import jade.core.Agent;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 7/07/2007
* Time: 04:14:24 PM
* To change this template use File | Settings | File Templates.
*/
abstract public class AdministradorFactory {
abstract public Administrador Create(Agent myAgent,long milisec);
}
D.3.9 Cadena Agent
package CadenaTest;
import Reputation.ReputationAgent;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.domain.FIPAAgentManagement.ServiceDescription;
import jade.domain.DFService;
import jade.domain.FIPAException;
import jade.core.Agent;
import java.sql.Connection;
import data.DBConnect;
/**
* Created by IntelliJ IDEA.
* User: Victor Podberezski
* Date: 7/07/2007
* Time: 03:52:24 PM
* To change this template use File | Settings | File Templates.
*/
public class CadenaAgent extends ReputationAgent {
protected ObtenerComportamiento comportamiento=null;
private AdministradorFactory adminFactory=null;
public Connection conection; //= new DBConnect().connect();
public void setup() {
Víctor Daniel PODBEREZSKI
- 193 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
System.out.println("Agente Cadena " + getAID().getName() + " inicializado.");
conection = new DBConnect().connect();
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName(getAID());
ServiceDescription sd = new ServiceDescription();
sd.setType("Cadena de suministro");
sd.setName(getLocalName());
dfd.addServices(sd);
try {
DFService.register(this,dfd);
} catch (FIPAException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
addBehaviour(new EscucharPedidos());
EscucharComportamiento escuchar = new EscucharComportamiento();
addBehaviour(escuchar);
Disparador disp = new Disparador(this,500);
disp.comportamiento = comportamiento;
addBehaviour(disp);
String name = getLocalName();
int nro = Integer.parseInt(name.substring(6));
int group = nro%3;
switch (group)
{
case 0:
addBehaviour(new ConsultarResumenReputacion(this,50000));
break;
case 1:
addBehaviour(new ConsultarResumenReputacion(this,200000));
break;
case 2:
addBehaviour(new ConsultarResumenReputacion(this,350000));
break;
}
}
public AdministradorFactory getAdminFactory() {
return adminFactory;
}
public void setAdminFactory(AdministradorFactory adminFactory) {
this.adminFactory = adminFactory;
}
}
Víctor Daniel PODBEREZSKI
- 194 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
class ConsultarResumenReputacion extends jade.core.behaviours.WakerBehaviour
{
public ConsultarResumenReputacion(Agent agent, long l) {
super(agent, l); //To change body of overridden methods use File | Settings | File Templates.
}
protected void onWake() {
myAgent.addBehaviour(new VerReputaciones(myAgent,15000));
}
}
Víctor Daniel PODBEREZSKI
- 195 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Apéndice E
Trabajos preeliminares presentados a congresos
A continuación se presentan los trabajos preeliminares realizados, presentados y aceptados en
congresos sobre la temática de la tesis.
En primero fue aceptada en el JIISIC 2006 y analiza las necesidades de la administración de la
reputación dentro de una cadena de suministros.
El segundo fue aceptado en la WICC 2006 y presenta la ontología de administración de
reputación utilizada en este trabajo.
Víctor Daniel PODBEREZSKI
- 196 -
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Utilización de agentes y reputación en la administración de la cadena de
suministros industriales.
Víctor Daniel Podberezski*1 Jorge Salvador. Ierache *1, 2
Facultad de Ingeniería, Universidad de Buenos Aires, Laboratorio de Sistemas Inteligentes
Paseo Colón 850 Buenos Aires, Argentina Tel: 54-11-4343-0891 (Int. 140)*1
Universidad de Morón - Facultad de Informática, Ciencias de la Comunicación y Técnicas Especiales,
Cabildo 134 Morón(1708), Provincia de Buenos Aires, Argentina Tel: 54-11-5627-2000 *2
[email protected] - [email protected]
Abstract
El proceso de manufactura ha cambiado
radicalmente en los últimos años. La irrupción de la
manufactura inteligente y flexible abrió un campo de
investigación y desarrollo enorme aún en pleno
proceso de crecimiento. La alta competitividad del
sector industrial induce a la investigación y
refinamiento continuo en los métodos y mecanismos de
manufactura con la incorporación de tecnologías de
sistemas inteligentes.
La Ingeniería del conocimiento es aplicada en este
campo para lograr procesos más eficientes y que se
refinan a si mismos. La naturaleza descentralizada y
compleja donde varios actores interactúan hace del
paradigma de agentes algo ampliamente aceptable
para su implementación.
La toma de decisión de un socio en un proceso
productivo se enmarca perfectamente dentro de este
escenario y la elaboración de mecanismos de
evaluación de confianza y reputación conforma el
objetivo de este trabajo.
Keywords: Intelligent Agents, Electronic Commerce,
Industrial Applications, Reputation
1. Introducción
En estos últimos años la demanda de bienes se ha
visto superada por la oferta, dándose la situación donde
muchos actores ofrecen un mismo producto o
productos suplementarios y por lo tanto la colocación
de la producción no está asegurada. Mantener la
competitividad ha pasado a ser
una cuestión
primordial para las empresas. Por lo tanto la pericia
pasa ahora por producir un bien apetecible por el
cliente,
teniendo en cuenta sus necesidades
particulares y personalizando lo más posible para
maximizar su satisfacción. Mejorar la calidad de los
productos, ampliar la gama, reducir plazos de
Víctor Daniel PODBEREZSKI
- 197 -
suministro y mejorar en el cumplimiento de los plazos
son medidas estratégicas que las empresas pueden
seguir para acercarse a este objetivo.
La selección de un socio en el proceso de
elaboración es de vital importancia y condiciona el
éxito o fracaso de la manufactura. Una selección
errónea puede conducir a desastres como entregar
piezas defectuosas, de baja calidad o fuera de plazo.
La elaboración de mecanismos de confianza y
reputación cobran fundamental importancia, las
consideraciones para su implementación se detallan en
este trabajo.
La primera sección introduce el problema analizado.
La segunda sección
trata sobre la manufactura
integrada por computador y su evolución a nuestros
días. La tercera sección introduce nociones sobre
sistemas multiagentes. Las secciones cuarta y quinta
hablan sobre la utilización de agentes en la producción
y en la cadena de suministros respectivamente.
Las últimas secciones introducen los conceptos de
confianza y su utilización en la cadena de suministros.
La sección seis se ocupa de definir la confianza y
reputación. En la sección siete se analizan diferentes
modelos de reputación existentes y puntos positivos y
negativos en su utilización para reputar agentes en una
cadena de suministros.
Finalmente, en la sección ocho, se presenta una
conclusión definiendo que aspectos deben ser tenidos
en cuenta para la utilización de sistemas de reputación
en la cadena de suministros.
2.Manufactura integrada por computadora
La manufactura integrada por computadora desde
principios de los 70 [12] se propone utilizar el poder de
análisis, cálculo y procesamiento de las computadoras
al servicio de la producción de bienes de mercado [39,
29, 19]. El objetivo de esta tecnología es incrementar
la capacidad de manufacturar piezas, productos
terminados o semielaborados usando el mismo grupo
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
de máquinas. Para ello se requiere que las herramientas
utilizadas sean flexibles y capaces de modificar su
programación adaptándose a los nuevos requerimientos
del mercado.
Recientemente es introducido el concepto de MultiFunctions Integrated Factories (MFIF) [22, 23]. En esta
concepción la aplicación de la flexibilidad en la
producción abandona el ámbito intra-fábrica para pasar
a ser Inter-fábrica. Este paradigma incluye la
interconexión de diversas fábricas geográficamente
separadas que interactúan entre sí para la elaboración
de un producto. Cada fábrica se especializa en un
conjunto de tareas que ofrece a quien quiera
contratarla. Estas tareas sirven para un conjunto de
productos cuyo desarrollo debe repartirse en el tiempo
para aumentar la utilidad de producción.
Dentro de este escenario comienza a cobrar fuerza
la utilización de sistemas multiagentes en los procesos
de producción.
3. Agentes y sistemas multiagentes
Existen diversas definiciones de lo que es un agente.
Una definición generalmente aceptada define a un
agente como un sistema de computación que se
encuentra situado en un ambiente y es capaz de un
comportamiento autónomo con la misión de cumplir
sus objetivos de diseño [31, 40, 41].
Se define a un agente como inteligente si tiene la
capacidad de realizar acciones autónomas flexibles con
el objetivo de lograr la meta propuesta [40].
Se entiende a la flexibilidad como la suma de:
-
Reactividad: Percibir del ambiente y
responder en tiempo a aquellos cambios que
ocurren con el objeto de cumplir con el
objetivo planteado.
-
Pro-actividad: Tomar la iniciativa en la
realización de acciones orientadas a la
resolución del problema
-
Sociabilidad: Ser capaces de interactuar con
otros agentes o humanos para satisfacer sus
objetivos de diseño.
La anterior es conocida como la definición débil.
Existe además una definición fuerte: un agente, además
de las características anteriores debe tener una o más
de las siguientes características [40]:
-
Nociones mentales: un agente tiene creencias,
deseos e intenciones.
Víctor Daniel PODBEREZSKI
- 198 -
-
Racionalidad: realiza acciones a fin de lograr
objetivos
-
Adaptabilidad o aprendizaje
-
Veracidad: un agente no es capaz de
comunicar información falsa de propósito.
Un sistema multiagente es un sistema en el que
conviven un conjunto de agentes capaces de interactuar
entre sí donde cada uno de ellos tienen sus propios
objetivos y deben cooperar o competir entre ellos para
llevarlos a cabo. [31]
4. Agentes en sistemas de producción
La globalización, que afecta a todo el planeta, no es
una excepción en las empresas de fabricación. La
competitividad global y la rapidez con que cambian los
requerimientos de los clientes están forzando
importantes cambios en los estilos de producción y
configuración de las organizaciones de producción.
Cada vez más, la planificación de producción, el
scheduling y los mecanismos de control secuenciales y
centralizados tradicionales no son suficientemente
flexibles para responder a estos nuevos estilos de
producción que cambian continuamente y a las
variaciones que se producen constantemente en los
requerimientos del producto. Las aproximaciones
tradicionales no permiten una fácil extensión y
reconfiguración de los sistemas de fabricación.
Desde hace unos años, la tecnología de agentes ha
sido considerada como un enfoque importante para el
desarrollo de sistemas de fabricación distribuidos [17,
18]. En los últimos 10 años, los investigadores han
estado aplicando tecnología de agentes a la integración
de empresas de fabricación y administración de
cadenas de suministro, planificación de fabricación,
asignación de recursos y ejecución de control,
manipulación de materiales, y desarrollo de nuevos
tipos de sistemas de fabricación tales como sistemas
holónicos de fabricación [2].
Existen diferentes aproximaciones posibles para la
modelación de agentes en los sistemas de fabricación
basados en agentes. Las dos aproximaciones más
importantes son:
-
Descomposición funcional: los agentes son
utilizados para modelar los distintos módulos
asignados a funciones, como ser, toma de
pedidos,
planificación,
scheduling,
administración de materiales, gestión de
transporte y distribución de producto. Este
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
modelado no hay relación entre agentes y
entidades físicas.
-
Descomposición física: los agentes son
utilizados para representar entidades del
mundo físico, tales como trabajadores,
máquinas,
herramientas,
instalaciones,
productos, piezas, características, operaciones,
etc. A diferencia del modelado mediante
descomposición funcional, en este tipo de
modelado existe una relación entre un agente
y una entidad física.
5.
Administración
de
cadena
suministros mediante agentes
de
Una cadena de suministro puede ser definida como
una red de entidades autónomas o semiautónomas de
negocios colectivamente responsables de las
actividades de adquisición, fabricación y distribución
asociadas con una o más familias de productos
relacionados. Diferentes entidades de una cadena de
suministro funcionan sujeto a diferentes restricciones y
objetivos [37]
La administración de cadena de suministros
mediante la utilización de agentes ha sido estudiada
por diversos autores, entre ellos [6, 10, 11, 20, 30, 37,
38].
El primer desafío que se debe resolver para
enfrentar la realización de la administración de la
cadena de suministros es determinar qué actividades de
las mismas serán ejecutadas por que agentes. Para
realizar esto se deben tener en cuenta las regulaciones
organizativas, los sistemas existentes y limitaciones
algorítmicas. El sistema debe lidiar con la
planificación, el agendado y coordinación entre las
partes.
Una división funcional propuesta por [11] para
organizar con agentes la administración de cadena de
suministros propone utilizar los siguientes agentes:
agente de adquisición de órdenes, agente de logística,
agente de transporte, agente de agendado, agente de
recursos y agente de despachos.
La solución debe ser flexible teniendo en cuenta que
ciertos procesos pueden cancelarse, modificarse o
agregarse. Los agentes que conforman el sistema deben
poder volver a programar sus tareas y modificar los
acuerdos pactados. Los tiempo de respuesta deben ser
aceptables a nivel productivo y debe poder circular la
información y conocimiento para resolver las tareas.
La selección de socio para la concreción de un
producto es un hito fundamental que determina en gran
medida el futuro éxito de la manufactura. Materia
prima de mala calidad, entregada fuera de término o
Víctor Daniel PODBEREZSKI
- 199 -
contratos incumplidos pueden resultar en un desastre
para el proceso productivo.
Para la selección de un socio en un proceso
productivo quien proveerá materia prima, insumos o un
subproceso, se tienen en cuenta varios aspectos que
van desde el precio y la calidad hasta el compromiso y
garantía. Entre ellos algunos son fácilmente
mensurables y comparables. Por otra parte otros son
de difícil captación y se logran mediante la experiencia
e interacción entre partes (como el compromiso,
respaldo y seriedad).
El proceso de selección debe tener en cuenta todas
estas variables y mediante su comparación determinar
aquel oferente que realice la tarea de la forma más
eficaz y presente las garantías de éxito más altas.
Dependiendo el proceso o parte de un producto dado
puede ser deseable la preeminencia de ciertas
características (por ejemplo el precio, la confiabilidad
del proveedor o la entrega en termino) por sobre otras.
Los agentes dentro del ambiente de la cadena de
suministros son dinámicos, su comportamiento se
modifica con el tiempo. Por ejemplo el cambio de una
máquina puede hacer que un fabricante mejore la
calidad de su producción o aumente su velocidad de
respuesta. Asimismo puede ocurrir que por problemas
financieros los servicios brindados por ella se
degraden. El aspecto temporal tiene que tenerse en
cuenta. Las mediciones más recientes deben tener más
peso que las mediciones más lejanas en el tiempo.
Un mismo agente puede brindar diferentes servicios
o productos, por ejemplo puede ofrecer cierres y
botones. La calidad de cada uno de ellos puede ser
diferente.
No debe olvidarse que la utilización de agentes en la
administración de la cadena está condicionada por la
realidad actual de los procesos productivos. Dentro de
ellos y para la decisión de a quien confiar una tarea o
subproducto se tienen en cuenta estándares de calidad
establecidos por entidades reconocidas. Ejemplos de
estas son: ISO [16] o IRAM [15].
6. Confianza y reputación
Existe un principio que dice que los agentes no
mienten a menos que se los programe para que se
comporten de esa manera. Puede suceder que a veces
no cumplan un contrato pactado, simplemente porque
no son capaces (sea por una cuestión de diseño o de
una situación imprevisible en el ambiente donde
trabajan) o por haberlo desechado. Así como en la vida
real aquellos compromisos que vamos cumpliendo o
quebrantando nos van generando con terceros una
reputación que puede ser favorable o no. Ese mismo
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
concepto es deseable en la interacción entre agentes.
Pero, ¿cómo llevarlo a la práctica?
La reputación es un concepto ampliamente utilizado
en nuestra vida cotidiana. Vamos a ver una obra de
teatro porque una revista la calificó como muy buena,
comemos en un restaurante porque un amigo nos dijo
que sus pastas son las mejores que probó en la vida,
elegimos no ir más a un mecánico porque nos cobró
caro y su arreglo se rompió a los dos días. Confiamos
en ciertas instituciones, personas y en nuestro juicio
para decidir qué hacer y cómo hacerlo.
La reputación ha sido analizada desde distintas
disciplinas como la sociología, la economía, la
psicología y la filosofía. Dentro de la informática y las
ciencias de la computación el concepto de la
reputación es reciente y diversas metodologías
comienzan a producirse en ámbitos académicos. El
paradigma de agentes y el e-commerce dieron
combustible al motor creativo. La necesidad de
interactuar con otros agentes en busca de socios
confiables en ambientes dinámicos y abiertos debe ser
satisfecha.
La confianza es la creencia que tiene un agente que
la contraparte realizará lo que prometió (siendo
honesto y confiable) o será reciproco (para el bien
común de ambos) aun existiendo una oportunidad de
desertar para conseguir rentabilidades más altas [28].
La reputación se puede definir como la opinión o
perspectiva sobre alguien acerca de algo. [34].
La reputación de un agente se conforma de acuerdo
a su accionar en el tiempo. La reputación y la
confianza están íntimamente ligadas. Un agente
tenderá a tener desconfianza (confianza negativa o
baja) hacia un agente con poca reputación. La
reputación puede inducir a un vendedor a comportarse
bien si sabe que será evitado por futuros compradores
como resultado de su reducción de reputación
producido por su mala conducta. [28].
Los modelos de reputación intentan guiar la
decisión de un agente en determinar cómo, cuándo y
con quién interactuar [28].
Zacharia y Maes delinearon las cualidades deseadas
de un modelo de reputación con respecto a cómo son
las mediciones calculadas y cómo impacta esto en el
comportamiento de los actores del sistema [45]:
-
-
Debe ser costoso cambiar de identidad en la
comunidad. Esto debe prevenir la entrada de
un agente al sistema para comportarse
maliciosamente, retirarse y reingresar sin
pérdida de utilidad o castigo a raíz del mal
desempeño.
Nuevos ingresantes no deben ser penalizados
teniendo inicialmente bajos valores de
Víctor Daniel PODBEREZSKI
- 200 -
reputación. Si los ingresantes reciben una baja
reputación serán menos favorecidos a pesar de
ser potencialmente confiables.
-
Agentes con bajas calificaciones deben poder
mejorar su reputación en forma similar a un
nuevo ingresante. Esto permite a un agente
corregir su comportamiento si demostró
comportarse mal en el pasado.
-
Los costos de realizar transacciones falsas
deben ser altos. Esto impide a agentes
construir su propia reputación.
-
Los agentes que tienen una reputación alta
deberían tener más alta preeminencia que
otros en función de la valoración de
reputación que ellos atribuyen a otros agentes.
Este presupone que los agentes con la
reputación alta darán posiciones verídicas a
otros. Sin embargo, éste puede ser discutible
si la reputación determina el nivel de ganancia
que el agente adquiere ya que esto podría
conducir a la creación de monopolios o
cárteles en el mercado. Además esto es
discutible pues, un buen agente vendedor, no
tiene necesariamente que ser un buen
calificador.
-
Los agentes deben ser capaces de proveer
evaluaciones personalizadas. Esto presupone
otorgar más que un simple valor de +1 o -1
para permitir una mejor evaluación de otro
agente.
-
Los agentes deben ser capaces de guardar en
memoria los valores de reputación y darle más
importancia a los últimos obtenidos. Esto es
necesario para mantener la medida de
reputación lo más actual posible y ayudar a
prevenir que un agente crea una buena
reputación interactuando bien en un principio
para luego comenzar a incumplir sus
promesas.
Existen varios modelos de reputación. Cada uno de
ellos con características propias. Jordi Sabater [32]
presenta una clasificación de ellos según los siguientes
parámetros:
-
Tipo de paradigma: Existen dos grandes
grupos
en
esta
clasificación,
una
aproximación cognitiva y una aproximación
matemática. En los sistemas basados en
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
modelos cognitivos, la confianza es construida
mediante creencias subyacentes y la confianza
es una función del grado de estas creencias
[9]. Los modelos matemáticos utilizan
funciones de utilidad, probabilidades y la
evaluación de interacciones pasadas y no se
basan en asunciones o en creencias.
-
Fuentes de información: Las fuentes de
información utilizadas en un sistema de
reputación para la determinación del valor de
confianza pueden ser diversas. Desde la
información propia recabada por la
interacción directa como mediante la de
terceros que pueden ser expertos o
simplemente testigos. Otra fuente de
información utilizada recientemente son los
aspectos sociológicos del comportamiento del
agente. La información que obtenga el agente
dependerá de sus capacidades sensoriales y
del ambiente donde se encuentre.
-
Tipo de visibilidad: La reputación puede ser
vista como una propiedad global compartida
por todos los observadores o como privado y
subjetiva mantenida por cada individuo.
-
Granularidad del modelo: Un sistema de
reputación de simple contexto esta diseñado
para asociar un único valor de reputación por
agente sin tener en cuenta el contexto. Por el
contrario un sistema de reputación de multicontexto tiene los mecanismos necesarios para
manejar varios contextos al mismo tiempo
para cada agente de acuerdo al contexto.
-
Asunción del comportamiento de los agentes:
En un sistema ideal todos los agentes gustosos
intercambiarán información de reputación y lo
harán sin falsear su valor. Pero en sistemas
competitivos ciertos agentes pueden pretender
engañar al agente para beneficio propio. En
ese aspecto pueden generarse varios
comportamientos frente a esta amenaza.
-
Tipo de información intercambiada: Una
última clasificación se puede establecer de
acuerdo a la manera entre que diferentes
agentes
intercambian
información
de
reputación. En un primer grupo se encuentran
los mecanismos de reputación que utilizan
valores booleanos. En el otro grupo se
encuentran los grupos que utilizan valores
continuos de medición.
Víctor Daniel PODBEREZSKI
- 201 -
7. Utilización
administración
suministros.
de reputación en la
de
la
cadena
de
Dentro de los sistemas de reputación se encuentran
aquellos centralizados donde el valor de reputación es
global y no subjetivo. Ejemplo de éstos son los
sistemas de reputación on-line [8, 7, 21] y Sporas [45].
En un sistema de administración de cadena de
suministros nos encontramos con agentes autónomos
que compiten entre sí, que mantienen diferentes puntos
de vista sobre sus conceptos de calidad y que no
siempre están dispuestos a intercambiar información.
Debido a que diferentes agentes en la cadena de
suministros tienen formas diferentes de calificar las
interacciones esta aproximación centralizada no es
adecuada por lo tanto resulta poco recomendable su
utilización. La aproximación descentralizada se
adecuada a la realidad y su utilización es más acertada.
Debe tenerse en cuenta que en diversos agentes
pueden calificar de diversas formas y con diferentes
variables, se hace entonces necesario lograr algún
mecanismo que permita compatibilizar entre las
diferentes formas de medición. Por otro lado un agente
puede tener otros conceptos de confianza diferentes a
uno o no estar dispuesto a proporcionar información
veraz, por lo tanto no siempre la información brindada
debe ser analizada y determinar si es utilizable o no.
Otros modelos de reputación utilizan como
información la observación directa, la obtención de
valores de reputación mediante la observación de la
interacción entre dos agentes y sus resultados. Este tipo
de obtención de reputación no puede utilizarse en la
administración de cadena de suministro, en primer
lugar por que muchas de las variables que se tienen en
cuenta en el análisis de una interacción requieren la
evaluación directa sobre el resultado obtenido (un
elemento físico y no lógico). Por lo tanto la utilización
de la observación directa no es una táctica apropiada.
Algunos métodos que utilizan esta aproximación son
[9], [35] y [36]
Otras soluciones, como [4] trabajan en base a
ambientes con agentes sociales, donde la reputación se
gana de acuerdo a la existencia de roles preestablecidos
en una sociedad y su cumplimiento por parte de los
agentes. En la administración de cadena de suministros
no existe una sociedad armada de agentes, las
relaciones de reputación se basan por la interacción y
no por “posiciones sociales”, por lo tanto este tipo de
acercamiento no es el más adecuado.
Existen aproximaciones al tema, tal como la
propuesta por Castelfranchi [5] que abordan la
medición de reputación en forma cognitiva. En el caso
de [5] la base de este modelo es la fuerte relación entre
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
confianza y delegación. Los autores afirman que “La
confianza es el trasfondo mental de la delegación” En
otras palabras, la decisión que lleva a un agente X a
delegar una tarea al agente Y está basada en un
conjunto especifico de creencias y objetivos y su
estado mental es lo que llamamos “confianza”. Por lo
tanto “Sólo un agente con creencias y objetivos puede
confiar”. Para construir el estado mental de confianza
utilizan una serie de creencias básicas. El grado de
confianza es una función de la fuerza de las creencias
de confianza. Esta aproximación es aplicable en la
cadena de suministros con la consideración de que
deben definirse las creencias de reputación para el
contexto de aplicación. Hay que hacer notar que es
difícil lograr que agentes con creencias diferentes y
posiblemente incompatibles puedan intercambiar
información de reputación satisfactoriamente.
En la interacción entre agentes en una cadena de
suministros el resultado que mide la satisfacción es un
valor complejo. Existen diversos aspectos en la
transacción que son evaluados. La dimensión
ontológica debe tenerse en cuenta, de no hacerlo se
pierde mucha de esta información y la misma pierde
calidad. Algunos de los modelos que tienen en cuenta
el aspecto multicontextual son [9], REGRET [32, 33,
34] y FIRE [13, 14].
La cuantificación de las variables debe hacer
posible una clasificación rica, otorgando un abanico de
valores posibles. De esa forma los agentes pueden
estudiar diversos agentes evaluados y determinar cual
es el más idóneo. Por otra parte es preferible que las
variables a sí mismo puedan ser entendidas por ojos
humanos pues muchas veces estos también pueden ser
los tomadores de decisiones, evaluadores de ciertas
variables o pueden querer verificar que las decisiones
se estén realizando de forma adecuada.
La forma de mediar cada valor de reputación es
también un parámetro a tener en cuenta. Existen
sistema de administración de reputación que califican
las interacción utilizando valores booleanos: éxito y
fracaso, ejemplo de ellos son [35] y [9]. Estos modelos
no tienen en cuenta que un contrato se puede llevar a
cabo, pero que los resultados obtenidos tengan un
grado de satisfacción. En la cadena de suministros un
contrato con un tercero es analizado y mas allá de si
fue un éxito es deseable conocer el grado de
satisfacción logrado. De esa forma es posible más
adelante comparar entre agentes que cumplen su
contrato pero que lo realizan brindando diferentes
calidades o prestaciones. Otros sistemas que tienen
esto en cuenta son REGRET [32, 33, 34], FIRE [13,
14], [36], [4], [42, 43, 44] y NodeRanking [24, 25, 26,
27] utilizando para representar un intervalo continuo; y
[1] y AFRAS [3] utilizando intervalos difusos.
Víctor Daniel PODBEREZSKI
- 202 -
La utilización de mecanismos de cálculo de
reputación donde los valores de reputación de un
agente dependen de los agentes con los que tiene
tratos, por ejemplo NodeRanking [24, 25, 26, 27] no
son adecuados, pues un agente que tiene tratos con otro
agente de baja reputación no tiene por que serlo, de
igual forma en el caso contrario con agentes de alta
reputación.
Ninguno de los modelos de reputación anterior
contemplan la coexistencia de agentes de reputación
centralizados con descentralizados. En la selección de
socios en los procesos productivos además de la
experiencia previa y la reputación dada por pares se
tiene en cuenta la certificación de calidad provista por
ciertos agentes certificadores de calidad (por ejemplo:
ISO). Las certificaciones en ciertos ambientes son
obligatorias por legislación o por política de empresa,
por lo tanto debería incluirse este tipo de validación de
reputación en el método propuesto y una forma de
cuantificarla.
El sistema de reputación utilizado no debe generar
un tráfico alto de consultas. No se debe saturar la red
con mensajes de pedidos de reputación o valores de
reputación ni ser muy costoso el mantenimiento y
calculo de la misma.
8. Conclusiones
Teniendo en cuenta lo analizado y propuesto en las
secciones anteriores, el objetivo a lograr para asegurar
una adecuada selección de un socio en la cadena de
suministros modelada bajo el paradigma de agentes es
la realización de un modelo de administración de
reputación adecuado. El mismo deberá explotar las
bondades de los modelos de reputación existentes,
modificando ciertas partes y haciéndolo mas adecuado
a las necesidades propias de esta realidad.
Entre las características a tener en cuenta se
encuentran:
- Integración en la arquitectura de la
administración de la cadena de suministros sin
mayores cambios.
- Bajo tráfico de consultas de reputación entre
agentes.
- Arquitectura mixta: centralizada (agentes de
certificación) y descentralizada (opiniones de
confianza de terceros).
- Soporte multicontextual.
- Medición de valores de confianza con varios
niveles de satisfacción (por ejemplo intervalos
continuos o difusos frente a los booleanos).
- Preeminencia de valores cronológicamente
más cercanos a los antiguos.
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
-
-
Agrupamiento inteligente de objetos de
medición para afinar la medición (por ejemplo
la variable medida ‘t’ (ejemplo: “calidad”)
productos A (ej: “tornillos”) y B (ej: “clavos”)
del proveedor 1 (“Tornería Tulio”) por ser
similares en sus resultados por un lado y por
otro lado el producto C (“tuercas”) del mismo
proveedor por ser diferente.
Aprendizaje y refinamiento progresivo de
grupos de objetos de medición.
Posibilidad de lectura y participación humana
para la verificación de las decisiones tomadas.
Preeminencia de valores de reputación
provenientes de agentes confiables (que por
iteración pasada han demostrado más certeza
en sus valores de reputación intercambiados).
Posibilidad de trabajar con diferentes métricas
de reputación. Diferentes agentes pueden
preferir utilizar otras métricas. Deben existir
funciones que permitan pasar de una métrica a
otra. Esto permite la coexistencia de
diferentes modelos de reputación y su
compatibilidad)
Si para el modelado de agentes se utiliza
descomposición física el concepto de reputación puede
ser extendido a dentro de la misma fábrica, ayudando
al planificador a seleccionar una máquina en particular
de acuerdo a su comportamiento dentro de la fábrica.
Una línea de investigación que surge es la creación
de una arquitectura modularizada de administración de
reputación de forma de lograr las características antes
expuestas de una manera ágil y fácil de implementar.
Una modularización que permita definir un sistema de
reputación de acuerdo a las necesidades específicas y
responder a las características requeridas del contexto
de aplicación.
9. Referencias
[6] Chang Yoon, Makatsoris Harris, 2001, Supply chain
modeling using simulation, En International Journal of
Simulation - Systems, Science & Technology, Vol. 2 No. 1
[7] DeRemate, 2005, http://www.deremate.com/
[8] ebay, 2005, http://www.ebay.com/
[9] Esfandiari B., Chandrasekharan S., 2001, On how
agents make friends: Mechanisms for trust acquisition, En
Proceedings of the Fourth Workshop on Deception, Fraud
and Trust in Agent Societies, Montreal Canada, páginas 2734
[10] Fox, Mark. S., 1992, Integrated Supply Chain
Management, Technical Report, Enterprise Integration
Laboratory, University of Toronto.
[11] Fox Mark S., Barbuceanu Mihai, y Teigen Rune, 2000,
Agent-Oriented Supply-Chain Management, 2000, The
International Journal of Flexible Manufacturing Systems, 12
(2000), pages 165–188
[12] Harrington J. jr., 1973, Computer
Manufacturing., Pub Industrial Press, New York.
Integrated
[13] Huynh Dong, Jennings Nicholas R., Shadbolt Nigel R.,
2004, Developing an Integrated Trust and Reputation Model
for Open Multi-Agent Systems, School of Electronics and
Computer Science, University of Southampton, UK.
[14] Huynh, T. D., Jennings, N. R. and Shadbolt, N., 2004,
FIRE: an integrated trust and reputation model for open
multi-agent systems. En Proceedings of 16th European
Conference on Artificial Intelligence, pages pp. 18-22,
Valencia, Spain.
[15] IRAM, 2005, http://www.iram.com.ar/
[1] Abdul-Rahman A. y Hailes S., 2000, Supporting trust in
virtual communities, En Proceedings of the Hawaii's
International conference on Systems Sciences, Maui Hawaii
[2] Vicente J. Botti Navarro, Adriana Giret Boggino, 2003,
Aplicaciones Industriales de los Sistemas Multiagente
[3] Carbo J., Molina J. y Davila J., 2002, Comparing
predictions of sporas vs. a fuzzy reputation agent systems. En
3rd International Conference on Fuzzy Sets and Fuzzy
Systems, Interlaken, páginas 147-153
[4] Carter J., Bitting E. y Ghorbani A, 2002, Reputation
formalization for an information-sharing multi-agent system,
Computational Intelligence, 18(2), páginas 515-534
Víctor Daniel PODBEREZSKI
[5] Castelfranchi C. y Falcone R., 1998, Principles of trust
for MAS: Cognitive anatomy, social importance, and
quantification. En Proceedings of the International
Conference on Multi-Agent Systems (IC-MAS'98), Paris
Francia, Páginas 72-79
- 203 -
[16] ISO, 2005, www.iso.org
[17] Jennings, N. R.; Corera, J.; y Laresgoiti, I. 1995.
Developing Industrial Multi-Agent Systems. In Proceedings
of ICMAS’95 423–430.
[18] Jennings, N. R., y Wooldridge, M. 1998. Applications
of Intelligent Agents. Agent Technology: Foundations,
Applications, and Markets 3–28.
[19] Kalpakjian Serope, Schmid Steven R., 2002,
Manufactura ingeniería y tecnología, Pearson educación
[20] LAU Jason, Huang George Q y Mak K L, 2004, Agentbased modeling of supply chains for distributed scheduling,
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
IEEE Transactions on Systems, Man and Cybernetics: Part
A, Accepted for publication
[21] MercadoLibre, 2005, http://www.deremate.com/
[22] Osanna P. H., Si, L: Multi-Functions Integrated Factory
M.F.I.F. - a Model of the Future Enterprise. Conference
Proceedings: Internet Device Builder Conference, Sta. Clara,
Mai 2000, 6S
[23] Osanna P.H., Durakbasa M.N., Si L.X., 2001, Artificial
Intelligence-based Metrology and Quality Management in
Intelligent Production Environment, IPMM – 2001
[24] Pujol, J.M., Sangüesa, R. and Delgado J.,2002,
Distributed and Adaptable Ranking Algorithm for Reputation
and Relevance Extraction, En Proceedings of the 5th Catalan
Conference on Artificial Intelligence CCIA-02, pp 205-213,
Castelló de la Plana, Spain.
[25] Pujol J.M., Sangüesa R. y Delgado J., Extracting
Reputation in Multi Agent System by means of Social
Network Topology, en Proceedings of the First International
Joint Conference on Autonomous Agents and Multi-Agent
Systems AAMAS-02. Vol. 1, pp 467-474. Bologna, Italy.
[33] Sabater Jordi , Sierra Carles , 2002, Reputation and
social network analysis in multi-agent systems. AAMAS
2002: 475-482
[34] Sabater J., Sierra C., 2002, REGRET: a reputation
model for gregarious societies. En C. Castelfranchi y L.
Johnson, editors, Proceedings of the 1st International Joint
Conference on Autonomous Agents and Multi-Agent
Systems, paginas 475–482.
[35] Schillo M., Funk P. y Rovatsos M., 2000, Using trust
for detecting deceitful agents in artificial societies, Applied
Artificial Intelligence, Edición especial en Confianza, engaño
y fraude en sociedades de agents
[36] Sen S. y Sajja N., 2002, Robustness of reputation-based
trus: Booblean case. En Proceedings of the first international
joint conference on autonomous agents and multiagent
systems (AAMAS-02), Bologna Italia, Páginas 288-293
[37] Swaminathan Jayashankar M., Smith Stephen F. y
Sadeh Norman M., 1998, Modeling Supply Chain Dynamics:
A Multiagent Approach, Decision Sciences Volume 29
Number 3 Summer 1998
[26] Pujol Josep M., Sangüesa Ramon y Delgado Jordi,
2003, A Ranking Algorithm based on Graph Topology to
Generate Reputation or Relevance, En Web Intelligence
(Ning Zhong, Jiming Liu, and Yiyu Yao eds.), ch 18, pp 382395, Springer Verlag, ISBN: 3-540-44384-3.
[38] Wagner Tom y Guralnik Valerie, Software Agents for
Dynamic Supply Chain Management, 2002
[27] Pujol J.M., Sangüesa R., 2001, Reputation Measures
based on Social Networks metrics for Multi Agents Systems,
en Proceedings of the 4th Catalan Conference on Artificial
Intelligence CCIA-01, pp 205-213, Barcelona, Spain.
[40] Wooldridge, M. and Jennings, N.R., 1995. Agent
Theories, Architectures and Languages: a Survey in Eds.,
Intelligence Agents, Berlin: Springer-Verlag, Vol 1, Nro 22
[28] Ramchurn Sarvapali D., HuynhDong, Jennings Nicholas
R.,2004, Trust in Multi-Agent Systems, School of
Electronics and Computer Science, University of
Southampton.
[29] Rapetti O, 2002, Apunte de Cátedra CIM I, 75.65
Manufactura Integrada por Computador (CIM) -Facultad de
Ingeniería - Universidad de Buenos Aires
[30] Rossetti Manuel D. and Hin-Tat Chan, 2003 , A
prototype object-oriented supply Chain simulation
framework, Proceedings of the 2003 Winter Simulation
Conference
[31] Russell, S. Norving, P. 1995. Artificial Intelligente: A
Modern Approach. Prentice-Hall.
[32] Sabater Mir Jordi, 2003, Trust and reputation for agent
societies, Tesis Doctoral, Universidad Autónoma de
Barcelona
Víctor Daniel PODBEREZSKI
- 204 -
[39] Waldner Jean-Baptiste, 1990, CIM Principles of
Computer-integrated Manufacturing, Wiley
[41] Wooldridge, M., 2002, An introduction to Multiagent
Systems, John Wiley & Sons Ltd.
[42] Yu, Bin. Singh, P. 2000. A Social Mechanism of
Reputation Management in Electronic Communities.
Department of Computer Science. Nort Carolina State
University.
[43] Yu, Bin. Singh, P. 2001a. An Evidential Model of
Distributed Reputation Management. Department of
Computer Science. North Carolina State University.
[44] Yu, Bin. Singh, P. 2001b. Detecting Deception in
Reputation Management. Department of Computer Science.
North Carolina State University.
[45] Zacharia G. y Maes P., 2000, Trust through reputation
mechanisms. Applied Artificial Intelligence, 14:881–90
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA
FLEXIBLE
Ontología de administración e intercambio de reputación.
Víctor Daniel Podberezski (1), Jorge Salvador Ierache (1), (2)
Facultad de Ingeniería, Universidad de Buenos Aires,
Laboratorio de sistemas inteligentes (1)
Facultad de Informática, Ciencias de la Comunicación y Técnicas Especiales,
Universidad de Morón (1), (2)
[email protected], [email protected]
Abstract
El intercambio de apreciación sobre el
comportamiento de un agente entre pares es una
necesidad creciente a medida que los sistemas
multiagentes se van masificando y utilizando en
diferentes situaciones. Discriminar agentes con un
comportamiento perjudicial para la sociedad de
agentes a la que pertenece, que incumple sus
compromisos o que no los completa satisfactoriamente
de aquellos que cumplen con sus compromisos de
forma satisfactoria es una capacidad deseable y
muchas veces necesaria.
Se presenta una ontología para la administración de
reputación flexible para poder utilizarse en diversos
escenarios donde la reputación sea necesaria.
Keywords: Intelligent Agents, Reputation, Ontology,
1. Introducción
La confianza es la creencia que tiene un agente que
la contraparte realizara lo que prometió (siendo
honesto y confiable) o será reciproco (para el bien
común de ambos) aun existiendo una oportunidad de
desertar para conseguir rentabilidades más altas [16].
La reputación se puede definir como la opinión o
perspectiva sobre alguien acerca de algo. [19].
Durante los últimos años se han propuesto una gran
cantidad de modelos para el cálculo e intercambio de
reputación entre agentes [1, 3, 4, 5, 9, 10, 15, 19]. Se
pretende generar una arquitectura de reputación
modular que permite integrar estos modelos y facilitar
la configuración del mismo, permitiendo intercambiar
información entre ellos o adecuarlo para su utilización
en una situación particular. Por lo tanto, una ontología
de intercambio de reputación flexible se hace
imperativa.
A lo largo del trabajo se pretende presentar la
ontología desarrollada. En la sección 2 se comentan las
características de algunos de los modelos de reputación
Víctor Daniel PODBEREZSKI
representativos existentes. La sección 3 examina
algunas de las ontologías de reputación existentes. La
sección 4 presente el problema a solucionar y la
sección 5 detalla la solución encontrada. Por ultimo en
la sección 6 se ofrece las conclusiones y las futuras
líneas de investigación.
2. Diferentes modelos de reputación.
Existen gran cantidad de modelos de reputación
pensados para el intercambio y administración de
opiniones sobre la confianza de las capacidades de
diferentes agentes. Entre ellos FIRE [9, 10],
NodeRanking [15], REGRET [19], AFRAS [3] o
Sporas [23]. Algunos de ellos fueron propuestos para
resolver situaciones específicas, por ejemplo la
reputación de compradores y vendedores en un entorno
online como eBay [5], DeRemate [4] o MercadoLibre
[13] o para medir grado de cumplimiento de los roles
atribuidos a un agente por la sociedad [1]. Cada uno de
ellos propone la utilización de diferentes fuentes de
información, diferentes paradigmas, hacen usos de
diferentes contextos y manejan diferentes tipos de
métricas y formas de evaluar la reputación.
Realizando un análisis al conjunto de modelos de
reputación se pueden encontrar un conjunto de
características que se pueden utilizar para clasificarlos.
Jordi Sabater [18] presenta una clasificación de ellos
según los siguientes parámetros:
- 205 -
-
Tipo de paradigma: Existen dos grandes
grupos
en
esta
clasificación,
una
aproximación cognitiva y una aproximación
matemática. En los sistemas basados en
modelos cognitivos, la confianza es construida
mediante creencias subyacentes y la confianza
es una función del grado de estas creencias
[6]. Los modelos matemáticos utilizan
funciones de utilidad, probabilidades y la
evaluación de interacciones pasadas y no se
basan en asunciones o en creencias.
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
-
Fuentes de información: Las fuentes de
información utilizadas en un sistema de
reputación para la determinación del valor de
confianza pueden ser diversas. Desde la
información propia recabada por la
interacción directa u observación como
mediante la de terceros que pueden ser
expertos o simplemente testigos. Otra fuente
de información utilizada recientemente son
los aspectos sociológicos del comportamiento
del agente y el prejuicio [18]. La información
que obtenga el agente dependerá de sus
capacidades sensoriales y del ambiente donde
se encuentre.
-
Tipo de visibilidad: La reputación puede ser
vista como una propiedad global compartida
por todos los observadores o como privado y
subjetiva mantenida por cada individuo.
-
Granularidad del modelo: Un sistema de
reputación de simple contexto esta diseñado
para asociar un único valor de reputación por
agente sin tener en cuenta el contexto. Por el
contrario un sistema de reputación de multicontexto tiene los mecanismos necesarios para
manejar varios contextos al mismo tiempo
para cada agente de acuerdo al contexto.
-
Asunción del comportamiento de los agentes:
En un sistema ideal todos los agentes gustosos
intercambiaran información de reputación y lo
harán sin falsear su valor. Pero en sistemas
competitivos ciertos agentes podrían pretender
engañar al agente para beneficio propio. En
ese aspecto pueden generarse varios
comportamientos frente a esta amenaza [18].
-
Tipo de información intercambiada: Una
última clasificación se puede establecer de
acuerdo a la manera entre que diferentes
agentes
intercambian
información
de
reputación. En un primer grupo se encuentran
los mecanismos de reputación que utilizan
valores booleanos. En el otro grupo se
encuentran los grupos que utilizan valores
continuos de medición.
3. Ontologías de reputación existentes
No existen disponibles gran cantidad de ontologías
para la medición y administración de reputación.
Víctor Daniel PODBEREZSKI
- 206 -
Trust ontology [20] es una ontología pequeña escrita
en OWL/RDF [24] que permite a una persona decir
cuanto confía en otra en una área especifica. Utiliza
una única métrica consistente en una escala del 1 al 10.
Christoph Görn [7] extiende la ontología anterior
presentándola como una tupla de 5 elementos del estilo
“A confía en B en un tema C durante el tiempo T en un
nivel L”. A y B son personas, C es el tema evaluado, T
es un intervalo de tiempo en el que es válida la
apreciación y L es el nivel de confianza en la escala de
1 a 10.
Sara Casare y Jaime Sichman [2] proponen una
ontología completa que tiene en cuenta diferentes
conceptos de la reputación como, la fuente de
información, el rol de los agentes, la modificación en
el tiempo del comportamiento; entre otras cosas, pero
no tiene en cuenta diferentes métricas (únicamente
discrimina en un comportamiento adecuado o
inadecuado) y no presenta una descomposición
temática del proceso a reputar.
4. Escenario motivador
Existe la necesidad de generar una ontología para el
intercambio de reputación. La misma debe permitir
generar apreciaciones de reputación sobre el
comportamiento de un agente ante un contrato entre
partes (tanto privado como un contrato social). La
reputación es evaluada sobre un agente (agente
reputado) y es realizado por otro agente (agente
reputador) y es almacenado por un agente para su
posterior manipulación (agente colector). La
reputación puede ser originada mediante cualquiera de
las fuentes de información antes mencionadas y se
debe permitir la capacidad de tener en cuenta contextos
dentro da la medición de reputación para diferentes
tipos de contratos de tal forma que se pueda almacenar
diferentes aspectos de cada uno de ellos (temas) en
función de una taxonomía.
La reputación debe poder ser almacenada en forma
centralizada, descentralizada o una combinación de
estas dos (por ejemplo ciertas variables del contexto de
la reputación de los contratos medidos o administrados
por agentes centralizados y otras almacenadas en forma
privada por cada agente).
Debe ser posible consultar que agentes administran
cierto tema y la reputación de uno o más agentes sobre
uno o más temas.
Una cuestión importante también es la posibilidad de
utilizar diferentes métricas para la medición de la
reputación, pues diferentes modelos de reputación o
incluso diferentes agentes manejan diferentes maneras
de evaluar la confianza en un tercero. Se muestra en la
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
figura 1 un diagrama UML que muestra el escenario
relatado.
5. Propuesta de la ontología de reputación
Para la construcción de la ontología aplicada para el
intercambio de reputación se utiliza la metodología
propuesta por Grüninger M, Fox M [8]. Dentro de la
ontología se identificaron un conjunto de conceptos y
relaciones. Además un conjunto de axiomas que se
explican a continuación.
Agentes: Se Sigue la definición de [17; 22] y se
considera a un agente a un sistema de computación que
se encuentra situado en un ambiente y es capaz de un
comportamiento autónomo con la misión de cumplir
sus objetivos de diseño. Un agente debe poder ser
identificado unívocamente para diferenciarlo de otros.
Agente de reputación: Es un agente con capacidad de
evaluar y administrar reputación sobre una cantidad de
tipos de contratos y un conjunto de temas. Se pude
subdividir en 2 grupos agentes administradores o
agentes reputadores
Agente administrador: Es un agente de reputación
que administra y almacena valores de reputación. Es
capaz de solicitar o recibir información de reputación
para su manipulación.
Agente reputador: Es un agente de reputación que
toma el rol de evaluar un aspecto del accionar de un
agente reputado en la resolución de un contrato.
Agente reputado: Es un agente cuyo accionar para la
resolución de un contrato es objeto de reputación.
Un mismo agente no puede tomar el rol de reputador
y reputado para la evaluación de un contrato dado. Sin
embargo en diferentes contratos un mismo agente
puede ser objeto de evaluación de reputación (agente
reputado) o Agente administrador. En el mismo
contrato no hay restricción en que un mismo agente sea
reputador y administrador.
Fuente de información: Corresponde a la descripción
del medio por el cual fue obtenida una medición de
reputación. Si divide en primarias y secundarias.
Las fuentes de información primarias son aquellas
que se obtienen por la evaluación de un contrato donde
el agente reputador es testigo de su concreción. Bajo
esta categoría el agente reputador puede ser un
Víctor Daniel PODBEREZSKI
- 207 -
observador del contrato o ser participe directo del
mismo.
Las fuentes de información secundarias son aquellas
que se construyen a partir de fuentes primarias e
implican
generalización,
análisis,
síntesis,
interpretación o evaluación de las mismas. Se
subdividen a su vez en reputación propagada que es la
obtenida de terceros, la reputacion sociología que es
construido de acuerdo al concepto que tiene la
sociedad entera de un agente (generalmente de acuerdo
a la posición o el papel del agente en la sociedad) y la
reputación del prejuicio.
Tipo de contrato: Agrupa a un conjunto de acciones,
comportamientos o tópicos realizados por agentes a
reputar de igual naturaleza. Diferentes tipos de
contratos pueden ser almacenados o evaluados por
diferentes agentes de reputación.
Tema: Faceta de un tipo de contrato que es
calificada. Un tipo de contrato se divide en diferentes
aspectos en función de una taxonomía que son medidos
mediante la reputación. Estos temas a su vez pueden
contener subtemas que también son medidos. La
combinación de todos generan los temas de un tipo de
contrato
y
conforman
la
evaluación
del
comportamiento de un agente en un contrato.
Por ejemplo si un tipo de contrato es proveer tubos
para la construcción de tuberías, los temas a reputar
podrían ser la calidad de los tubos, la atención brindada
durante la concreción del contrato y el servicio postventa. La calidad de los tubos podría subdividirse en la
presión máxima que soportan, resistencia a la corrosión
y la resistencia térmica entre otras características.
Diferentes tipos de contratos podrían contener
mismos temas para la medición. Y diferentes temas
podrían compartir subtemas de evaluación.
Diferentes agentes de reputación pueden administrar
y almacenar reputación de diferentes temas.
Contrato a evaluar: Corresponde a las obligaciones
adquiridas entre dos o más agentes que pactan un
acuerdo sobre una declaración de voluntades común
destinada a reglar sus derechos. Pertenecen a un tipo de
contrato preestablecido. Los resultados de este contrato
son objeto de evaluación del comportamiento de cada
agente y la modificación de la reputación de cada uno
de ellos de acuerdo a su accionar.
Métrica: Define el método de cálculo utilizado para
medir la reputación de un tema de un contrato. Esta
compuesto por tipo de valor que utiliza y una escala.
Los agentes de reputación utilizan un conjunto de
métricas para la valorización de cada uno de los temas
a reputar.
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
Escala: Es un conjunto de valores con propiedades
definidas. [12] Se subdivide en escala numérica y
categórica
Escala categórica: Una escala donde los valores
medidos son categorías y no se pueden expresar en
unidades en un sentido estricto.
Escala numérica: Una escala donde los valores
medidos son números que pueden ser expresados en
unidades en un sentido estricto. La misma puede ser
continua o discreta. Puede estar acotada a un intervalo
y tener un salto entre valor y valor (lo que le da la
máxima precisión. Tienen una unidad.
Unidad: Es una medida patrón definida y adoptada
por convención contra la cual son comparadas otras
cantidades de la misma clase, para expresar
magnitudes en relación a esa cantidad [11]
Figura 1: Diagrama UML de la ontología de administración e intercambio de reputación
Reputación: Es la opinión o perspectiva (valoración)
sobre el comportamiento de un agente (agente
reputado) por otro agente (agente reputador) acerca de
un tema de un contrato, expresada en una métrica en
particular. Contiene la fuente de información indicando
como obtuvo esa opinión y quien es el agente que
administra esa información (agente administrador).
Un mismo tema de un contrato puede ser
almacenado por diferentes agentes administradores,
Víctor Daniel PODBEREZSKI
- 208 -
estar medida con métricas diferentes, provenir de otra
fuente de información y tener una valoración diferente.
No obstante para un mismo tema de un contrato, una
misma fuente de información, un mismo agente
reputador no puede dar diferentes valoraciones con una
misma métrica. Se prevé en la arquitectura de
administración de reputación la posibilidad de realizar
conversiones de métricas para poder comprar temas de
reputación valorizados con diferentes métricas.
MECANISMOS DE VALORACION DE REPUTACIÓN EN SIST. MULTIAGENTES: UNA ARQUITECTURA FLEXIBLE
6. Conclusiones y trabajos futuros:
Conference on Artificial Intelligence, pages pp. 18-22,
Valencia, Spain.
La ontología propuesta cubre situaciones de sistemas
de reputación centralizados con valores de reputación
booleanos y sin contextos hasta reputación
descentralizada con agentes especializados en la
valoración o en la administración de reputación,
multicontextuales y con diferentes métricas de
reputación. Ejemplo de esta última es el escenario
presentado en Podberezski y Ierache [14] para la
utilización de reputación dentro de una cadena de
suministros en la producción.
Los trabajos futuros se orientan en la inserción de la
ontología en una arquitectura flexible para la
administración de reputación.
7. Referencias:
[1] Carter J., Bitting E. y Ghorbani A, 2002, Reputation
formalization for an information-sharing multi-agent system,
Computational Intelligence, 18(2), páginas 515-534
[2] Casare Sara, Simão Sichman Jaime: Towards a
functional ontology of reputation. AAMAS 2005: 505511
[3] Carbo J., Molina J. y Davila J., 2002, Comparing
predictions of sporas vs. a fuzzy reputation agent systems. En
3rd International Conference on Fuzzy Sets and Fuzzy
Systems, Interlaken, páginas 147-153
[4] DeRemate, 2005, http://www.deremate.com/
[5] ebay, 2005, http://www.ebay.com/
[6] Esfandiari B., Chandrasekharan S., 2001, On how agents
make friends: Mechanisms for trust acquisition, En
Proceedings of the Fourth Workshop on Deception, Fraud
and Trust in Agent Societies, Montreal Canada, páginas 2734
[11] ISO/IEC 15939: 2002 International Standard, Software
Engineering – Software Measurement Process.
[12] ISO/IEC ISO14598-1: 1999 International Standard,
Information Technology – Software product evaluation –
Part 1: General Overview.
[13] MercadoLibre, 2005, http://www.deremate.com/
[14] Víctor Daniel Podberezski, Jorge Salvador Ierache:
Utilización de Agentes y Reputación en la Administración de
la Cadena de Suministros industriales. JIISIC 2006: 217-224
[15] Pujol J.M., Sangüesa R., 2001, Reputation Measures
based on Social Networks metrics for Multi Agents Systems,
en Proceedings of the 4th Catalan Conference on Artificial
Intelligence CCIA-01, pp 205-213, Barcelona, Spain.
[16] Ramchurn Sarvapali D., HuynhDong, Jennings Nicholas
R.,2004, Trust in Multi-Agent Systems, School of
Electronics and Computer Science, University of
Southampton.
[17] Russell, S. Norving, P. 1995. Artificial Intelligente: A
Modern Approach. Prentice-Hall.
[18] Sabater Mir Jordi, 2003, Trust and reputation for agent
societies, Tesis Doctoral, Universidad Autónoma de
Barcelona
[19] Sabater J., Sierra C., 2002, REGRET: a reputation
model for gregarious societies. En C. Castelfranchi y L.
Johnson, editors, Proceedings of the 1st International Joint
Conference on Autonomous Agents and Multi-Agent
Systems, paginas 475–482.
[20]
Trust
ontology
2006,
http://www.schemaweb.info/schema/SchemaDetails.as
px?id=171
[7] Görn Christoph, 2006, An extended Ontology for
Trust Models, http://b4mad.net/2006/01/10/trust.html
[21] Wooldridge, M. and Jennings, N.R., 1995. Agent
Theories, Architectures and Languages: a Survey in Eds.,
Intelligence Agents, Berlin: Springer-Verlag, Vol 1, Nro 22
[8] Grüninger M, Fox M. S., 1995, Methodology for the
design and evaluation of ontologies, Workshop on Basic
Ontological Issues in Knowledge Sharing, Montreal, Canada
[22] Wooldridge, M., 2002, An introduction to Multiagent
Systems, John Wiley & Sons Ltd.
[9] Huynh Dong, Jennings Nicholas R., Shadbolt Nigel R.,
2004, Developing an Integrated Trust and Reputation Model
for Open Multi-Agent Systems, School of Electronics and
Computer Science, University of Southampton, UK.
[10] Huynh, T. D., Jennings, N. R. and Shadbolt, N., 2004,
FIRE: an integrated trust and reputation model for open
multi-agent systems. En Proceedings of 16th European
Víctor Daniel PODBEREZSKI
- 209 -
[23] Zacharia G., 1999, Collaborative reputation mechanisms
for online communities, Tesis para master, Instituto de
tecnología de Massachussets
[24] M. Dean, D. Connolly, F. van Harmelen, J. Hendler, I.
Horrocks, D.L. McGuinness, P.F. Patel-Schneider, L.A.
Stein, OWL Web Ontology Language 1.0 Reference, W3C
Working Draft, 2002. http://www.w3.org/TR/owl-ref/