Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ......

111
Minicurso 4 Introdução à Engenharia de Software Orientada a Agentes com JaCaMo Nécio de Lima Veras (IFCE), Anderson Couto Palácio de Queiroz (UECE), Francisco Robson Oliveira de Lima (UECE), Robert Marinho da Rocha Júnior (UECE), Igor Brasil Nogueira (UECE), Mariela Inés Cortés (UECE) e Gustavo Augusto Lima de Campos (UECE)

Transcript of Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ......

Page 1: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Minicurso 4Introdução à Engenharia de Software Orientada a Agentes com JaCaMo

Nécio de Lima Veras (IFCE), Anderson Couto Palácio de Queiroz (UECE),Francisco Robson Oliveira de Lima (UECE),Robert Marinho da Rocha Júnior (UECE),Igor Brasil Nogueira (UECE),Mariela Inés Cortés (UECE) eGustavo Augusto Lima de Campos (UECE)

Page 2: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Parceria

Page 3: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Suporte financeiro

Page 4: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agenda

IntroduçãoIntrodução

Engenharia de Software Orientada a Engenharia de Software Orientada a Agentes (ESOA)Agentes (ESOA)

Plataforma de desenvolvimento de Plataforma de desenvolvimento de AgentesAgentes

Ambientes de AgentesAmbientes de Agentes

Estudos de casosEstudos de casos

Introdução aos Sistemas Multi-AgentesIntrodução aos Sistemas Multi-Agentes

Page 5: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Introdução

Page 6: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Aumento da Complexidade

Complexidade de Requisitos Complexidade de

Software

Page 7: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Métodos

Ferramentas

Procedimentos

Alinhamento da produção

Como alinhar?Como alinhar?

Page 8: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Engenharia de software

Objetivos daObjetivos daEngenharia Engenharia de Softwarede Software

Desenvolvimento profissionalde software

Seleção de métodos adequados

Uso de ferramentas e procedimentos

Page 9: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Evolução dos paradigmas

Cascata

Espiral

Pro

totipação

Téc. 4a. Geração

...

Evolucionárias

Page 10: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agentes deAgentes deSoftwareSoftware

Evolução dos paradigmas

Assembly

Abstraçãofuncional

Programaçãoestruturada

Orientaçãoa objetos

Orientaçãoa

componentes

Máq

uina

Domínio do problema

Abstrações determ

inadas por

...

Page 11: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Engenharia de Software Orientado a Agentes

Conceitos fundamentais sobre Conceitos fundamentais sobre Agentes InteligentesAgentes Inteligentes

ArquiteturasArquiteturas

O modelo BDIO modelo BDI

Page 12: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Conceitos sobre Agentes Inteligentes

Uma entidade capaz de perceber um ambiente através de sensores e atuar sobre o mesmo através de atuadores [Russel e Norvig 2009]

2

Um agente é um sistema informático situado em um ambiente, e que é capaz de realizar ações de forma autônoma para atingir seus objetivo [Wooldridge 1997]

1

“Qualquer coisa” que pode perceber seu ambiente através de sensores e

interagir com ele por meio de atuadores.

3

Exemplos

•O ser humano possui visão e audição como sensores e mão e pernas como atuadores;

•Um robô possui câmeras e localizadores como sensores e motores como atuadores;

•Um software.....

Page 13: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Em imagem Técnicas de InteligênciaComputacional

[Russel e Norvig 1995]

Page 14: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agent FunctionÉ o É o comportamento comportamento de um agentede um agente

Serve para mapear qualquer sequência de Serve para mapear qualquer sequência de percepção para uma ação;percepção para uma ação;

Pode ser descrito com uma tabela de Pode ser descrito com uma tabela de percepções e ações;percepções e ações;

Exemplo:Exemplo:

Agente Aspirador de PóAgente Aspirador de Pó Tabela de funções do agenteTabela de funções do agente

Page 15: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Quando usar agentes de software?

Quando a tarefa é grande e complexa;Quando a tarefa é grande e complexa;

Quando é necessário que as decisões Quando é necessário que as decisões sejam feitas com rapidez;sejam feitas com rapidez;

Quando existem riscos envolvendo as Quando existem riscos envolvendo as pessoas;pessoas;

Quando é muito caro ou difícil manter um Quando é muito caro ou difícil manter um grupo de pessoas controlando um grupo de pessoas controlando um software (ou um robô);software (ou um robô);

Page 16: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agentes vs Objetos

EstadoComportamento

Relacionamento

Agente e Objetos

Entidades

Page 17: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Objetos

Atributos

Armazena informações sobre os objetos ou outras entidades

Estado

MétodosSão tarefas, operações que podem ser invocadas e modificar os atributos

Comportamento

Entre Objetos

Troca de mensagens, chamada ou execução de métodos

Relacionamento

Possuem comportamento estático e controle parcial sobre seu estado

São entidades passivas

Page 18: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agentes

Crenças objetivos, planos e ações

Estado

Comportamento“estado mental”

Os planos são executados conforme os objetivos

Comportamento

Comunicação

Envio de mensagens usando uma linguagem de comunicação

Relacionamento

Possuem comportamento dinâmico e controle total sobre seu estado e comportamento (modificação e aprendizagem)

São entidades ativas

Page 19: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Algumas propriedades dos agentes

RacionalAutonomia Inteligentes

São entidades ativas

Reatividades

Pró-atividade

Habilidade social

Mobilidade

Aprendizagem

Page 20: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agent program

MaterializaMaterializa o comportamento do o comportamento do agente;agente;

Internamente, Internamente, implementaimplementa o o agent agent functionfunction;;

