Inteligência Artificial



Documentos relacionados
JADE Java Agent DEvelopment Framework

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

PROJETO INFORMÁTICA NA ESCOLA

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Instalando o J2SE 5.0 JDK no Windows 2000/XP

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

2 Diagrama de Caso de Uso

INF 1771 Inteligência Artificial

1. Apresentação Objetivos

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Engenharia de Software III

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

1 de 7 11/04/ :35

ENGENHARIA DE SOFTWARE I

Sistemas Operacionais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Inteligência Artificial. Agentes Inteligentes

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Engenharia de Requisitos Estudo de Caso

Tutorial de instalação do Java 7 no Windows 7.

Organização e Arquitetura de Computadores I. de Computadores

Outlook XML Reader Versão Manual de Instalação e Demonstração UNE Tecnologia

Registro e Acompanhamento de Chamados

Introdução ao Modelos de Duas Camadas Cliente Servidor

ESTUDO DE CASO WINDOWS VISTA

Introdução à Computação

Sistemas Operacionais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Prof. Marcelo Henrique dos Santos

MANUAL MIKOGO 1. VISÃO GERAL

Modelos de Arquiteturas. Prof. Andrêza Leite

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Engenharia de Software

Planejando o aplicativo

Orientação à Objetos. Aécio Costa

Programação de Computadores - I. Profª Beatriz Profº Israel

3 Trabalhos Relacionados

Introdução à Linguagem Java

Guia de instalação JMap 5.0

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Aplicação Prática de Lua para Web

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Oficina de Inclusão Tecnológica Windows Live Skydrive

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

PROVA DE NOÇÕES DE MICROINFORMÁTICA

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Instalação Cliente Notes 6.5

3 SCS: Sistema de Componentes de Software

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Manual de Instalação do Agente Citsmart

Extração de Requisitos

Orientação a Objetos

Manual de Instalação (TEF LOJA)

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Manual de instalação, configuração e utilização do Enviador XML

Orientação a Objetos com Java

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS DE ACESSO REMOTO (TELNET E TERMINAL SERVICES) Professor Carlos Muniz

INSTALANDO SOFTWARE Ifox irestaurantes

CRM. Customer Relationship Management. Atendimento e Gestão. É um Software multiusuário. agendamento, organização e acompanhamento de compromissos.

Administração do Windows Server 2003

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

SISTEMAS OPERACIONAIS 2007

Fóruns em Moodle (1.6.5+)

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Desenvolvendo Software Livre com Programação extrema

CURSO DE PROGRAMAÇÃO EM JAVA

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Noções de. Microsoft SQL Server. Microsoft SQL Server

Programação de Computadores - I. Profª Beatriz Profº Israel

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Novo Guia de uso rápido do PROJUDI

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Everson Scherrer Borges João Paulo de Brito Gonçalves

MODELO CLIENTE SERVIDOR

CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA PRÓ-REITORIA ACADÊMICA NÚCLEO DE EDUCAÇÃO EM AMBIENTES DIGITAIS NEAD

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

SISTEMAS DISTRIBUIDOS

Transcrição:

Inteligência Artificial Aula 8 Sistemas Multi-Agentes M.e Guylerme Velasco

O que são agentes? o termo vem sendo aplicado indistintamente, tanto na comunidade de computação em geral como em IA; sistemas baseados em agentes estão sendo propostos como a solução para tudo (principalmente com o que tenha a ver com a Internet)

O que é um agente? é uma entidade real ou virtual que está inserida em um ambiente que pode perceber o seu ambiente que pode agir no ambiente que pode se comunicar com outros agentes que tem um comportamento autônomo, conseqüência de suas observações, de seu conhecimento e de suas interações com os outros agentes

Outras características de agentes Continuidade temporal Mobilidade Benevolência Aprendizagem Cooperação Veracidade...

O que é um sistema multiagente? Um conjunto de agentes que interagem em um ambiente comum

