DAMMAD7.3.2003
Reunión DAMMAD
Grupo de Inteligencia ArtificialDpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
Diseño y Aplicación de Modelos Multiagente para Ayuda a la Decisión
SKADS
DAMMAD7.3.2003
Control de Flujo
R1: ... -> ... R2: ... -> ... R3: ... -> ...
... Rn: ... -> ...
Consulta Médica(Enfermedades de origen infeccioso)
Diagnosticar(Presencia de enfermedades)
Recomendar Terapia(Tratamientos)
Abstraer Síntomas(Estado del Paciente)
Identificar Causa(Cuadros Clínicos)
Identificar Causa(Efect. Secundarios)
Proponer(Trat. Enfermedades)
Flujo de Datos
Proponer(Trat. Síntomas)
Revisar(Efect. Secundarios)
KSM
• Jerarquía de áreas de conocimiento
• Jerarquía de tareas
Funcionalidad
- Recomendar - Aceptar
Enfermedades deorigen infeccioso
Presencia deenfermedades
Tratamientos
Estado delPaciente
CuadrosClínicos
Efectos Secundariosde Drogas
Tratamientos deEnfermedades
Tratamientos deSíntomas
Conocimiento
- Efect. Secund. - Trat. Enferm. - Trat. Síntom.
Vocabulario Conceptual
DAMMAD7.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
DAMMAD7.3.2003
Construcción de la versión ejecutable
Area de Conocimiento
Area de ConocimientoArea de Conocimiento
Area de Conocimiento Area de Conocimiento Area de Conocimiento
Primitiva(Reglas)
Primitiva(Marcos)
Primitiva(Restricciones)
DAMMAD7.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, ...
DAMMAD7.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.
DAMMAD7.3.2003
Area de Conocimiento Area de Conocimiento Area de Conocimiento
Primitiva(Reglas)
Primitiva(Marcos)
Primitiva(Restricciones)
Comunicación en FIPA ACL
Agentificación de KSM
Agente 1 Agente 2 Agente 3
DAMMAD7.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
DAMMAD7.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
DAMMAD7.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
)
DAMMAD7.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
)
DAMMAD7.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
)
DAMMAD7.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')]
DAMMAD7.3.2003
Reunión DAMMAD
Grupo de Inteligencia ArtificialDpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
Diseño y Aplicación de Modelos Multiagente para Ayuda a la Decisión
SKADS
DAMMAD7.3.2003
Reunión DAMMAD
Grupo de Inteligencia ArtificialDpto. de Ciencias Experimentales e Ingeniería
Universidad Rey Juan Carlos
Diseño y Aplicación de Modelos Multiagente para Ayuda a la Decisión
Gestión Autobuses
DAMMAD7.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, ...
DAMMAD7.3.2003
Arquitectura de agentes
AIA
TIA1
UIA
LMA1
LMA2
LMAn
DA
Bus Fleet Connection
ControlCentre
ExternalAgents
Bus Fleet Management
AMS DF ...TIA m
...
DAMMAD7.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)
DAMMAD7.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)))
DAMMAD7.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))))
DAMMAD7.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)))