Uma arquiteturaUma arquitetura de agente de agente que é capaz de por em que é capaz de por em funcionamento o agente;funcionamento o agente;

Page 21: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Arquiteturas de Agentes

Agentes reativosAgentes reativos

Agentes baseados em modelosAgentes baseados em modelos

Agentes baseados em objetivosAgentes baseados em objetivos

Agentes baseados em utilidadeAgentes baseados em utilidade[Russel e Norvig 2009][Russel e Norvig 2009]

Page 22: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agentes reativos

Características

Simplicidade! Inteligência limitada Percebe => Seleciona ação É um problema sério caso o

agente não perceba nada.

Page 23: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agente baseado em modelo

Características

Memória de percepções (estado interno) Possui conhecimento sobre

o funcionamento do mundo

Page 24: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agente baseado em objetivo

Características

Possui um estado desejável (objetivo) Considera o que pode

acontecer no futuro Pode selecionar um plano

ao invés de uma ação

Page 25: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Agente baseado em utilidade

Características

Mensuração de objetividade Possui uma função de

utilidade Pode fazer balanceamento

entre objetivos conflitantes Mapeia os estados em

números reais

Page 26: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

O modelo BDI

É uma das mais importantes arquiteturas de É uma das mais importantes arquiteturas de agentes deliberativos;agentes deliberativos;

É baseada em um modelo cognitivo É baseada em um modelo cognitivo fundamentado em três atitudes mentais:fundamentado em três atitudes mentais:

BeliefsBeliefs – – DesiresDesires– – IntentionsIntentions (B-D-I) (B-D-I)

Toda a fundamentação filosófica advém dos Toda a fundamentação filosófica advém dos trabalhos:trabalhos:

Daniel C. Daniel C. DennettDennett. The Intentional Stance (1987). The Intentional Stance (1987)

Michael E. Michael E. BratmanBratman. Intentions, Plans and . Intentions, Plans and Practical Reason (1987)Practical Reason (1987)

Page 27: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

O raciocínio prático

Deliberação

Decidir o objetivo a ser atingido.

Entendimento

Means-ends

Como atingir o objetivo.

Page 28: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Raciocínio lógico (crenças)

O que fazer depois de ter terminado um curso superior?Quais opções tenho em função do conhecimento que possuo?

Esse conhecimento é a sua CRENÇA.

Page 29: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Raciocínio lógico (desejos)

Existirão grupos de alternativas (estados do mundo) que irão motivar o agente. Chamamos isso de DESEJOS.

Page 30: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Raciocínio lógico (Intenções)

O agente optará por uma intenção e se comprometerá por ela:Elas alimentarão o raciocínio lógico futuro do agente.O agente deverá designar tempo e esforço para realizar a sua intenção.

Page 31: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Exemplo de intenção

Ingressar na academiaIngressar na academia. .

Possíveis ações:Possíveis ações:

Inscrever-se em programas de mestrado;Inscrever-se em programas de mestrado;

Persistir!Persistir!

Detectadas falhas (não aceitação em várias universidades) Detectadas falhas (não aceitação em várias universidades) então seria racional aumentar as horas de estudo;então seria racional aumentar as horas de estudo;

No entanto, persistir em muitas falhas é irracional.No entanto, persistir em muitas falhas é irracional.

Assim, uma intenção está relacionada com crenças sobre Assim, uma intenção está relacionada com crenças sobre o futuro.o futuro.

Page 32: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Intenções e o raciocínio prático

Intenções Intenções guiamguiam como o raciocínio será atingido (means-ends) como o raciocínio será atingido (means-ends)

““Tentar entrar em um programa de mestrado e, caso não consiga, tentar Tentar entrar em um programa de mestrado e, caso não consiga, tentar em outra universidade”;em outra universidade”;

Intenções Intenções restringemrestringem deliberações futuras deliberações futuras

““Ações conflitantes com minha intenção não devem ser investidas, como Ações conflitantes com minha intenção não devem ser investidas, como por exemplo, ser rico e ser universitário”;por exemplo, ser rico e ser universitário”;

Intenções Intenções persistempersistem

““Não se pode desistir de uma intenção sem uma boa razão para isso. Não se pode desistir de uma intenção sem uma boa razão para isso. Caso contrário, jamais uma intenção será atingida”;Caso contrário, jamais uma intenção será atingida”;

Intenções Intenções influenciaminfluenciam crenças sobre as quais os futuros crenças sobre as quais os futuros raciocínios práticos serão baseadosraciocínios práticos serão baseados

““Se a intenção é tornar-se um acadêmico, então deve-se acreditar que Se a intenção é tornar-se um acadêmico, então deve-se acreditar que em breve isso será verdade. Se, simultaneamente, acredita-se que nunca em breve isso será verdade. Se, simultaneamente, acredita-se que nunca será um acadêmico então o agente está sendo irracional”.será um acadêmico então o agente está sendo irracional”.

Page 33: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Dilema de um agente BDI

Como fazer um balanceamento

pró-ativo? Serei um agente corajoso oucuidadoso?

Page 34: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

O dilema

Não parar para reconsiderar suas intenções (Não parar para reconsiderar suas intenções (bold agentsbold agents):):

Poderá gerar Poderá gerar trabalho inútiltrabalho inútil, pois ele tentará atingir algo , pois ele tentará atingir algo que talvez nunca possa ser atingido;que talvez nunca possa ser atingido;

Parar constantemente para reconsiderar suas intenções Parar constantemente para reconsiderar suas intenções ((cautious agentscautious agents):):

Poderá fazer com que ele Poderá fazer com que ele jamais atinga uma intençãojamais atinga uma intenção (por (por conta do tempo que seria insuficiente);conta do tempo que seria insuficiente);

