44
1 Programação Orientada Programação Orientada a Agentes a Agentes e e Sistemas Multiagentes Sistemas Multiagentes

1 Programação Orientada a Agentes e Sistemas Multiagentes

Embed Size (px)

Citation preview

Page 1: 1 Programação Orientada a Agentes e Sistemas Multiagentes

1

Programação Orientada a Agentes Programação Orientada a Agentes e e

Sistemas MultiagentesSistemas Multiagentes

Page 2: 1 Programação Orientada a Agentes e Sistemas Multiagentes

2

Conteúdo

• Motivação• Exemplos de sistemas multiagentes• Sistemas multiagentes estritamente cooperativos• Sistemas multiagentes intermediários• Sistemas multiagentes estritamente não-cooperativos• Aplicações• Balanço geral• Conclusão• Referências

Page 3: 1 Programação Orientada a Agentes e Sistemas Multiagentes

3

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 4: 1 Programação Orientada a Agentes e Sistemas Multiagentes

4

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 estruturada• Utiliza ferramentas implementação estruturadas

Page 5: 1 Programação Orientada a Agentes e Sistemas Multiagentes

5

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 6: 1 Programação Orientada a Agentes e Sistemas Multiagentes

6

• 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 7: 1 Programação Orientada a Agentes e Sistemas Multiagentes

7

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

estruturada?

Um sistema concebido de forma orientada a objetos pode ser implementado de forma

estruturada?

Page 8: 1 Programação Orientada a Agentes e Sistemas Multiagentes

8

O que é um agente?

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

Page 9: 1 Programação Orientada a Agentes e Sistemas Multiagentes

9

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 10: 1 Programação Orientada a Agentes e Sistemas Multiagentes

10

Caracterização de um sistema

• Abstração utilizada na modelagem?

• Linguagem de Implementação?

• Metodologia de desenvolvimento?

Page 11: 1 Programação Orientada a Agentes e Sistemas Multiagentes

11

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 12: 1 Programação Orientada a Agentes e Sistemas Multiagentes

12

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 13: 1 Programação Orientada a Agentes e Sistemas Multiagentes

13

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 14: 1 Programação Orientada a Agentes e Sistemas Multiagentes

14

Sistemas Multi-Agentes

Inteligência solitária ou coletiva?

Page 15: 1 Programação Orientada a Agentes e Sistemas Multiagentes

15

Porque Distribuir a IA? Razões segundo as comunidades...

• De Ciências humanas: As capacidades intelectuais provêm– disposições genéticas, interações com os semelhantes e com o ambiente

• Da psicologia: O ser humano – faz raciocínios em paralelo, tem mais de uma opinião ou ponto de vista sobre

uma coisa• De IA:

– adicionar a dimensão sociológica à psicológica já existente• Da resolução de problemas

– há problemas funcionalmente ou espacialmente distribuídos e há problemas complexos demais

• Da indústria– poder trabalhar com vários especialistas com pontos de vista diferentes

• De informática– extensão da noção de (multi)objetos

Page 16: 1 Programação Orientada a Agentes e Sistemas Multiagentes

16

Sendo assim, temos...

Objeto Agente

Desenvolvimento OO Desenvolvimento OA

Metáfora para modelagem

Sistema “Multiobjetos” Sistema “Multiagentes”

Agente = Objeto com intencionalidade

Page 17: 1 Programação Orientada a Agentes e Sistemas Multiagentes

17

Exemplo de sistema

• Sistema de Fornecimento de Água para Caldeiras - Resolução Distribuída de Problemas – O importante é atingir o objetivo global;

– As tarefas são pré-definidas

– A ênfase é dada na modelagem de cada agente

– Usualmente não existe grande comunicação entre os agentes;

– Existe um controle global

InformationRepository

Knowledgebroker

VerificationAgent

DiagnosticAgent

HCIAgent

Monitoring Agent

TrackingAgent

Data Acquisition

Agent

Page 18: 1 Programação Orientada a Agentes e Sistemas Multiagentes

18

Exemplo de sistemas

• Formigueiro - Sistema Multiagentes Reativo– O mais importante é o problema;

– O problema é resolvidos por nós individuais que interagem entre si;

– Existe um grande número de nós;

– Os nós são normalmente são idênticos e possuem conhecimento limitado;

– Cada nós não tem consciência do problema geral;

– Os nós ‘cooperam’ entre si;

– A solução ‘surge’ através das interações entre os nós.

Page 19: 1 Programação Orientada a Agentes e Sistemas Multiagentes

19

Exemplo de sistemas

• Time de Futebol - Sistema Multiagentes Cognitivo Cooperativo– Cada jogador possui um conhecimento individual e limitado;

– Cada jogador não pode resolver o problema sozinho;

