1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma...

29
1 Desenvolvimento Desenvolvimento Orientado a Agentes Orientado a Agentes

Transcript of 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma...

Page 1: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

1

Desenvolvimento Orientado a Desenvolvimento Orientado a AgentesAgentes

Page 2: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

2

O que é um procedimento/função?

• Um procedimento é uma abstração de um comando e é caracterizado por:– realizar operações que modificam o estado do sistema;

• Uma função é uma abstração e uma expressão e é caracterizada por:– Realizar alguma operações sobre ‘valores’ e devolver um

‘resultado’• Ambos são metáforas de modelagem

Page 3: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

3

O que significa dizer que um sistema é estruturado? Como reconhecemos um sistema

estruturado?

• Utiliza como metáfora de modelagem procedimentos e funções

• Utiliza metodologia de desenvolvimento estruturadas

Page 4: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

4

O que é um objeto?

• É uma entidade de abstração caracterizada por:– Encapsulamento/information hidding;– Capacidade de relacionamentos com outros objetos de

herança/agregação– Comunica-se através do envio de mensagens

• É uma junção das abstrações de comando, expressão e declaração

Page 5: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

5

• Utiliza objetos como metáfora de modelagem • Utiliza metodologia de desenvolvimento orientada à objetos;• Utiliza ferramentas implementação orientadas à objetos

O que significa dizer que um sistema é orientado a objetos? Como reconhecemos um sistema

orientado a objetos?

Page 6: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

6

Um sistema concebido de forma orientada a objetos pode ser também concebido de forma

estruturada?

Page 7: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

7

O que é um agente?

• É uma entidade de abstração caracterizada por:– Autonomia;– Capacidade social (interação com outros agentes);– Reatividade; – Pro-atividade;– Mobilidade;– Racionalidade (busca sempre atingir seus objetivos);

• Regras de ‘consistência’

Page 8: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

8

O que significa dizer que um sistema é “orientado a agentes”? Como reconhecemos um sistema

“orientado a agentes”?

• Utiliza o agente como metáfora de modelagem • Utiliza metodologia de desenvolvimento orientada à

agentes

Page 9: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

9

Caracterização de um sistema

• Abstração utilizada na modelagem?

• Linguagem de Implementação?

• Metodologia de desenvolvimento?

Page 10: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

10

POO X POA

POO POA

Unidade básica Objeto AgenteParâmetrosdefinindo oestado daunidade básica

Nenhum Crenças,compromissos,capacidades,...

Processocomputacional

Envio demensagens eresposta amétodos

Envio demensagens eresposta amétodos

Tipo demensagem

Sem restrições Com restrições(informar,requerer,perguntar,...)

Restrição nosmétodos

Nenhuma Consistência

Page 11: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

11

Desenvolvimento orientado a objetos

• Busca:– Definição das entidades que serão representadas no sistema;– Definição das funcionalidades que estão associadas a cada entidade;– Definição dos objetos e relacionamentos de agregação e herança;– Definição de atributos e métodos.

Page 12: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

12

Desenvolvimento orientado a agentes

• Busca:– Definição das entidades que serão representadas no sistema (domínio);– Definição das percepções e ações que cada agente pode realizar;– Definição de crenças e objetivos. – Definição dos relacionamentos de comunicação entre os agentes

(estabelecer protocolos);

Page 13: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

13

Sendo assim, temos...

Objeto Agente

Desenvolvimento OO Desenvolvimento OA

Metáfora para modelagem

Sistema “Multiobjetos” Sistema “Multiagentes”

Page 14: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

14

Armadilhas no Desenvolvimento Orientado a Agentes

• Pouco esforço dedicado ao entendimento de como desenvolver sistemas baseados em agentes

• Tecnologia imatura e ainda não testada suficientemente• Desenvolvedores tendem a cair nas mesmas “armadilhas”

Page 15: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

15

Armadilhas

• Achar que os agentes resolvem tudo• Não saber para que agentes• Querer construir soluções gerais para problemas específicos• Confundir protótipos com sistemas

Page 16: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

16

Armadilhas

• Confundir “palavras badaladas” com conceitos• Esquecer que está desenvolvendo software• Não pesquisar a tecnologia relacionada

Page 17: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

17

Armadilhas

• Não explorar concorrência• Ignorar os padrões ‘de fato’• Decidir criar sua própria arquitetura de agentes• Pensar que sua arquitetura é genérica

Page 18: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

18

Armadilhas

• Utilizar muita IA• Não utilizar IA• Utilizar agentes para tudo• Utilizar agentes demais• Utilizar poucos agentes

Page 19: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

19

Uma metodologia para Análise Orientada a Agentes

Sistema

de segurança

protocolosresponsabilidadespermissões

de sobrevivência

Papel

Page 20: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

20

Modelagem dos Papéis

• Os papéis identificam as principais funções do sistema• Na fase de projeto, cada papel será associado a um ou mais agentes• Exemplo:

– Num escritório, alguns papéis seriam:• Secretária• CofeeFiller (Preenchedor de café)

Page 21: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

21

Papéis (Roles)

• São caracterizados por três tipos de atributos:– Permissões

• informações ou conhecimento disponível ao agente– Protocolos

• ações que o agente é capaz de executar– Responsabilidades

• o que o agente deve fazer e manter como invariante

Page 22: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

22

Exemplo: CoffeeFiller

• Permissões– leitura

• coffeeMaker (nome do coffee maker)• coffeeStatus (full or empty)

– escrita• coffeeStock (nível da garrafa de café)

Page 23: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

23

Exemplo: CoffeeFiller

• Protocolos– Fill– InformWorkers– CheckStock– AwaitEmpty

Page 24: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

24

Exemplo: CoffeeFiller

• Responsabilidades– de sobrevivência (liveness)

• sempre que o café acabar, preencha• sempre que preencher informe os empregados• CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty)

– de segurança (safety)• coffeeStock 0

Page 25: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

25

Expressões de Sobrevivêmcia

• Define o ciclo de vida de um papel• São essencialmente expressões regulares

x.y x seguido de y x|y x ou y ocorrex* x ocorre 0 ou mais vezes x+ x ocorre 1 ou mais vezesx x ocorre infinitamente [x] x é opcionalx||y x e y se sobrepõem

Page 26: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

26

Esquema do Papel

ROLE SCHEMA: CoffeeFiller

PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmptyPERMISSIONS: reads coffeeMaker //name of the coffee maker

coffeeStatus //full or empty changes coffeeStock // stock level of coffee

RESPONSABILITIES

LIVENESS: CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty)

SAFETY: coffeeStock 0

DESCRIPTION: This role involves ensuring that coffee is kept filled, and informing the workers when fresh coffee has been brewed.

Page 27: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

27

Processo de Análise

• Identificar os papéis do sistema• Para cada papel, identificar e documentar os protocolos• Elaborar o modelo de cada papel

Page 28: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

28

• Utilizando linguagens OO convencionais + Bibliotecas adicionais – Para comunicação: JATLite (KQML), FIPA;– Para raciocínio

• Motores de inferência lógica: JEOPS, ABE, JESS, CLIPS• Motores de inferência bayesiana: Hugin, MSBN;• Redes neurais;

– Para mobilidade: Aglets, Telescript, etc.• Utilizar ambientes de desenvolvimento

– Agent Builder• Utilizar linguagens orientadas a agentes:

– Agents0, Jackal, etc.

Como implementar?

Page 29: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar.

29

FIM