Page 35: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

λ = Taxa de evolução do mundo

λ baixo (ambiente não muda rapidamente)λ baixo (ambiente não muda rapidamente)

Os agentes corajosos são mais eficientes, pois eles estarão Os agentes corajosos são mais eficientes, pois eles estarão sempre ocupados trabalhando nos seus objetivos (e sempre ocupados trabalhando nos seus objetivos (e atingindo suas intenções)atingindo suas intenções)

λ alto (ambientes mudam frequentemente)λ alto (ambientes mudam frequentemente)

Os agentes cautelosos são normalmente melhores, pois Os agentes cautelosos são normalmente melhores, pois eles são capazes de reconhecer quando uma intenção está eles são capazes de reconhecer quando uma intenção está condenada (ou novas oportunidades em situações casuais)condenada (ou novas oportunidades em situações casuais)

LiçãoLição: diferentes tipos de ambientes requerem : diferentes tipos de ambientes requerem diferentes tipos de estratégias de decisão;diferentes tipos de estratégias de decisão;

Commitment and effectiveness of situated agents, Kinny e Georgeff (1991)

Page 36: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

A arquitetura BDI

Diagrama esquemáticoda arquitetura BDI

Revisor de crenças:Pode determinar um novo conjunto de crenças

Determina o conjunto de opções disponíveispara os desejos do agente

Representa o processo de deliberação

Page 37: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Um agente BDI em pseudocódigo

Pode-se ainda associar prioridade para cada uma das intenções, indicando grau de importância.

Page 38: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Plataforma de desenvolvimento de agentes

A Linguagem AgentSpeakA Linguagem AgentSpeak

JasonJason

Page 39: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

A linguagem AgentSpeak

Proposta por Anand S. RaoProposta por Anand S. Rao(1996) no trabalho (1996) no trabalho AgentSpeak(L): BDI agents AgentSpeak(L): BDI agents speak out in a logicalspeak out in a logicalcomputable language;computable language;

Inspirada na arquitetura BDI (fiel à proposta filosófica)

Sintaxe elegante

Extensão natural do paradigma de programação lógica (como o Prolog)

Page 40: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Noções geraisProjetada para programação de agentes BDI Projetada para programação de agentes BDI na forma na forma reactive planning systemsreactive planning systems;;

É constituída por:É constituída por:

...estão permanentemente em execução

...reagem a eventos que aconteçam no ambiente

...executam planos depositados em uma biblioteca

Átomo de crença (predicado de primeira ordem)

Base de crença (coleção de átomos)

Literais de crença (átomos ou suas negações)

Page 41: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Noções gerais

Existem dois tipos de Existem dois tipos de objetivosobjetivos (predicados): (predicados):

De realização (!)De realização (!)

De teste (?)De teste (?)

Na prática, indicam a execução de Na prática, indicam a execução de subplanossubplanos;;

Existem Existem eventos ativadores eventos ativadores ((triggers eventstriggers events) que podem ) que podem iniciar a execução de um plano;iniciar a execução de um plano;

Um Um eventoevento pode ser de dois tipos: pode ser de dois tipos:

Interno: gerado por um plano que precisa de um subobjetivo;Interno: gerado por um plano que precisa de um subobjetivo;

Externo: gerado por atualizações de crenças vindas do ambiente;Externo: gerado por atualizações de crenças vindas do ambiente;

Os E.A. estão relacionados com adição ('+') ou remoção Os E.A. estão relacionados com adição ('+') ou remoção ('-') de atitudes mentais;('-') de atitudes mentais;

Page 42: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Noções gerais

Os Os planosplanos são ações básicas que um são ações básicas que um agente executa no ambiente;agente executa no ambiente;

Um Um planoplano

Um evento ativador

Uma conjunção de literais(contexto)

Uma sequência de ações(subobjetivos)

Page 43: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Exemplo de um plano

Um concerto a ser realizado pelo artista A no local V corresponde a adição de uma crença concert(A,V) como conseqüência da percepção do ambiente. Caso o agente goste do artista A então ele irá reservar ingressos para essa combinação.

Ao adotar o objetivo de reservar , se o telefonenão estiver ocupado, então o agente iráexecutar o plano indicado pela ligação para o local do evento seguindo por um protocolode compra “...” e finalizado pela escolha dosacentos para o concerto do artista.

Page 44: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Sintaxe abstrata

ag: é um agente especificado por um conjunto de crenças bs e um conjunto de planos ps

ct: é o contexto do plano h: é uma seqüência de ações, objetivos ou atualizações de crenças

at: são fórmulas atômicas da linguagem, que são predicados onde p é um símbolopredicativo, ou seja, p: é um planote: é o evento ativador

te: adição/remoção de crenças da base de crenças do agente (+at e -at) te: adição/remoção de objetivos (+g e -g);

u: corresponde a atualização da base de crenças

g: são os objetivos e podem ser de realização (!at) ou de teste (?at);

Onde:

Page 45: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Um interpretador abstrato para AgentSpeak(L)

Necessita...Necessita...

...ter acesso à ...ter acesso à base de crençabase de crença e à e à biblioteca biblioteca de planosde planos;;

...gerenciar o conjunto de ...gerenciar o conjunto de eventos eventos e e intençõesintenções;;

Seu funcionamento requer Seu funcionamento requer três funções de três funções de seleção seleção para selecionar...para selecionar...

...um evento;...um evento;

...um plano aplicável;...um plano aplicável;

...uma intenção....uma intenção.

Devem ser Devem ser flexíveis flexíveis ao projetista.ao projetista.

Page 46: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ciclo de raciocínio de um programa agente em AgentSpeak(L)

