Capítulo 3
Agentes

3.1 Introdução

No começo computadores tinham oferecido à indivíduos, grupos e instituições um meio para aumentar a produtividade. Entretanto, o melhoramento da produtividade real vem com um preço: uma curva do grau de aprendizagem [O'Connor et al., 1996].

A tecnologia de agentes vem mudar radicalmente o modo como o usuário utiliza seu computador, permitindo que o software seja um assistente ao usuário. Esta tecnologia deverá aproximar ainda mais o usuário ao seu computador pessoal.

Essa tecnologia é, atualmente, uma das áreas de pesquisa que representa um grande interesse em desenvolvimento de novas aplicações. Ela expõe ao usuário facilidades que são baseadas em conceitos da inteligência artificial distribuída.

3.2 Inteligência Artificial Distribuída (IAD)

Nas abordagens Clássicas de Inteligência Artificial (IA), a ênfase da inteligência é baseada em um comportamento humano individual e o foco de atenção volta-se à representação de conhecimento e métodos de inferência. Já a Inteligência Artificial Distribuída (IAD), é baseada em comportamento social e sua ênfase é para cooperações, interações e para o fluxo de conhecimento entre unidades distintas [ Oliveira, F., 1996].

A inteligência artificial distribuída pode ser dividida em duas áreas maiores: Resolução Distribuída de Problemas e Sistemas Multi-agentes.

3.2.1 Resolução Distribuída de Problemas (DPS) e Sistemas Multi-Agentes (MAS)

Na resolução distribuída de problemas, os agentes cooperam uns com os outros, dividindo e compartilhando conhecimento sobre o problema e sobre o processo de obter uma solução. Nesta abordagem, os agentes são projetados especificamente para resolver aquele problema ou classe de problemas. Sob um ponto de vista externo, um sistema DPS é visto como uma unidade. O processo de coordenação das ações dos agentes é definido em tempo do projeto [Oliveira, 1996].

Em Sistemas multi-agentes, o projetista não volta sua atenção para um problema específico, mas para um domínio específico. Nesta abordagem, a idéia consiste em coordenar o comportamento inteligente de um conjunto de agentes autônomos, cuja existência pode ser anterior ao surgimento de um problema em particular. Os agentes devem raciocinar a respeito das ações e sobre o processo de coordenação em si. As suas arquiteturas são mais flexíveis e a organização do sistema está sujeita à mudanças visando adaptar-se às variações no ambiente e/ou no problema a ser resolvido [Oliveira, 1996].

A IAD em suas duas áreas, trabalha com o conceito de agentes. Esses agentes possuem um papel importantíssimo na resolução dos problemas que a IAD apresenta.

3.3 Definição de Agentes

O advento de agente originou muita discussão sobre o que é exatamente um agente, e de como eles diferem de programas em geral. Pesquisadores têm proposto uma variedade de definições, cada qual tentando explicar o seu uso da palavra 'agente'. Essas definições vão de um nível elementar até um nível mais elaborado. Pesquisadores inventaram também novos termos para referenciar seus agentes, tais como: agentes inteligentes, interfaces inteligentes, interfaces adaptativas, knowbots, softbots, userbots, taskbots, personal agentes e network agentes.

Durante o estudo, observou-se que não há uma definição unificada e universal a respeito do termo "agente". Para que se tenha uma noção das definições que cada autor apresenta e sua abrangência no meio acadêmico de IAD, é exposto, a seguir, uma série de definições encontradas na literatura pesquisada.

No dicionário "The Random House", Marvin Minsky define agente como: 1. uma pessoa ou negócio autorizado a agir em nome de outrem. 2. uma pessoa que gerencia ou trabalha em uma agência. 3. um representante de firma, particularmente em se tratando de uma agência de viagens. 4. uma substância que causa reação química - veja reagente. 5. um organismo (ou vetor) que causa moléstia.

Um agente é um programa de computador que funciona em background, e desenvolve tarefas autônomas conforme delegadas pelo usuário [River, 1996].

Agentes são programas que travam diálogos, negociam e coordenam transferência de informações [Michael Coen, 1996].

Os agentes apresentam conceitos de habilidade para execução autônoma e habilidade para executar raciocínio orientado ao domínio [Virdhagriswaran, 1995].

Agente pode ser definido como alguém ou alguma coisa que atua como um representante para outro partido, com o propósito expresso de desempenhar ações que são benéficas para a parte representada. É diferenciado de outras aplicações por suas dimensões e capacidade de interagir independentemente da presença do usuário [Heilmann et al., 1995].

Agente é uma entidade persistente dedicada a um propósito específico. 'Persistente' distingue agente de subrotinas; agentes têm suas próprias idéias sobre como realizar tarefas, suas próprias agendas. 'Propósito específico' distingue-se de toda aplicação multifunção; agentes são tipicamente mais inteligentes [Smith, Cypher e Spohrer, 1994 in Franklin e Graesser, 1996].

A definição mais geral e ampla encontrada na literatura é a de [Ferber in Demazeau et al., 1992], e refere-se a agentes como: uma entidade real ou virtual que emerge num ambiente onde pode tomar algumas ações, que é capaz de perceber e representar parcialmente esse ambiente, que é capaz de comunicar-se com outros agentes e que possui um comportamento autônomo que é uma conseqüência de sua observação, seu conhecimento e suas interações com outros agentes.

As definições apresentadas tentam exprimir o que cada autor entende por agente, baseado nas características que seu agente possui. Pelo fato de cada autor, na maioria das definições encontradas, envolver o problema que o agente busca solucionar, encontram-se as diferentes interpretações do termo.

A definição apresentada por Gajanana Nadoli e John E. Biegel, refere-se à manufatura, em especial. Um agente inteligente é, na sua conceituação, um objeto com bases de conhecimento e informação locais próprias. Uma base de conhecimento do agente na forma de regras representando as heurísticas da correspondência da função decide-age no sistema de manufatura. Uma base de informação do agente (quadro negro) hospeda fatos sobre a parte do sistema para o qual o agente é responsável. Num sistema de manufatura a função decide-age recebe, processa e transmite informação.

As definições deverão sofrer ainda muitas alterações até chegarem a um consenso geral. Nesta pesquisa não se pretende criar uma nova definição de agente. Portanto, será considerada a definição de Gajanana Nadoli e John E. Biegel, por ser esta muito próxima da pesquisa realizada.

Um agente deve apresentar algumas propriedades. Elas definem qual é a classificação do agente, ou seja, um agente inteligente, reativo, capaz de aprender, etc. A seguir serão expostas as propriedades relevantes encontradas no estudo.

3.4 Propriedades de Agentes

Propriedades de agentes são características de um sistema que são resultados diretos da arquitetura do sistema ou são níveis de operação que existem sobre a arquitetura que tem um efeito no comportamento global do sistema. Por arquitetura se entende a porção do sistema que fornece e gerencia os recursos primitivos de um agente [Maes, 1991 in Wooldridge e Jennings, 1995].

Para que o sistema seja considerado agente, ele não necessita apresentar todas as propriedades, conforme visto nas definições de agentes, mas algumas delas são recomendáveis.

3.4.1 Autonomia

Autonomia é a capacidade de perseguir uma agenda independentemente de seu usuário. Isso requer aspectos de ação periódica, execução espontânea e iniciativa, em que o agente precisa ser capaz de tomar ações preemptivas (optativas) e independentes que eventualmente beneficiarão o usuário [Foner, 1995].

Autonomia é a capacidade de tomar ações conduzindo para o término de algumas tarefas ou objetivos, sem a interferência do usuário final. Os agentes tomam o interesse, necessidades, desejos, etc. como entrada e se apropriam delas para realizar as tarefas esperadas [Heilmann, et al., 1995].

Autonomia é a habilidade de exercer controle sobre suas próprias ações [Franklin e Graesser, 1996].

Existe autonomia quando os agentes operam sem a intervenção direta de humanos ou outros, e têm alguma espécie de controle sobre suas ações e seus estados internos [Castelfranchi in Wooldridge e Jennings, 1995].

Agentes exercem controle exclusivo sobre seus estados e comportamentos internos [Belgrave, 1995].

Pode chegar a que o agente defina a sua própria agenda, para o que se requer que o agente possua capacidade de ação periódica, execução espontânea e iniciativa que lhe permitam tomar ações proactivas ou independentes [Ramirez, 1995].

3.4.2 Mobilidade

Mobilidade é a capacidade de transportar-se de uma máquina para outra [Franklin e Graesser, 1996].

Mobilidade é a habilidade para movimentar-se pela rede eletrônica [White in Wooldridge e Jennings, 1994].

Mobilidade é a habilidade para mover-se de uma localização para outra, enquanto preservam seu estado interno[ Belgrave, 1995].

3.4.3 Comunicabilidade

Os agentes, no curso da realização de seus objetivos, devem acessar informações da fonte sobre o estado atual do ambiente externo. Isso requer uma habilidade de comunicar-se com os repositórios dessa informação, que podem ser outros agentes. Essa comunicação pode ser na forma de um pedido/levantamento com um simples e conciso conjunto de respostas possíveis ou ele pode ser uma comunicação complexa com respostas variáveis [Heilmann, et. al., 1995].

Comunicabilidade é a capacidade de trocar informações com outras entidades (agentes, humanos, objetos, seu ambiente) [Belgrave,1995].

Agentes comunicam-se com outros agentes, talvez incluindo pessoas [Franklin e Graesser, 1996].

Nas interfaces entre os agentes, é necessário decidir que tipo de declaração os agentes serão capazes de gerar e compreender. Obviamente, o projeto da interface é cuidadosamente relatado para o projeto da arquitetura de todo o sistema. Há ainda um outro problema na comunicação que a interpretação e significado das declarações do agente. Um termo pode ter diferentes significados para diferentes agentes, o que é chamado de conflito. Diferentes termos podem, entretanto, ter significado similar, o que significa uma correspondência [Brazdil, et al., 1996].

3.4.4 Aprendizagem

Já se propôs que agentes inteligentes precisam ser autônomos e demonstrarem raciocínio. Para manter estas capacidades, o agente precisa ter alguns mecanismos para avaliar o estado atual de seu domínio externo - que se define com a extensão do ambiente da pesquisa do agente - e incorpora isto em suas "decisões" sobre futuras ações. Agentes serão capazes de examinar o ambiente externo (por exemplo, a Web) e o "sucesso" de ações prévias levam condições similares, e adaptam suas ações para melhorar a probabilidade de atingir prosperamente suas metas [Heilmann et al., 1995].

Apresentar aprendizagem é a capacidade de alterar seu comportamento baseado em suas experiências prévias [Franklin e Graesser, 1996].

Um sistema é dito aprendiz se ele é capaz de adquirir novos conhecimentos de seu ambiente [Dictionary of Terminology].

Um agente, o qual é fornecido informações sobre o ambiente, domínio do conhecimento, ou como realizar uma tarefa particular on-line, é dito como capaz de aprender por instrução [Dictionary of Terminology].

Um agente é capaz de aprender quando possui a capacidade de acumular conhecimento baseado em experiência passada, e conseqüentemente modificar seu comportamento em resposta à novas situações [Belgrave, 1995].

3.4.5 Reatividade

Agentes percebem seus ambientes, (que podem ser o mundo físico, um usuário via uma interface gráfica, uma coleção de agentes, a Internet, ou talvez todos esse combinados), e respondem numa maneira oportuna à mudanças que ocorrem nele [Wooldridge e Jennings, 1995].

Os agentes percebem e reagem às mudanças no seu ambiente [Belgrave,1995].

Os agentes respondem de forma oportuna à alterações do ambiente [Franklin e Graesser, 1996].

3.4.6 Pro-atividade, Iniciativa

Possuir iniciativa é a habilidade de exibir comportamento direcionado ao objetivo, oportunístico e que não reage simplesmente ao seu ambiente [Belgrave, 1995].

3.4.7 Sociabilidade

Sociabilidade significa interagir com outros agentes (e possivelmente humanos) através de algum tipo de linguagem para comunicação de agente [Genesereth e Ketchpel in Wooldridge e Jennings, 1994].

3.4.8 Veracidade

Veracidade é a suposição de que um agente não comunicará habilmente informações falsas [Galliers, 1988b in Wooldridge e Jennings, 1995].

O usuário deve ser altamente confidente de que seu agente atuará e relatará verdadeiramente, e atuará para o próprio bem do usuário [Heilmann et al., 1995].

3.4.9 Benevolência

Benevolência é a suposição de que um agente não terá objetivos conflitantes, e que muitos agentes, portanto sempre tentarão fazer o que lhes foi pedido [Roseinchein e Genesereth in Wooldridge e Jennings, 1995].

3.4.10 Racionalidade

Racionalidade é a suposição de que um agente atuará para atingir seus objetivos, e não atuará de modo que impeça que seu objetivo seja alcançado - pelo menos até onde sua opinião permitir [Galliers, 1988b in Wooldridge e Jennings, 1995].

3.4.11 Percepção

Os agentes sentem o mundo e geram conhecimentos acessíveis para processar o que a razão está dizendo para perceber no mundo. Percepção é uma continuidade de conduta que estende da simplicidade de termostato que simplesmente mede a temperatura até a suposição usada por alguns agentes que contêm objetos com todas informações relevantes sobre coisas no mundo inseridas dentro do conhecimento de agentes [Dictionary of Terminology].

3.4.12 Cooperação

Agentes inteligentes precisam ter um "espírito" cooperativo para existir e ter sucesso em "sistemas orientados a agentes". O que se quer é que agentes inteligentes trabalhem juntos para que possam executar tarefas mutuamente benéficas mais complexas [Heilmann et al., 1995].

Um protótipo (CIM-FACE) implementado combina funcionalidades de integração de informação, aspectos de migração e cooperação [Osório et al., 1996].

3.4.13 Antropomorfismo

Antropomorfismo é a capacidade de exibir características humanas [Ramirez,1995].

Há um grande debate sobre antropomorfismo. Uma agência (sociedade de agentes) necessariamente não implica uma necessidade de antropomorfismo. Contrariamente, apenas porque um programa pretende ser antropomorfótico não faz dele um agente: "Eliza", ao emular um comportamento humano, não pode ser chamado de um agente; ela não possui muitas das noções cruciais de propriedades, as quais têm sido úteis para um domínio, sendo personalizável, ou tendo qualquer grau de autonomia [Foner, 1995].

Dentro das propriedades, tem-se observado que os agentes as possuem em níveis. Por exemplo: a autonomia de um agente é demonstrada diferentemente de agente para agente, o que leva a considerar que os agentes apresentam níveis de propriedades. Da mesma forma que as definições de agente ainda não estão estabelecidas pelo meio científico de forma homogênea, as propriedades também apresentam esta característica. As definições das propriedades parecem ser mais convergentes, porém oferecem margem à várias interpretações. Dependendo das característica que um agente apresenta ele pode ser classificado em categorias distintas de agentes. A seguir serão apresentadas algumas classificações das categorias pesquisadas na literatura.

3.5 Classificação de Agentes

Para poder dizer que um agente é desta ou daquela forma, é necessário que o agente atenda algumas características peculiares. Por exemplo, para um agente ser considerado um "agente móvel", ele precisa possuir a propriedade de mobilidade. A classificação apresentada abaixo tenta oferecer uma noção das propriedades básicas que um agente deve ter para ser considerado como tal.

3.5.1 Agentes Inteligentes

No mundo científico, há muita discussão do que representa ser inteligente. Mas, observa-se que considerar um ser humano inteligente implica em classificá-lo em níveis de inteligência. Os agentes também possuem níveis de inteligência, pois quanto mais se aproximam de algumas propriedades apresentadas, maior é a condição de desempenhar suas tarefas e, por isso maior é o seu grau de inteligência.

Para representar estes níveis de inteligências apresentados pelos agentes será utilizado o modelo apresentado por O'Connor, et al. da IBM Corporation.

Agentes inteligentes são entidades que realizam algum conjunto de operações em favor de um usuário ou outro programa com algum grau de independência ou autonomia, e assim, empregam algum conhecimento ou representação dos objetivos ou aspirações do usuário [O'Connor et al., 1996].

Agentes inteligentes podem se descritos em termos de espaço definido por três dimensões de agência, inteligência e mobilidade, conforme apresentado por O'Connor et al. da IBM.

Agência é o grau de autonomia e autoridade colocado no agente, e pode ser medido pelo menos qualitativamente pela natureza da interação entre o agente e outra entidade no sistema. No mínimo, um agente precisa funcionar assincronamente. O grau de agência é realçado, aumentado se um agente representa um usuário em algum meio. Um agente mais avançado pode interagir com outras entidades tal como, dados, aplicações ou serviços. Agentes avançados, além disso, colaboram e negociam com outros agentes.

Inteligência é o grau de raciocínio e comportamento sábio: a habilidade do agente para aceitar a declaração de objetivo do usuário e realizar a tarefa delegada a ele. No mínimo, deve haver algumas declarações de preferências, talvez na forma de regras, com uma engenharia de inferência ou algum outro mecanismo de raciocínio para atuar sobre essas preferências. Níveis altos de inteligência incluem um modelo de usuário ou alguma outra forma de compreender e raciocinar sobre o que o usuário deseja fazer, e planejar o meio para atingir estes objetivos. Mais adiante, numa escala de inteligência estão os sistemas de aprendizagem e adaptação ao seu ambiente, em termos de objetivos do usuário, e em termos de recursos avaliáveis para o agente.

A mobilidade aparece numa terceira dimensão, quando a aplicação do agente é projetada para atuar em uma rede. Mobilidade é o grau para o qual agentes por si próprios navegam pela rede. Alguns agentes podem ser estáticos, outros residem numa máquina cliente (para gerenciar a interface do usuário, por exemplo) ou instanciado no servidor. Roteiro móvel pode ser composto sobre uma máquina e remetido a outro para execução num ambiente apropriadamente seguro; nesse caso, o programa navega antes da execução, assim não expõe dados que precisam ser anexados. Mobilidade traz a questão de seguridade, privacidade e o desafio do gerenciamento.

A figura 3-1 apresenta esta forma de medir o grau de inteligência que um agente pode atingir.
 

Se uma parte do agente fica sobre e à direita do limiar da agência inteligente no plano Agência/Inteligência, então ele é um agente inteligente sob esta definição. Por exemplo, sistemas especialistas que não são agentes podem ficar abaixo do limiar, e agente com funções fixas tal como sistemas tradicionais podem ficar à esquerda do limiar. Esse gráfico pode ser usado para desenhar comparações qualitativas aproximadas entre agente inteligente e softwares ofertados. Observe a figura 3-2:
 

3.5.2 Agentes Móveis

Observando o que já foi exposto, observa-se que a tecnologia de agentes estáticos tem sido utilizada nas últimas décadas em muitas áreas de aplicações, como, Interface Gráfica (Windows 95 Wizards), Aplicações (Assistente Ortográfico do Word Microsoft), Sistemas Especialistas. Entretanto, o uso da tecnologia de agentes móveis é novo. Não houve muitas aplicações desenvolvidas utilizando tecnologia de agentes móveis. Porém, há alguns candidatos, como, Down loaded applets (Sun Microsoft Java applets ou Microsoft OLE controls), Agentes de viagem (General Magic Corporation's Telescript agentes) e Agentes de colaboração comercial (Crystaliz, Inc.'s MuBot agentes). Na literatura pode-se encontrar ainda algumas linguagens para criação de agentes móveis: Java da Sun; Telescript da General Magic; Safe-Tcl da Sun e Object Rexx da IBM.

3.5.3 Agentes Autônomos

Agentes autônomos são sistemas capazes de apresentarem autonomia, propondo-se a agir no mundo real [Brustoloni, 1991 in Franklin, 1995].

Um agente autônomo é um sistema situado dentro e em uma parte de um ambiente que sente o ambiente e age sobre ele, através do tempo, em perseguição de sua própria agenda e para efetuar o que ele sente no futuro [Franklin e Graesser, 1996].

3.5.4 Agentes Coordenados

Coordenação é o ato de gerenciar interdependências entre atividades. Uma conduta de coordenação envolve o mais básico comportamento de um agente, assim como regras seguintes, criação de organização, comunicação de informação e negociação, ou outros mecanismos de resolução de conflitos. A coordenação pode ser dividida três partes: agente apresenta comportamentos de especificação (a criação de objetivos compartilhados), comportamento de planejamento (expressando conjunto de tarefas ou estratégias para acompanhamento dos objetivos) e comportamento de seqüenciamento (distribuindo tarefas para grupos e indivíduos, criando planos e seqüências compartilhadas, alocando recursos, etc.). Unidades Industriais podem aplicar diferentes mecanismos de especificação de comportamento para chegar a um consenso sobre objetivos mais ou menos compartilhados, como, que produtos produzir [Decker, 1995].

Agentes podem ser humanos, computacionais ou a união destes. Há algumas aplicações que requerem comportamento coordenado. Um exemplo de aplicação é o seqüenciamento de manufatura ágil. Atualmente, sistemas de manufatura estão mudando de flexíveis para ágeis. Sistemas de seqüenciamento de fábricas distribuídas podem operar em dois níveis: entre companhias (por exemplo, empreiteiro ou fornecedor de relacionamentos, manufatura JIT, integração da indústria) e dentro da companhia [Nadoli, et al., 1993].

3.5.5 Agentes Aprendizes e Adaptativos

Um agente aprendiz observa as ações do usuário em background, encontra padrões repetitivos e automatiza-os sob aprovação. O paradigma de agente aprendiz usa a metáfora de assistente pessoal. Agentes aprendizes são, em particular, aplicáveis quando o domínio da aplicação contém comportamento repetitivo significante e, ainda quando o comportamento repetitivo difere através do espectro do usuário [River, 1996]. Pode ainda ser treinado pelo usuário com exemplos específicos [Maes, 1996].

3.5.6 Agentes Reativos

Agentes Reativos são baseados em modelos de organização biológica/etológica, como uma colônia de insetos. A principal idéia é que um comportamento complexo inteligente pode emergir de uma coleção de muitas entidades simples. Um simples inseto não aparenta ser muito inteligente, mas a colônia de insetos atuam com uma entidade inteligente, por exemplo quando procurando por alimento. Um agente reativo comporta-se num modo estímulo-resposta, isto é, ele não tem memória da ação realizada no passado nem qualquer previsão da ação a ser tomada no futuro. Sociedades de agentes reativos têm usualmente um grande número de membros [Ferber, 1991a in Demazeau, et al., 1992].

3.5.7 Agentes Cognitivos

Agentes cognitivos são baseados em modelos de organizações sociais, no senso de sociedades humanas (grupos, hierarquias, comércios). Com os agentes, há uma representação explícita de ambiente e de membros da sociedade. Eles podem raciocinar sobre as ações tomadas no passado e planejar as ações a serem tomadas no futuro. Do ponto de vista de uma sociedade, ela é geralmente composta de um número pequeno de membros. [Ferber, 1991a in Demazeau, et al., 1992] Um exemplo de agente Cognitivo pode ser observado em [Demazeau, et al., 1992].

3.6 Modelos de Agentes

Um usuário com uma tarefa para completar usa uma interface gráfica que acessa uma aplicação de um agente. A aplicação de um agente navega através da Internet ou outra infra-estrutura de rede para encontrar gateways fornecedores, ajudada pelo serviço de depósito ou diretório. Finalmente, o agente é capaz de acessar o fornecedor da fonte da informação em banco de dados ou outros meios de armazenagem, encontra a informação pedida pelo usuário, completa qualquer transação necessária, e retorna a resposta de volta para o usuário [Heilmann et al., 1995].

O modelo da atuação de um agente é apresentado na figura 3-3.
 

3.6.1 Modelos de Agentes em Negociação

Os agentes não só autorizam indivíduos, mas também permitem que toda organização opere mais eficientemente. A razão para seu apresentação é que muitos processos comerciais estão tornando-se complexos. Eles, tipicamente, envolvem um número de indivíduos, localizados num número diferente de departamentos, que necessitam trabalhar para receber uma tarefa feita. Negociações entre agentes oferecem uma abordagem flexível e receptiva para o problema [Wooldridge et al., 1996]. A figura 3-4 apresenta um modelo de um agente em negociação.

Um processo de negociação é um processo que produz decisão [Shmeil, et al., 1995]. A inteligência artificial distribuída oferece possibilidades de negociação autorizada a uma gestão local, resolvendo conflitos dinamicamente. A IAD, conduz, assim, à realização de sistemas multi-agentes, que apresentam comportamento de um agente individual a um comportamento de sociedade (a união da ação dos agentes). Os agentes dispõem de uma certa autonomia e são emergentes de um ambiente com o qual eles interagem. Possuem algumas funções principais: de perceber, de decidir e de agir [Ferber et al., 1991].

Um outro modelo de negociação é apresentado por Balasubramanian S. et al., cuja arquitetura multi-agente foi desenvolvida para integração do projeto, manufatura e atividades de controle de chão de fábrica. Ela é baseada em cooperação de entidades inteligentes no sub-domínio que produz decisões através de negociações, utilizando conhecimento de domínio específico e distribuído entre as entidades.

3.7 Protocolo de Agentes

Se os agentes interagem em uma rede remota de comunicação, eles devem possuir um protocolo de comunicação. Este protocolo é responsável pelas informações que trafegam pela rede local ou remota. Os protocolos definem os passos de diálogos a serem executados pelos agentes em cada tipo de interação possível na sociedade [Oliveira, 1996]. A figura 3.5 apresenta um protocolo entre o produtor e o intermediário.
 

3.8 Arquitetura de Agentes

Todas as propriedades que um agente apresenta devem estar implícitas em sua arquitetura. A arquitetura de um agente pode ser definida como uma metodologia particular para definir agentes. Ela especifica como o agente pode ser decomposto na construção de um conjunto de módulos componentes e como estes módulos podem interagir. O conjunto dos módulos e suas interações devem prover uma resposta para a questão de como os sensores de dados e o estado interno corrente do agente determinam suas ações e futuros estados internos. Uma arquitetura abrange técnicas e algoritmos para suportar esta metodologia [Maes, 1991 in Wooldridge, et al., 1995].

As arquiteturas podem ser divididas em três áreas: a arquitetura deliberativa (abordagem clássica do Paradigma de IA), a arquitetura reativa (abordagem alternativa) e arquiteturas híbridas (utiliza ambas abordagens). Várias aplicações destas arquiteturas podem ser contemplados em [Wooldridge et al., 1995].

3.8.1 Arquitetura Quadro Negro

No quadro negro há um modelo de fontes de conhecimentos independentes, assíncronas e anônimas, que se comunicam por uma base de dados em vários níveis, chamada quadro negro. Um aspecto importante deste arquitetura é o uso do quadro negro como um meio de comunicação entre vários agentes [Nii, 1986a in Nassar, 1995]. No modelo quadro negro, as fontes de conhecimento e o espaço da solução são estruturadas de forma hierárquica.

A abordagem Quadro Negro deve ser considerada como um paradigma, além de ser visto como uma arquitetura simplesmente [Nassar, 1995].

A metodologia quadro negro é uma abordagem de resolução de problemas que é melhor situada em problemas complexos, mal estruturados [Sunners et al., 1994]. O poder da metodologia quadro negro é a sua flexibilidade.

A formação da solução em sistemas que utilizam a arquitetura quadro negro não deve ser vista, como nos métodos tradicionais de inteligência artificial, como um processo de busca, mas sim como construção da solução onde deve ser encontrada a peça adequada de conhecimentos para colocar no local adequado na estrutura da solução emergente [Nassar, 1995].

3.8.1.1 Arquitetura Quadro Negro BB1

A arquitetura quadro negro BB1, surgiu em 1985 por Barbara Hayes-Roth [Hayes-Roth, 1985]. Esta arquitetura é bem ampla e geral, capaz de contemplar várias aplicações de sistemas especialistas e, cooperação e coordenação de agentes na resolução de problemas.

Hayes-Roth, através de sua arquitetura apresenta também fundamentos para desempenho de agentes inteligentes em tempo-real [Hayes-Roth, 1990] e para sistemas inteligentes adaptativos [Hayes-Roth, 1993].

Um modelo desta arquitetura é apresentado na figura 3-6. A arquitetura pode adaptar-se a uma situação específica. O que se percebe é que o módulo de cognição não se altera, enquanto que a percepção e ação sofrem algumas modificações para atender suas necessidades.

O subsistema Percepção compreende sensores e preprocessadores, que adquirem informação sobre um ambiente dinâmico como base para o subsistema cognição e ação.

O subsistema Ação, compreende efeitos, que apresentarão os resultados dos dados fornecidos no subsistema Percepção.

O subsistema Cognição domina todo o conhecimento do agente e representa todo seu raciocínio. Ele incorpora assincronamente informações percebidas dentro de sua base de conhecimento. Ele executa uma variedade de tarefas de raciocínio baseado em conhecimento, que variam através de diferentes ambientes, mas tipicamente inclui: interpretação da informação percebida; detecção e diagnóstico de eventos excepcionais; reação a eventos importantes; predição de futuros eventos; modelagem dinâmica de sistemas externos; planejamento a longo-prazo do curso de ação; explicação de suas observações, inferências, e planos; explicação de seu raciocínio; aprendizagem para melhorar seu comportamento baseado em experiência; adaptação de seu comportamento a condições ambientais

Todas as operações de raciocínio ocorrem num contexto de uma memória global, a qual representa toda a informação do conhecimento para o agente. O subsistema cognição executa operações de raciocínio que são sugeridas e produz alterações nas informações na memória global. A satisfação deste ciclo compreende três processos [Hayes-Roth, 1990]:

  1. O gerente da agenda utiliza percepções recentes ou eventos cognitivos para identificar e avaliar operações de raciocínio executáveis, que é registrado na agenda. A identificação de uma operação de raciocínio executável implica na determinação de que um evento cognitivo ou perceptivo satisfaça o requisito provocado de um tipo particular de operação e que outras informações contextuais satisfaçam suas precondições. Em um dado ciclo, o gerente da agenda pode identificar várias operações de raciocínio executáveis relevantes a cada uma das diversas tarefas. A avaliação de uma operação executável implica em avaliar sua importância e urgência contra o plano de controle atual, o qual pode incluir decisões de estratégia relatadas para diferentes tarefas.
  2. O seqüenciador determina quais das operações executáveis identificadas serão executas e quando elas serão executadas, baseado em suas avaliações, e registra cada operação sucessiva, assim como a próxima operação.
  3. O executor executa cada próxima operação como ela está registrada. Ele instancia o programa definido pelo tipo de operação escolhida, obrigando as variáveis do programa à provocarem eventos . Ele então executa o programa instanciado, produzindo alterações associadas na memória global. Essas alterações podem representar uma nova inferência ou conclusão para uma nova tarefa de raciocínio. Eles podem alterar o plano de controle, iniciando ou finalizando novas tarefas ou estendendo ou modificando decisões de controle para uma tarefa em funcionamento. Pelo fato do subsistema cognição determinar a utilidade, a qualidade e rapidez da percepção, raciocínio e ação do agente, ele é fundamental para a arquitetura do agente proposto.
3.8.1.2 Sistemas que Utilizam a arquitetura Quadro Negro

O sistema DAI apresenta um Controle de Sistemas de Manufatura utilizando um quadro negro que serve para avaliar os processos pedidos, através de uma teoria difusa, e de uma arquitetura de inteligência artificial distribuída, onde cada agente é responsável por uma etapa do processo produtivo [Shih, et al., 1995].

O sistema Guardiã é um sistema que monitora de forma simulada pacientes em Unidades de Tratamento Intensivo (UTI). O sistema foi criado em conjunto por várias Universidades (de Stanford , da Florida Atlantic, de Paris VI, de Madrid) e pelo Centro de Administração Médica Pablo Alto Veterans [ Hayes-Roth et al., 1992]. Este sistema utiliza a arquitetura de quadro negro BB1.

Outros sistemas em monitoramento podem ser citados como Simon de [Uckun D. E Lindstrom, 1993], Neoganesh/Ganesh de [Dojat M. e Sayettat C, 1995], Vie-Vent de [Miksch S. Horn W., Popow C. e Paky F., 1993] em [Hayes-Roth, et al., 1996].

O sistema "Patient Advocate" trabalha agentes cooperativos para suportar necessidades e demandas centradas no paciente. Este sistema também utiliza a arquitetura quadro negro [Hayes-Roth, et al., 1996].

Há alguns sistemas que visam melhorar a implementação e o uso da arquitetura quadro negro, através de um interface gráfica e de um meio mais rápido de realizar o raciocínio dos conhecimentos fontes. Exemplos destes sistemas podem ser vistos em [Ho, et al., 1994], que desenvolveram um arquitetura generalizada de conhecimentos fontes para sistemas quadro negro.

3.8.1.3 Outras Arquiteturas Quadro Negro

Há ainda outras arquiteturas, como a GBB em [Corkill D., Fallagher K. e Murray K., 1986] e a Hearsay-III em [Erman L, London P., Fickas S., 1981] [Nassar, 1995]. Exemplos dos Sistemas que utilizam arquitetura quadro negro, de 1971 a 1987, podem ser vistos na figura 3-7.

Nesta pesquisa será utilizada a arquitetura quadro negro BB1 [Hayes-Roth, 1985], que é uma arquitetura geral para construção de aplicações em quadro negro. Ela já foi utilizada por vários outros sistemas como mencionada anteriormente. Esta arquitetura está implementada em lisp(BB1) e C++(BBK).