Reunión DAMMAD
Diseño y Aplicación de Modelos Multiagente
para Ayuda a la Decisión
SKADS
Grupo de Inteligencia Artificial
Dpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
DAMMAD
7.3.2003
KSM
•
Jerarquía de áreas de
conocimiento
•
Jerarquía de tareas
Enfermedades de
origen infeccioso
Consulta Médica
(Enfermedades de origen infeccioso)
Conocimiento
- Efect. Secund.
- Trat. Enferm.
- Trat. Síntom.
Presencia de
enfermedades
Flujo de Datos
Funcionalidad
R1: ... -> ...
R2: ... -> ...
R3: ... -> ...
...
Rn: ... -> ...
- Recomendar
- Aceptar
Tratamientos
Diagnosticar
(Presencia de enfermedades)
Estado del
Paciente
Cuadros
Clínicos
Efectos Secundarios Tratamientos de
de Drogas
Enfermedades
Tratamientos de
Síntomas
Abstraer Síntomas
(Estado del Paciente)
Identificar Causa
(Cuadros Clínicos)
Recomendar Terapia
(Tratamientos)
Proponer
Identificar Causa
(Efect. Secundarios) (Trat. Enfermedades)
Proponer
(Trat. Síntomas)
Revisar
(Efect. Secundarios)
Vocabulario Conceptual
DAMMAD
Control de Flujo
7.3.2003
Utilidades de representación
• Bases de conocimiento
 Primitiva de representación
 Componente software con:
• Técnica general de representación
• Mecanismos de inferencia
• Conocimiento de control
 Formalización y ejecución de métodos de razonamiento:
Lenguaje Link
• Terminología común
 Formalización de vocabularios conceptuales: Lenguaje Concel
DAMMAD
7.3.2003
Construcción de la versión ejecutable
Area de Conocimiento
Area de Conocimiento
Area de Conocimiento
Primitiva
(Reglas)
Area de Conocimiento
Area de Conocimiento
Primitiva
(Marcos)
DAMMAD
Area de Conocimiento
Primitiva
(Restricciones)
7.3.2003
Primitivas KSM
• Programadas en C++ (Marcos, Reglas, ...)
• Métodos principales
 Cargar Base de Conocimiento
 Ejecutar una Tarea
 una misma primitiva puede propocionar varias tareas
 se pasan entradas + parámetros y devuelve salidas + estado de
control
• Tipos de datos intercambiados en KSM:
 Booleanos, enteros, reales, símbolos, listas, hechos discretos, ...
 ArgBool, ArgInt, ArgReal, ArgSymbol, ArgList, ArgDiscreteFact, ...
DAMMAD
7.3.2003
Software SKADS
• Sobre plataforma (FIPA) de agentes JADE
• JAVA
• Las primitivas se encapsulan en agentes JADE
 Integración de C++ y JAVA (JNI)
 Envoltorio de agente
• Las Bases de Conocimiento y Vocabularios Conceptuales
se mantienen internos a cada agente, pero “ocultos” a la
plataforma JADE.
• En la ontología JADE (para la comunicación entre
agentes) sí se definen los tipos de datos de KSM
• Comunicación mediante ACL y protocolos FIPA
• Se utiliza Protegé-2000 como editor de ontologías
 Permite generar ontología JADE, CLIPS, RDF, etc.
DAMMAD
7.3.2003
Agentificación de KSM
Comunicación en FIPA ACL
Area de Conocimiento
Primitiva
(Reglas)
Agente 1
Area de Conocimiento
Primitiva
(Marcos)
Agente 2
DAMMAD
Area de Conocimiento
Primitiva
(Restricciones)
Agente 3
7.3.2003
Protocolos de Comunicación
• Cargar BC
 Protocolo: FIPA-Request
 Request con acción “Cargar BC”
con fichero de BC y VC
 Si se carga sin errores =>
inform-done
 Si algún problema => failure/not-
understood
DAMMAD
7.3.2003
Protocolos de Comunicación
• Ejecutar Tarea
 Protocolo: FIPA-Query
 Query-ref preguntando por valor
del resultado de ejecutar una
tarea
 Las entradas se admiten en
formato de datos y en modo
string
 Si no hay errores => inform con
el resultado + estado control
 Si algún problema =>