Page 47: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Jason

Desenvolvido por:Desenvolvido por:

Jomi F. Hübner Jomi F. Hübner ee Rafael H. BordiniRafael H. BordiniUFSC UFSC PUCRSPUCRS

Baseado em diversos trabalhos anteriores, especialmente: Michael Fisher, Joyce Martins, Álvaro Moreira, Renata Vieira, Willem Visser, Mike Wooldridge

Page 48: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Jason ….

...é um ...é um interpretador interpretador para uma versão para uma versão estendida da linguagem AgentSpeak(L);estendida da linguagem AgentSpeak(L);

...implementa uma semântica operacional da ...implementa uma semântica operacional da linguagem;linguagem;

...provê uma ...provê uma plataforma para plataforma para desenvolvimentodesenvolvimento de sistemas multi-agentes; de sistemas multi-agentes;

...possui muitos ...possui muitos recursos de customizaçãorecursos de customização de de agentes;agentes;

...é livre!!! \o/ => ...é livre!!! \o/ => http://jason.sourceforge.net/http://jason.sourceforge.net/

...é implementado em Java;...é implementado em Java;

Page 49: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ciclo de raciocínio do Jason

Percepção do ambiente Atualizaçãoda base de crença

Recepção decomunicação

Seleção de mensagens socialmente aceitáveis

Seleção de um evento

Recuperação dos planos relevantes

Checagem dos planos

aplicáveis

Seleção de um plano aplicável

Seleção de uma intenção

Execução de um passo da

intenção

Page 50: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + JasonCrenças:Crenças:

Representada por literais de lógica de primeira Representada por literais de lógica de primeira ordem;ordem;

Descreve o que o agente Descreve o que o agente sabe sobre sabe sobre o ambiente;o ambiente;

Expressa a crença do agente e Expressa a crença do agente e não a verdade puranão a verdade pura;;

Exemplo de uma base de crença do agente Tom:Exemplo de uma base de crença do agente Tom:

Anotações

red(box1) [source(percept)].tall (bob).friend(bob,alice) [source(bob)].lier(alice) [source(self),source(bob)].~lier(bob) [source(self)].

Page 51: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason: Termos Reconhecidos

Page 52: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason:Alterações na base de crença

Percepções

[source (percept)]

Automático

Por

Intenções

[source(self)]

Exemplos:+lier(alice);-lier(jonh);

Pelas

Comunicações [source(bob)]

Exemplo:.send(tom,tell,lier(alice));

Por

Page 53: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason

Not (negação como falha)

É true se o interpretador falhar para derivar o argumento.

Exemplo:not likes(john, music).

Operadores de negação

~ (negação forte)

É true se o agente tem uma crença explícita que o argumento é falso.

Exemplo:~likes(john,music).

Page 54: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason

ObjetivosObjetivos (! = realização e ? = teste): (! = realização e ? = teste):

Exemplo: !write(book).Exemplo: !write(book).

Novos objetivos são adicionados:Novos objetivos são adicionados:

Por intençõesPor intenções

!write(book);!write(book);

?publisher(P);?publisher(P);

Por comunicaçõesPor comunicações

.send(tom,achieve,write(book)); // sent by Bob.send(tom,achieve,write(book)); // sent by Bob

// adds new goal write(book)[source(bob)] for Tom// adds new goal write(book)[source(bob)] for Tom

Page 55: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason

Por comunicaçõesPor comunicações (outros exemplos) (outros exemplos)

.send(tom,unachieve,write(book)); // sent by Bob.send(tom,unachieve,write(book)); // sent by Bob

// removes goal write(book)[source(bob)] for Tom// removes goal write(book)[source(bob)] for Tom

.send(tom,askOne,published(P),Answer); .send(tom,askOne,published(P),Answer);

// sent by Bob// sent by Bob

// adds new goal ?publisher(P)[source(bob)] for Tom// adds new goal ?publisher(P)[source(bob)] for Tom

// the response of Tom will unify with Answer// the response of Tom will unify with Answer

Page 56: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason: EventosOcorrem como consequências das mudanças no Ocorrem como consequências das mudanças no agente (crenças ou objetivos);agente (crenças ou objetivos);

O agente reage a evento por meio da execução de O agente reage a evento por meio da execução de planos;planos;

-!g (test-goal deletion)

+?g (test-goal addition)

-!g (achievement-goal deletion)

+!g (achievement-goal addition)

-b (belief deletion)

+b (belief addition)

Tipos

Page 57: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + JasonUma Uma biblioteca de planosbiblioteca de planos de um agente é de um agente é formada por:formada por:

Um plano possui a seguinte estrutura:Um plano possui a seguinte estrutura:

triggering event : context <- bodytriggering event : context <- body

Planos iniciais definidos pelo programador

Planos adicionados dinamicamente.add_plan .remove_plan

Planos recebidos de outros agentestellHow messagensUntellHow

Page 58: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AgentSpeak + Jason

Exemplo de um plano inicialmente definido:Exemplo de um plano inicialmente definido:

+!prepare(Something) : number_of_people(N) & +!prepare(Something) : number_of_people(N) & stock(Something,S) & S > N <- stock(Something,S) & S > N <-

... .... .

Page 59: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

JasonAções internas Ações internas do agente:do agente:

Jason traz um gama de comportamento pré-Jason traz um gama de comportamento pré-programados inerentes aos agentes;programados inerentes aos agentes;

São identificados por um “.” precedendo seu nome;São identificados por um “.” precedendo seu nome;

Exemplos:Exemplos:.send.send

.print.print

.member.member

.list.list