Exemplos Jogos de computador Interpretação de linguagem natural Simulação Assistentes pessoais Comércio eletrônico Tutores inteligentes Controle de redes de energia elétrica...

Mudança de Paradigma passa-se de uma abordagem global para uma abordagem baseada em agentes (individual)

prof. Luis Otavio Alvares Características de domínios típicos dados distribuídos controle distribuído diversidade de conhecimento decomponibilidade da tarefa global multiplicidade de funções certo grau de autonomia

Vantagens adaptabilidade tolerância a falhas modularidade eficiência

Problemas comunicação coordenação inexistência de metodologia consagrada...

Breve histórico Hearsay II (Corkill, Erman, Hayes-Roth, Lesser, 1973) blackboard architecture Actors (Hewitt, 1973)e Beings (Lenat, 1975) estruturas de controle complexas Contract Net (Smith, 1982) controle hierárquico descentralizado DVMT (Lesser 1984) interpretação distribuída, organização Robos reativos (Brooks, 1986) subsumption architecture MACE (Gasser, 1987) ambiente multiagente

Tipos de SMA Agentes Cognitivos representação explícita têm histórico comunicação direta controle deliberativo organização social poucos agentes Agentes Reativos representação implícita não têm histórico comunicação indireta controle não deliberativo organização etológica muitos agentes

Exemplo de jogo: GUIMO jogo de ação (tipo Sonic) um jogo mais interessante por ser menos repetitivo e mais real alguns requisitos: resposta rápida por parte dos agentes artificiais independência de um roteiro pré-definido maior envolvimento do jogador com os elementos do sistema

Solução adotada Definir comportamentos elementares, possibilitando reações rápidas, que combinados produzem um comportamento complexo vaguear seguir em determinada direção atacar defender-se

Exemplo de comportamento O agente A1 vê um inimigo A2. O seu comportamento de ataque é então ativado, fazendo com que se aproxime de A2, disparando. Se o agente A2, por sua vez, também atira em A1, este, ao perceber o projétil, irá saltar para evitar o ataque que está sofrendo. O comportamento global do agente A1 seria: atacar enquanto persegue e desviar-se de um ataque um comportamento complexo, não previsto inicialmente http://www.jackbox.com/download.html

Agentes de Software

Motivação: Sistemas Complexos I/II Executam para alcançar nossos objetivos Interagem com outros sistemas Necessitam cooperar / competir com outros sistemas para alcançar os objetivos Necessitam executar de maneira independente Se adaptam a mudanças no ambiente São distribuídos e heterogêneos

Quando utilizar agentes de software? Quando a tarefa é grande e complexa Quando é necessário que as decisões sejam feitas com rapidez Quando envolvem riscos as pessoas Quando é muito caro ou difícil manter um grupo de pessoas controlando um software (ou um robô)

Definição: Agentes Dicionário: (dictionary.com) Uma pessoa ou coisa que atua ou que tem o poder de atuar Aquele que atua em benefício de outro Um agente é um sistema informático situado em um ambiente que é capaz de realizar ações de forma autônoma / independente para conseguir seus objetivos. [Wooldridhe, 1997] Não existe uma definição que seja precisa e utilizada por todos os pesquisadores

Algumas características É capaz de atuar em um ambiente Tem uma visão parcial do ambiente É capaz de perceber as mudanças do ambiente Pode se adaptar a mudanças do ambiente Pode se comunicar através de troca de mensagem com outros agentes Atua sem a necessidade de mandar atuar Está orientada por um conjunto de objetivos Pode aprender e raciocinar

Aplicações com agentes I/V Controle de tráfico aéreo: Como funciona? Sistema chamado OASIS e implementado no aeroporto de Sydney Os agentes representam tanto o avião como os distintos sistemas de controle de tráfico Quando um avião entra no espaço aéreo de Sydney, o sistema associa um agente com a informação do avião (tamanho do avião, quantidade de combustível, ) e os objetivos do avião (aterrissar em uma determinada pista a uma determinada hora) Os agentes controladores de tráfico controlam os agentes que representam os aviões Por que agentes? A metáfora do agente provê uma maneira útil e natural para modelar os componentes autônomos do mundo real.

