Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

Preview:

Citation preview

Desenvolvendo Sistemas Multiagentes utilizandoDesenvolvendo Sistemas Multiagentes utilizando

ferramentas de código abertoferramentas de código aberto

Felipe Neves Brito - felipeneves@alu.ufc.br

Mauro Roberto Costa - maurorcsc@gmail.com

Quem somos?Quem somos?

Alunos da UFC Campus Quixadá5 Semestre de Engenharia de Software

Projetos em Desenvolvimento:

Ciência para a proteção da Criança e Adolescente nasMídias Sociais;Desenvolvimento de um Sistema Multiagentes para oMoodle.

RoteiroRoteiro

O que é um AgenteO que é um Sistema MultiagentesJADE JASONExemplos

“Um agente é qualquer coisa que pode servista percebendo um ambiente por meio desensores e atuando no mesmo por meio deatuadores” (Russel & Norvig)

O que é um agente?O que é um agente?

CaracterCaracteríísticas Cognitivas de umsticas Cognitivas de um

AgenteAgente

Autonomia – capacidade de agir sem intervençãode outros agentes.Reatividade – habilidade de reagir a estímulos doambiente.Proatividade – propriedade de agir guiado porobjetivos, a partir de iniciativa própria.Sociabilidade – potencialidade de se comunicar comoutros agentes do ambiente.

Funcionamento do AgenteFuncionamento do Agente

O que é um SMA?O que é um SMA?Sistema Multiagente

Um sistema multiagente consiste de vários agentes queinteragem entre si.Os agentes podem colaborar, cooperar, negociar oucompetir para cumprir objetivos similares ou diferentes.Os agentes não são as únicas entidades de um sistemamultiagentes

Ambiente, organizações, papéis e objetos

Os dados estão descentralizadosA computação é assíncrona

Sistema MultiagenteTipos de interação em um

Cooperação

trabalhar juntos em busca de um objetivo comum.Coordenação

gerenciar as dependências entre diferentes atividades, de formaque as ações dos diferentes agentes sejam sincronizadas e otrabalho dobrado seja evitado.

Negociação

chegar a um acordo que seja aceitável para todas as partesenvolvidas.

Agentes X ObjetosAgentes X Objetos

Autonomia

Objeto: possui estado

Agente: possui estado e comportamento

Mensagens

Objeto: chamada de método

Agente: envio de mensagens em uma linguagem

de comunicação de agentes (ACL)

Comportamentos

Objeto: reação a eventos

Agente: comportamentos mais flexíveis (reativo, proativo, social)

Controle

Objetos: thread comum aos demais

objetos do sistema

Agentes: thread único

JADEJADE

JAVA Agent DEvelopment Framework

O JADE é um software implementado emJava, para o desenvolvimento de agentes.Jade facilita a cooperação entre agentes

utilizando o protocolo FIPA.

JADEJADEJAVA Agent DEvelopment Framework

JADE foi desenvolvido nos anos 2000 pelaempresa Telecom Italia Lab para utilizá-lo

na indústria da telecomunicação.

Em Fevereiro do ano 2000, a Telecom ItaliaLab tornou o JADE software livre.

package examples.hello;

import jade.core.Agent;

public class HelloWorldAgent extends Agent {

protected void setup() { System.out.println("Hello World! My name is "+getLocalName()); } }

Hello World usando JADEHello World usando JADE

JASONJASON

JASON é uma plataforma para odesenvolvimento de Sistemas Multiagentes.

A linguagem AgentSpeak é utilizadapara desenvolver agentes utilizando JASON.

JASON é um software open source distribuido sobre a licença GNU LGPL.

"Hello Bob, Hello Tom" em JASON"Hello Bob, Hello Tom" em JASON

!start.

+!start : true <- .send(bob,tell,hello).

+hello[source(A)] <- .print("I receive an hello from ",A); .send(A,tell,hello).

Agente Tom +hello[source(A)]

<- .print("I received a 'hello' from ",A); .send(A,tell,hello).

Agente Bob

ExemplosExemplos

Dúvidas?Dúvidas?

ReferênciasReferênciashttp://jason.sourceforge.net/http://jade.tilab.comhttp://en.wikipedia.org/wiki/AgentSpeakhttp://www.devmedia.com.br/jade-framework-de-sistemas-de-agentes-em-java/29324http://www.inf.ufes.br/~rguizzardi/agentes.html