Download sistemas multiagente aplicados al control y mantenimiento de
Document related concepts
no text concepts found
Transcript
SISTEMAS MULTIAGENTE APLICADOS AL CONTROL Y MANTENIMIENTO DE HUERTOS SOLARES Dra. Mª del Carmen Romero Ternero mcromerot@us.es Departamento Tecnología Electrónica Universidad de Sevilla SISTEMAS MULTIAGENTE APLICADOS A SISTEMAS DE CONTROL Dra. Mª del Carmen Romero Ternero mcromerot@us.es Departamento Tecnología Electrónica Universidad de Sevilla Índice y Desarrollo de MAS ◦ Plataformas de desarrollo ◦ JADE y Proyecto CARISMA ◦ Antecedentes ◦ Modelo de propagación del conocimiento ◦ Arquitectura ◦ Agentes ◦ Ontología ◦ Aprendizaje ◦ Implementación en JADE 16/06/2010 3 DESARROLLO DE MAS 16/06/2010 4 Aplicaciones y Variedad de aplicaciones en el mundo real: videojuegos, videojuegos sistemas de transporte, logística, etc. Recuperación de la información Sistemas cooperativos Sistemas distribuidos Robótica Sistemas de información Agentes Gestión del conocimiento Comercio electrónico Inteligencia artificial Internet Interfaces de usuario 16/06/2010 5 Plataformas MAS y y y Recomendables para desarrollo de aplicaciones distribuidas y en todo lo relativo a tecnologías móviles Æ alta escalabilidad y balanceo de carga. Di Diversas plataformas: l t f f frameworks k y librerías lib í que facilitan el desarrollo de sistemas multiagente. lti t Estas herramientas minimizan el tiempo de desarrollo y permiten trabajar bajo estándares aceptados en el desarrollo de MAS. 16/06/2010 6 Plataformas MAS Plataforma Licencia Lenguaje Dominio ABLE Agent Building and Learning Environment Open Source Able Rule Language Construcción de agentes inteligentes haciendo uso de máquinas de aprendizaje y razonamiento iGen The Cognitive Agent Software Toolkit Propietario C, C++, Java Modelado de diversos aspectos biológicos del ser humano ADK Agent Development Kit GPL Java Aplicaciones con una alta escalabilidad ZEUS Open Source Visual Editors Sistemas multi-agente basados en reglas y scripting JASA Java Auction Simulator API GPL Java Simulación de entornos económicos AgentBuilder Propietario KQML, Java, C++ Sistemas multi-agente de propósito general JADE Java Agent Development Framework GPL Java Sistemas multi-agente de propósito general 16/06/2010 7 Plataformas MAS: JADE y Características interesantes: ◦ licencia libre, ◦ orientado al desarrollo de MAS de propósito general, ◦ integrado con el uso de un lenguaje ampliamente p conocido (J (JAVA), ), ◦ cumple con los estándares FIPA para la comunicación entre agentes e interplataforma, ◦ amplio uso tanto en entornos académicos como empresariales. empresariales 16/06/2010 8 Plataformas MAS: JADE y ¿Qué es JADE? ◦ Java Agent Development Framework. para el desarrollo de agentes g ◦ Framework p inteligentes en Java, que ofrece: x Una estructura conceptual para el desarrollo de un MAS. x Un U conjunto j t d de librerías lib í que facilitan f ilit ell d desarrollo ll d de un nuevo MAS, haciendo hincapié en los temas relativos a la comunicación entre agentes. x Un U conjunto j de d servicios i i que hacen h posible ibl ell funcionamiento del MAS sobre plataformas heterogéneas (“middleware”). x Aplicaciones A li i gráficas áfi d destinadas i d a ffacilitar ili lla monitorización y depuración del MAS que se está desarrollando. 16/06/2010 9 Plataformas MAS: JADE Agente C Agente D Aplicación MAS Agente A Agente B Capa homogénea Plataforma JADE Java Contenedor principal Contenedor J2SE J2EE Contenedor J2ME Redes inalámbricas y cableadas Internet 16/06/2010 10 Plataformas MAS: JADE y Más en el taller de mañana: ◦ 9h30 en aula B1.32 16/06/2010 11 PROYECTO CARISMA 16/06/2010 12 Telecontrol tradicional HMI … Centro de Control Protocolo de telecontrol Frontal de Comunicaciones Protocolo de telecontrol Equipo de campo … 16/06/2010 Equipo de campo 13 Telecontrol tradicional Protocolos estándares RTU Centro de Control C t l Protocolos propietarios Gateway o proxy 16/06/2010 14 Telecontrol tradicional Centro de control Red corporativa Bus de datos Hardware de procesado Terminales de control Bus de campo Bus de campo Bus de campo B de Bus d control t l 16/06/2010 15 Telecontrol mejorado P Proyecto t IDOLO 16/06/2010 16 Soporte MAS al telecontrol Surveillance targets Actions Guards Senses SENSORS Supervisor Vision H i Hearing Smelling Supervisor ... RTU1 RTUn CC Trainning agent P Proyecto TOMARES 16/06/2010 17 Soporte MAS al telecontrol SYSTEM CONTROL LEVEL APPLICATION n SCADA ... Supervisor APPLICATION 1 Guard Guard LAN (Ethernet, TCP/IP) Gateway y ((GW)) HMI IEEE 802.15.4/ ZigBee IEEE 802.15.4/ ZigBee WAN (ATM, TCP/IP) Router mesh Guard Guard STATIO ON IEEE 802.15.4/ ZigBee GW HMI RTU LAN (Ethernet, TCP/IP) IEEE 802.15.4/ Zi B ZigBee Sensors and actuators Proyecto TOMARES Intelligent Electronic Device (IED) 16/06/2010 IED EQUIPMENT 18 Proyecto CARISMA Proyecto Control Automático Remoto de Instalaciones Solares con tecnología Multi-Agente. y El objetivo es poder controlar, monitorizar y mejorar el mantenimiento de huertos solares de forma automatizada. y Para ello se distribuirán pequeños di dispositivos ii en di distintas i zonas d de estas plantas solares, a los cuales se les asociarán sensores y actuadores. y El sistema multiagente que correrá sobre el conjunto de estos dispositivos deberá ser capaz de poder tomar decisiones de control automatizadas ó enviar recomendaciones a los técnicos de la planta solar, en función de los datos/conocimiento que manejen. manejen y 16/06/2010 19 Propagación del conocimiento y Modelo jerárquico dividido en capas ((≥3) 3) y basado en el conocimiento del sistema ◦ Input Layer: agentes que poseen un conocimiento global del sistema. sistema La configuración más simple compone esta capa de un solo agente. ◦ Middle Layer: agentes que poseen conocimiento parcial del sistema. sistema Se puede dividir en varias varias. ◦ Final Layer: agentes con conocimiento/visión local del sistema hardware. Input Layer Middle Layer Final Layer 16/06/2010 20 Propagación del conocimiento Flujos Fl j d de conocimiento i i distintos según punto de entrada del conocimiento en el sistema y La comunicación entre agentes se encuentra limitada,, de tal forma qque los agentes sólo podrán comunicarse con agentes de su misma capa o con agentes de capas adyacentes. adyacentes y Sólo se permite una comunicación directa con la capa de entrada cuando se presenten requisitos en tiempos de respuesta. y ((A)) Input (B) Middle Final Final Middle Input Input (C) Middle Final 16/06/2010 21 Propagación del conocimiento y Para controlar P l los l flujos fl j d de conocimiento en el sistema, se han introducido mecanismos de etiquetado del conocimiento: Fiabilidad y Reputación ◦ La fiabilidad representará un valor de confianza en el conocimiento que se transmite. ◦ La reputación aplica un grado de confianza entre los distintos agentes que componen el sistema. y En función de estos dos valores se producirá o no la propagación del conocimiento en ciertas áreas del sistema. sistema if not hasKnowledge(DA,newK) if acceptByReputation(DA,SA) newFb=newK.fb/SA.rp insertKnowledge(DA,newK,newFb) else discardKnowledge(DA,newK) endif else if acceptByReputation(DA,SA) if(oldK.fb <= newK.fb) newFb=newK.fb/SA.rp updateKnowledge(DA,oldK,newK,newFb) else if confirmKnowledge(DA,newK) newFb=newK.fb/SA.rp updateKnowledge(DA,newK,newFb) else discardKnowledge(DA,newK) endif endif else discardKnowledge(DA,newK) endiff endif 16/06/2010 22 Propagación del conocimiento AT Posee suficiente conocimiento para dar una solución AC1 ACL: Informar de alarma y dar recomendación Posee suficiente conocimiento para dar una recomendación ACL: Informar de alarma ACL: Informar de solución AO2 No posee suficiente conocimiento ACL: Informar de alarma AO1 Regla de detección activada AO3 … ACL: Transferencia dato del sensor ADS 16/06/2010 23 Arquitectura y AT Cuatro tipo de agentes: ◦ Agente Teleoperador (AT) ◦ Agente Coordinador (AC) AC AC AC AC AO AO AO AO AO AO ◦ Agente Operador (AO) ◦ Agente Dispositivo (ASD) y Repartidos p entre las distintas capas: p ◦ Agente Teleoperador Æ Capa de entrada ◦ Agentes Coordinadores Æ ASD ASD Contenedor C d 1 ASD ASD Contenedor C d 2 Contenedor C d 3 Capa intermedia ◦ Agentes operadores y dispositivo Æ C Capa fifinall y Zona de cobertura 1 Zona de cobertura 2 Se definen zonas de comunicación. Zona de cobertura 3 16/06/2010 24 Arquitectura: Agentes y Agente ge te Teleoperador e eope ado ◦ Agente de control global de la plataforma: configurar diversos aspectos del sistema (zonas de cobertura y pertenencia de agentes a cada zona) y servir como interfaz p para el acceso al resto de agentes g del sistema y al usuario. y Agente Coordinador ◦ Agente encargado de coordinar soluciones globales a una situación de fallo o alarma. y Agente Operador ◦ Agente encargado de controlar los distintos agentes dispositivo-sensor que tenga asignados ó tomar una actuación sobre un agente dispositivo. dispositivo También ofrecerá distintos mecanismos de comunicación de fallos a otros agentes (coordinadores u operadores). y Agente Dispositivo-Sensor ◦ Agente reactivo encargado de obtener datos de los sensores y de ejecutar acciones sobre los actuadores, en caso de que existan. Este agente será único y adaptado al tipo de dispositivo que vaya a tratar. 16/06/2010 25 Arquitectura: Agente DispositivoDispositivo-Sensor AO Interfaz común Envío de operaciones a actuadores ASD Solicitud/Envío de datos de sensores ASD Adquisición de datos Sensor Actuador Sensor 16/06/2010 ASD Actuación sobre dispositivo Actuador 26 Aprendizaje de los agentes y Inicialmente: basado en reglas de detección fallos/alarmas Tabla reglas g operador p Regla 25ºC<Tº<30ºC Tº>30ºC 20ºC<Tº<25ºC Tº<20ºC Acción No hacer nada Avisar a coordinador Actuar sobre enfriador Avisar a agentes op1 y op2 Tabla reglas coordinador Regla Si 30ºC<AO1_S1(Tº)>40ªC Acción Informar AO1 de que no ocurre nada en ese rango de temperatura Nueva Tabla reglas operador Regla Acción 25ºC<Tº<40ºC Tº>40ºC Tº<25ºC No hacer nada Avisar a coordinador Avisar a agentes op1 y op2 16/06/2010 27 Aprendizaje de los agentes y Sistema basado en reglas con Drools import drools; rule “TemperaturaExcesiva" when temperatura : Temperatura(promedio >= 40) then ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", false); msg.addReceiver(agentCoordinator1); System out println(“Exceso System.out.println( Exceso de temperatura "); ); AlarmaTemp.setTemperatura(promedio); alarma pred= new alarma(AlarmaTemp); manager.fillContent(msg, pred); Send(msg); end 16/06/2010 28 Ontología básica CARISMAOntology Conceptos Agente Predicados Sensor Identificador Identificador Tipo de Agente Tipo de Sensor informacionAgente Acciones solicitarInformacion(tipoInformacion) listaSensores Contenedor al que pertenece Lista de Agentes con los que puede comunicarse 16/06/2010 29 Ontologías: Definición y Uso de herramienta Protegé y plugin beangenerator package CARISMAOntology; import jade.content.onto.*; import jade.content.schema.*; import jade.util.leap.HashMap; jade util leap HashMap; import jade.content.lang.Codec; import jade.core.CaseInsensitiveString; /** file: CARISMAOntology.java CARISMAOntology java * @author ontology bean generator * @version 2010/01/12, 19:23:04 */ public class CARISMAOntology extends Ontology { ……………….. } 16/06/2010 30 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 31 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } SSe fija f cuál ál ontología y qué lenguaje de contenido t id entiende el agente class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 32 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); SSupóngase ó un comportamiento destinado a responder a una solicitud de información por parte de otro agente Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 33 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } Se construye el mensaje indicando el lenguaje de contenido y la ontología específica que se va a usar class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 34 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Concepto Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 35 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Predicado (los conceptos no se pueden enviar solos) Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 36 Ontologías: JADE public class agentTeleoperator extends Agent { ……………….. private Codec codec = new SLCodec(); private Ontology ontology = CARISMAOntology.getInstance(); private ContentManager manager = (ContentManager)getContentManager(); public setup(){ manager.registerLanguage(SLcodec); manager.registerOntology(CARISMAontology); addBehaviour(new SenderBehaviour (this)); } class SenderBehaviour extends SimpleBehaviour { ……… ACLMessage msg = new ACLMessage(ACLMessage.INFORM); AID receiver = new AID("receiver", ( , false); ); msg.setSender(getAID()); msg.addReceiver(receiver); msg.setLanguage(codec.getName()); msg.setOntology(ontology.getName()); Se asocia el predicado al mensaje y se envía Agente AT= new Agente(); AT.setIdentificador(“Agente Teleoperador"); AT.setTipoAgente(“T"); AT.setContenedor(“container1”); InformacionAgente pred= new InformacionAgente (AT); manager.fillContent(msg, pred); Send(msg); 16/06/2010 37 Y A SEGUIR TRABAJANDO… TRABAJANDO 16/06/2010 38 Agradecimientos EL PROYECTO CARISMA ES UN PROYECTO DE EXCELENCIA DE LA JUNTA DE ANDALUCÍA ((P08 (P08--TICTIC-03862). ) 16/06/2010 39 Publicaciones y J.I. Escudero, J.A. Rodríguez, M.C. Romero: Idolo: Multimedia Data Deployment On Scada Systems, IEEE PES Power Systems Conference And Exposition 2004, ISSN/ISBN: 0-7803-8719-8, New York (USA), 10 – 13 de octubre b de d 2004. 2004 y M.C. Romero, F. Sivianes, A. Carrasco, M.D. Hernández, J.I. Escudero: Multi-Agent System and Embedded System Technologies for Automatic Surveillance, 10TH International Conference on Enterprise Information Systems, ISSN/ISBN: 978-989-8111-37-1, Barcelona (España), 13 – 16 de junio de 2008. y F. Sivianes, M.C. Romero, M.D. Hernández, A. Carrasco, J.I. Escudero: Automatic Surveillance in Power System Telecontrol Applying Embedded and Multi-Agent System Technologies, 2008 IEEE International Symposium on Industrial Electronics, ISSN/ISBN: 978-1-4244-1666-0, 1172 - 1176, Cambridge (UK), 30 de junio – 2 de julio de 2008. y M.C M C Romero, R F. F Sivianes, Si i C.A. C A Carrasco, C M.D. M D Hernandez, H d and d J.I. J I Escudero, E d Ma a i eemergency Managing e e c response espo se operations for electric utility maintenance, IEEE Industrial Electronic Magazine, vol. 3, no. 3, pp. 15–18, 2009. y A. Carrasco, M.C. Romero-Ternero, F. Sivianes, M.D. Hernandez, J.I. Escudero, Multi-Agent and Embedded System Technologies Applied to Improve the Management of Power Systems , JDCTA: International Journal of Digital Content Technology and its Applications, Applications Vol. Vol 4, 4 No. No 1, 1 pp. pp 79 ~ 85 85, 2010. 2010 y D. Oviedo, M.C. Romero-Ternero, M.D. Hernández, A. Carrasco, F. Sivianes, J.I. Escudero, Model of Knowledge Spreading for Multiagent Systems, 12th International Conference on Enterprise Information Systems, Madeira Portugal, 8 - 12 Junio 2010. y D. Oviedo, D Oviedo M.C. M C Romero-Ternero, Romero Ternero M.D. M D Hernández, Hernández A. A Carrasco, Carrasco F. F Sivianes, Sivianes J.I. J I Escudero, Escudero Architecture for Multiagent-based control systems, International Symposium on Distributed Computing and Artificial Intelligence 2010 (DECAI 2010), Valencia, 7-10 septiembre 2010. y A. Carrasco, M. C. Romero-Ternero, F. Sivianes, M. D. Hernández, D. Oviedo, J. I. Escudero, Facilitating Decision Makingg and Maintenance for f Power Systems y Operators p through g the Use off Agents g and Distributed Embedded Systems, y , International Journal of Intelligent Information Technologies (IJIIT), ISSN: 1548-3657, Pennsylvania, EEUU, Pendiente de publicación 16/06/2010 40 SISTEMAS MULTIAGENTE APLICADOS AL CONTROL Y MANTENIMIENTO DE HUERTOS SOLARES Muchas gracias por su atención Dra. Mª del Carmen Romero Ternero mcromerot@us.es @ Departamento Tecnología Electrónica Universidad de Sevilla