Aplicações com agentes II/V Aplicações de medicina: Por que agentes? Distribuição: Conhecimento para solucionar um problema está distribuído em diferentes lugares Interação / Coordenação: A solução de um problema depende da coordenação das tarefas que serão realizadas por diversos indivíduos com diversas habilidades e competências Complexidade: Problema usualmente decomposto em subproblemas Pró-atividade: Os agentes realizam tarefas que são de benefício para o usuário sem que este seja solicitado Autonomia: Cada agente toma suas próprias decisões baseandose no seu estado interno e na informação que recebe do usuário e de outros agentes

Aplicações com agentes III/V Aplicações em medicina: Gestão de transplantes de órgãos Busca informação médica na Web: MARVIN http://www.hon.ch/project/marvin_project.html Monitoramento e diagnóstico de pacientes cardíacos: Guardian http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00653225 Formação de médicos: Amplia http://www.inf.ufrgs.br/~dflores/amplia/ Atendimento as pessoas de terceira idade: TeleCARE http://www.uninova.pt/~telecare/telecare2004/telecare2004_cam arinha-matos_afsarmanesh.pdf

Aplicações com agentes IV/V Aplicações de recuperação da informação: Como funciona? Sistema chamado Letizia e desenvolvido pelo MIT http://web.media.mit.edu/~lieber/lieberary/letizia/letizia-intro.html O agente observa o comportamento do usuário (páginas web que acessa) e tenta inferir seus gostos automaticamente Agente de informação: Tem acesso a diversas fontes de informação e são capazes de analisar e manipular a informação obtida Por que agentes? Necessidade de automação na busca por informação qualificada É capaz de armazenar, aprender e manejar as preferências e gostos de usuários É capaz de se comunicar com os provedores de informação Necessidade de adaptar-se a mudanças no seu ambiente

Outras aplicações V/V Comercio eletrônico Agentes podem planear, negociar, argumentar, Gestão de processos (workflow) Jogos e Robótica Controle de satélites NASA está tentando fazer com que os satélites sejam más autônomos, aumentando a capacidade de tomar decisões

Evolução dos Paradígmas da ES Linguagem Assembly Abstração Funcional Abstrações determinadas pela arquitetura da máquina Programação Estruturada Orientação a Objetos Tempo Orientação a Componentes... Abstrações determinadas pelo domínio do problema Agentes de Software

Propriedade dos Agentes

Interatividade (Habilidade Social) A vida real é um ambiente multi-agente, i.e, com vários agentes executando de um vez Muitas vezes os objetivos só podem ser cumpridos quando ocorre cooperação entre os agentes Os agentes são capazes de interagir com outras entidades do sistema Diferentemente dos objetos, os agentes não interagem chamando método de outros agentes. Os agentes enviam mensagens a outros agentes Os agentes decidem a quem irão responder Um agente pode decidir não responder a uma mensagem de outro agente, os objetos no podem

Reatividade (Adaptabilidade) Ambiente fixo x ambiente variável Em vida real: as cosas mudam, a informação está incompleta, o ambiente é variável A maioria dos ambientes são dinâmicos É difícil criar programas para domínios dinâmicos Possibilidade de falha Um agente reativo mantém uma interação contínua com o ambiente, e responde as mudanças que ocorrem nele (se adapta).

Pró-atividade (Orientação a objetivos) Reagir a um ambiente é fácil estímulo regra de resposta Mas queremos que os agentes façam coisas para nós E que tenham um comportamento orientado a objetivos e não a tarefas Um agente proativo é capaz de executar para cumprir seus objetivos, não faz falta que o mande fazer algo, não está guiado somente pelos eventos do ambiente, tem iniciativa e reconhece oportunidades.

