18
Desenvolvendo Sistemas Multiagentes utilizando Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto ferramentas de código aberto Felipe Neves Brito - [email protected] Mauro Roberto Costa - [email protected]

Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

Embed Size (px)

Citation preview

Page 1: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

Desenvolvendo Sistemas Multiagentes utilizandoDesenvolvendo Sistemas Multiagentes utilizando

ferramentas de código abertoferramentas de código aberto

Felipe Neves Brito - [email protected]

Mauro Roberto Costa - [email protected]

Page 2: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 3: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

RoteiroRoteiro

O que é um AgenteO que é um Sistema MultiagentesJADE JASONExemplos

Page 4: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

“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?

Page 5: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 6: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

Funcionamento do AgenteFuncionamento do Agente

Page 7: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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

Page 8: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 9: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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

Page 10: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 11: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 12: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto
Page 13: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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

Page 14: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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.

Page 15: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

"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

Page 16: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

ExemplosExemplos

Page 17: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

Dúvidas?Dúvidas?

Page 18: Desenvolvendo Sistemas Multiagentes utilizando ferramentas de código aberto

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