Programação Orientada a Agentes

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas
Advertisements

Renata S.S. Guizzardi Inteligência Artificial – 2007/02
Introdução a Algoritmos
Linguagens de Programação para SMA Viviane Torres da Silva
Objetivos do Capítulo Utilizar o processo de desenvolvimento de sistemas delineado neste capítulo e o modelo de componentes de SI, do Capítulo 1, como.
Introdução à Teoria Geral da Administração TGA
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Identificando requisitos
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Engenharia de Software
Inteligência Artificial Alex F. V. Machado. Tecnologia de Processamento da Informação que envolve processos de raciocínio, aprendizado e percepção. Winston.
Projeto de Sistemas de Software
Metodologias Equipe do Curso de ES para SMA {lucena, furtado, choren,
Banco de Dados Dedutivo
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
Os Sistemas Multi-agente Viviane Torres da Silva
O QUE É UM PROJETO? Projeto, do latim pro-jicere: literalmente é colocar adiante. A elaboração de qualquer projeto depende de dois fatores fundamentais:
Seminário do grupo de pesquisa em IHC do DIMAp-UFRN
Sistemas Baseados em Agentes
Metodologias Orientadas a Agentes
Desenvolvimento Orientado a Agentes
Luis Otavio Alvares - II/UFRGS
SMA: ORGANIZAÇÃO.
Análise e Projeto de Sistemas
Introdução Visão Geral do Método.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
INF 1771 – Inteligência Artificial
Introdução a Programação
Engenharia de Software e Sistemas de Informação e Gestão
Software de Rede Willamys Araújo.
Agentes inteligentes e sistemas multiagentes
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte V Implementação (1)
Tecnologias de Linguagens para Banco de Dados
Cap 2 – Processo de Software
Programação Avançada Prof. Natalia Castro Fernandes
Arquitetura de software
Projeto de Sistemas de Software
O Fluxo de Implementação
Desenvolvimento de Sistemas Orientados a Aspectos
Princípios do SCO.
Análise e Projeto de Sistemas Levantamento de Requisitos
IFSul – Campus Venâncio Aires
Análise e Projeto de Sistemas
Metodologias para construção de SMA
Plano de Aula Arquiteturas de Agentes Baseados Em Lógica Reativas BDI
3 – Agentes e 4 – Multiagentes
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Metodologias (Parte II) Viviane Torres da Silva
O Processo Unificado (UP)
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
METODOLOGIA, MÉTODOS E FERRAMENTAS
Programação de computadores Prof. Giovanni Castro.
Engenharia de Groupware: Desenvolvimento de Aplicações Colaborativas. Síntese FUKC, H. RAPOSO,A. B. GEROSA, M. A. Artigo apresentado em mini-curso do Congresso.
Programação Lógica com Prolog
Integração de Ferramentas CASE
Relação entre Requisitos e Arquitetura de Software num ambiente Multi-Agente SIRA Framework Análise dos temas de Lúcia Bastos e Turah Almeida Apresentação.
Fundamentos de linguagens de programação
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Frameworks e Componentes Daniel Fernando Pavelec.
André Drummond RA Danilo Benzatti RA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína XP (EXTREME PROGRAMMING) Pós-Graduação em Engenharia de Software Metodologias.
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 2 Professor: Italo Rodrigues Castro.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Programação Orientada a Agentes Ana Carla Santos Flávia Amaral Jin Jing Yi

Kasbah: virtual marketplace Como implementar? Ciclos Fatores Humanos Ações bobas Experiência Positiva Fechar Negociação Novas Implementações Data Máxima Preço Desejável Preço Mínimo Função de decaimento de Preço

AOP Ferramentas, técnicas e metáforas para melhorar a forma com que as pessoas concebem e implementam uma variedade de software

Os Agentes do Sistema Descobrir quais são os agentes do sistema... Implementar usando uma estrutura de software para agentes!

Agente x Multi-Agente Cooperação Coordenação Negociação

Engenharia de Software baseada em Agentes Programas desenvolvidos por várias pessoas, em linguagens diferentes provendo interfaces diversas. Agentes de Software, componentes de software que se comunicam através de uma linguagem de comunicação de Agentes. Um Agente provê uma interface independente de seus dados e algoritmos

Engenharia de Software baseada em Agentes Linguagem de Comunicação Universal Problemas das linguagens procedimentais Informações sobre o receptor não estão disponíveis para o transmissor Unidirecional Abordagem Declarativa Troca de sentenças Compacta e Expressiva

ACL Vocabulário Inner language - KIF Outer language - KQML Dicionário Múltiplas Ontologias Inner language - KIF Representação de conhecimento Lógica de Predicado de Primeira Ordem Outer language - KQML Comunicação entre Agentes Contexto

Aplicações Controle de Processos Telecomunicações Controle de Tráfego Aéreo Comércio Eletrônico Jogos Monitoramento de Pacientes

OOP vs.AOP

Sistemas baseados em Agentes Aqueles que empregam, em alguma das fases de desenvolvimento ( análise, projeto ou implementação), a abstração de agentes.

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”

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

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

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

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

Uma metodologia para Análise Orientada a Agentes Sistema de segurança protocolos responsabilidades permissões de sobrevivência Papel

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

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

Exemplo: CoffeeFiller Permissões leitura coffeeMaker (nome do coffee maker) coffeeStatus (full or empty) escrita coffeeStock (nível da garrafa de café)

Exemplo: CoffeeFiller Protocolos Fill InformWorkers CheckStock AwaitEmpty

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

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 ocorre x* x ocorre 0 ou mais vezes x+ x ocorre 1 ou mais vezes x x ocorre infinitamente [x] x é opcional x||y x e y se sobrepõem

Esquema do Papel ROLE SCHEMA: CoffeeFiller PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmpty PERMISSIONS: 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.

Processo de Análise Identificar os papéis do sistema Para cada papel, identificar e documentar os protocolos Elaborar o modelo de cada papel

Uma vez tudo bem claro, como implementar? Linguagem de uso geral (OOP) + vários pacotes (JatLite, JEOPS, ...) Linguagem específica para AOP

Componentes de estado mental de um agente Decisão (ou escolha) - O que determina a ação de um agente. Crença - O que restringe a decisão de um agente, embora não determina. Capacidade - O que determina a decisão de um agente.

Exemplo Um robô tem como missão ir de A até B: capacidade: mover-se em todas as direções e perceber o ambiente através de sensores. decisão: mover-se na direção do B enquanto o caminho estiver livre. Encontra uma passagem estreita: crença: não é capaz de passar. decisão: procurar outro caminho.

Uma linguagem de especificação de agentes Tempo segurar(robob, copo) t Ação levantar_braço(robob) t Crença Bat  Ex.: Ba3 Bb10 gosta(a,b) 7

Uma linguagem de especificação de agentes Obrigação OBLa,bt  Decisão DECat  =def OBLa,at  Capacidade CANat  ABLEa  = CANatime() 

Restrições das componentes mentais Consistência interna - todas crenças e obrigações devem ser consistentes entre si. Boa fé - o agente deve executar ações que ele crê que é capaz. Introspecção - o agente deve estar ciente das suas obrigações. Persistência do estado mental - o agente deve permanecer no estado mental até que uma proposição contrária aconteça.

Programação em agentes O papel de um programa orientado a agentes é controlar a evolução do estado mental dos agentes.

Estrutura de um interpretador de agentes genérico Atualizar estado mental Representação do estado mental e capacidade Executar obrigações no tempo atual Clock Inicialização mensagem de saída mensagem de entrada

Agent-0: primeira linguagem orientada a agentes Sintaxe Comandos de fatos Comandos de ação privada Comandos de ação comunicativa Comandos de ação condicional Variáveis Regras de compromisso

Agent Builder

Agent Builder

Conclusões Estudar o problema para definir que metodologia usar Usar um bom ambiente de desenvolvimento

Referências Shoham, Yoav. Agent-oriented programming, in Reading in Agents. Stanford University, 1992. Chavez, Antony and Maes, Pattie. Kasbah: an agent marketplace for buying and selling goods. MIT Media Lab, 1996. Wooldridge, Michael and Jennings, Nicholas R.. Pitfalls of agent-oriented development. University of Lodon, 1998.

Referências Wooldridge, Michael; Jennings, Nicholas R. and Kinny, David. A methodology for agent-oriented analysis and design. University of Lodon and University of Melbourne, 1999. Jennings, Nicholas R.; Sycara, Katia and Wooldridge, Michael. A roadmap of agent reseach and development. University of Lodon and Carnegie-Mellon University, 1995.

Referências Chavez, Antony; Dreilinger, Daniel; Guttman, Robert and Maes, Pattie. A real-time experiment in creating na agent maketplace. MIT Media Lab, 1997. Davies, Winton H. E and Edwards, Peter. Agent-K: an integration of AOP and KQML. University of Aberdeen, 1995. Genesereth, Michael and Ketchpel, Steven P.. Software Agents. Stanford University, 1993.