230 likes | 348 Views
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. Jerarquía de áreas de conocimiento. Jerarquía de tareas. KSM.
E N D
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
Jerarquía de áreas de conocimiento Jerarquía de tareas KSM DAMMAD
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
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
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
Agentificación de KSM Agente 1 Agente 2 Agente 3 DAMMAD
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
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
Ejemplo • Mensaje para carga de BC (REQUEST :sender ( agent-identifier :name validaPatrones@searle.escet.urjc.es:1099/JADE :addresses (sequence IOR:00000 )) :receiver (set ( agent-identifier :name KSMAgentPatrones@searle.escet.urjc.es:1099/JADE) ) :content "((action (agent-identifier :name validaPatrones@searle.escet.urjc.es:1099/JADE :addresses (sequence IOR:00000)) (CargaBC1 :FicheroBC baseConocimiento.in :FicheroVoc vocabulario.in :FicheroErrores errores.out)))" :language FIPA-SL :ontology KSM-Ontology ) DAMMAD
Ejemplo • Mensaje para Ejecutar Tarea (QUERY-REF :sender ( agent-identifier :name validaPatrones@searle.escet.urjc.es:1099/JADE :addresses (sequence IOR:0000000 )) :receiver (set ( agent-identifier :name KSMAgentPatrones@searle.escet.urjc.es: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
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 validaPatrones@searle.escet.urjc.es:1099/JADE1046964074662 :language FIPA-SL :ontology KSM-Ontology ) DAMMAD
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
Foto DAMMAD
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
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
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
Arquitectura de agentes DAMMAD
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
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
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
Notificación de llegada a parada (inform :sender (agent-identifier :name da@foo.com :addresses (sequence iiop://foo.com/acc)) :receiver (set (agent-identifier :name lma1@foo.com :addresses (sequence iiop://foo.com/acc)) (agent-identifier :name lma2@foo.com :addresses (sequence iiop://foo.com/acc)) (agent-identifier :name uia@foo.com :addresses (sequence iiop://foo.com/acc)) (agent-identifier :name tia2@foo.com :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
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