criação de software baseado em agentes
Post on 20-Jan-2016
28 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
Agentes InteligentesAgentes Inteligentes e Sistemas Multi-agente e Sistemas Multi-agente
(UD 6) Introdução às Metodologias (UD 6) Introdução às Metodologias para a Construção de Agentespara a Construção de Agentes
Criação de Software baseado em Criação de Software baseado em AgentesAgentes
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...
Quando optar por solução baseada em Quando optar por solução baseada em AgentesAgentes
Ambiente aberto, ou pelo menos dinâmico, incerto or complexo
Quando os agentes são a metáfora apropriada
Dados, controlo ou perícia estão distribuídos
Legacy systems
Aproximação por Agentes?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
Porquê Agentes?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
Visão Canónica dos SistemasVisão Canónica dos Sistemas
Para lidar com esta
complexidade são
usadas :• decomposição• abstracção• organização
Resolução com AgentesResolução com Agentes
Particionar o problema decompondo-o por agentes
Abstracção dos agentes é um meio natural de • modelar sistemas complexos• identificar e gerir relações
organizacionais • lidar com as dependências e
interacções que existem num sistema complexo
Metodologias de AgentesMetodologias de Agentes
Métodos formais para AOSE Análise e Desenho Orientada a Agentes
Metodologias FormaisMetodologias Formais
Como orientar o desenvolvimento de software a agentes?• Especificação formal• Implementação computacional concreta• Verificação
Metodologias Formais: Metodologias Formais: especificaçãoespecificaçã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
Metodologias Formais:Metodologias Formais: Implementação 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
Implementação: Execução DirectaImplementaçã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
PRÁTICA 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çãoImplementação: Compilação
A especificação abstracta é transformada num modelo computacional concreto através de um processo de síntese automático.
ImplementaçãoImplementação: Compilação (2)Compilação (2)
Desvantagens mesmo a computação feita off-line
(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
Vantagens maior velocidade na
execução em tempo real
Análise e Desenho Orientado a AgentesAná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)
MetodologiasMetodologias
• Inspirados no ambiente de desenvolvimento orientado a objectos, estendendo as metodologias ou adaptando-as para propósitos AOSE (AAII, Gaia, AUML)
Metodologia AAIIMetodologia AAIIKinny et alKinny 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 (sistema usado para o exemplo de simulação do aeroporto de sidney)
Metodologia AAIIMetodologia 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
Metodologia AAIIMetodologia 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
Análise iterativa Resultado: modelo com correspondência na arquitectura PRS
AAII – Modelo dos AgentesAAII – 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
AAII – Modelo de objectivosAAII – 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
AAII – Modelo de PlanosAAII – 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.
AAIIAAII
Muito baseada na construção de agentes deliberativos
Centrada na arquitectura PRS Distinção entre modelo externo e interno
(interessante)
Metodologia GaiaMetodologia GaiaWooldridge et alWooldridge 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
Metodologia GaiaMetodologia GaiaWooldridge et alWooldridge 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
Metodologia GaiaMetodologia GaiaWooldridge et alWooldridge 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
Metodologia GaiaMetodologia GaiaWooldridge et alWooldridge 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
Linguagem Linguagem Agente UML (AUML)Agente UML (AUML) Odell et alOdell 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
MetodologiasMetodologias
• Adaptados da Engenharia do Conhecimento ou outras técnicas (DESIRE, Cassiopeia, Agentes em Z)
Framework Framework DESIRE DESIRE Treur et alTreur 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
Metodologia Metodologia CassiopeiaCassiopeiaCollinot et alCollinot et al
Por oposição ao Gaia e a metodologia AAII, Cassiopeia tem uma natureza bottom upbottom 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
Agentes em ZAgentes em ZLuck et d’InvernoLuck et d’Inverno
4 camadas:• Entidades – objectos inanimados• Objectos – Entidades com capacidades (mesa suporta coisas)• Agentes – Objectos com objectivos – são activos• Agentes autónomos – Agentes com motivação
Observaram que há uma relação natural entre a sua framework de especificação hierárquica de agentes e os sistemas OO:
• Herança e Agregação/Inclusão
Ideia fulcral: agentes que actuam para outros, em vez de agentes como sistemas racionais.
ComparaçãoComparação
Tipo Top/Bottom Base OO Entidades ImplementaçãoAAII Metodologia Top Down Sim Roles PRSGAIA Metodologia Top Down Sim RolesCassiopeia Metodologia Bottom Up Não Comportam. RobocupAUML Linguagem Sim RolesDESIRE Framework NãoAgentes Z Framework Sim Entidades
Os Prós dos AgentesOs 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
Os Contras dos AgentesOs 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
ReferênciasReferê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
top related