TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

PROGRAMAÇÃO ORIENTADA A AGENTES

Por:   •  21/11/2017  •  Pesquisas Acadêmicas  •  1.807 Palavras (8 Páginas)  •  249 Visualizações

Página 1 de 8

[pic 1] 

MINISTÉRIO DA EDUCAÇÃO 

UNIVERSIDADE FEDERAL DO PIAUÍ 

CENTRO DE EDUCAÇÃO ABERTA E A DISTÂNCIA 

CURSO DE LICENCIATURAEMCOMPUTAÇÃO 

LINGUAGENS DE PROGRAMAÇÃO

FÁBIO DA NOBREGA SANTANA

PROGRAMAÇÃO ORIENTADA A AGENTES

SÃO JOÃO DO PIAUÍ

2017

  1. INTRODUÇÃO

Este pequeno artigo apresenta uma introdução ao paradigma programação orientada a agentes. Programação essa que teve seu início marcado pelo importante artigo de Yoav Shoham, intitulado “Agente-Oriented Programming”, que foi publicado em 1993. A proposta deste novo paradigma de programação foi inspirada na visão social de computação, discutida em profundidade pela comunidade de inteligência artificial distribuída, e sistemas multiagente. Contém ainda conceitos de agentes e descreve os tipos de agentes e diferenças entre agente e objetos. Fala sobre sistemas multiagentes, arquitetura DBI e linguagem AgentSpeak(L)

  1. O QUE É UM AGENTE

A engenharia de software baseada em agentes é uma área emergente cujo o objetivo é oferecer suporte ao desenvolvimento de sistemas multiagentes. Os agentes interagem através de um ambiente compartilhado por outros agentes de uma sociedade, e atuam sobre esse ambiente, alterando seu estado.

Como cada agente possui um conjunto limitado de capacidade especificas e objetivos próprios em relação aos estados do ambiente que quer atingir, mecanismos para interação e coordenação dessas entidades são necessários, pois, em geral, os agentes não conseguem atingir todos seus objetivos isoladamente. Por exemplo, atingir um acordo, para que dois ou mais agentes cooperem na resolução de um problema comum entre eles, é uma forma de coordenar as atividades para atingir o objetivo comum da forma mais eficaz possível. Dessa forma, é possível para os projetistas de sistemas computacionais a criação de sistemas complexos de forma naturalmente distribuída e bottom-up. Com isso, criar mecanismos genéricos para a coordenação desses agentes para que o sistema como um todo funcione de forma adequada e eficiente é um dos grandes desafios da área.

  1. TIPOS DE AGENTES

Existem diferentes propostas de classificação dos tipos de agentes. Como a classificação proposta por RUSSEL E NORVING (1995), que segundo eles existem quatro tipos diferentes de agentes, possuindo cada um, aspectos diferenciados na busca de solução de problemas, que são eles:

        - Agentes reflexivos

        - Agentes reflexivos que mantem registro do ambiente

        - Agentes baseados em metas

        - E agentes baseados na utilidade

Nos agentes reflexivos, cada percepção dispara alguma ação pré-estabelecida no programa, sendo esta relação uma simples regra do tipo onde a condição é dada pela percepção do agente. Este agente é quem faz a simulação dos reflexos dos humanos. Como mostra a figura abaixo.  

[pic 2]

Figura 1 - a estrutura de uma agente reflexivo simples "Russel e Norving, 1995"

Nos agentes reflexivos que é onde mantem registro do ambiente, o estado interno do agente é utilizado, ou seja, ocorre um registro da sequência percentual e das ações executadas pelo agente.

A estrutura desse tipo de agente mostra como a percepção corrente combinada com o estado interno antigo gera a atualização do estado corrente. Que é a parte mais interessante a função atualizar-estado, sendo ela responsável pela criação de um novo estado interno, como mostra a figura.

[pic 3]

Figura 2 - a estrutura de um agente reflexivo com estado "(Russel e Norving, 1195)"

Agentes baseados em metas, além de manterem um registro do estado do ambiente, possuem uma meta que descreve um estado desejável a ser atingido. Então o agente pode fazer uma combinação do desejável com os resultados de possíveis ações, para tomar decisões na busca da meta.

[pic 4]

Figura 3 - a estrutura de um agente baseado em meta

O último tipo de agente é o baseado na utilidade. Que apesar da importância das metas, elas sozinhas não representam o bastante para se ter um comportamento de qualidade "(RUSSEL E NORVIG, 1995)". No agente baseado em metas só há uma preocupação entre os estados “feliz” e o “infeliz”, enquanto uma medida de utilidade mais geral deve permitir uma comparação entre vários diferentes estados, de acordo com o quão feliz se busca ser.

[pic 5]

Figura 4 - a estrutura de um agente baseado na utilidade

  1. 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.

...

Baixar como (para membros premium)  txt (12.3 Kb)   pdf (277.1 Kb)   docx (108.1 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com