Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos...

28
Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes [email protected]

Transcript of Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos...

Page 1: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos

Rodrigo Paes

[email protected]

Page 2: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Sistemas Abertos

• Incerteza– Agentes podem entrar e sair do sistema a qualquer momento

– Agentes podem fornecer respostas diferentes a uma mesma requisição

– Agentes desenvolvidos por diferentes equipes, diferentes objetivos, provavelmente desconhecidos a priori.

– Comportamento global = emerge da união dos comportamentos dos agentes

• Comportamento emergente & Incerteza → Imprevisibilidade nociva– Imprevisibilidade: tendência de mudanças repentinas sem

nenhuma razão aparente.

– Imprevisibilidade falhas no software• É preciso controlar esta imprevisibilidade

Page 3: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Governança usando Leis

• Objetivos gerais

– Garantir que o comportamento de um SMA aberto exibam as propriedades desejadas

– Aumentar a confiança entre os agentes

• Como isso é alcançado?

– Especificação de leis que ditam o que a sociedade (de agentes) espera de seus membros

Page 4: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Características

• O aspectos internos dos agentes não são acessíveis– Não é possível modificá-los para torna-los compatíveis com as leis do

sistema

• Como projetar mecanismos para que as leis tenham impacto na execução do sistema sem acesso aos agentes?

• Qual o impacto das leis no desenvolvimento dos agentes?

• Os agentes tomam suas decisões baseando-se nas leis que existem?

• Mas afinal, LEIS, Agentes Inteligentes, Sociedade …– Ciências Sociais?– Inteligência Artificial?– Engenharia de Software?

Page 5: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Onde entra a engenharia de software?

Page 6: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

O problema – Engenharia de Software

• Com o avanço adoção das abordagens de governança, surge a necessidade de técnicas e ferramentas que tornem o seu uso mais produtivo e controlado.

Page 7: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Agora o título ficou mais claro

• Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos

Page 8: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

O que tem sido feito no LES?

• XMLaw

• Reputação

• Ontologias

• …

• Grupo: http://wiki.les.inf.puc-rio.br/index.php/E-Governance

• Seminários: http://wiki.les.inf.puc-rio.br/index.php/Sistemas_Multiagentes

Page 9: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

XMLaw

(perdão e paciência aos que já viram essa parte zilhões de vezes)

“Um punhado de paciência vale mais do que um barril de talento” – provérbio holandês

Page 10: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

A Abordagem de Leis

Agente A

Agente B

Pode / Deve

Não Pode

Leis

interação

Organizaçãopossui

Page 11: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Modelo de Interação

• Interceptar as mensagens

• Aplicar as leis que foram especificadas no XMLaw

• Redirecionar

Mecanismo de Leis

Interceptação

Page 12: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Modelo de Interação

• Interceptar as mensagens

• Aplicar as leis que foram especificadas no XMLaw

• Redirecionar

Mecanismo de Leis

Aplicação das Leis

Page 13: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Modelo de Interação

• Interceptar as mensagens

• Aplicar as leis que foram especificadas no XMLaw

• Redirecionar

Mecanismo de Leis

Redirecionar

Page 14: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

O Modelo Conceitual

• Conjunto de conceitos para representar as interações

Page 15: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Exemplo: Protocolo de Interação

• Alternativas de interação que os agentes podem seguir.

• Representando a interação

Quais os serviços que

você oferece?

Compras, horário de cinema e paquera !

Escolho o serviço de compras, quais

as lojas que vendem televisões?

Lojas Americanas e Casa e Vídeo.

requisitarserviços

responderc/ lista

informarseleção e requisitar

lojas

responderc/ lista

Page 16: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Como é especificado?

• Protocolo

• Estado

• Transição

<Protocol> <States> ... </States> <Transitions> ... </Transitions></Protocol>

<State id=“aStateId" type="success" label="A state label"/>

initialsucessfailureexecution

<Transition id="anId" from="anStateId" to="anotherStateId" message-ref="aMessageId"/>

