Programação Orientada a Agentes e Sistemas Multiagentes

Slides:



Advertisements
Apresentações semelhantes
Sistemas Multiagentes
Advertisements

Sumário Exercícios
Os Sistemas Multi-agente Viviane Torres da Silva
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
Material pedagógico Multiplicar x 5 Clica!
Agentes Inteligentes Agentes Inteligentes.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Pesquisa Bibliográfica Disciplina de Metodologia da Pesquisa Profª Tereza Yoshiko Kakehashi 1.
ANÁLISE DE SOFTWARES APLICÁVEIS A UNIDADES E SERVIÇOS DE INFORMAÇÃO
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Sumário Função de utilidade em IRn Isoquanta (em IR2)
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Excel Profa. Cristina M. Nunes.
1 Agentes Inteligentes Alex F. V. Machado. 2 Um programa de IA pode ser visto como um Agente Racional Plano da aula O que é um Agente Racional (inteligente)?
Gerenciamento do escopo do projeto
Resolução.
Os Sistemas Multi-agente Viviane Torres da Silva
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
Árvores.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Modelos Baseados em Agentes
Metodologias Orientadas a Agentes
Desenvolvimento Orientado a Agentes
1 Programação Orientada a Agentes e Sistemas Multiagentes.
COORDENAÇÃO DE AGENTES
FUNÇÃO MODULAR.
Questionário de Avaliação Institucional
Gerenciamento do Escopo
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Capítulo 6 Organização.
TÉCNICAS DE PROGRAMAÇÃO II
Como aplicar leis da lógica
Agentes inteligentes e sistemas multiagentes
MECÂNICA - ESTÁTICA Cabos Cap. 7.
DFD – Data Flow Diagram Diagrama de Fluxo de Dados
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Object Oriented Software Construction (MEYER, Bertrand)
Universidade São Marcos Curso: Gestão de Negócios Internacionais
Algoritmos Culturais.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
Coordenação Geral de Ensino da Faculdade
Modelagem Estatística
É u m e l e m e n t o f u n d a m e n t a l
EXERCÍCIOS PARA GUARDA-REDES
EMPREENDEDORES EM AÇÃO PROF. NILSON R. FARIA Colégio Wilson Joffre.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Roteiro Agentes Trabalhando Juntos Coordenação em SMA
O Problema Do Acordo Distribuído (Acordo Bizantino)
3 – Agentes e 4 – Multiagentes
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Computação Gráfica Aula 3 Transformações Geométricas
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Redes Neuronais/Neurais/ Conexionistas Introdução
Marcio de Carvalho Victorino
1 Workshop de introdução à responsabilidade País, Mês de 20XX A Viagem de Ahmed.
Máquina de Turing Universal
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
SISTEMAS DISTRIBUIDOS Aula 4
Arquiteturas de Gerenciamento
Reestruturação Internato Princípios. Internato atual 5 ano – dois períodos de 22 semanas 6 ano – dois períodos de 20 semanas Segmentado Sem interdisciplinaridade.
Protocolos de Cooperação Contract Net Systems Partial Global Planning Negociações.
Transcrição da apresentação:

Programação Orientada a Agentes e Sistemas Multiagentes

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

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

O que significa dizer que um sistema é estruturado 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

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

O que significa dizer que um sistema é orientado a objetos O que significa dizer que um sistema é orientado a objetos? Como reconhecemos um sistema orientado a objetos? Utiliza objetos como metáfora de modelagem Utiliza metodologia de desenvolvimento orientada à objetos; Utiliza ferramentas implementação orientadas à objetos

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?

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;

O que significa dizer que um sistema é “orientado a agentes” 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

Caracterização de um sistema Linguagem de Implementação? Abstração utilizada na modelagem? Metodologia de desenvolvimento?

POO X POA

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.

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);

Sistemas Multi-Agentes Inteligência solitária ou coletiva?

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

Sendo assim, temos... Metáfora para modelagem Objeto Agente Desenvolvimento OO Desenvolvimento OA Sistema “Multiobjetos” Sistema “Multiagentes” Agente = Objeto com intencionalidade

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 Information Repository Knowledge broker Verification Agent Diagnostic HCI Monitoring Tracking Data Acquisition

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.

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.

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;

Semelhanças entre os exemplos Inteligência Global / Individual Cada ser individual possui uma Inteligência própria. O sistema possui uma Inteligência global que é resultado do conjunto de ‘inteligências’ individuais. Objetivo Global / Individual Existe ‘sempre’ um objetivo global a ser atingido e os indivíduos podem ou não ter consciência disto. Cada indivíduo possui objetivos próprios, que podem ou não estar acima do objetivo global; Interações Predefinidas / Não-predefinidas ‘Todas’ as interações entre os agentes podem ser pre-definidas, ou não

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?

Não-cooperativo Cooperativo Taxonomia Anterior IA IA convencional IA Distribuída Outros DPS MAS Reativo Cognitivo Não-cooperativo Cooperativo

Estritamente Cooperativo Estritamente Não- Cooperativo Taxonomia ‘Moderna’ IA IA convencional IA Distribuída Outros MAS Classificações Intermediárias Estritamente Cooperativo Estritamente Não- Cooperativo

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?

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(...)])

Jogos dos 8 Números H E A B F D C G Objetivo: Colocar as letras em ordem alfabética no menor tempo possível Este problema é np-completo

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.

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();

Jogos dos 8 Números E B C A H F D G Bloqueado Ativo

Jogos dos 8 Números E B C A H F D G Bloqueado Ativo

Jogos dos 8 Números B C E A H F D G Ativo

Jogos dos 8 Números B C H A G E F D Ativo

Jogos dos 8 Números A B C G H E F D Bloqueado Ativo Resultados Obtidos com MAS: 30X30 Resultados com técnicas normais: 5X5

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

Task Allocation Problem - Contract Net Protocol - 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.

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

Task Allocation Problem 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 1 2 3 4 5

Task Allocation Problem 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 1 2 3 4 5

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

Balanço geral Vantagens Desvantagens 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

Concluindo O que significa dizer que um determinado problema pode ser melhor resolvido com uma abordagem multiagentes?

Quando usar... Problema complexo Problema intrinsecamente distribuído 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

Depois de descobrir que deve usar, o que fazer? 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.

FIM