É possível É possível criar as própriascriar as próprias ações internas; ações internas;

Ver mais detalhes em: Ver mais detalhes em: http://www.slideshare.net/necioveras/jason-http://www.slideshare.net/necioveras/jason-componentes-personalizadoscomponentes-personalizados

Page 60: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes de agentes

ConceitosConceitos

Ambientes sob a perspectiva Ambientes sob a perspectiva da ESOAda ESOA

Ambientes baseado em Ambientes baseado em ArtefatosArtefatos

Ambientes CartAgOAmbientes CartAgO

Page 61: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Conceitos

A noção de ambientes é um conceito primário A noção de ambientes é um conceito primário em agentes e SMA, sendo o em agentes e SMA, sendo o lugarlugar computacionalcomputacional ou ou físico físico que os agentes que os agentes serão situados; serão situados;

Este lugar irá prover e definir as noções de Este lugar irá prover e definir as noções de percepçõespercepções, , ações ações e e interações interações dos dos agentes;agentes;

Os recursos fundamentais da Os recursos fundamentais da abstração de abstração de agentes estãoagentes estão direta ou indiretamente direta ou indiretamente ligados com o ambiente.ligados com o ambiente.

Page 62: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambiente de agente

Basicamente um ambiente é o Basicamente um ambiente é o problemaproblema que o agente deverá ser a que o agente deverá ser a soluçãosolução;;

Um ambiente de tarefas é definido por Russel Um ambiente de tarefas é definido por Russel e Norvig da seguinte forma:e Norvig da seguinte forma:

1ed

P = PerceptionA = ActionG = GoalE = Enviroment

2ed

P = PerformanceE = EnviromentA = ActuatorS = Sensors

Page 63: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Exemplo PEAS

[Russel e Norvig 2009]

Page 64: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Propriedades dos ambientes

Observabilidade

Totalmente observável

● Os sensores detectam todos os aspectos que são relevantes para a escolha da ação;

● Os agente não precisa manter nenhum estado interno para controlar o mundo;

Parcialmente observável

•Ou os sensores são imprecisos e possuem ruídos;

•Ou os estados estão ausentes nos dados dos sensores;

Nenhuma

Page 65: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Propriedades dos ambientes

Atuaçãode um ou

mais agentes

Mono-agente Multi-agente

ComportamentoComportamentodosdos

agentesagentes

Cooperativo

Competitivo

Page 66: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Propriedades dos ambientes

Mudança de estado

Estocástico

● Quando a completa determinação do próximo estado não for possível;

Determinístico

•O próximo estado do ambiente é completamente determinado pelo estado atual e pela ação executada;

Observações durante as mudanças

Episódico

• Experiência do agente divida em episódios atômicos que geram um única ação independente;

Sequencial

• Uma ação afeta todas as ações futuras;• O agente precisa “pensar” à frente;

Page 67: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Propriedades dos ambientes

Mudanças nopróprio

ambiente

Dinâmico

● Quando um ambiente pode se alterar enquanto um agente estiver deliberando então esse ambiente é dinâmico para esse agente;

Estático

• São mais simples, pois o ambiente não muda durante as deliberações do agente;

Semidinâmico

● É quando o ambiente não muda com o tempo, mas o agente sobre alterações no seu desempenho;

Page 68: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Propriedades dos ambientes

Número deestados possíveis

Discreto

● O número de possíveis estados é finito;

Contínuo

• O número de estado e o tempo são contínuos.

Page 69: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

O ambiente mais hostilParcialmente observávelParcialmente observável

EstocásticoEstocástico

SequencialSequencial

DinâmicoDinâmico

ContínuoContínuo

MultiagenteMultiagente

““As situações reais são tão complexas que As situações reais são tão complexas que para finalidades práticas devem ser tratadas para finalidades práticas devem ser tratadas

como estocásticas”.como estocásticas”.

Page 70: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Abordagens sobre o ambiente

...das raízes clássicas da I.A.

Existe um mundo externo que é percebido e atuado através dos agentes de modo a cumprir com suas tarefas.

...da Engenharia de Software Orientada a Agentes

Trabalhos recentes introduziram a ideia de abstração de primeira classe.

Há duas principais perspectivas para definição de ambiente, oriundas...

Page 71: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes sob o contexto da ESOA

Abstração de primeira classeAbstração de primeira classe

Existe um lugar adequado para encapsular funcionalidades e serviços que suportam

atividades de agentes

Trabalhos sobre o assunto:1. Weyns, D., & Parunak, H. V. D. (Eds.). (2007). Special issue on environments for multi-agent systems. Journal of Autonomous Agents and Multi-Agent Systems, 14(1), 1–116

2. Weyns, D., Parunak, H. V. D., Michel, F., Holvoet, T., & Ferber, J. (2005). Environments for multiagent systems: State-of-the-art and research challenges. In D. Weyns, H. V. D. Parunak, F. Michel, T. Holvoet, & J. Ferber (Eds.), Environment for multi-agent systems, volume 3374 (pp. 1–47). Berlin/Heidelberg: Springer.

Page 72: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes sob o contexto da ESOA

Nesta visão o ambiente não é mais apenas o alvo Nesta visão o ambiente não é mais apenas o alvo das ações do agente, nem um container ou das ações do agente, nem um container ou gerador de percepções para o agente, mas agora gerador de percepções para o agente, mas agora ele ele é parte do SMA e pode ser desenhado para é parte do SMA e pode ser desenhado para melhorar o desenvolvimento global do sistemamelhorar o desenvolvimento global do sistema;;

O ambiente pode ser definido sob o ponto de O ambiente pode ser definido sob o ponto de vista da engenharia de um SMA como vista da engenharia de um SMA como

