Agentes Inteligentes e
Sistemas Multi-agente
Introdução às
a
AgentesMetodologias
e Engenharia para
de Software
Construção de Agentes
IST- 2003/2004
Ana Paiva
1
Criação de Software baseado em
Agentes


Objectivo de desenhar e construir sistemas de
elevada qualidade
Desafio da complexidade de requisitos, desenho,
programação, verificação
Continua-se à procura de técnicas e métodos que
resolvam os problemas da construção de Software...
A. Paiva
Aproximação por Agentes?



Experiência não existem análises quantificadas da
eficácia
Argumentos baseados em 10 anos de utilização de
agentes para construção de aplicações no mundo real
Potencialidades das características dos agentes
A. Paiva
Porquê Agentes?
Sistemas reais complexos, com as seguintes
características:
• hierárquicos compostos por subsistemas
interrelacionados
• componentes primitivas dependem do objectivo
do observador
• interacções dentro do subsistema são mais
frequentes do que entre 2 subsistemas distintos
A. Paiva
Visão Canónica dos Sistemas
Para lidar com esta
complexidade são
usadas :
•
•
•
A. Paiva
decomposição
abstracção
organização
Resolução com Agentes


Particionar o problema
decompondo-o por agentes
Abstracção dos agentes é um
meio natural de
•
•
•
A. Paiva
modelar sistemas complexos
identificar e gerir relações
organizacionais
lidar com as dependências e
interacções que existem num
sistema complexo
Metodologias de Agentes


Métodos formais para AOSE
Análise e Desenho Orientada a Agentes
A. Paiva
Metodologias Formais
Como orientar o desenvolvimento de software a agentes?
•
Especificação formal
• Implementação computacional concreta
• Verificação
A. Paiva
Metodologias Formais:
especificação
Especificar formalmente agentes capazes de representar os seguintes aspectos:
•
Crenças que os agentes têm sobre a
informação do seu ambiente, podem estar
incorrectas ou incompletas
• Acções que os agentes realizam e os efeitos
destas acções
• Objectivos que os agentes persegue
• Interacção que os agentes tem e como os
agentes interagem entre si e o seu ambiente
ao longo do tempo
A. Paiva
Metodologias Formais: Implementação
Consiste em implementar a especificação numa forma
computacional concreta, tem 2 aproximações:
•
•
Execução: executar ou animar a especificação abstracta
Tradução ou Compilação: traduzir ou compilar a especificação
usando uma técnica de tradução automática
A. Paiva
Implementação: Execução Directa
TEORIA



tratar a especificação como
executável e interpretá-la
directamente de modo a gerar
o comportamento do agente
Interpretação: pode ser vista
como uma prova de satisfação,
onde se demonstra que a
especificação é satisfatória
para construir um modelo para
ela
A construção do modelo pode
ser vista como a execução da
especificação
A. Paiva
PRATICA
 Exemplo: Linguagem Current
MetateM - os agentes são
programados dando uma
especificação em lógica
temporal do comportamento
que devem exibir
 Os modelos para a lógica
temporal em que os agentes
são especificados na
linguagem MetateM são
sequências lineares de
estados e a execução da
especificação do agente
consiste na construção da
sequência dos estados.
Implementação: Compilação
A especificação abstracta é transformada num modelo
computacional concreto através de um processo de síntese
automático.
A. Paiva
Implementação: Compilação (2)
Vantagens
 maior velocidade na
execução em tempo
real
A. Paiva
Desvantagens
 mesmo a computação feita offline (na compilação) torna-se
custosa.
 Os sistemas gerados desta
forma podem não dispor de
capacidade de aprendizagem
(não adaptam o seu programa
em runtime)
 Tal como com a execução
directa, os frameworks de
especificação de agentes tendem
a não ter uma interpretação
computacional concreta,
tornando a síntese impossível
Análise e Desenho Orientado a
Agentes
As metodologias podem ser divididas em 2 grupos
•
Inspirados no ambiente de desenvolvimento orientado a
objectos, estendendo as metodologias ou adaptando-as para
propósitos AOSE (AAII, Gaia, AUML)
•
Adaptados da Engenharia do Conhecimento ou outras
técnicas (DESIRE, Cassiopeia, Agentes em Z)
A. Paiva
Metodologia AAII
Kinny et al


