Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra.

Slides:



Advertisements
Apresentações semelhantes
Introdução a Algoritmos
Advertisements

Linguagens de Programação para SMA Viviane Torres da Silva
Paulo Marques Hernâni Pedroso
Inteligência Artificial Alex F. V. Machado. Tecnologia de Processamento da Informação que envolve processos de raciocínio, aprendizado e percepção. Winston.
Contratos em Projeto OO
Agentes Baseados em Regras de Produção
Agentes Baseados em Conhecimento
INTRODUÇÃO À PROGRAMAÇÃO
Diagrama de Classes.
Wagner Santos C. de Jesus
Francesca Volcan Pio Maiara Heil Cancian Ricardo Bedin França
Programação e Sistemas de Informação
Equipe ADEV – O que foi feito Ajuste no documento de caso de uso do requisito 02 para ficar de acordo com o que foi implementado. Ajuste no documento de.
INF 1771 – Inteligência Artificial
Concorrência em Java Threads em Java.
Aula prática - análise contextual
Conceitos básicos de orientação a objetos
Desenvolvimento de Sistemas Orientados a Aspectos
Introdução à Programação Orientada a Objetos com Java
+ Curso de C/C++ Aula 8 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
Flora-2 Aula de Laboratório Arquivo do Exemplo  Baixar os arquivos “safari.flr” de ~apln/aulamci em um diretório acessível pelo unix (subpasta no diretório.
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio Jackson, Jean, Patrícia, Saulo Centro de Informática.
Agentes Baseados em Regras de Produção
SableCC José Francisco Pereira Equipe de Monitores
Um Framework Para Testes
Augusto Sampaio e Paulo Borba Centro de Informática
Augusto Sampaio e Paulo Borba Centro de Informática
Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner
JEOPS Java Embedded Object Production System
Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra.
Sistemas Especialistas
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Sistemas Inteligentes
Mole: Um Sistema de Agentes Móveis Baseado em Java Curso de Ciência da Computação Departamento de Informática Disciplina de Tópicos Especiais em Computação.
Professor: Márcio Amador
Orientação a Objetos e Java Graduação em Ciência da Computação
Orientação a Objetos Parte I
Sistemas Baseados em Conhecimento
Wagner Santos C. de Jesus
Análises léxica e sintática
Aula prática 14 Orientação a Objetos – C++ Parte 2
Implementação MVC Pedro Antonino.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Métodos Formais.
Linguagens de Programação
Linguagens de Programação Introdução Prof. Renato Melo.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Semântica de Linguagens de Programação
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Animador e Editor para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Reis Lucena Centro de Informática – UFPE, 2005.
Processo Dirigido Pelos Use Cases Disciplina: Estudo do RUP Autor: Tiago Lima Massoni Orientação: Augusto Sampaio Paulo Borba.
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP Alunos: Carlos Eduardo Pontual (ceplc)‏ Fernanda d'Amorim (frsa)‏
Adriana Carla Projeto de PLP. 2 Roteiro Objetivos Alterações  Contextualização  BNF / Parser  checaTipo()  avaliar() Demonstração.
Engenharia de Software
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP Alunos: Carlos Eduardo Pontual (ceplc)‏ Fernanda d'Amorim (frsa)‏
Eliane Martins - Instituto de Computação - UNICAMP Estudo de caso Sistema de elevador Criação: jun/2011.
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Paralelismo.
VII Encontro CIn sobre Qualidade, Processos e Gestão de Software Thierry Araujo Avaliação dos resultados do projeto SmartSim e perspectivas para.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Prof. Hemerson Calabreze 1.  Dentro de uma garrafa, cheia de um líquido nutritivo, cai um micróbio. O micróbio se alimenta, cresce e se divide em dois.
Transcrição da apresentação:

Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra

Roteiro Relembrando O que faltava O que fizemos Dificuldades encontradas O que ainda há pra fazer

Relembrando Linguagem OO + Thread class Agent extends Thread{ Personalidade personalidade; Objetivos[] objetivos;... run(){ } Motor de Inferência Fatos iniciais Base de Conhecimento (Regras + Fatos)

Relembrando A idéia era colocar a base DENTRO do agente agente Robot { init{ FamiliaBase::inserir(objetivo) } run(){ //percebe //insere fato //roda a base (age) } Base de Regras baseDeRegras FamiliaBase { regra encontraAncestrais { declaracoes Pessoa p; Objetivo o; decLocal Pessoa pai = p.getPai(); Pessoa mae = p.getMae(); condicoes o.isAtivo(); p == o.getAlvo(); acoes o.desativar(); write(pai.getNome() ++ " e " ++ mae.getNome() ++ "sao ancestrais"); }

Então... Etapa 1 Etapa 2 Projeto * Tamanho dos círculos infere complexidade

Primeira Parte Etapa 1 Inserir threads na linguagem Definir BNF

O que faltava? Etapa 2 Corrigir os bugs da linguagem Implementar a BNF Implementar o Interpretador Documentação + Site

Implementação da BNF Definir foi duro, mas implementar... –Estrutura de OO1 complexa e com erros Ajustes necessários –Ambigüidades e Recursões retiradas –Redefinições

Algumas mudanças não previstas Estudando OO1, alguns ajustes fizeram-se necessários. agente Robot { init{ FamiliaBase::inserir(objetivo) } run(){ //percebe //insere fato //roda a base (age) } agente Robot { metodo1(){ } }, classe NomeClasse{ }; { NomeClasse n := new NomeClasse; Robot b:= new Robot; b.inserir(n); //comandoInserir b.iniciar(baseDeRegras); //ComandoIniciar } Bases de Regras Bases de Regras

Implementação da BNF BNF final consolidada e implementada Programa ::= "{" DecElemento ";" Comando "}" DecElemento ::= DecElementoAtomica | DecElementoComposta DecElementoComposta:= DecElementoAtomica “," DecElemento DecElemento::= DecClasse | DecAgente

Implementação da BNF DecClasse ::= "classe" Id "{" DecVariavel ";" DecProcedimento "}" DecAgente ::= "agente" Id "{" DecBasesDeRegras ";" DecProcedimento "}" Comando := … | ComandoAgente ComandoAgente ::= Id “." ComandoInserir | Id “." ComandoRemover | Id “." ComandoAtualizar | Id “.” ComandoIniciar ComandoIniciar :: = IdAgente “.” “iniciar( IdBaseDeRegras)” ComandoInserir ::= IdAgente “.” “inserir(” IdObjeto “)” ComandoRemover::= IdAgente “.” “remover(” IdObjeto “)” ComandoAtualizar ::= IdAgente “.” “atualizar(” IdObjeto “)”

Implementação da BNF DecBasesDeRegras ::= “baseDeRegras” Id "{" DecRegras "}“ | DecBasesDeRegras “," DecBasesDeRegras DecRegras ::= "regra" Id "{" CorpoRegra "}" | DecRegras “," DecRegra CorpoRegra ::= Declaracoes DecLocal Condicoes Acoes Declaracoes ::= "declaracoes" ListaDeclaracaoParametro DecLocal ::= "declLocal" DecVariavel Condicoes ::= "condicoes" ListaExpressao Acoes ::= "acoes" comando

Implementação do Interpretador Sintaxe executada com sucesso, e agora?? Manipulação dos fatos –O agente tem um repositório de fatos –Adicionar/Remover/Atualizar –Verificar Tipos Comando iniciar para rodar determinada base Encadeamento das regras Verificação de condições Execução de ação

Método Run() virou um thread Criação do conceito abstrato de Elemento Criação do conceito de Agente –Base de Regras –Regras –Base de fatos Operações sobre os fatos –Inserir, remover, atualizar Operações sobre as bases de regras –executar Modificações LOO1

Como disparar uma regra? Fatos P1 : Pessoa Nome = Allan Pai = Batista Mae = Katia P2 : Pessoa Nome = Batista Pai = José Mae = Maria R1 : DecobreAvo Declarações P1 : Pessoa, P2 : Pessoa C : Carro Cor = Verde Ano = 1999 C é do tipo Pessoa? P1 é do tipo Pessoa? Já da para chamar a regra? Chamada recursiva Parâmetros

Como disparar uma regra? Fatos P1 : Pessoa Nome = Allan Pai = Batista Mae = Katia P2 : Pessoa Nome = Batista Pai = José Mae = Maria R1 : DecobreAvo Declarações P1 : Pessoa, P2 : Pessoa C : Carro Cor = Verde Ano = 1999 C é do tipo Pessoa? P1 é do tipo Pessoa? Já da chamar a regra? Chama a regra com P1 e P1 Parâmetros P1 : Pessoa Parâmetros P1 : Pessoa

Como disparar uma regra? Fatos P1 : Pessoa Nome = Allan Pai = Batista Mae = Katia P2 : Pessoa Nome = Batista Pai = José Mae = Maria R1 : DecobreAvo Declarações P1 : Pessoa, P2 : Pessoa C : Carro Cor = Verde Ano = 1999 Parâmetros P1 : Pessoa P1 é do tipo Pessoa? Já da chamar a regra? Chamada a regra com P1 e P2 Parâmetros P1 : Pessoa P2 : Pessoa

Demonstração

Documentação e Site

Dificuldades Bugs em OO1 Falta de consenso sobre o conceito “orientação a agentes” A linguagem OO1 teve que ser praticamente reescrita Encadeamento das regras –RETE x Algoritmo atual … Mas a satisfação compensa!

Mas ainda há o que fazer… Implementação do RETE Resolução de conflitos Testar melhor o fluxo de execução dos componentes da linguagem Buscar mais requisitos de liguaguens como PROLOG Refinar a sintaxe da liguagem Retirar obrigatoriedade dos métodos e DecLocal

Referências [Bordini, 2003] Linguagens de Programação Orientadas a Agentes: uma introdução baseada em AgentSpeak(L). Bordini, Rafael; Vieira, Renata. RITA, Vol X, Número [LOO1, 2007] Linguagem Orientada a Objetos 1. Disponível em: etos1/orientadaObjetos1.html. Último acesso: etos1/orientadaObjetos1.html [Figueira, 2000] JEOPS – Integração entre Objetos e Regras de Produção em Java. Figueira, C. S. da; Ramalho, G. L. Dissertação de Mestrado, Centro de Informática, Universidade Feral de Pernambuco, Recife, Brasil. Outubro de 2000.