Upload
samuel-lima
View
213
Download
0
Embed Size (px)
Citation preview
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 1/9
1
Motivação e Cooperação. Aldo Pires – 1402225;
Jorge Costa – 1402247;
Samuel Lima – 1402607.
Trabalho para a unidade curricular Sistemas Multi-Agentes.
Resumo da Parte III do Livro:
Wooldrige, M. - An Introduction to MultiAgents Systems, 2nd Edition, Wiley, 2009
Mestrado em Tecnologias e Sistemas Informáticos Web – Universidade Aberta24/04/2015
Capitulo 6 - Entendendo uns aos outros
A ontologia define um vocabulário para interpretação do conhecimento, para que agentes possam
entender uns aos outros, executando um papel importante na troca de informações oferecendo uma
estrutura semântica às fontes de dados. Uma ontologia tem três componentes básicos: classes - que
representa um conjunto de entidades partilhando determinadas propriedades em comum, geralmente
organizados em uma taxonomia hierárquico “é um”; instancias – são exemplos concretos de classes,
com propriedades intrínsecas e extrínsecas; axiomas – definem restrições de classes, modelando
sentenças com verdades inquestionáveis. O tipo de ontologia é definido pelo nível de formalidade do
seu vocabulário e os tipos de informação que vinculam, sua aplicação e à estrutura.
Existe uma grande variedade de linguagens para construção de ontologias, onde em termos de
popularidade se destacam o XML, o OWL e o KIF. O XML não é uma linguagem de ontologia, mas
pode ser usado para definir ontologias simples de uma maneira informal, como a web semântica, é
uma metalinguagem baseada no SGML que permite a definição de novos marcadores. O OWL é um
conjunto de vários frameworks de ontologias baseados no XML, com três variedades: OWL Lite,
OWL DL e OWL Full, sendo cada uma dessas variedades uma sub-linguagem da sua antecessora,
utiliza representação em XML, com uma sintaxe abstrata para humanos e excuta as seguintes tarefas
de raciocínio: verificação de consistência, satisfação de conceito, classificação de conceitos, calcula
hierarquia de subsunção, subsunção de classes, pelo menos um subsumisor em comum e classificação
de instâncias. O KIF é fortemente baseado na logica de primeira ordem, com uma notação LISP-like,
onde é possível os agentes expressar: propriedades das coisas em um domínio, relação entre coisas
em um domínio e propriedades gerais de um domínio.
RDF não é uma linguagem de ontologia, mas está estreitamente ligada com a ontologia em geral e
com a web semântica, em particular, desenvolvida essencialmente com o objetivo de standarizar a
representação do conhecimento de frameworks web. As expressões são representadas como triplas,
que consiste de um sujeito, predicado e objeto. Para construir uma ontologia segundo Noy e
McGuinness é necessário seguir as seguintes etapa: determinar o domínio e o escopo da ontologia,
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 2/9
2
considerar reutilização, enumerar todos os termos relevantes, definir classes e hierarquia de classes,
definir propriedades, definir propriedades de propriedades, criar instancias.
Capitulo 7 – Atos de Fala
Comunicação um tema de importância central na ciência da computação, foram desenvolvidos
muitos formalismos para representar as propriedades de sistemas comunicação concorrentes [Hoare,
1978; Milner, 1989]. O sincronismo de múltiplos processos e o maior problema em sistemas
concorrentes [Ben-Ari, 1990]. Num cenário orientado a agentes, os agentes tem controle tanto sobre
seu estado quanto sobre seu comportamento.
(Speech Acts: coisas que o ato de dizê-las representam uma ação e podem mudar o estado do mundo
‘ Estamos em guerra’. Começa com John Austin 1962. A teoria de speech act trata comunicação
como ação. John Searle em 1969, identificou propriedades que a manter para que uma performativa
entre ouvinte e um locutor tenha sucesso: Condições de I/O normais, Condições preparatórias,
Condições de sinceridade também classificou em 5 tipos os speech acts: Representativas - (Caso
de paradigma: informação); Diretivas - (Caso de paradigma: requisição); Comissionado - (Caso de
paradigma: promising); Expressiva - (Caso de paradigma: agradecimento) e Declarações - (Caso de
paradigma: declaração de guerra).No inicio dos anos 70 Cohen e Perrault (1979) deram conta da
semântica dos speech acts usando técnicas desenvolvidas em pesquisas de planeamento de IA onde
o objetivo foi desenvolver a teoria dos speech acts modelando elas em um sistema de planeamento
como operadores definidos...em termos das crenças e objetivos dos locutores e ouvintes.
Posteriormente os speech acts foram modeladas como ações realizadas por agentes racionais no apoio
de suas intenções por Cohen e Levesque - Speech acts as rational action.
Surge algumas linguagens de comunicação de agentes como a Knowledge Query and Manipul ation
Language (KQML) , linguagem “externa” para comunicação entre agentes. Define um formato de
“envelope” para mensagens, no qual uma gente pode explicitamente tratar a ilocucionária força
desejada para a mensagem. KQML se preocupou com a parte de conteúdo das mensagens. Temos o
Knowledge In terchange Format (KI F ) uma linguagem explicitamente com o objetivo de permitir
representações do conhecimento sobre algum domínio particular. Ela foi planejada para formar as
partes de conteúdo de mensagens KQML. Em 1995 a Foundation for Intelligente Physical Agentes,
FIPA, iniciou o desenvolvimento de padrões para sistemas de agentes, definindo a FIPA ACL,
superficialmente similar à KQML, com 20 performativas para definição de interpretação desejada de
mensagens, e não obriga qualquer linguagem específica para o conteúdo das mensagens. Temos a
Linguagens de Coordenação onde um dos mais importantes precursores do desenvolvimento de
sistemas multi-agentes foi o modelo blackboard. Que propõe que a resolução de problemas em grupo
progride por um grupo de 'origens de conhecimento' (agentes) observando uma estrutura de dados
compartilhada como um quadro negro: resolução de problemas progride como estas origens deconhecimento contribuem com soluções parciais para o problema.
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 3/9
3
Capitulo 8 - Trabalhando Juntos
Os sistemas distribuídos e concorrentes cooperam uns com os outros a fim de realizarem as tarefas
atribuídas, os sistemas multiagentes a semelhança desses podem ser concebidas de modo a que os
agentes possam trabalhar em conjunto para eficazmente atingirem um determinado objetivo estes são
designados de agentes benevolentes, estes trabalham juntos a fim de resolverem problemas que
ultrapassam a capacidade individual dai o processo “Cooperative Distributed Problem Solving” (
CDPS), mas porem estes podem não compartilhar objetivos comuns, agindo de forma estratégicas
para alcançarem um determinado objetivo, também estes distinguem dos sistemas distribuídos em
ralação a autonomia, enquanto o agente toma decisões em tempo de execução, capazes de coordenar
as suas ações dinamicamente e cooperarem com os outros, os sistemas distribuídos normalmente tem
um comportamento pré definido.
Para que um grupo de agentes resolver um determinado problema é sugerido pelo processo CDPS, a
divisão em três fazes de atividade, a decomposição do problema, solução de sub-problema e síntese
de resposta, na decomposição de problemas, os problemas a serem resolvidas são decompostas em
sub-problemas estes são decompostas e sub-problemas menores, assim por diante até serem
adequados a ser resolvido por um agente individual, a etapa de solução de sub-problema concretiza
a resolução individual dos sub-problemas identificadas durante a etapa anterior, nesta etapa
normalmente os agentes colaboram passando informações que são uteis para outros agentes, na faze
de síntese de resposta as soluções dos sub-problemas individuais são integradas numa solução global,
para este modelo existe duas atividades que são suscetíveis de estar presente, a partilha de tarefas e
a partilha de resultados, o primeiro é feito pelos agentes faz a decomposição, no segundo os
resultados parciais são distribuídos. Para conseguir uma partilha eficaz das tarefas em rede utiliza-se
o protocolo de redes contratos “contract- Net” (CNET),
A coordenação da cooperatividade dos agentes trabalhando juntos é um dos problemas que se
enfrentam nos sistemas multiagentes, a interdependência entre as atividades devem ser geridas para
que a realização de uma atividade que depende do outro não seja executada simultaneamente por
dois agentes, mas sim que seja executada primeiramente a que não é dependente, para resolver esse
problema é preciso o planeamento e sincronização das atividades num sistema multiagente, podendo
ter três tipos: planeamento centralizado para os planos distribuídos nesse caso o processo de
planeamento faz a divisão e a ordenação de tarefas que são distribuídas a um grupo de agentes pelo
agente mestre, planeamento distribuído ou planeamento distribuído para os planos distribuídos.
Capitulo 9 – Metodologias
Com a adoção de sistemas multiagentes pela comunidade da ciência de computação, é expectável o
crescimento de metodologias de apoio a desenvolvimento de sistemas multiagentes.
Antes de optar pela abordagem baseada em agentes tem que analisar e verificar a existência das
seguintes condições: Ambiente aberto, ou pelo menos tem algum grau de dinâmica, incerto ou
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 4/9
4
complexo. Quando os agentes são a metáfora apropriada. Dados, controlo ou especialidade estão
distribuídos. Sistemas legados.
ANÁLISE E DESENHO DE SISTEMAS ORIENTADOS A AGENTES
Metodologias de análise e desenho de sistemas levam a especificar e descrever as necessidades e
especificações do sistema de uma visão abstrata até concreta. Essas metodologias podem ser
divididas em dois grupos: Extensões ou adaptações das metodologias orientados a objetos;
Adaptações da engenharia do conhecimento ou outras técnicas.
Metodologia AAII - O Australian AI Institute (AAII), desenvolveu essa metodologia fruto da
experiencia adquirida no desenvolvimento das suas aplicações, inspirando em metodologias OO e
aprimoradas com conceitos baseados em agentes. Metodologia essa, que elaborando um determinado
número de modelos (internos e externos), obteria como resultados as especificações do sistema. Os
modelos externos mostram uma visão geral do sistema, com o foco nos agentes e como se relacionam
entre si, é decomposto em modelos de agentes que modelam as classes e instâncias dos agentes e
modelos de interação. Os modelos internos, com desenhos da parte interna dos agentes apresentando
as suas crenças, desejos e intenções.
Com um processo de análise iterativa como a maioria de análises tradicionais, a metodologia AAII
é composto das seguintes etapas:
1. Identificar as principais funções no domínio apresentando uma hierarquia de classe de
agentes.
2. Identificar as responsabilidades de cada função, os serviços fornecidos e requeridos por este
e definir os objetivos associado a cada serviço.
3. Definir planos de ações para cada objetivo, e contexto apropriado para aplicação de cada
plano.
4. Determinar a estrutura de crenças do sistema - informações necessárias para cada plano e
objetivo.
Gaia - A metodologia GAIA baseia nas terminologias e anotações de análise orientadas a objetos,
mas oferecendo um conjunto de conceitos de agentes para o desenvolvimento de um sistema
complexo. Incentiva a para a construção de desenho de sistemas baseado em agentes semelhante à
de o desenho de uma organização.
Os principais conceitos de GAIA podem ser divididos em duas categorias: abstratas (papeis,
permissões, responsabilidades, protocolos, atividades, propriedades de ação, propriedades de
segurança) e concretos (tipos de agentes, serviços, conhecimentos).
A fase de análise tem como objetivo desenvolver o entendimento do sistema e sua organização e
estrutura, sem quaisquer detalhes de implementação, entendimento esse que deve ser capturado da
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 5/9
5
organização do sistema, decompondo-o em sociedade organizada de agentes que podem utilizar um
ou mais papéis.
Um papel é definido por quatro atributos: Responsabilidade que é o atributo chave ou a regra que
descrever as funcionalidades do papel. Permissões definem os meios disponíveis que um papel
consegue utilizar ou gerir. Atividades definem uma computação que o papel pode realizar sem
interagir com outros agentes. Protocolos descrevem as capacidades e regras de como comunicar com
os outros papéis.
Tropos – A metodologia de tropos tem uma visão orientada a agentes ao longo do ciclo de
desenvolvimento de software baseando nos seguintes conceitos: Ator é uma entidade que tem
objetivos e estratégias que representa um agente, um papel ou uma posição. Objetivo representa a
condição que o ator quer obter. Plano é o percurso para alcançar o objetivo. Recurso é entidade
física ou de informação. Dependência é o que um ator precisa do outro para executar um plano ou
partilhar um recurso. Capacidade é a habilidade do ator tomar decisões. Crença conhecimento sobre
o ambiente.
Na primeira fase são definidos os stakeholders do sistema, modelando-os como atores sociais, com
dependências baseadas em objetivos, planos e troca de recursos.
Prometheus - Consiste em três fases: Especificação do sistema – definição dos objetivos,
funcionalidades básicas e sua relação com o ambiente. Desenho da arquitetura – identificação dos
tipos de agentes, a estrutura do sistema e como interagem. Desenho detalhado – detalhamento das
capacidades dos agentes. Possui vários modelos e orientações para cada fase. Também tem
ferramenta de suporte.
Agentes UML – Sendo UML um padrão para modelação de sistemas orientados a objetos, muitos
pesquisadores iniciaram os seus estudos a partir deste. Onde foram apresentadas as seguintes
modificações: Suporte para threads concorrentes de interações e extensão da noção de papéis.
Suporte da FIPA e OMG para criar notações sustentadas em UML para modelar agentes.
Agentes em Z – Definida por uma hierarquia de níveis de entidades: Entidades como objetos
inanimados, depois objetos como objetos com capacidades, em seguida agentes como objetos ativos
e com objetivos e por último agentes autónomos como agentes com motivações.
Segundo Wooldridge, as extensões e adaptações das metodologias OO para sistemas baseados em
agente, trazem algum inconveniente em relação as outras, por haver diferenças entre agentes e
objetos.
Problemas de Desenvolvimento Orientado a Agentes
Não entender onde os agentes podem ser aplicados - os desenvolvedores subestimam o potencial
do agente e esquecem que e, apenas software, com limitações fundamentais que os tradicionais
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 6/9
6
soluções de software .Parcialidade na escolha dos agentes os agentes têm sido utilizados em uma
vasta gama de aplicações, mas não como solução universal. Para muitas aplicações, software convencional
(por ex., OO) são as mais adequadas. Não saber porque você quer agentes - Muitos gerentes adquirem sem
ter nenhum modelo de negócio para os agentes como também não sabem como os agentes podem ser
utilizados para aprimorar seus produtos existentes. Querer construir soluções genéricas para
problemas específicos - Normalmente, ela se manifesta na elaboração de uma arquitetura que
supostamente permite que seja construído toda uma gama de possíveis tipos de sistema, onde o que
e necessário é projeto de design para resolver um único problema, uma solução personalizada será
mais fácil desenvolver para satisfazer os requisitos da aplicação. Acredita que o agente serve para
tudo - é apenas uma questão de tempo para alguém reivindicar os agentes como o santo graal da
engenharia de software, o que seria perigosamente ingénuo, pelo motivo que os argumentos
apresentados ainda não foram testados na prática. Esquecer que e o desenvolvimento de um
Software -.No momento da escrita de um sistema de agentes é essencialmente um processo de
experimentação. Não existe uma metodologia confiável disponível. Infelizmente, porque o processo
é experimental: o projeto fica confuso, não por causa problemas específicos do agente, mas porque
foi ignorado as boas práticas da engenharia de software. Esquecer que e o desenvolvimento de um
software multithreads- Na construção de um sistema multi-agente, é essencial não ignorar as lições
aprendidas a partir dos Sistemas concorrente (multithread) e sistemas distribuídos - os problemas
inerentes a sistemas multithread não desaparecem, só porque foi adotado uma abordagem baseada
em agentes. O seu projeto não explora concorrências Uma das características mais evidentes de
um pobre design multiagente é que a quantidade de solução de problemas concorrente écomparativamente pequeno ou mesmo em casos extremos inexistente. Se houver apenas uma
necessidade para um único segmento de controlo no sistema, o uso de agente deve ser questionado.
Decidir a sua própria arquitetura para agentes – , é grande a tentação de imaginar que existe
nenhuma arquitetura para seu problema, é necessário criar um a partir de primeiros princípios deve-
se procurar e estudar se existe um que ajusto ao pretendido. Seus agentes usam demasiadamente a
IA.- Quando se constrói um aplicativo do agente, há uma tentação de se concentrar exclusivamente
no agente específico de 'inteligência' os aspectos das aplicações. O resultado muitas vezes é um
agente que está muito sobrecarregado.
Agente Moveis tem despertado muito interesse, em especial na programação de linguagem e objeto-
orientado. Com o objetivo de substituir a chamada remota de procedimentos, Eles são capazes de
transmitir o código o estado e atributo através de uma rede de computadores, e serem execução em
um local remoto. O uso de Agentes Moveis ficou conhecido , principalmente através do trabalho
pioneiro da General Magic, Inc., Telescript na sua linguagem de programação. Na escolha de
Agente Moveis temos que considerar alguns problemas técnicos como: A serialização do agente (ou
seja codificado em um formato adequado para ser enviado através da rede), e, em especial, quais os
aspetos do agente são serializados - o programa, os dados, ou o programa e seus dados? Para resolver
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 7/9
7
esse ponto tanto o agente e o seu estado são transmitidos, e o estado inclui contador do programa, ou
seja, o agente "se lembra", onde estava antes ela ser transmitida através da rede, e quando regressa
do seu destino, ele recomeça a execução da instrução seguinte ao programa que o levou a ser
transmitido. Outra solução é O agente a ser transmitida é basicamente um script, sem qualquer estado
associado. Hospedagem e execução remota quando o agente chega ao seu destino, como é
executado, se o hospedeiro original do agente emprega um sistema operacional ou processador
diferente do host de destino? Segurança quando há um potencial grande de o agente causar estragos
no host onde ele vai ser executado. Ele pode obter informações sensíveis através da leitura do disco
ou diretamente da RAM. Ele pode negar serviço a outros processos ocupando a maior percentagem
de memória ou do Processador ou causando mau funcionamento da máquina (por exemplo,
escrevendo na memória RAM). Linguagens como o Java abordam essas questões. Por exemplo, ao
contrário das linguagens C ou C++, a linguagem Java não possui ponteiros, assim, é difícil (embora
não impossível) para um processo Java aceder a memória da máquina em que está a trabalhar.
Máquinas virtuais Java também têm um builtin SecurityManager, que define a medida em que os
processos em execução na máquina virtual podem acessar diversos recursos.
Os agentes Moveis podem ser devidos em três tipos: Autonomous, on-demand, active mail – type.
Debruçando sobre o tipo Autonomous temos a Telescript desenvolvida pelo General Magic, Inc
início da década de 1990, onde existe dois conceitos chave nessa tecnologia: lugares e
agentes . Lugares são locais virtuais que são ocupados pelos agentes - um lugar pode corresponder a
uma única máquina, ou um grupo de máquinas. Os agentes são os provedores e consumidores de bens no mercado de aplicações eletrónico que Telescript foi desenvolvido para suportar. Os agentes
de programas Telescript são interpretados semelhante à forma como o Java bytecodes pela máquina
virtual Java. Telescript os agentes são capazes de se mover de um lugar para outro. Um agente usa
um bilhete , que especifica os parâmetros da sua viagem. Mais tarde a tecnologia Telescript foi
ultrapassada pela Java que na década de 1990 já tinha grande número de telemoveis a funcionarem
com sua tecnologia. Outra Linguagem que aparece é a Tcl - Tool Control Language em conjunto
com Tk (framework ) Tcl fornece os meios para implementar facilmente a sua própria linguagem de
comando. Tk é um X-Window-baseada em ferramentas widget. Ele oferece comodidades para fazer
funcionalidades GUI tais como botões, janelas gráficas etc ... Tk também fornece grande facilidade
para a comunicação entre processos, por meio do intercâmbio de scripts em Tcl. Tcl/Tk combinadas
tornam atraente e simples de usar as ferramentas de desenvolvimento GUI; no entanto, possuem
características que os tornam muito mais interessante: Tcl é uma linguagem interpretada, Tcl é
extensível ele fornece um conjunto básico de primitivos, implementado em C/C++ e permite que o
usuário construa sobre as mesmas se houver necessidade, Tcl programas são chamados scripts. Esses
scripts, muitas das propriedades que scripts shell Unix: A ideia de agente vem em formato móvel
porque é fácil de criar aplicativos onde scripts em Tcl são trocados através de uma rede, e executado
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 8/9
8
em máquinas remotas. A linguagem TCL SEGURA contem mecanismo para limitar o acesso a um
script.
Em resumo, Tcl e Tk proporcionam um ambiente rico para a construção de aplicações baseadas na
linguagem, especialmente baseado em interface gráfica. Mas eles não estão/não foram destinados
como ambiente programação de agente. - o código-fonte é livre, estável, bem concebido, e facilmentemodificados. [Gray, 1996; Kotz pode et al., 1997].
Capitulo 10 - Aplicações
Os sistemas baseados em agentes estão sendo aplicadas em diversas áreas, estes são indicados para
os domínios em que é necessária ação autônoma, que se divide em dois grupos: sistemas distribuídos
em que os agentes se funcionam com nos de processamento e assistente de software pessoal em que
os agentes têm de ser proactivos no auxílio dos utilizadores a trabalhar com um software, os agentes
tem sido utilizados na gestão de empresas auxiliando no processo de gestão de negócio, no controlo
de tráfego aéreo, na gestão de sistemas de energia, na detestação no trafego em sistemas distribuídos,
no controlo de processos de fabrico, nos leitores de noticias, nos leitores de correio eletrónico, nos
navegadores web e varias outras tipo de aplicações.
Um exemplo atual de sistema baseado em agentes de gestão de processos de negócios segundo
[Jennings et al., 1996b apud. Wooldridge 2009] é o sistema ADEPT, que transformou o processo de
fornecimento de um orçamento para a instalação de uma rede para fornecer um determinado tipo de
serviço de telecomunicações ao cliente num sistema multiagente, esta atividade envolveu os vários
departamentos da empresa British Telecom e as várias empresas que oferecem o serviço terceirizado
aos clientes transformando cada departamento e cada indivíduo dentro de um departamento em um
agente, para atingir os seus objetivos individuais, estes agentes cooperam uns com os outros,
transformando todas as interações em forma de negociação sobre quais serviços um agente fornece
para o outro e em que termos e condições. Na intenção de utilização de sistemas multiagentes para
gerenciar redes de sensores distribuídos espacialmente utiliza-se os agentes de sensoriamento
distribuído, um exemplo de ilustra este tipo de sistema multiagente é o “distributed vehicle
monitoring testbed”, DVMT [Lesser and Erman, 1980, apud. Wooldridge 2009]. Hoje em dia existe
uma quantidade enorme de informação na web e ainda muito para ser recuperado, que precisa ser
bem gerida e de fácil acesso, os agentes têm sido proposto como uma solução para estes problemas,
tem-se desenvolvido um esforço no desenvolvimento de Agentes de Recuperação e gestão de
Informação, tem sido utilizado sistemas multiagentes distribuídos para recuperação de informação
semiestruturada através da indexação, mas também na gestão da informação para que facilite o
utilizador a chegar na informação pretendida disponibilizando sugestões de pesquisas, típico dos
motores de busca. A compra e vendas de produtos na web ganhou uma grande dimensão, hoje em
dia existe Agentes de Comércio Eletrônico que nos auxilia tanto no processo de compra como devenda na web, o tipo mais básico é Agentes de comparação de compras, este auxilia na compra de
um determinado produto por exemplo comparando os atributos de um produtos para diferentes lojas.
7/23/2019 Grupo 2 - Parte III
http://slidepdf.com/reader/full/grupo-2-parte-iii 9/9
9
Alem dos tipos identificados acima também existe Agentes de Interfaces Homem-Computador típico
dos assistentes de software referido acima , Agentes para Ambientes Virtuais estes tem grandes
potenciais para utilização em cinema, jogos de computador e realidade virtuais, são normalmente
agentes emocionais, Agentes de simulação social e agentes para X.