– Cada jogador pode ter características diferentes dos demais;

– Cada jogador age de forma autônoma e assíncrona;

– Existe um objetivo global que é de conhecimento de todos os indivíduos;

– Este objetivo global está acima dos objetivos individuais de cada agente;

– Não existe um controle global;

– A junção das capacidades individuais resolve o problema.

Page 20: 1 Programação Orientada a Agentes e Sistemas Multiagentes

20

Exemplo de sistemas

• Negociação trabalhista - Sistema Multiagentes Cognitivo Não-Cooperativo– Os objetivos de cada parte são usualmente contrapostos;

– A informação de cada parte é incompleta;

– Existe um objetivo global desejado, mas que não é mais importante que os objetivos individuais;

– Cada parte procura convencer seu oponente para que ele ceda (ocorre um processo de negociação);

– Não da para ter certeza sobre o que a outra parte vai fazer;

– Não existe um controle centralizado do processo;

Page 21: 1 Programação Orientada a Agentes e Sistemas Multiagentes

22

Historicamente

• Existe uma diferenciação entre um sistema desenvolvido como um DPS e como um MAS.

• Alguns pesquisadores consideravam que DSP é uma sub-área de MAS, e outros consideravam o inverso.

• Nos dias atuais existe um tendência a considerar tudo como MAS• A diferença entre os sistemas agora está:

– Na distribuição do conhecimento;– Na existência ou não de um objetivo global;– Se o objetivo global existir, qual o grau de compromisso que que cada

agente tem com ele, quando confrontado com os seus objetivos individuais?

Page 22: 1 Programação Orientada a Agentes e Sistemas Multiagentes

23

Taxonomia Anterior

MAS

Reativo Cognitivo

IA

IA convencional IA Distribuída Outros

DPS

Não-cooperativo Cooperativo

Page 23: 1 Programação Orientada a Agentes e Sistemas Multiagentes

24

Taxonomia ‘Moderna’

MAS

IA

IA convencional IA Distribuída Outros

Estritamente Cooperativo Estritamente Não- Cooperativo

Classificações Intermediárias

Page 24: 1 Programação Orientada a Agentes e Sistemas Multiagentes

25

Problemas dos MAS

• Como descrever e alocar as entidades de um problema em tre os agentes do sistema?

• Como habilitar os agentes para se comunicar e interagir? Que linguagem de comunicação utilizar?

• Como garantir que os agentes vão agir de forma coerente, sem provocar efeitos indesejáveis? (Dilema do prisioneiro)

• Como habilitar os agentes para representar e raciocinar sobre as ações de outros agentes para conseguir se coordenar com eles?

• Como gerenciar a limitação de recursos de cada agente?• Como construir um MAS de forma efetiva? Como definir plataformas

tecnológicas e metodologias de desenvolvimento?

Page 25: 1 Programação Orientada a Agentes e Sistemas Multiagentes

26

Processo de Desenvolvimento de um MAS

• Similar a divisão-e-conquista;• Busca-se definir:

– Quem são os agentes– Protocolo de comunicação entre os agentes (redes de contrato)– Regras de funcionamento de cada agente (Relações entre: crenças, percepções e

ações)

Ask(agent(ID), product(nome(“CD”), autor(“Chico Buarque”) ))

Products(Autor(“Chico Buarque”), [CD(...),CD(...)])

Page 26: 1 Programação Orientada a Agentes e Sistemas Multiagentes

27

Jogos dos 8 Números

• Objetivo: Colocar as letras em ordem alfabética no menor tempo possível• Este problema é np-completo

H E A

B F D

C G

Page 27: 1 Programação Orientada a Agentes e Sistemas Multiagentes

28

Jogos dos 8 Números

• Considerando cada agente como uma peça, temos que:– Cada agente tem como objetivo ir para a sua posição;– Cada agente sabe a sua posição atual e pode estar ou não ativo;– Apenas um agente está ativo de cada vez (A, em seguida B, etc.)– Cada agente pode:

• ‘Atacar’ um outro agente;• Fugir quando for atacado;• A fuga só pode ocorrer quando o agente não estiver bloqueado;• Percorrer o caminho padrão, mesmo estando em sua posição.

Page 28: 1 Programação Orientada a Agentes e Sistemas Multiagentes

29

Jogos dos 8 Números

• O protocolo de comunicação é:– Ataque: ataque (atacante(...), posição_atacado(...))– Fuga: Fugir (posição_fuga(...))– Bloqueado: Block (atacante(...))– PercorrerCaminhoPadrão();

Page 29: 1 Programação Orientada a Agentes e Sistemas Multiagentes

30

E B C

A H

F D G

Jogos dos 8 Números

BloqueadoAtivo

Page 30: 1 Programação Orientada a Agentes e Sistemas Multiagentes