Autonomia Um agente autônomo: trabalha sem a intervenção direta do usuário (não é necessário mandar para o agente execute) é capaz de selecionar o objetivo que irá intentar cumprir (pode ser capaz de criar novos objetivos) tem (certo) controle sobre seu estado e seu comportamento Só o agente é capaz de modificar seu estado O agente decide o que irá fazer

Reatividade x Pró-atividade Reatividade: queremos que nosso agente seja reativo, que responde as mudanças do ambiente a tempo e de maneira apropriada Pró-atividade: queremos que nosso agente trabalhe de acordo com seus objetivos Estas duas propriedades podem conviver Criar um agente onde estas duas propriedades estejam balanceadas é um problema de pesquisa Agente reativo Agente mixto Agente pró-ativo

Interatividade x Autonomia Interatividade: agente interage com outros agentes para alcançar seus objetivos Autonomia: agente é capaz de fazer todas suas tarefas sem depender de ninguém - Interação + + Autonomia -

Outras Propriedades Mobilidade: Mover de um computador a outro em una rede preservando seu estado Racionalidade: os agentes irão atuar para cumprir seus objetivos y no irão atuar de maneira a prevenir que os objetivos se cumpram Um agente pode decidir: que objetivo tentar atingir ou qual evento reagir como atuar para conseguir um objetivo suspender ou abandonar uma objetivo para dedicar-se a outro Aprendizagem: o agente melhora seu rendimento com o passar do tempo

Agentes x Objetos

Entidade (Agente ou Objeto) Toda entidade tem: Estado + comportamento Reação com outras entidades Estado: armazena informações Comportamento: conjunto de tarefas que a entidade pode executar Relacionamento: define como as entidades estão relacionadas, conectadas

Objeto Estado: atributos Armazena informação sobre o objeto e sobre outras entidades do sistema (podem armazenar outros objetos) Comportamento: métodos São tarefas que podem ser executadas As operações podem modificar o estado do objeto

Comunicação entre Objetos Envio de mensagem >> Chamada de método Resposta >> Execução do método e envio da resposta Sempre que um objeto envia uma mensagem a outro objeto este responde

Objeto (tradicional) Tem controle do seu estado (encapsulamento) Pode modificar seu estado mas não pode adicionar novos tipos de informação Não tem controle de seu comportamento Não pode modificar seu comportamento Os objetos são entidades passivas Só executam quando outras entidades pedem

Agente Estado: crenças, objetivos, planos e ações Crenças: conhecimento sobre si mesmo, sobre o ambiente e sobre outras entidades Tudo que o agente sabe, suas memórias e suas percepções Objetivos: estados futuros donde o objeto quer chegar ou desejo que ele quer satisfazer

Agente Ações: execução dos agentes Ex.: modificar seu estado, enviar e receber mensagens Planos: composto por um conjunto de ações Descrevem a ordem de execução das ações Possibilitam que o agente alcance seus objetivos ou que satisfaça seus objetivos Estão relacionados com os objetivos

Agente Comportamento: Execução dos planos e, conseqüentemente, das ações Os planos são executados de acordo com os objetivos Objetivos com maior prioridade são selecionados primeiro A definição do comportamento do agente é parte de seu estado mental.

Comunicação entre Agentes Envio de mensagem >> Envio de una carta (pedido, informação, ) Resposta >> Envio de outra mensagem Utilizam uma linguagem de comunicação Agentes podem não responder quando recebem uma mensagem de alguém

Agente Tem controle de seu estado Pode modificar seu estado e pode adicionar novas informações Crenças e objetivos Tem controle de seu comportamento Pode modificar seu comportamento (podem criar novos planos e aprender novas ações) Aprendizagem Os agentes são entidades ativas Executam sem que alguém peça

Objeto Agente Estado: Pode modificar mas não pode adicionar novas Informações Comportamento Não tem controle de seu comportamento Necessita estímulos externos para executar Responde todas mensagem que recebe Comportamento predeterminado Estado mental: Guarda informações sobre seu comportamento Pode modificar e adicionar informação Comportamento: Tem controle de seu comportamento Não necessita estímulos para executar Pode não responder uma mensagem Pode modificar seu comportamento