Page 17: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Recapitulando

1. Desenvolver as leis usando o XMLaw

2. Iniciar o mediador

3. Informar ao mediador onde a lei está

4. Iniciar os agentes da aplicação

5. Os agentes vão começar a interagir

6. O mediador vai interceptar as mensagens e verificar se elas estão de acordo com o arquivo XMLaw que ele leu

7. Se estiver tudo ok a mensagem é redirecionada, caso contrário ela pode ser bloqueada

Page 18: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

Discussões

Page 19: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Níveis de abstração

• Frank Dignum propôs a seguinte classificação– Substantive norm

– Check norm

– Reaction norm

• Exemplo:– Substantive norm

• “The National Transplant Organization is not allowed to use racial data for allocating organs to patients”.

– Check norm • “The inspecting authority should perform random checks of the compliance

to the previous norm every two months ...”.

– Reaction norm • “If racial data are used in the allocation process, then the hospital has to be

fined accordingly.”

• Para implementar é preciso chegar ao nível de “reaction norm”

Page 20: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Como fazer a verificação da conformidade?

• É preciso perceber quando houve uma violação

– Verificações aleatórias

– Monitoramento constante

– Indiretamente, permitindo que outros agentes denunciem a ocorrência da violação e então verificando se a denúncia procede

Page 21: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Arquitetura dos mediadores/observadores

• Centralizada X Distribuída

• Centralizada

– É possível monitorar propriedades globais

Servidor 1 Servidor 1 Servidor 1

Replicação

Balanceamento de carga

Page 22: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Descentralizada

Page 23: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Centralizada X Descentralizada

• Centralizada

– Prós• Propriedades globais

– Contras• Ponto único de falha

• Descentralizada

– Prós• Não existe um ponto único de falha

– Contras• Desempenho devido a sincronização de estado dos mediadores (quando se faz uso de

propriedades globais)

• Exemplo: – D ganha permissão XPTO quando a mensagem m2 for enviada.

– Entretanto o mediador de D não sabe que m2 foi enviada, a não ser que haja uma sincronização, ou seja, o mediador de D tem que ser notificado.

A BD

C

m1

m2

Page 24: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

Planos para o semestre

Page 25: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

O estado da arte

• As abordagens atuais lidam com o problema sob os seguintes pontos de vista

– Mapeamento de normas abstratas para normas mais concretas

• Frank Dignum

– Implementação de mecanismos de enforcement

• AMELI, LGI

– Formalização

• Esteva et. al

Page 26: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

O que falta?

• Técnicas de engenharia para

– Reutilização das leis

– Verificação da qualidade

– Método que guie o desenvolvimento através das várias etapas e ferramentas

• Requisitos (law cases - Maíra)

• Projeto

– Frameworks (guga)

• Implementação

• Testes (trabalho do Luis Fernando)

Page 27: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

© LES/PUC-Rio

Plano de trabalho (não apenas para o semestre)

• Formalizar o modelo do XMLAw– Escolher o formalismo

• Quais as opções para especificar tanto a estrutura quanto a dinâmica esperada dos elementos?

• Depois de formalizar, responder formalmente a pergunta:– “Qual a diferença entre o modelo do XMLaw e o modelo do ISLANDER o do LGI?“

• Desenvolver ferramenta de especificação gráfica das leis – trabalho em andamento do Ricardo Gralhoz, mas ajuda é bem vinda

• Integrar a formalização do modelo a ferramenta de especificação gráfica.

• Desenvolver ferramenta de monitoramento das leis (luiz leme).• Voltar a desenvolver o trabalho iniciado em 2006.1 (Qualidade nas

leis)– Aplicar medições no estudo de caso do Banco Central

• Utilizar o trabalho do guga para documentar as técnicas de reúso

Page 28: Engenharia de software para a utilização de leis de interação em sistemas multi-agentes abertos Rodrigo Paes rbp@les.inf.puc-rio.br.

Obrigado!

Rodrigo Paes

[email protected]