31

E B C

A H

F D G

Jogos dos 8 Números

BloqueadoAtivo

Page 31: 1 Programação Orientada a Agentes e Sistemas Multiagentes

32

B C

E A H

F D G

Jogos dos 8 Números

Ativo

Page 32: 1 Programação Orientada a Agentes e Sistemas Multiagentes

33

B C H

A G

E F D

Jogos dos 8 Números

Ativo

Page 33: 1 Programação Orientada a Agentes e Sistemas Multiagentes

34

A B C

G H

E F D

Jogos dos 8 Números

BloqueadoAtivo Resultados Obtidos com MAS: 30X30

Resultados com técnicas normais: 5X5

Page 34: 1 Programação Orientada a Agentes e Sistemas Multiagentes

35

Task Allocation Problem

• Objetiva minimizar a interdependência de tarefas– Diminuir o overhead de comunicação

– Aumentar as chances de se encontrar uma solução consistente

• Este foi um dos primeiros problemas atacados pela IA distribuída com o Contract Net Protocol (CNP).

Page 35: 1 Programação Orientada a Agentes e Sistemas Multiagentes

36

Task Allocation Problem

• Cada agente pode assumir dois papéis– Gerente

– Contratante

• Dada uma tarefa, o agente (contratante) determina se esta pode ser quebrada em sub-tarefas concorrentes.

• Ele usa o protocolo para anunciar as sub-tarefas para os outros agentes (Gerentes) e esperar por ofertas.

• O contratante recebe as ofertas feitas, escolhe a melhor e anuncia o vencedor;

• O vencedor pode então, se quiser, ver se esta tarefa pode ser subdividida, e se tornar um Contratante.

- Contract Net Protocol -

Page 36: 1 Programação Orientada a Agentes e Sistemas Multiagentes

37

Task Allocation Problem

1 2 3 4 5

Objetivo: Levar o conjunto de blocos para o ponto 5 na mesma ordem.Regras: - Só se pode mover um bloco de cada vez;

- Cada bloco só pode se mover para o posição imediatamente ao lado

Page 37: 1 Programação Orientada a Agentes e Sistemas Multiagentes

38

Task Allocation Problem

1 2 3 4 5

• Cada agente pode assumir a tarefa de levar um número x de blocos, e, se não conseguir, ele pode subdividir esta tarefa e esperar ‘ofertas’.

• Tomando um conjunto de n agentes e de 3 problemas, temos:

1 2 3 4 5

1 2 3 4 5

Page 38: 1 Programação Orientada a Agentes e Sistemas Multiagentes

39

Task Allocation Problem

1 2 3 4 5

• Como existem vários problemas paralelos:– Cada agente precisa ver se pode ou não assumir uma tarefa;– Decidir que tipo de tarefa ela vai poder assumir (número de blocos)– Decidir se deve ou não subdividir a tarefa que recebeu;

1 2 3 4 5

1 2 3 4 5

Page 39: 1 Programação Orientada a Agentes e Sistemas Multiagentes

40

Aplicações

• PDA (Personal Digital Assistant);– Assistentes para análise de e-mails;– Assistentes para organização de agenda de horários;

• Controle de tráfego aéreo;• Comércio eletrônico;• Jogos com Personagens;• Histórias Interativas;• Busca na Internet;• Sistemas de Controle (tempo real);• Sistemas de Telefonia

Page 40: 1 Programação Orientada a Agentes e Sistemas Multiagentes

41

Balanço geral

• Vantagens– Robustez;– Eficiência;– Possibilidade de resolver problemas mais complexos;

• Desvantagens– Falta uma metodologia de desenvolvimento bem definida;– Sobrecarga de comunicação;– Maior complexidade do “paradigma” de desenvolvimento

Page 41: 1 Programação Orientada a Agentes e Sistemas Multiagentes

42

Concluindo

O que significa dizer que um determinado problema pode ser melhor resolvido com uma

abordagem multiagentes?

Page 42: 1 Programação Orientada a Agentes e Sistemas Multiagentes

43

• Problema complexo– divide and conquer– ex. jogo dos 8 números, ordenação, etc.

• Problema intrinsecamente distribuído– ex. jogos com personagens, administração de sistemas, controle de tráfego,

etc.• Problemas exigindo rápido tempo de resposta

– processamento paralelo– ex. busca na internet, grupo musical, etc.

• Problema com domínios de conhecimento ou tarefas– um agente para cada tipo de conhecimento/tarefa– ex. usina nuclear

Quando usar...

Page 43: 1 Programação Orientada a Agentes e Sistemas Multiagentes

44

• 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.

Depois de descobrir que deve usar, o que fazer?

Page 44: 1 Programação Orientada a Agentes e Sistemas Multiagentes

45

FIM