“Object-Oriented” extendida com noções de agentes
Oferece modelos internos e externos
•
Modelo Externo: ao nível do sistema, os componentes principais são
os agentes e as suas relações. Contém:
- Modelo de agentes
- Modelo de interacção
•
Modelo Interno: descreve os agentes, as crenças, desejos e
intenções - semelhante a implementar um agente PRS
A. Paiva
Metodologia AAII

Modelo Externo
•
•

Modelo do agente (classes e instâncias)
Modelo da interacção
(estes 2 modelos definem agentes e
as classes de agentes e relacionam
as classes via herança, agregação
e instanciação)
Modelo Interno
•
•
•
Modelo de crenças
Modelo com objectivos
Modelo de planos
A. Paiva
Metodologia AAII
Metodologia
•
•
•
•

Identificar roles no domínio da aplicação e desenvolver uma
hierarquia de classes de agentes com base nestes
Identificar responsabilidades associadas a cada role, serviços
prestados e requeridos pelo role e determinar os objectivos
associados a cada serviço
Para cada objectivo, determinar planos condições de contexto por
plano para o atingir
Determinar a estrutura de crenças do sistema e os requisitos de
informação para cada plano e objectivo
Resultado: modelo com correspondência na arquitectura
PRS
A. Paiva
AAII – Modelo dos Agentes




Baseado no
diagrama de
classes de UML
Tipos e instâncias
Conjuntos de
crenças conjunto de
objectivos
Conjunto inicial de
crenças e conjunto
inicial de objectivos
A. Paiva
AAII – Modelo de crenças
A. Paiva
AAII – Modelo de objectivos



Expressos com predicados em Lógica de 1ª
ordem com operadores modais (achieve(X),
test(X), verify(X))
Directamente ligados às crenças
3 tipos:
• Achievement goals
• Test goals
• Verify goals
A. Paiva
AAII – Modelo de Planos

Plano = nós + transições
 3 tipos de nós
• Nós de inicio
• Nós internos
• Nós finais (success, fail)
 As transições são originadas por um evento, se
uma dada condição for satisfeita.
A. Paiva
AAII



Muito baseada na construção de agentes
deliberativos
Centrada na arquitectura PRS
Distinção entre modelo externo e interno
(interessante)
A. Paiva
Metodologia Gaia
Wooldridge et al
Metodologia
•
•
•
Obtém-se o desenho do sistema a partir de uma série de requisitos
escritos
Baseados em terminologia e notações orientadas a objectos, mas
oferece um suporte um conjunto de conceitos de agentes para o
desenvolvimento de um sistema complexo
A aproximação para a construção de desenho deve ser semelhante
à de o desenho de uma organização
A. Paiva
Metodologia Gaia
Wooldridge et al
Os conceitos principais enquadram-se em duas categorias:
•
Abstractas usadas na análise para fazer a concepção do sistema, mas
não tem uma concretização directa no sistema. Conceitos: roles,
permissões, responsabilidades, protocolos, actividades, propriedades
de acção, propriedades de segurança
•
Concretas usadas no processo de desenho e tipicamente tem
correspondência num sistema real. Conceitos: Tipos de agentes,
serviços, conhecimentos entre agentes
A. Paiva
Metodologia Gaia
Wooldridge et al
Exemplo:
•
•
•
•
•
•
capturar a organização Federação Portuguesa de Futebol
tem uma colecção de roles como seleccionador nacional, jogador
estes roles são instanciados a indivíduos, por exemplo, António
Oliveira assume o role de seleccionador nacional, Luis Figo assume o
role de jogador
No entanto~: A instanciação não é estática! Por exemplo: Scolari
assume o role de seleccionador nacional
Vários indivíduos podem assumir o mesmo role, por exemplo, Luis
Figo e Rui Costa assumem o role jogador
Um indivíduo pode assumir vários roles, por exemplo,Madaíl assume
o role de presidente e o role de vítima de conspiração
A. Paiva
Metodologia Gaia
Wooldridge et al
Exemplo:
•
Responsabilidades do role seleccionador nacional - ex: guiar
equipa no campeonato
- propriedades liveness: asseguram que algo positivo acontece - a
selecção vai à frente no campeonato
- propriedades safety: asseguram que nada de negativo acontece garantir que a equipa se mantém no campeonato
•
Para cumprir as responsabilidades o role seleccionador nacional
tem
- conjunto de permissões: por exemplo, ter acesso a informação sobre
a condição física dos jogadores
- actividades privadas: são actividades sem a interacção dos outros
roles, por exemplo, definir uma estratégia de jogo
- protocolos: formas de interagir com os outros roles, por exemplo, dar
ordens, conselhos aos jogadores
A. Paiva
Linguagem Agente UML (AUML)
Odell et al
Estender a linguagem para representar os agentes,
incluindo
•
•
•
•
Baseia-se numa ferramenta conhecida dos Software Engineers UML
Suporte para expressar as threads concorrentes de interacção
permitindo ao UML modelar os protocolos de agentes do tipo
Contract Net
Uma noção de role que extende a existente no UML e, em particular,
permite a modelação de um agente que desempenha vários “roles”
Aguardam-se novos desenvolvimentos pois o Object Management
Group (OMG) e a FIPA estão a suportar do desenvolvimento de
notações UML para modelar sistemas de agentes
A. Paiva
Framework DESIRE
Treur et al
Framework para o desenho e especificação formal de
sistemas compostos.
Tem notação gráfica para a especificação e está associado a
um editor gráfico para suportar o desenvolvimento dos
sistemas
A. Paiva
Metodologia Cassiopeia
Collinot et al
Por oposição ao Gaia e a metodologia AAII, Cassiopeia tem
uma natureza bottom up. Essencialmente, com o método
Cassiopeia, inicia-se nos comportamentos desejados para
realizar uma tarefa.
 Metodologia:
•
•
•

Identificar os comportamentos elementares implicados pela tarefa
do sistema
Identificar as relações entre os comportamentos elementares
Identificar os comportamentos organizacionais do sistema, por
exemplo, a forma como os agentes formam grupos
Foi desenvolvido um exemplo para o RoboCup
A. Paiva
Comparação
Tipo
Metodologia
AAII
Metodologia
GAIA
Cassiopeia Metodologia
AUML Linguagem
DESIRE Framework
Agentes Z Framework
A. Paiva
Top/Bottom
Top Down
Top Down
BottomUp
Base OO
Sim
Sim
Não
Sim
Não
Sim
Entidades Implementação
PRS
Roles
Roles
Comportam. Robocup
Roles
Entidades
Os Prós dos Agentes





Classes de aplicações específicas aproximação por
agentes pode melhorar o processo de desenvolvimento
de Engenharia de Software
Modelos expressam realidade organizacional:
interacções, thread de controlo independente, protocolos
de coordenação
Visão Dinâmica dos sistemas e adaptabilidade dos
agentes a novos papéis
Melhorar as práticas state of the art da Engenharia de
Software
Alargar o número de aplicações cuja complexidade pode
ser ultrapassada
A. Paiva
Os Contras dos Agentes








Confundir Marketing com concretização e aplicabilidade dos
agentes
Silver bullet acreditar que com agentes o alvo nunca é falhado
Incapacidade para avaliar potencialidades dos agentes
Esquecer que se está a desenvolver software e que a experiência
tem de ser adquirida
Esquecer que o sistema é multi-threaded e tem a complexidade
clássica da execução concorrente e distribuída
Natureza do Problema se for de execução única, não devem ser
usados agentes
Desenhar nova arquitectura para o problema deve-se estudar as
arquitecturas já existentes
Demasiada IA sem benefícios para a solução final
A. Paiva
Referências



Agent Oriented Software Engineering: The State of
The Art by Michael Wooldridge, Paolo Ciarcarini
Agent Oriented Software Engineering by Nicholas R.
Jennings and Michael Wooldridge
A Methodology for Agent-Oriented Analysis and
Design by Michael Wooldridge, Nicholas R. Jennings
and David Kinny
A. Paiva
AAII – Exemplo de um modelo de
planos
A. Paiva
Download

Metodologias - Técnico Lisboa