PROGRAMAÇÃO ORIENTADA A AGENTES
Por: eduardamaia17 • 16/12/2018 • 1.760 Palavras (8 Páginas) • 319 Visualizações
...
[pic 5]
Figura 4 - a estrutura de um agente baseado na utilidade
- DIFERENÇA ENTRE AGENTE E OBJETOS
As noções de agente e objetos são frequentemente confundidas, nomeadamente pelos programadores habituados à programação orientada aos objetos. Se bem que existem semelhanças, existem também importantes diferenças que podemos distinguir.
Segundo Wooldridge [Erro! Fonte de referência não encontrada.], programação orientada aos objetos assenta na característica do princípio da encapsulação, na qual se supõem que os objetos têm controlo sobre o seu estado interno. As variáveis instanciadas são declaradas como privadas, ou seja, estas apenas são acessíveis no próprio objeto. Deste ponto de vista, um objeto é autónomo no seu estado e tem o controlo do mesmo. No entanto, este não possui controlo sobre o seu comportamento, isto é, a invocação de métodos públicos necessários para a interação com o objeto permite que qualquer outro objeto invoque um método quando o quiser. Tendo o objeto um método público, implica que este perca o controlo sobre esse método e quando este é executado. Normalmente num sistema onde interagem vários objetos, é assumido que todos tem um objetivo comum e, por isso, partilham recursos e/ou informação para um dado objetivo.
Em muitos sistemas Multi-Agente não podemos assumir que a partilha de recursos e informação se destina a um objetivo comum. Não se pode supor que um dado agente execute uma ação (método do objeto), simplesmente porque outro agente a invocou. Num sistema Multi-Agente um agente solicita a outro agente a execução de uma determinada ação, a qual será executada se e só se este último agente considerar que esta deve ser executada.
Na programação orientada aos objetos a decisão de execução de um método pertence ao objeto que invoca o método. Num sistema Multi-Agente, a decisão de execução da ação pertence ao agente que foi requisitado para a execução da ação.
Outra diferença importante entre objetos e agentes diz respeito à noção de flexibilidade do comportamento autónomo destes últimos. Caracteriza-se flexibilidade do comportamento como o agente que exibe comportamento reativo, proativo e/ou social. Sendo possível integrar estes comportamentos na programação orientada aos objetos, tal facto, em nada tem a haver com o conceito normalizado de programação por objetos.
Uma última diferença entre a programação orientada aos objetos e os agentes inteligentes tem em conta que os agentes possuem o seu próprio processo de controlo, enquanto que num sistema de objetos existe um único processo de controlo para o sistema.
- SISTEMAS MULTIAGENTES
Um Sistema Multi-Agente é um sistema computacional em que dois ou mais agentes interagem ou trabalham em conjunto de forma a desempenhar determinadas tarefas ou satisfazer um conjunto de objetivos. A investigação científica e a implementação prática de Sistemas Multi-Agente está focalizada na construção de standards, princípios e modelos que permitam a criação de pequenas e grandes sociedades de agentes semiautónomos, capazes de interagir convenientemente de forma a atingirem os seus objetivos [Lesser, 1999].
Um dos pontos essenciais para permitir a construção de sociedades de agentes, consistem conseguir gerir as interações e as dependências das atividades dos diferentes agentes no contexto do Sistema Multi-Agente, i.e., coordenar esses agentes. Desta forma, a coordenação desempenha um papel essencial nos SMA porque estes sistemas são inerentemente distribuídos. Aliás, o tema designado genericamente por coordenação constitui um dos maiores domínios científicos da informática e ciências da computação. Trabalhos científicos abrangidos por este domínio frequentemente incluem aspectos conceptuais e metodológicos, mas também implementacionais, de forma a conseguirem expressar e implementar aplicações informáticas distribuídas.
- ARQUITETURA BDI
As arquiteturas BDI (Belief-Desire-Intention) “(RAO E GEORGE, 1995)” baseiam-se na teoria de que os seres humanos são regidos pôr três estados mentais funda mentais: crenças, desejos e intenções. O estado do agente é representado pôr três estruturas: suas crenças (beliefs), seus desejos (desires) e suas intenções (intentions).
As crenças de um agente são o conhecimento que o agente possui sobre o ambiente em que ele se encontra. Os desejos de um agente representam o estado motivacional do sistema. Um estado mental é motivador se é um mecanismo ou representação que tende a produzir, modificar ou selecionar ações à luz das crenças. As intenções de um agente são as ações que têm decidido realizar. Além destes componentes, algumas arquiteturas BDI usam o conceito de planos, que seriam o "passo-a-passo" a ser seguido, quando gerada uma intenção, para a realização de uma ação sobre o ambiente.
- LINGUAGEM AGENTSPEAK(L)
A linguagem AgentSpeak(L) foi projetada para a programação de agentes BDI na forma de sistemas de planejamento reativos (reactive planning systems). Ela foi primeiramente apresentada em (ANAND, 1996) e é uma extensão natural de programação em logica para arquitetura de agentes BDI, que representa um modelo abstrato para a programação de agentes e tem sido a abordagem predominante na implementação de agentes inteligentes (WOOLDRIGDE, 1999). Um agente AgentSpeak(L) corresponde à especificação de um conjunto de crenças que formarão a base de crenças inicial e um conjunto de planos (BORDINI; et al., 2004).
AgenteSpeak(L) distingue dois tipos de objetivos: objetivos de realização (achievement goals) e objetivos de teste (test goals). Objetivos de teste são predicados, tais como crenças e expressam que o agente quer alcançar um estado no ambiente onde o predicado associado ao objetivo é verdadeiro. Um objetivo de teste retorna à unificação do predicado de teste com uma cresça do agente, ou falha caso não seja possível a unificação com nenhuma crença do agente.
- CONCLUSÃO
Com isso conclui que a programação orientada a objetos veio como nova forma de expressar a ideia e abstrair o mundo real e a programação orientada a agentes traz uma nova abordagem para o desenvolvimento de sistemas com características especificas: software autônomo e sistema distribuído, podendo ser pensado como uma evolução da programação orientada a objetos [J. Odell,
...