failure/not-understood
DAMMAD
7.3.2003
Ejemplo
• Mensaje para carga de BC
(REQUEST
:sender
( agent-identifier
:name [email protected]:1099/JADE
:addresses (sequence IOR:00000 ))
:receiver
(set ( agent-identifier
:name [email protected]:1099/JADE) )
:content
"((action (agent-identifier
:name [email protected]:1099/JADE
:addresses (sequence IOR:00000))
(CargaBC1 :FicheroBC baseConocimiento.in
:FicheroVoc vocabulario.in :FicheroErrores errores.out)))"
:language
FIPA-SL
:ontology
KSM-Ontology
)
DAMMAD
7.3.2003
Ejemplo
• Mensaje para Ejecutar Tarea
(QUERY-REF
:sender
( agent-identifier
:name [email protected]:1099/JADE
:addresses (sequence IOR:0000000 ))
:receiver
(set ( agent-identifier
:name [email protected]:1099/JADE) )
:content
"((iota ?x (EjecutaTarea1 match \"[['subcuenca Casasola',
'lluvia ultimas cuatro horas', 50],['embalse Casasola',
'porcentaje de llenado', 60]]\" ?x)))"
:language
FIPA-SL
:ontology
KSM-Ontology
)
DAMMAD
7.3.2003
Ejemplo
• Resultado de la ejecución de la tarea
(INFORM
...
:content
"((= (iota ?x (EjecutaTarea1 match \"[['subcuenca Casasola',
'lluvia ultimas cuatro horas', 50],['embalse Casasola',
'porcentaje de llenado', 60]]\" ?x))
(ArgResult :Salidas (sequence (ArgList :Lista (sequence (ArgList
:Lista (sequence (ArgDiscreteFact :Objeto \"embalse Casasola\“
:Atributo gravedad
:ValorDiscreto (ArgSymbol :Simbolo nula)
:Certeza 100)))))
:reply-with [email protected]:1099/JADE1046964074662
:language
FIPA-SL
:ontology
KSM-Ontology
)
DAMMAD
7.3.2003
Ejemplo
• Entradas
[
d-fact('NIII en PK_15070','velocidad','baja'),
d-fact('NIII en PK_15070','ocupacion','alta'),
d-fact('NIII en PK_15070','saturacion','baja'),
d-fact('salida a Vertederos','ocupacion','alta'),
d-fact('salida a Vertederos','saturacion','alta'),
d-fact('NIII tras acceso a M40','velocidad','alta'),
d-fact('NIII tras acceso a M40','ocupacion','baja'),
d-fact('entrada desde M40','ocupacion','alta'),
d-fact('entrada desde M40','saturacion','baja'),
d-fact('salida a M30','velocidad','baja'),
d-fact('salida a M30','ocupacion','alta'),
d-fact('salida a M30','saturacion','media'),
d-fact('NIII tras acceso a M30','velocidad','alta'),
d-fact('NIII tras acceso a M30','ocupacion','baja'),
d-fact('NIII tras acceso a M30','saturacion','baja')
]
DAMMAD
7.3.2003
Foto
DAMMAD
7.3.2003
Reunión DAMMAD
Diseño y Aplicación de Modelos Multiagente
para Ayuda a la Decisión
SKADS
Grupo de Inteligencia Artificial
Dpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
DAMMAD
7.3.2003
Reunión DAMMAD
Diseño y Aplicación de Modelos Multiagente
para Ayuda a la Decisión
Gestión Autobuses
Grupo de Inteligencia Artificial
Dpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
DAMMAD
7.3.2003
Arquitectura basada en servicios
• El sistema está compuesto de agentes que proporcionan
servicios:
 identificación de problemas, diagnosis, planificación, estimación,
datos (llegadas a paradas, averías, ...)
• Se anuncian/buscan en el DF (páginas amarillas)
• Protocolos según cada servicio
 Subcripción a llegadas de autobuses, ...
 Request para planificación de acciones, ...
DAMMAD
7.3.2003
Arquitectura de agentes
B u s F le e t M a n a g e m e n t
B u s F le e t
C o n tro l
C o n n e c tio n
C e n tre
LM A
1
DA
LM A
2
LM A
AIA
E x te rn a l
U IA
n
AM S
DF
Ag e n ts
DAMMAD
TIA
1
...
TIA
m
...
7.3.2003
Agentes
• Line Management Agents (LMA)
 Uno por línea
 Identificación de problemas, diagnosis, planificación y predicción
 Se subscribe a llegadas de autobuses, averías, ...
• User Interface Agent/s (UIA)
 Visualización de la localización de vehículos
 Visualización de problemas
 Interacción con usuario
• Data Agent (DA)
 Informa (mediante subscripción) de llegadas, saturación, averías
• Action Implementation Agent (AIA)
• Otros:
 FIPA Agents (AMS, DF)
 Traffic Information Agent (TIA)
DAMMAD
7.3.2003
Ejemplo: descripción Info Datos
(service-description
:name info-gathering-1
:type information-gathering
:protocol (set FIPA-Query FIPA-Subscribe)
:ontology (set BFM-Ontology)
:properties (set
(property
:name events
:value (set
(bus-arrival
:lines (set L1 L2 L3))
(breakdown
:lines (set L1 L2 L3))
(saturation
:lines (set L1 L2 L3))
(demand
:lines (set L1 L2 L3))
:source historic)))
(property
:name notification-mode
:value instantaneous)))
DAMMAD
7.3.2003
Descripción LMA
(service-description
:name problem-identification-1
:type problem-identification
:protocol (set FIPA-Request FIPA-Subscribe)
:ontology (set BFM-Ontology)
:properties (set
(property
:name problems
:value (set individual-delay generalised-delay breakdown
advance individual-saturation generalised-saturation)
(property
:name notification-mode
:value instantaneous)
(property
:name lines
:value (set L1))))
DAMMAD
7.3.2003
Notificación de llegada a parada
(inform
:sender
(agent-identifier
:name [email protected]
:addresses (sequence iiop://foo.com/acc))
:receiver (set
(agent-identifier
:name [email protected]
:addresses (sequence iiop://foo.com/acc))
(agent-identifier
:name [email protected]
:addresses (sequence iiop://foo.com/acc))
(agent-identifier
:name [email protected]
:addresses (sequence iiop://foo.com/acc))
(agent-identifier
:name [email protected]
:addresses (sequence iiop://foo.com/acc)))
:language FIPA-SL
:protocol FIPA_Subscribe
:ontology BFM-Ontology
:content
(Arrival :bus b1 :stop s1 :time (Time :hh 9 :mm 41)))
DAMMAD
7.3.2003
Reunión DAMMAD
Diseño y Aplicación de Modelos Multiagente
para Ayuda a la Decisión
Gestión Autobuses
Grupo de Inteligencia Artificial
Dpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
DAMMAD
7.3.2003
Descargar

marzo03-skads - Grupo de Inteligencia Artificial