endógenoendógeno, fazendo parte do sistema para o , fazendo parte do sistema para o qual foi desenhado;qual foi desenhado;

A contrário, a visão clássica da IA, pode ser A contrário, a visão clássica da IA, pode ser definida como definida como exógenaexógena;;

Page 73: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Programando Ambiente em SMA

A ideia básica da programação de ambiente pode A ideia básica da programação de ambiente pode ser resumida como:ser resumida como:

prog. de SMA = prog. de agente + prog. de prog. de SMA = prog. de agente + prog. de ambienteambiente

Onde implicitamente será referenciado softwares Onde implicitamente será referenciado softwares de SMA e de SMA e ambientes endógenosambientes endógenos;;

O ambiente é uma parte programável do O ambiente é uma parte programável do sistema, sistema, ortogonal ortogonal em relação à parte do em relação à parte do agente;agente;

Ortogonalidade significa separação de interesses Ortogonalidade significa separação de interesses com duas possibilidades;com duas possibilidades;

Page 74: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Separação de interesses

1

Os agentes são abstrações básicas para projetar e programar partes autônomas do sistema.

São projetados para realizar algum objetivo, tanto individual ou coletivo, encapsulando a lógica e o controle de suas ações.

2

O ambiente pode ser usado para projetar e programar a parte computacional do sistema que é funcional para o trabalho dos agentes.

Agentes podem dinamicamente acessar e usar algumas tipos de funcionalidades para explorar, possibilitando adaptar-se para melhor atender suas atuais necessidades.

Page 75: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Exemplo de Ortogonalidade

Uso do Uso do XML Parse XML Parse do apache Tomcatdo apache Tomcat

Page 76: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Exemplo de Ortogonalidade

Uso de Uso de Logging Logging do apache Tomcatdo apache Tomcat

Page 77: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Espaço de trabalho(workspace)

Artefatos

Conjunto de artefatos

Conjunto de artefatos

Conjuntos de entidades computacionais

Espaço de trabalho(workspace)

...

Page 78: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Uma visão geral dos principais conceitos que caracterizam ambientes baseados em artefato

Page 79: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Programadores de SMA definem os tipos de Programadores de SMA definem os tipos de artefatos de forma análoga à POO, pois é definido artefatos de forma análoga à POO, pois é definido estrutura estrutura e e comportamentocomportamento;;

Page 80: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Ações para trabalhar com artefatosAções para trabalhar com artefatos

Um agente precisa Um agente precisa juntar-se a um workspacejuntar-se a um workspace para para trabalhar com ele (ou vários ao mesmo tempo); trabalhar com ele (ou vários ao mesmo tempo);

Também deve Também deve sair o mais rápido possível sair o mais rápido possível quando terminar quando terminar o trabalho;o trabalho;

Dentro de um workspace o agente Dentro de um workspace o agente pode realizar ações pode realizar ações para trabalhar com artefatos categorizados em três grupos:para trabalhar com artefatos categorizados em três grupos:

Criar / Pesquisar / Eliminar artefatos1

Usar artefatos, executar operações, observar propriedades e sinais2

Vincular / Desvincular artefatos3

Page 81: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Criar / Pesquisar / Eliminar artefatos1

Usar artefatos, executar operações, observar propriedades e sinais2

Vincular / Desvincular artefatos3

Os três tipos básicos são:makeArtifact(ArName,ArTypeName,InitParams):ArIddisposeArtifact(ArId) lookupArtifact(ArName):ArId

Page 82: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Criar / Pesquisar / Eliminar artefatos1

Usar artefatos, executar operações, observar propriedades e sinais2

Vincular / Desvincular artefatos3

Envolve dois aspectos:Ser capaz de executar operações listadas em usage interface do artefato;Ser capaz de perceber informações observáveis do artefato em termos de propriedades e eventos observáveis;

● focus(ArId,{Filter}) (ou stopFocus(ArId))focus(ArId,{Filter}) (ou stopFocus(ArId))

Page 83: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambientes baseados em artefatos

Criar / Pesquisar / Eliminar artefatos1

Usar artefatos, executar operações, observar propriedades e sinais2

Vincular / Desvincular artefatos3

Para isso existem duas ações básicas:linkArtifacts(LinkingArId,LinkedArId{,Port})unlinkArtifacts(LinkingArId,LinkedArId)

Page 84: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

CArtAgO (Common ARtifact infrastructure for AGent Open environments)

É um É um framework framework e e infraestrutura infraestrutura para para programação programação e e execuçãoexecução de ambientes baseados de ambientes baseados em artefatos;em artefatos;

1. Uma API em Java para programar artefatos e ambientes em tempo de execução para executar ambientes baseados em artefatos;2. Uma biblioteca com um conjunto de tipos de artefatos de uso geral pré-definidos.

Fornece enquanto framework:

Provê uma API e um mecanismo subjacente para estender Linguagens ou framework de programação de agentes assim como para que programa de agentes trabalhem dentro de ambientes Cartago.

Provê enquanto infraestrutura:

Page 85: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

CArtAgO (Common ARtifact infrastructure for AGent Open environments)

Cartago é Cartago é ortogonal ortogonal para a tecnologia específica para a tecnologia específica adotada pela programação de agentes trabalhando em adotada pela programação de agentes trabalhando em ambientes baseados em artefatos;ambientes baseados em artefatos;

Foi concebido Foi concebido de modo a ser integrado com qualquer de modo a ser integrado com qualquer linguagemlinguagem de programação e plataforma de agentes, de programação e plataforma de agentes, permitindo a criação sistemas heterogêneos;permitindo a criação sistemas heterogêneos;