Agentes e Objetos Agentes são autônomos: Ex: Agentes decidem quando executar uma ação requerida por outro agente Agentes são inteligentes: Agentes podem modificar seu comportamento (reatividade, pró-atividade, habilidade social, aprendizagem ) Agentes são entidades ativas: Uma sistema muli-agentes é tipicamente composto por várias threads, onde cada agente tem uma ou mais threads de execução que executam sem intervenção do usuário

JADE Java Agent DEvelopment Framework 47

Introdução Java Agent DEvelopment Framework. Framework implementado em Java. Simplifica a implementação de sistemas multiagentes. Utiliza um middleware e ferramentas gráficas que suportam debug e fases de desenvolvimento. Suporta mobilidade de agentes 48

Introdução A plataforma de agentes pode estar distribuída em diferentes máquinas (sem ser necessário o mesmo SO) e as configurações podem ser controladas via uma GUI remota. A configuração pode ser alterada em tempo de execução, movendo agentes de uma máquina a outra, quando necessário. 49

Introdução JADE é free software (?), com copyright opensource LGPL desde Maio de 2003. Atuais membros do Projeto JADE: Telecom Italia; Motorola; Whitestein Technologies AG; Profactor GmbH; France Telecom R&D. 50

Pré-requisitos Para trabalhar com Jade, são necessários os seguintes requisitos: Máquina virtual java 1.4 ou mais recente; Kit de desenvolvimento JDK 1.4 ou mais recente. A pasta bin do JDK deve ser incluida no PATH do sistema operacional; Um editor de texto ou IDE para desenvolvimento (Notepad, gedit, Eclipse, Netbeans); Download do JADE (cadastro gratuito) http://jade.tilab.com 51

Download 52

Instalação e Configuração Descompactar o arquivo jadeall.zip e descompactar cada um dos arquivos em um diretório chamado jade. Exemplo: Windows: c:\jade Linux: /home/usuario/jade 53

Instalação e Configuração No Windows, acrescentar os seguintes arquivos no CLASSPATH: c:\jade\lib\jade.jar; c:\jade\lib\jadetools.jar; c:\jade\lib\base64.jar; c:\jade\lib\http.jar; c:\jade\lib\iiop.jar. 54

Interface Gráfica Pelo prompt de comando Executar: java jade.boot -gui -local-host localhost 55

Programa HelloWorld 56

Compilar e Executar Compilar: javac HelloWorld.java Executar: // com a interface gráfica rodando java jade.boot -container suzumiya:helloworld // sem a interface gráfica rodando java jade.boot suzumiya:helloworld 57

Eclipse Build Path... Libraries 58

Eclipse Run Configuration 59

Eclipse Run Configurations 60

Exemplo 61

Comunicação: Sender.java 62

Comunicação: Receiver.java 63

Execução Em uma janela execute o Receiver: java jade.boot -local-host localhost a:receiver Em outra janela execute o Sender: java jade.boot -local-host localhost -container main:sender Observe que como o primeiro comando já executa a plataforma, o segundo apenas acrescenta o Sender nesta, já em execução. 64

Agentes Distribuídos Supondo que no computador 1 tem como hostname PC1 digite a seguinte linha de comando para carregar o maincontainer Java jade.boot local-host localhost gui Execute a seguinte linha de comando em outra máquina a qual criará outro container de agentes e fará com que esse container se conecte ao mains container no computador1 PC1: java jade.boot host PC1 container a:receiver Onde PC1 é o host da máquina onde se encontra o maincontainer, a é o nome do agente e Receiver é o código que implementa o agente 65

Agentes Distribuídos Execute agora em uma terceira máquina o seguinte comando que cria dois agentes: java jade.boot -host PC1 -container Main:Sender Neste caso teremos dois agentes distribuídos: Sender; Receiver. Agentes conectados à plataforma JADE remota. As classes destes agentes já devem estar compiladas. 66