Um exemplo ilustrativo de Um exemplo ilustrativo de Cartago Cartago com com Jason....Jason....

Page 86: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Estudo de caso com Jason e Cartago

Estudo de caso I: Um agente Estudo de caso I: Um agente monitor de cardápio para um monitor de cardápio para um restaurante universitáriorestaurante universitário

Estudo de caso II: Um Estudo de caso II: Um simulador de um jogo de bingosimulador de um jogo de bingo

Page 87: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Estudo de Caso I : Linguini

Ambiente Ambiente computacionalcomputacional;;

Propriedades:Propriedades:

Parcialmente observável;Parcialmente observável;

Episódico;Episódico;

Determinístico;Determinístico;

Contínuo;Contínuo;

Estático (na maioria do tempo);Estático (na maioria do tempo);

Os dados são providos por meio da WEB;Os dados são providos por meio da WEB;

ProblemaProblema: monitorar o cardápio do RU da : monitorar o cardápio do RU da UECE e divulgar em uma rede social; UECE e divulgar em uma rede social;

Page 88: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Arquitetura informal

Page 89: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

AmbientePropriedades Observáveis

Atualizaçõesdo ambiente

Page 90: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

O AgenteCrenças iniciais

Percepção

Objetivo inicial

Planos

Ação interna

Page 91: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Considerações sobre o estudo

Exemplo simples de demonstração de uso Exemplo simples de demonstração de uso do Cartago com Jason;do Cartago com Jason;

Recursos:Recursos:

Comunicação Cartago <=> Web;Comunicação Cartago <=> Web;

Integração agente <=> ambiente;Integração agente <=> ambiente;

Ação interna de um agente (Java);Ação interna de um agente (Java);

Disponível em: Disponível em:

http://www.github.com/necioveras/linguinihttp://www.github.com/necioveras/linguini

Twitter: @linguini_ueceTwitter: @linguini_uece

Page 92: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Estudo de caso II: Bingo

O ambiente representa uma mesa de bingo do O ambiente representa uma mesa de bingo do mundo real;mundo real;

Propriedades:Propriedades:

Parcialmente observável;Parcialmente observável;

Sequencial;Sequencial;

Estocástico;Estocástico;

Contínuo;Contínuo;

Dinâmico;Dinâmico;

Existem dois agentes: Owner e PlayerExistem dois agentes: Owner e Player

Page 93: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Estudo de caso II: Bingo

● Fica “vagando” até encontrar o artefato “bingo”.

● Realiza uma operação de “compra” para participar do sorteio por meio da solicitação de uma cartela ao agente Owner.

● Após isso sua função é monitorar o ambiente esperando por números sorteados (informados por meio de sinais) e pelo final do sorteio.

PlayerOwner

● Cria o artefato e o monitora a fim de perceber se um certo número de cartelas foram vendidas;

● Distribui cartelas;

● Delibera o início do sorteio;

Page 94: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Arquitetura informal

Page 95: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Ambiente

Page 96: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Owner

Percepção

Troca de mensagens

Crenças

Page 97: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Player (planos)

Atualização de Crença

Envio de mensagem

Page 98: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Player (percepções)

Page 99: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Considerações sobre o estudo

Exemplo mais apurado de demonstração de Exemplo mais apurado de demonstração de uso do Cartago com Jason;uso do Cartago com Jason;

Recursos:Recursos:

Definição explícita de crenças iniciais;Definição explícita de crenças iniciais;

Multi-agentes;Multi-agentes;

Integração agentes <=> ambiente;Integração agentes <=> ambiente;

Comunicação entre agentes;Comunicação entre agentes;

Ação interna de um agente (Java);Ação interna de um agente (Java);

Disponível em: Disponível em:

http://www.github.com/necioveras/Bingo_MAS_JaCahttp://www.github.com/necioveras/Bingo_MAS_JaCa

Page 100: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Introdução aos Sistemas Multi-Agentes

Sociedades e OrganizaçõesSociedades e Organizações

Sistemas Multi-Agentes Sistemas Multi-Agentes NormativosNormativos

Modelo Organizacional Modelo Organizacional MOISE+MOISE+

Page 101: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Sociedades e OrganizaçõesOrganizações são uma poderosa ferramenta para construir sistemas Organizações são uma poderosa ferramenta para construir sistemas complexos onde os agentes computacionais podem, complexos onde os agentes computacionais podem, autonomamente, desenvolver suas atividades autonomamente, desenvolver suas atividades manifestando manifestando atitudes sociaisatitudes sociais;;

A dimensão da organização é concebida em termos de A dimensão da organização é concebida em termos de funcionalidades funcionalidades e explorada pelos agentes;e explorada pelos agentes;

Enquanto isso é mantido o controle das atividades sociais, monitorando e Enquanto isso é mantido o controle das atividades sociais, monitorando e alterando essas funcionalidades em tempo de execução;alterando essas funcionalidades em tempo de execução;

Elas são concebidas em termos de Elas são concebidas em termos de organizações humanas organizações humanas (com (com normas, objetivos globais e papeis); normas, objetivos globais e papeis);

Essa perspectiva assume uma camada organizacional que visa:Essa perspectiva assume uma camada organizacional que visa:

Promover Promover uma uma coordenação coordenação desejada;desejada;

Melhorar o Melhorar o controlecontrole; e; e

Equilibrar as Equilibrar as dinâmicas sociaisdinâmicas sociais..

Page 102: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

É previsto um SMA integrado em termos de É previsto um SMA integrado em termos de sociedade de agentes, entidades ambientais sociedade de agentes, entidades ambientais e organizacionaise organizacionais;;

Em particular pode-se referenciar o Em particular pode-se referenciar o Jason Jason como como framework para desenvolvimento de agentes, framework para desenvolvimento de agentes, Cartago Cartago para ambientes e para ambientes e Moise Moise para para organizações;organizações;

Sociedades e Organizações

Page 103: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

SMA Normativos

As interações sociais são motivos de As interações sociais são motivos de preocupação e por isso há trabalhos que usam preocupação e por isso há trabalhos que usam objetos normativosobjetos normativos como entidades reativas como entidades reativas inspecionável por agentes atuando em “lugares inspecionável por agentes atuando em “lugares normativos”;normativos”;

Eles devem indicar Eles devem indicar obrigaçõesobrigações, , proibições proibições e e direitosdireitos;;

Os SMA Normativos são organizados por meio de Os SMA Normativos são organizados por meio de normasnormas que auxiliam na manutenção da ordem que auxiliam na manutenção da ordem social e no comportamento do agente perante a social e no comportamento do agente perante a sua sociedade;sua sociedade;

Page 104: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

SMA Normativos

Uma norma social trata-se de um Uma norma social trata-se de um guia para guia para conduta ou ação conduta ou ação a ser cumprido pelos a ser cumprido pelos membros de uma sociedade;membros de uma sociedade;

Uma norma possui os seguintes aspectos:Uma norma possui os seguintes aspectos:

Regulação do comportamento;Regulação do comportamento;

Mecanismos de sanção;Mecanismos de sanção;

Mecanismos de divulgação (líderes)Mecanismos de divulgação (líderes)

Problema: devida a autonomia dos agentes é Problema: devida a autonomia dos agentes é possível que eles decidam por não seguir possível que eles decidam por não seguir determinada norma;determinada norma;

Page 105: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Modelo Organizacional MOISE+

MOISE+ é um modelo que estabelece componentes que MOISE+ é um modelo que estabelece componentes que formam uma organização e como eles podem contribuir formam uma organização e como eles podem contribuir para um SMA;para um SMA;

O O MoiseMoise especifica-os em três diferentes aspectos:especifica-os em três diferentes aspectos:

Estrutural Estrutural (provê a estrutura organizacional em termos (provê a estrutura organizacional em termos de grupos de agentes, papeis e relações funcionais entre de grupos de agentes, papeis e relações funcionais entre os papeis);os papeis);

Funcional Funcional (define o escopo comportamental dos agentes (define o escopo comportamental dos agentes atuantes, padronizando comportamentos autônomos);atuantes, padronizando comportamentos autônomos);

Normativa Normativa (refere-se aos papeis para as missões (refere-se aos papeis para as missões especificando um conjunto de normas em termos de especificando um conjunto de normas em termos de permissões ou obrigações para completar uma missão).permissões ou obrigações para completar uma missão).

Page 106: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Aspecto EstruturalOs Os relacionamentosrelacionamentos podem podem ser especificados entre os ser especificados entre os papeis para definir autoridades, papeis para definir autoridades, canais de comunicação e canais de comunicação e ligações conhecidas;ligações conhecidas;

A especificação permite a A especificação permite a taxonomia de taxonomia de grupos e grupos e ligações ligações intra-grupos;intra-grupos;

Grupos consistem em um Grupos consistem em um conjunto de funções e conjunto de funções e propriedades relacionadas;propriedades relacionadas;

As cardinalidades para funções As cardinalidades para funções dentro de um grupo indicam a dentro de um grupo indicam a quantidade máxima de agentes quantidade máxima de agentes que podem desempenhar um que podem desempenhar um papelpapel;;

Page 107: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Aspecto Funcional

Oferece um conjunto de esquemas funcionais que, em Oferece um conjunto de esquemas funcionais que, em conformidade com a SS, espera que vários agentes conformidade com a SS, espera que vários agentes possa atingir os objetivos da organização;possa atingir os objetivos da organização;

É vista como uma É vista como uma árvore de decomposição de árvore de decomposição de objetivosobjetivos, onde:, onde:

A raiz é o objetivo organizacional;A raiz é o objetivo organizacional;

As folhas são os objetivos individuais de cada agente;As folhas são os objetivos individuais de cada agente;

Uma Uma missão missão é o agrupamento de todos os objetivos é o agrupamento de todos os objetivos que um agente se compromete;que um agente se compromete;

O exemplo a seguir mostra um cenário hospitalar;O exemplo a seguir mostra um cenário hospitalar;

Page 108: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Aspecto Funcional

Page 109: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Aspecto Normativo

Refere-se aos papeis (SS) para as missões (FS) Refere-se aos papeis (SS) para as missões (FS) especificando um especificando um conjunto de normasconjunto de normas; ;

Normas em Moise resultam em termos de Normas em Moise resultam em termos de permissões ou permissões ou obrigações obrigações no comprometimento de uma missão;no comprometimento de uma missão;

Isso permite criar Isso permite criar políticas específicas políticas específicas para o para o comprometimento missionário;comprometimento missionário;

A figura a seguir mostra declarações de normas que A figura a seguir mostra declarações de normas que regulam o cenário do hospital;regulam o cenário do hospital;

TTF (time to fulfill) refere-se ao tempo máximo que a TTF (time to fulfill) refere-se ao tempo máximo que a organização irá esperar para que o agente cumpra a norma;organização irá esperar para que o agente cumpra a norma;

Page 110: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Especificação Normativa

Page 111: Minicurso 4 - enucomp.com.br · Orientada a Agentes com JaCaMo ... Exemplo: Agente Aspirador de ... Extensão natural do paradigma de programação lógica (como o Prolog) Noções

Obrigado!Dúvidas, sugestões, comentários?