“ON-LINE” entre sistemas

Transcrição

“ON-LINE” entre sistemas
Universidade Federal de Santa Catarina
Programa de Pós-Graduação em
Engenharia de Produção
CONCEPÇÃO E IMPLEMENTAÇÃO DE UM SISTEMA
MULTI-AGENTES PARA GESTÃO DA COMUNICAÇÃO DE
DADOS “ON-LINE” ENTRE SISTEMAS
Arildo Dirceu Cordeiro
Dissertação apresentada ao
Programa de Pós-Graduação em
Engenharia de Produção da
Universidade Federal de Santa Catarina,
como requisito parcial para obtenção
do título de Mestre em
Engenharia da Produção.
Florianópolis
2001
Arildo Dirceu Cordeiro
CONCEPÇÃO E IMPLEMENTAÇÃO DE UM SISTEMA
MULTI-AGENTES PARA GESTÃO DA COMUNICAÇÃO DE DADOS
"ON LINE" ENTRE SISTEMAS
Esta dissertação foi julgada e aprovada para a obtenção do título de Mestre em
Engenharia de Produção no Programa de Pós-Graduação em Engenharia de
Produção da Universidade Federal de Santa Catarina.
Florianópolis, 04 de maio de 2001.
Prof. Ricardo Miranda Barcia, Ph.D.
Coordenador do Curso
BANCA EXAMINADORA
___________________________
Prof. Rogério Cid Bastos, Dr.
Orientador
_______________________
Prof. Luciano Scandelari, Dr.
___________________________
Prof. Jair Ferreira de Almeida, Dr.
AGRADECIMENTOS
Ao concluir este trabalho, externo meus agradecimentos a todos aqueles que me
apoiaram, direta ou indiretamente, durante as fases de sua realização. Em especial:
Ao Professor Dr. Rogério Cid Bastos, por acreditar e ter aceitado ser meu
orientador, encorajando-me a sempre mais buscar conhecimentos e prosseguir
nesta caminhada.
À equipe de professores que compuseram a Banca: professor Dr. Luciano
Scandelari, e professor Dr. Jair Ferreira de Almeida.
Ao CEFET-PR, aos seus professores e servidores administrativos pelo apoio e
colaboração.
À UFSC, à toda a sua equipe de professores e servidores administrativos, bem
como a monitora Flávia Lumi Matuzawa.
Aos meus familiares e amigos, pela compreensão, paciência, encorajamento,
tolerância e otimismo dispensados em todos os dias deste estudo.
SUMÁRIO
LISTA DE FIGURAS.................................................................................................VI
RESUMO..................................................................................................................VII
ABSTRACT...............................................................................................................IX
CAPÍTULO I................................................................................................................1
1
INTRODUÇÃO......................................................................................................1
1.1 Origem do Problema.............................................................................................1
1.1.1 Rede Digital de Serviços Integrados – Figura 1.................................................3
1.2 Importância do Trabalho.......................................................................................4
1.3 Justificativa...........................................................................................................5
1.4 Objetivo Geral e específicos.................................................................................6
1.5 Limitações do Trabalho.........................................................................................7
1.6 Estrutura do Trabalho............................................................................................8
CAPÍTULO II.................................................................................................................9
2. REFERÊNCIAS TEÓRICAS E CONCEITUAIS........................................................9
2.1 Inteligência Artificial................................................................................................9
2.1.1 Introdução............................................................................................................9
2.1.2 Aspectos Gerais da Inteligência Artificial..........................................................10
2.13 Inteligência Artificial Distribuída..........................................................................12
2.2 Algumas Técnicas de Inteligência Artificial Utilizada..........................................13
2.2.1 Sistemas Especialistas......................................................................................14
2.2.1.1 Arquitetura de Sistemas Especialistas...........................................................15
2.2.1.2 Forma de Representação do Conhecimento.................................................17
2.2.1.3 Vantagens e Desvantagens de SE................................................................17
2.2.2 Agentes Inteligentes.......................................................................................19
2.2.2.1 Considerações Gerais e Definições..............................................................19
2.2. 2.2 Propriedades................................................................................................20
2.2.2.2.1 Quadro Resumo das Propriedades............................................................21
2.2.2.3 Classificação dos Agentes...........................................................................22
2.2.2.3.1 Topologia de Agentes – Figura 4...............................................................23
2.2.2.3.2 Tipologia de Agentes..................................................................................25
2.2.2.4 Aplicações de Agentes Inteligentes..............................................................26
2.2.2.4.1 Quadro Resumo de Aplicações de Agentes Inteligentes............................27
2.2.4
Sistemas Híbridos.........................................................................................28
2.2.4.1 Caracterização das Classes dos Sistemas Híbridos - Figura 7....................30
2.3
Plataforma Delphi para Programação..........................................................30
2.3.1
Geração de SQL..........................................................................................31
2.3.1
Protocolo e Linguagem de Comunicação...................................................31
2.3.2
O Protocolo DCOM e Objetos Distribuídos.................................................32
2.3.4
O Protocolo KQML.....................................................................................33
2.3.4.1
Performativas KQML.................................................................................33
2.3.4.2
KIF (Knowledge Interchange Format).......................................................34
CAPÍTULO III.............................................................................................................35
3. MODELO PROPOSTO.........................................................................................35
3.1 Considerações Gerais.......................................................................................35
3.2 Descrição do Modelo – Ambiente Multi-Agente ...............................................36
3.2.1 Ambiente de Aplicação – Figura 8...................................................................37
3.2.2 Quadro Resumo do Ambiente Proposto - Figura 9..........................................38
CAPÍTULO IV............................................................................................................41
4.
Desenvolvimento e Implementação do Sistema................................................41
4.1 Plataforma de Desenvolvimento.........................................................................41
4.2 Sistema Multi-Agente para Gerenciamento de Sistemas - SMAGS...................41
4.2.1 Estrutura de Funcionamento............................................................................42
4.2.2 Arquitetura do Sistema.....................................................................................44
CAPÍTULO V.............................................................................................................55
5. Testes Realizados e Análise dos Resultados.....................................................55
5.1 Aplicação em Casos Práticos..............................................................................55
5.2 Testes na Aplicação em Avaliação ou Acompanhamento Acadêmico................55
5.3 Análise dos Resultados da Aplicação em Avaliação Acadêmica......................59
5.4 Outras Aplicações...............................................................................................65
CAPÍTULO VI.............................................................................................................66
6.
CONCLUSÕES E RECOMENDAÇÕES.............................................................66
6.1 Conclusões.........................................................................................................66
6.2 Recomendações................................................................................................68
7. REFERÊNCIAS BIBLIOGRÁFICAS.......................................................................69
8 Anexos....................................................................................................................76
LISTA DE FIGURAS
FIGURA 1 - Rede Digital de Serviços Integrados.......................................................3
FIGURA 2 - Ambiente Multi-Agente (simplificado)......................................................6
FIGURA 3 - Estrutura de um Sistema Especialista...................................................16
FIGURA 4 - Topologia de Agentes............................................................................23
FIGURA 5 - Tipologia de Agentes.............................................................................25
FIGURA 6 - Qualidade da Solução x Campo de Resolução dos Sist. Híbridos........29
FIGURA 7 - Caracterização das Classes de Sistemas Híbridos...............................30
FIGURA 8 - Ambiente de Aplicação..........................................................................37
FIGURA 9 - Quadro Resumo do Ambiente Proposto................................................38
FIGURA 10- Arquitetura do Sistema..........................................................................48
FIGURA 11- Fluxograma com a Rotina de Avaliação Acadêmica-Tradicional..........57
FIGURA 12- Fluxograma da Rotina do Sistema de Avaliação Acadêmica SMAGS..58
FIGURA 13- Tela de Configuração de Banco de Dados............................................60
FIGURA 14- Tela de Entrega de Mensagens Escrita e Sonora.................................61
FIGURA 15- Gráfico do Tempo/Trabalhos, forma normal e com o SMAGS.............62
FIGURA 16- Gráfico de Desempenho de Alunos......................................................63
FIGURA 17- Relatório de Desempenho de Alunos...................................................64
LISTA SIGLAS
ASCII:
COM:
Americam Standard Code For Information Interchange
Component Object Model
CORBA: Common Object Resquest Broker Arquiteture
DCOM:
Distributed Component Object Model
DLL:
Data Label Language
HTTP:
Hiper Text Transfer Protocol
IA:
Inteligência Artificial
IAD
Inteligência Artificial Distribuída
KIF:
Knowledge Interchange Format
KQML:
Knowledge Query and Manipulation Linguage
ODBC:
OLE:
Open DataBaseConectivity
ObjectLimking and Embedding
Oracle: Nome da empresa que comercializa o SGBDR Oracle Server
RDSI:
Rede Digital de Serviços Integrados
SE:
Sistemas Especialistas
SGBDR: Realtional Database Management System
SMA:
Sistemas Multi-Agentes
SMAGS: Sistemas Multi-Agentes para Gerenciamento de Sistemas
SQL:
Structured Query Language
TCP/IP:
Transport Control Protocol/Internet Protocol
Web:
Rede
GLOSSÁRIO
Active-X – Arquitetura que amplia a interatividade das páginas Web.
Agentes Inteligentes - São sistemas computacionais residentes em ambientes
dinâmicos complexos, os quais percebem e atuam autonomamente neste ambiente.
Delphi - Linguagem de programação orientada a objetos.
Endereço IP - Endereço usado para localizar uma máquina na Internet.
Gerente Virtual - Programa de computador dotado de recursos, técnicas e
conhecimentos que o tornam capaz de executar tarefas similares a dos seres
humanos.
HTTP - Protocolo de transferência otimizado para trabalhar com sistemas de
hipertexto.
Inteligência Artificial - Ramo da Ciência da Computação voltado para a criação de
modelos de inteligência e a construção de sistemas computacionais baseados
nestes modelos.
Inteligência Artificial Distribuída - União das técnicas de Inteligência Artificial com
as técnicas de sistema distribuídos.
Intranet - Rede privativa de instituições ou empresas com a utilização das
tecnologias da Internet.
Java - Linguagem de programação orientada a objetos, desenvolvida pela Sun
Microsystems.
Log de operações - É um arquivo eletrônico que registra o histórico das operações
realizadas no sistema.
Objetos Distribuídos - São armazenadores de códigos que executam uma
determinada. Sua principal característica refere-se a sua localização, eles podem ser
abrigados todos em uma única máquina ou distribuídos em máquinas distintas de
uma rede de computadores.
Protocolo - Conjunto de regras que possibilitam a comunicação entre dois ou mais
pontos. Na Internet, permite a comunicação entre computadores diferentes.
World Wide Web - Ambiente hipermídia formado pela teia de ligações entre
documentos e recursos multimídia armazenados em servidores Internet no mundo.
Menus Amigáveis - São menus que orientam os passos a serem seguidos.
RESUMO
O objetivo principal deste trabalho é oferecer ao usuário uma ferramenta eficaz
que consiga gerenciar a comunicação de dados "on-line" entre sistemas diferentes,
de maneira que os dados, extraídos de qualquer banco de dados, possam ser
analisados, comparados e trabalhados, para que as informações sejam transmitidas
para os usuários de forma automática e interativa. Foi desenvolvido um ambiente
próprio, baseado na plataforma Delphi para Windows. Este sistema
permite a
incrementação posterior, com a inserção de células mais inteligentes, que possam
construir e gerar conhecimento, utilizando técnicas compartilhadas, originárias da
Inteligência Artificial Distribuída. A ferramenta foi validada com a aplicação em casos
práticos, em áreas diferentes, para enfatizar o seu caráter genérico.
Palavras-chave: tempo real, multi-agentes, comunicação de dados “on-line”,
inteligência artificial, sistemas interativos e bancos de dados.
ABSTRACT
The main purpose of this job is to offer the user an effective tool that could
manage on-line data communication between two different systems in a way that the
data, extracted from any data bank, could be analyzed, compared and managed, so
that the information could be transmitted back to the users on a automatic and
interactive way. It was developed on a proper environment based on a Delphi
platform for Windows. This system allows future improvements by inserting cells that
could build and generate knowledge using shared techniques from the Distributed
Artificial Intelligence. The tool was validated by its application on practical cases, in
different areas, to emphasize its generic characteristic.
Key-words: real-time, multi-agent, on-line data communication, artificial
intelligence, interactive system, data base.
CAPÍTULO I
1 - INTRODUÇÃO
1.1 – Origem do problema
O volume de dados, quer sejam na forma de papéis/documentos ou em sistemas
informatizados isolados, gerados em instituições públicas ou privadas, é muito
grande. Os níveis decisórios necessitam desses dados em tempo real,
transformados em informações organizadas, para que as decisões possam ser
tomadas em tempo hábil. Com os métodos convencionais, utilizados para coleta de
dados, pesquisa de casos semelhantes, compilação dos dados e análise, gasta-se
muito tempo. Os avanços tecnológicos, principalmente nas áreas da informática e
sistemas integrados, caminham rapidamente, permitindo, desde que se conheça
todos os recursos disponíveis, suas vantagens e limitações, o desenvolvimento de
sistemas inteligentes que podem monitorar processos de ponta a ponta. Neste
contexto, pode-se citar o esquema de circulação das interfaces de uma Rede Digital
de Serviços Integrados (RDSI), com reconhecimento de fala e outros recursos,
conforme a proposta de Pierre Levy (1998), ilustrada na figura 1.
No presente trabalho, pretende-se distribuir informações claras e seguras em
tempo real, através de “Gerentes Virtuais”,
que são
softwares baseados em
Agentes Inteligentes, constituindo Sistemas Multi-Agentes (SMA), um dos ramos da
Inteligência Artificial Distribuída (IAD), resultante da união de técnicas de Inteligência
Artificial (IA) com técnicas de Sistemas Distribuídos (Paraíso, 1997).
.
Figura 1 – REDE DIGITAL DE SERVIÇOS INTEGRADOS (Pierre Levy)
1.2 - Importância do Trabalho
O Sistema Multi-Agentes é importante, porque amplia, potencializa e melhora
o fluxo de informações no conjunto, buscando eficácia e eficiência na gestão e
auxiliando pessoas investidas nas funções de gerentes e/ou diretorias de instituições
públicas ou privadas, onde grande parte do tempo é gasto na busca de informações
que possam subsidiar as tomadas de decisões, indicando o caminho mais correto
para a solução de problemas. Com o gerente virtual, que se pretende desenvolver e
implementar, ganha-se tempo e segurança. Por sua vez, este gerente pode atuar
como se fosse um adjunto, monitorando sistemas, fornecendo informações em
tempo real e organizadas em tabelas, gráficos, etc, além de informações escritas ou
faladas, as quais podem ser retransmitidas para os vários níveis de gerência,
alertando sobre resultados indesejáveis e indicando as melhores soluções. Desta
forma, o gerente humano terá mais tempo livre para pensar em coisas novas,
empreendendo soluções inovadoras.
1.3 – Justificativa
Com as informações disponíveis de forma rápida e segura, as decisões podem
ser tomadas em menos tempo, viabilizando, assim, um melhor acompanhamento e
planejamento futuro por parte das gerências, prevendo melhorias e inovações.
Esta ferramenta poderá servir,
também, como fator de motivação para as
pessoas que trabalham em determinado setor, porque com as gerências interligadas
em tempo real, mensagens de elogios e/ou de alerta para determinados fatos
poderão ser emitidas em todos os níveis de gerências, evitando ainda que as chefias
intermediárias deixem de tomar conhecimento de assuntos atinentes a sua função, o
que pode levar a situações desagradáveis.
Saliente-se ainda, que já existem os softwares
que controlam empresas de
ponta a ponta, desenvolvidos para instituições específicas, sendo, entretanto,
extremamente caros e inacessíveis para a maioria das empresas ou pessoas físicas,
chegando a custos da ordem de US 300.000,00. Enquanto que a ferramenta que se
pretende construir deverá ter preço bem mais acessível para os usuários. Ressaltese, também, que um mesmo sistema poderá ser aplicado para as mais diferentes
áreas e situações em diferentes instituições, aproveitando os diferentes softwares já
existentes, o que o torna inédito.
Além das contribuições já citadas, o sistema irá contribuir para potencializar a
gestão de comunicação de dados entre sistemas, melhorando a eficácia e a
eficiência das pessoas envolvidas em níveis gerenciais.
1.4 – Objetivos
1.4.1 – Objetivo Geral
Construir um ambiente Multi-Agente para desenvolvimento e/ou integração de
sistemas e gestão da comunicação de dados, em tempo real, de Instituições de
Ensino, cuja idéia inicial está ilustrada na figura 2.
Figura 2 – Sistema Multi-Agente (simplificado).
1.4.2 – Objetivos específicos
a) Criar um ambiente Multi-Agente, utilizando a plataforma Delphi.
b) Estruturar um processo de comunicação, utilizando Objetos Distribuídos e o
protocolo DCOM (Distributed Component Object Model).
c) Desenvolver uma ferramenta que seja capaz de extrair dados de Bancos de
Dados Genéricos, a qual será integrada ao Sistema Multi-Agente.
1.5 – Limitações do Trabalho
O presente trabalho será composto por um software, que constitui um ambiente
Multi-Agente com seis módulos trabalhando de forma compartilhada, com
capacidade para extrair informações de bancos de dados genéricos e analisar,
classificar e produzir avisos para os usuários, de forma que estes avisos sejam
automaticamente gerados ao final de um período de treinamento/aprendizagem do
sistema ou pré-programados para casos específicos.
Sendo, entretanto, limitado nas seguintes situações:
- No presente trabalho, o sistema não será dotado de capacidade de autoaprendizagem.
- Não serão empregadas outras plataformas, além da Delphi.
-
Apesar da relativa facilidade para programação do sistema para casos
específicos, através de menus amigáveis, são necessários ainda alguns
conhecimentos básicos de programação.
1.6 - Estrutura do Trabalho
O trabalho será apresentado em seis capítulos, os quais serão desenvolvidos da
seguinte forma:
O primeiro capítulo é constituído de uma introdução onde consta a origem do
problema, a importância do trabalho, a justificativa, os objetivos geral e específicos,
as limitações do trabalho e a estrutura do trabalho.
O segundo capítulo será constituído por referências teóricas e conceituais.
O terceiro capítulo será composto pelo modelo teórico.
O quarto capítulo será composto pelo desenvolvimento e estruturação do
software principal, para a implementação do modelo proposto e Arquitetura do
Sistema.
O capítulo quinto apresentará os testes e resultados do sistema em casos
práticos e uma análise comparativa dos ganhos na aplicação da ferramenta em tela,
em relação aos trabalhos realizados de forma normal, sem esses recursos.
O sexto capítulo apresentará as conclusões e as recomendações para futuros
estudos.
CAPÍTULO II
2 – REFERÊNCIAS TEÓRICAS E CONCEITUAIS
Considerando que o sistema multi-agentes envolverá diferentes técnicas de
inteligência artificial, além da teoria de agentes, apresenta-se outras técnicas que
serão utilizadas de forma compartilhada.
2.1 – Inteligência Artificial
2.1.1 – Introdução
“A Inteligência Artificial (IA) está revolucionando o mercado. Firmas de
Investimentos, empresas e bancos estão usando tecnologias de IA para uma grande
variedade de propósitos. Em muitas empresas, tecnologias de IA estão passando do
estágio experimental e se tornando parte integrante de suas operações” (Freedman
et al., 1995).
As empresas estão motivadas para utilizar sistemas inteligentes, baseadas no
aumento da qualidade dos serviços prestados e na redução de custos (Goonatilake
e Treleaven, 1995). Conforme Modro (2000), Sistemas Inteligentes estão sendo
usados em diversas empresas, como a Countrywide Funding, a maior originadora de
hipotecas dos Estados Unidos, que utiliza um
sistema adaptativo baseado em
regras para subscrever estas hipotecas; a Visa International, que possui uma rede
neuronal para detectar o uso indevido de cartões de crédito, além de outras grandes
organizações, tais como: Citibank e American Express.
2.1.2 – Aspectos Gerais da Inteligência Artificial
Segundo Modro (2000), “Desde a década de 40, procura-se emular o
comportamento Inteligente humano através de máquinas. Com a popularização e o
rápido avanço tecnológico dos computadores, essa tarefa tem-se tornado cada vez
mais palpável. O termo Inteligência Artificial (IA) surgiu em 1956, quando um
pequeno grupo de pesquisadores que participavam de um seminário de verão em
Dartmouth College (EUA), discutiam como o computador poderia simular o raciocínio
humano. A definição do termo IA é atribuída a John McCarthy (Russel e Norvig,
1995).
Durkin (1994) afirma: “Inteligência Artificial é o campo de estudo na ciência da
computação, que persegue o objetivo de fazer um computador racionar de maneira
semelhante aos humanos”.
A Inteligência Artificial, como área de pesquisa, tem um campo bastante amplo,
destacando-se: entendimento de linguagem, compreensão de eventos, interpretação
visual, aprendizado por experiência, resolução de problemas que requerem alguma
especialização, jogos e tratamento de incertezas (Russel e Norvig, 1995; Durkin,
Rich e Knight, 1993).
Embora sua definição como campo de estudo tenha ocorrido somente em 1956,
algumas áreas foram vitais para o seu surgimento, onde as tecnologias inteligentes
foram objeto de pesquisa e desenvolvimento desde o início da ciência da
computação (Medsker, 1995). Os principais acontecimentos relativos à Inteligência
Artificial tiveram a seguinte seqüência lógica: década de 40: Ciência da Informação;
década de 50: Redes Neurais e Definição de Inteligência Artificial; década de 60:
Sistemas Especialistas e Conjuntos Difusos; década de 80: Algoritmos Genéticos e
Raciocínio baseado em casos; década de 90: Agentes Inteligentes.
Um evento de aspecto interessante, relacionado à história e ao desenvolvimento
da Inteligência Artificial, é o teste de Turing. Na década de 50, Alan Turing, um dos
fundadores da ciência da computação, criou o teste de Turing, que é uma avaliação
sofisticada e particular do desempenho dos computadores. O teste consiste num
interrogador que estabelece comunicação (através de terminais) durante 5 minutos
e, ao final do teste, ele deverá ser capaz de identificar se o interlocutor é ou não uma
máquina. Esta máquina nada mais é do que um computador, que se passasse no
teste seria considerada inteligente; sendo que durante muitos anos a IA procurou
criar “máquinas” para o teste de Turing.
2.1.3 - Inteligência Artificial Distribuída
A Inteligência Artificial Distribuída (IAD) ao contrário dos paradigmas tradicionais
da IA, considera que a resolução de problemas envolve a coletividade e não um
único indivíduo. Dessa forma, deixam de ter atenção as iniciativas de simular o
comportamento humano, seja mental (IA simbolista) ou neural (IA conexionista),
passando o foco de atenção para a forma de interação entre as entidades chamadas
de agentes e sua organização social. Para a IAD, “a relação do indivíduo com o
meio, seja por interação ou organização, é determinante na imersão do
comportamento inteligente”(Paraíso, 1997).
A IAD trabalha com vários sistemas ao mesmo tempo, que se comunicam entre
si e dividem as tarefas. Cada sistema pode assumir uma função específica e todo o
sistema torna-se responsável pelo gerenciamento das interações para alcançar um
objetivo comum.
Os sistemas de IAD permitem que vários processos autônomos (agentes) sejam
representados em um só sistema (que coordena o conhecimento de vários
especialistas), possibilitando a resolução de problemas complexos e atos que
requisitam uma inteligência global, por meio de processamentos locais e
comunicações interprocessos.
A IAD permite, em muitos casos, realizar tarefas melhor do que um especialista
humano, trabalhando com diferentes módulos, que podem manipular características
de alto nível, como intencionalidade, racionalidade, etc. Cada componente é
denominado de agente.
A IAD se divide em três grandes domínios:
-
RDP (Resolução Distribuída de Problemas) - Faz a decomposição de
problemas entre agentes(componentes ou módulos) que têm a função de
cooperar entre si.
-
IAP (Inteligência Artificial Paralela) - Estuda a performance, desenvolvimento de
linguagens e algoritmos de computação paralela.
-
SMA (Sistemas Multi-agentes) - São constituídos por agentes autônomos
(inteligentes) que têm a função de trabalhar juntos na resolução de problemas.
Como exemplo de modelos de IAD, pode-se citar a arquitetura Blackboard, que
utiliza um raciocínio inerentemente distribuído. Essa arquitetura é constituída por
várias fontes de conhecimento (knowledge system, knowledge sources, agenda e o
próprio blackboard).
2.2 – Algumas Técnicas de Inteligência Artificial Utilizadas
A IA, como ciência, tem como objetivo principal a “emulação e o realce do
comportamento humano via hardware e/ou software” (Keller, 1991). As ferramentas
que emulam determinado aspecto da inteligência humana são chamadas de técnica
ou tecnologia de IA.
A seguir, serão descritas as técnicas de IA utilizadas, enfatizando a Teoria de
Agentes Inteligentes e Sistemas Especialistas.
2.2.1 – Sistemas Especialistas
Os Sistemas Especialistas (SE) são sistemas artificiais usados para emular a
expertise de especialistas na resolução de problemas (Shneider at al., 1996). Uma
das mais simples, porém suficiente para retratar os SE, é aqui adotada. Ela diz que
um SE é “um programa de computador projetado para modelar a habilidade de
resolver problemas de um especialista humano” (Durkin, 1994).
O desenvolvimento de SE começou de maneira tímida, nos anos 50, com
programas de jogos de xadrez e programas de resolução automática de teoremas.
Durante os anos 60, teve um grande impulso com o projeto DENDRAL, uma
encomenda da NASA para a Universidade de Stanford. Esse sistema tinha por
objetivo desenvolver um programa para analisar a composição química do solo
marciano, com base em dados de análises de espectrofotometria de massa
(Shneider at al., 1996; Durkin, 1996). Durkin (1996) define esse projeto como o início
da era dos SE. Desde então, esta técnica tem sido aplicada em diversas áreas –
destacando-se medicina, engenharia, química e economia – nas mais diferentes
tarefas, tais como: interpretação, planejamento e projeto, consultoria, diagnóstico,
monitoramento, controle e simulação.
2.2.1.1 – Arquitetura de Sistemas Especialistas
A arquitetura dos Sistemas Especialistas está baseada em três elementos
básicos:
- Base de conhecimento: é a parte que mantém o conhecimento especialista. A
base de conhecimento é, talvez, o mais importante componente do Sistema
Especialista, pois a qualidade das respostas do SE depende diretamente de sua
base de conhecimento. A base de conhecimento é, portanto, um agrupamento de
conhecimentos representado mediante uma técnica adequada ao sistema em
questão. As informações contidas na base de conhecimento são factuais e incluem
os relacionamentos entre os fatos (Keller, 1991). Esse conhecimento é extraído por
meio de entrevista com especialistas da área e de outras técnicas de aquisição de
conhecimento. A aquisição do conhecimento representa a fase mais complexa do
desenvolvimento do Sistema Especialista. Constitui-se no processo mediante o qual
o engenheiro do conhecimento extrai os fatos e a heurística, associada com a tarefa
(Hart, 1992).
- Memória de trabalho: segundo Durkin (1994), a memória de trabalho contém as
informações iniciais e os fatos de um problema, que são descobertos durante uma
consulta. Tais fatos podem ser informados pelo usuário do sistema ou fornecido pela
avaliação de uma das regras da base de conhecimento. A memória de trabalho é
dinâmica, possibilitando a inserção ou a alteração de um determinado fato durante a
resolução de um mesmo problema.
- Máquina de inferência: contém o conhecimento geral que direciona e controla o
raciocínio do sistema. O mecanismo de inferência examina os fatos e as regras
existentes na base de dados, acrescentando novos fatos, sempre que possível, na
medida das interpretações e conclusões que executa. Basicamente, a máquina de
inferência responsabiliza-se pela seqüência de ações que deverão ser encadeadas,
ou pela seqüência de regras aplicadas. Ela combina os fatos contidos na memória
de trabalho, com o domínio do conhecimento, contido na base de conhecimento,
para definir conclusões sobre o problema. O funcionamento de uma máquina de
inferência pode ser através do encadeamento para frente, encadeamento para trás
ou encadeamento para frente e para trás.
Na Figura 3 é representada a estrutura de um Sistema Especialista.
Figura 3 – Estrutura de um Sistema Especialista.
2.2.1.2 –Formas de Representação do Conhecimento
A forma de representação do conhecimento em um Sistema Especialista pode
ser definida como a “formalização e a estruturação do conhecimento adquirido no
processo de aquisição de conhecimento” (Lemos, 1997; Durkin, 1994). A forma de
representação a ser escolhida depende, basicamente, da área do domínio do
problema e do problema a ser resolvido, podendo ser utilizados métodos diferentes
de representação ou, até mesmo, mais de um método de representação na
resolução de um mesmo problema.
As principais formas de representação do conhecimento em SE são:
- regras;
- frames;
- redes semânticas;
- lógica; e
- tríade Objeto/Atributo/Valor.
2.2.1.3 – Vantagens e Desvantagens dos SE
Os SE apresentam as seguintes vantagens:
- permanência do conhecimento: os SE não esquecem, mas humanos podem
vir a se esquecer;
- capacidade de reprodução do conhecimento: muitas cópias de um SE podem
ser feitas, já o mesmo não é verdade para o caso de especialistas humanos;
- eficiência: a velocidade de operação dos Seé muitas vezes maior que o
especialista humano.
- consistência e imparcialidade: um SE não é afetado por efeitos externos.
Sempre terá o mesmo parecer, independentemente do dia, hora ou fatores externos
à consulta.
- documentação: os SE têm documentação de todo o seu conteúdo, já o ser
humano, nem sempre.
- completude: um SE pode rever todas as transações que realizou até inferir uma
conclusão (rever todo o processo de encadeamento, ou seja, toda a memória de
trabalho).
Por outro lado, os SE apresentam as seguintes desvantagens por não
conseguirem lidar com:
-
criatividade: especialistas humanos podem responder criativamente para
situações não usuais e inesperadas; já os SE não conseguem;
-
senso comum: SE puros não conseguem trabalhar com raciocínio de senso
comum, o que acaba sendo uma desvantagem, dependendo da área de aplicação
do SE;
- aprendizado: especialistas humanos podem automaticamente se adaptar às
mudanças; já os SE devem sofrer alteração na base de conhecimento, o que nem
sempre é tarefa simples e rápida;
-
degradação: normalmente, os SE não apresentam a capacidade de
reconhecer quando não existe resposta ou quando o problema está além do
seu domínio de conhecimento.
2.2.2 – Agentes inteligentes
2.2.2.1 – Considerações Gerais e Definições
Existe muita polêmica sobre o que são exatamente os Agentes Inteligentes e
como eles diferem dos programas em geral. Com isso, diferentes pesquisadores
propõem diversas definições para esta área de Inteligência Artificial. Essas
definições vão desde o nível elementar até o nível mais elaborado. Além disso,
esses pesquisadores criaram também novos termos para referenciar os Agentes
Inteligentes, tais como: interfaces inteligentes, interfaces adaptativas, knowbots,
softbots, tasbots, nobot, entre outros. Verificou-se que cada autor procura enfatizar
as características desejáveis de um agente, de acordo com a aplicação por ele
desenvolvida.
Agente inteligente é um programa de computador que funciona em background e
desenvolve tarefas autônomas, conforme delegadas pelo usuário. São sistemas que
apresentam um comportamento determinado de acordo com um processo de
raciocínio, e o processo de raciocínio está baseado na maneira pela qual o agente
representa suas crenças, desejos e compromissos (Wooldridge e Jennings, 1994).
Maes (1996) define Agentes Inteligentes como sistemas computacionais residentes
em ambientes dinâmicos complexos, os quais percebem e atuam autonomamente
neste ambiente e, ao fazê-lo, realizam um conjunto de objetivos e tarefas para os
quais foram designados.
Nissen (1995) define um agente como sendo alguém ou alguma coisa que
representa interesses de outra parte. Assim, um agente seria um procurador com o
propósito de realizar ações em benefício da parte representada. Para o autor, a
maioria dos sistemas desenvolvidos em linguagens de quarta geração, como por
exemplo, a linguagem Object Pascal, utilizada no ambiente Borland Delphi, pode ser
definida como agente.
2.2.2.2 – Propriedades
Os agentes apresentam diversas propriedades que os diferenciam das outras
aplicações de software. Nem todas precisam estar presentes, entretanto quanto
mais propriedades o agente possuir, em geral, maior será o seu grau de inteligência.
O quadro a seguir apresenta as principais propriedades que os agentes podem
possuir:
Principais propriedades dos agentes
PROPRIEDADE
DESCRIÇÃO
Autonomia
Capacidade de funcionar/atuar sem a intervenção humana,
baseando suas ações em seu conhecimento sobre o
ambiente. O agente deve ser capaz de tomar iniciativas e de
se controlar (Wooldridge e Jennings, 1994; Khosla e Dillon,
1997; Nissen, 1995).
Aprendizagem
ou As mudanças de comportamento do agente devem ser
Capacidade
de baseadas em experiências prévias. O agente deve ser capaz
adaptação
de se adaptar às novas situações no ambiente. Isso inclui o
aprendizado de novas situações e não repetir os enganos
(Franklin e Graesser, 1996; Khosla e Dillon, 1997; Bradshaw,
1997).
Comunicabilidade
ou
Capacidade de o agente se comunicar com outros agentes e
Habilidade com pessoas, com o intuito de obter informações ou
ajudar
social
o usuário (Khosla e Dillon, 1997; Franklin e Graesser, 1996).
Colaboração ou
Habilidade do agente colaborar e trocar informações com
Cooperatividade
outros agentes para melhorar a qualidade de sua decisão/
resposta. A capacidade de colaboração é uma extensão
natural da capacidade de comunicação (Khosla e Dillon, 1997;
Nissen, 1995).
Persistência
ou Capacidade do agente manter um estado interno conciso
Continuidade
através do tempo, ou seja, o agente está continuamente
temporal
executando um processo (Franklin e Graesser, 1996).
Reatividade
Capacidade de o agente perceber as mudanças no ambiente
e atuar de acordo com essas mudanças (Franklin e Graesser,
1996; Wooldridge e Jennings, 1994).
Pró-Atividade
ou Um agente não deve simplesmente agir de acordo com as
orientado a metas
percepções do ambiente, mas sim procurar alcançar uma
meta (Franklin e Graesser, 1996; Wooldridge e Jennings,
1994).
Mobilidade
Capacidade de o agente mover-se de um ambiente (máquina)
para outro (Bradshaw, 1997; Hermans, 1996).
2.2.2.3 – Classificação dos Agentes
Nwana (1996), propõe uma classificação de acordo com:
a) A propriedade de mobilidade, podendo ser móvel ou estática.
b) A propriedade de reatividade – os agentes podem ser deliberativos ou reativos.
c) Atributos primários, sendo identificados em uma lista com, no mínimo, três deles:
cooperação, aprendizado e autonomia. A partir dessas propriedades, são derivados
quatro tipos de agentes: colaborativo, de interface, colaborativo de aprendizagem e
os inteligentes.
d) O seu papel – os agentes de informação (no âmbito da Internet). Esta categoria
normalmente explora ferramentas de busca da Internet e, quase sempre, estes
agentes gerenciam as informações nela disponíveis.
e) Agentes híbridos, que podem combinar duas ou mais filosofias agentes em um
único agente.
Na Figura 4, é representada a topologia proposta por Nwana .
Figura 4 – Topologia de agentes
O autor identificou também sete tipos de agentes, baseado nos atributos acima
citados. São eles:
-
Colaborativos – Os agentes colaborativos enfatizam as propriedades de
autonomia e cooperação (com os outros agentes) para executarem suas tarefas. As
principais características destes agentes são: autonomia, habilidade social e próatividade. Eles tendem a ser estáticos, e a maioria das implementações não executa
nenhum aprendizado complexo.
- De interface – Os agentes de interface enfatizam a autonomia e o aprendizado.
Eles apresentam também a propriedade de colaboração, pois colaboram com o
usuário (ao contrário dos agentes colaborativos), por não requererem uma
linguagem específica de comunicação de agentes. Estes agentes podem ser vistos
como assistentes pessoais.
- Móveis – Os agentes móveis são processos de software capazes de vagar
através de redes de computadores ou através da própria Internet, interagindo com
outros computadores, para executar a sua tarefa, apresentando grande autonomia e
cooperatividade.
- De Informação/internet – Estes agentes executam papel de gerenciamento e
manutenção de informações espalhadas em diversas fontes, pois executam
finalidades distintas dos demais. Entretanto, é possível que um agente de interface,
em dado momento, faça o papel de um agente de informação. Os agentes de
informações podem ser estáticos ou móveis, mas não apresentam habilidade social,
tampouco cooperação.
- Reativos – Estes agentes funcionam simplesmente de acordo com os estímulos
recebidos do ambiente. Um agente reativo é visto como uma coleção de módulos
que operam de maneira autônoma e são responsáveis por tarefas específicas.
- Híbridos – Estes agentes combinam em um único agente diferentes filosofias. O
número de aplicações híbridas existentes é relativamente pequeno se comparado às
outras. Isso se deve à dificuldade de sua construção.
- Inteligentes – ainda não existem agentes realmente inteligentes; entretanto, os
Agentes Inteligentes seriam capazes de cooperar e aprender, além de possuir
autonomia para executar suas tarefas.
A tipologia proposta por Nwana (1996) está apresentada na Figura5.
Agentes
Reativos
Agentes Híbridos
Figura 5 – Tipologia de Agentes.
2.2.2.4 – Aplicações de Agentes Inteligentes
Existem muitas aplicações de Agentes Inteligentes nas mais variadas áreas. A
seguir serão apresentadas algumas aplicações de agentes, nas áreas de educação,
comércio e saúde, conforme quadro resumo a seguir:
Quadro resumo de algumas aplicações de agentes
ÁREA
APLICAÇÃO
D ESCRIÇÃO /COMENTÁRIO
REFERÊNCIAS
Ensino
Agentes Inteligentes em controles
pedagógicos.
(Baylor-A, 2000)
Ensino
Sistemas Multi-Agentes reforçam a
aprendizagem.
(Miyazaki-K et al, 1999)
Social
Aplicação de modelos-Agentes Inteligentes
(Pomerantseva-GN, 1999)
Interativos para simulação do progresso social.
Educação
Comércio
Projetos
Como multiplicar a aprendizagem com
Agentes em problemas de planejamento de
projetos.
(Takadama-K, 1999)
Simulações
Agentes Inteligentes em simulações militares.
(Tidhar-G et al, 1999)
Informação
Ambientes computacionais heterogêneos
colaborando em tempo real.
(Marsic-I, 2000)
Jogos
Agentes Inteligentes em jogos de computador. (Van-Lent-M et al, 1999)
Redes
Agentes Móveis resolvendo problemas de
gerenciamento de redes.
(Kunstic-M et al, 1999)
Sistemas Multi-Agentes Reativos decidindo a
especificação de métodos em projetos.
(Bounabat-B et al, 1999)
Segurança
Monitorando a presença e status de pessoas
com Arquitetura Multi-Agentes.
(Ohguro et al, 1999)
Segurança
na saúde
Agentes Guardiães – Sistemas de Segurança
em situações críticas na saúde.
(Fox-J, 2000)
Emoções
Lógica Fuzzy no processo de decisão da
estrutura humana.
(Seif-El-Nasr-M et al,
2000)
Projetos
Saúde
2.2.4 – Sistemas Híbridos
Os sistemas híbridos inteligentes são uma “integração das diferentes técnicas de
inteligência artificial com sistemas computacionais tradicionais, como planilhas
eletrônicas e banco de dados”, mas, não são combinações de duas ou mais técnicas
de Inteligência Artificial que suprem as limitações de cada técnica individualmente
(Goonatilake e Khebbal, 1995).
Segundo Medsker (1995), a primeira e a avançada integração entre as técnicas
de Inteligência Artificial corresponde às subáreas de Sistemas Especialistas e Redes
Neuronais. Porém, com a evolução individual de outras técnicas, tais como:
algoritmos genéticos, raciocínio baseado em casos, sistemas difusos e Agentes
Inteligentes, novas integrações poderão ser feitas, gerando sistemas híbridos mais
poderosos e eficazes.
Segundo (Khosla e Dillon, 1997), os sistemas híbridos podem ser agrupados em
quatro classes, nomeadas: sistemas de fusão, sistemas de transformação, sistemas
de combinação e sistemas de associação.
- Sistemas de Fusão – Em sistema de fusão, as características de representação
e/ou processamento de informações de uma metodologia inteligente A são fundidos
na estrutura de representação de outra metodologia inteligente B.
- Sistemas de Transformação – Os sistemas de transformação são utilizados
para transformar uma forma de representação em outra.
- Sistema de Combinação – Sistemas de combinação envolvem hibridação
explícita. Estes sistemas envolvem um arranjo modular de duas ou mais
metodologias inteligentes para solucionar problemas que envolvem o mundo real.
- Sistemas Associativos – Os sistemas associativos buscam associar sistemas
de fusão, transformação e combinação, com a finalidade de maximizar a qualidade
das soluções obtidas.
Na figura 6, é apresentada a relação entre a qualidade das soluções e as
classes dos sistemas híbridos.
Figura 6 – Qualidade da solução x campo de resolução dos Sistemas Híbridos.
A figura 7 demonstra graficamente as diferentes classes dos Sistemas Híbridos
Figura 7 – Caracterização das classes dos Sistemas Híbridos.
2.3 – Plataforma Delphi para Programação
O Delphi, um Pascal para Windows, é, segundo Cantù (1999), uma das melhores
combinações de programação orientada a objetos e programação visual para
Windows, pela facilidade de uso e ótimo desempenho em equipamentos de uso
corrente. Esta importante ferramenta de desenvolvimento de software abrangente,
permite, de forma rápida e com produtividade, solucionar questões envolvendo
bancos de dados, cliente/servidor, múltiplas camadas, intranet ou internet com
controle e poder.
2.3.1 – Geração de SQL
Outra importante ferramenta utilizada é a linguagem SQL e SQL*Plus que,
conforme afirma Morelli (2000), permite grandes aplicações de relatórios com
SQL*Plus, montando scripts contendo comandos SQL e que geram outros
comandos SQL, facilitando a automatização de grandes quantidades de tarefas.
2.3.2 – Protocolo e Linguagem de Comunicação
A comunicação entre dois ou mais agentes é estabelecida através de regras que
garantem a ordem de comunicação e a transferência de dados. O conjunto dessas
regras pode ser chamado de protocolo de comunicação.
Entre os vários estudos em andamento sobre protocolos de comunicação em
SMA (Sistemas Multi-Agentes), destacam-se o DCOM (Distributed Component
Object Model) que é uma versão distribuída do modelo COM da Microsoft, o qual
promove
comunicação
entre
componentes
distribuídos
em
uma
rede
de
computadores (Lima, 1999) e o KQML (Knowledge Query and Manipulation
Language). O KQML é um protocolo de comunicação baseado em performativas que
possuem funções predeterminadas (Paraíso, 1997).
2.3.3 – O Protocolo DCOM e Objetos Distribuídos
O protocolo DCOM promove a comunicação entre Objetos Distribuídos, que são
conjuntos de linhas de códigos responsáveis por algumas tarefas referentes à sua
classe, podendo estar localizados em qualquer máquina de uma rede, assim como
podem ser chamados e utilizados por qualquer delas, independente do sistema
operacional e linguagem que tenha sido desenvolvido.
Para desenvolver Objetos Distribuídos, utilizam-se linguagens específicas, onde
cada uma proporciona uma solução diferente, sendo as mais conhecidas: Java,
Microsoft Visual Basic, Microsoft Visual C++, PowerBuilder, Micro Focus Visual
Object, COBOL e Delphi, todos implementam objetos DCOM.
O DCOM tem suas raízes nas tecnologias de objeto da Microsoft: o COM
(Component Object Model), OLE (Object Linking and Embedding) e ActiveX (COM
habilitado para a Internet). Deve-se considerar COM e DCOM como uma única
tecnologia que fornece uma escala de serviços para a interação de objetos. Se no
momento de uma comunicação for necessária a utilização do padrão COM, ele será
utilizado; porém, se for necessária a tecnologia DCOM, esta será utilizada. Cada
interface de um objeto COM/DCOM deve derivar de uma interface chamada
Iunknown, que provê as operações básicas que qualquer objeto deve dispor. Essas
operações básicas são três ( Lima, 1999):
QueryInterface – permite a um cliente consultar as interfaces de um objeto.
AddRef – incrementa o contador de referência.
Release – decrementa o contador de referência.
2.3.4 – O Protocolo KQML
O KQML é o resultado do trabalho do grupo External Interfaces Working Group
do DARPA Knowledge Sharing Effort, cujo objetivo desse grupo é oferecer
ferramentas para facilitar a troca de informações entre sistemas computacionais
envolvidos em ambientes heterogêneos(Paraíso, 1997). O KQML é um protocolo
para programas que se utilizam da comunicação para troca de informação, sem se
preocupar com o conteúdo desta informação. Esta linguagem está disponível para
utilização e pode ser implementada em C/C++ usando TCP/IP para comunicação
entre processos.
2.3.4.1 – Performativas KQML
A performativa KQML é expressa na forma de uma cadeia ASCII, usando uma
sintaxe bem definida. Esta sintaxe é baseada na notação polonesa pré-fixada do
Commom Lisp, cuja escolha se deve à sua simplicidade de leitura(Paraíso, 1997).
Seguem alguns exemplos de performativas:
-
achieve: um agente A deseja que um agente B faça algo de seu domínio.
-
ask-all: um agente A deseja todas as respostas de um agente B para uma
questão;
-
break: um agente A deseja que um agente B quebre uma conexão em pipe.
-
insert: um agente A solicita a B para acrescentar uma sentença em sua base
de conhecimento.
-
tell: informa uma sentença.
-
etc.
2.3.4.2 – KIF (Knowledge Interchange Format)
O KIF é uma linguagem definida pelo grupo DARPA Knowledge Sharing
Initiative, desenvolvida com o propósito de formatar o conteúdo de uma mensagem
KQML(Paraíso, 1997). KIF é uma linguagem baseada no cálculo predicativo de
primeira ordem, possibilitando a comunicação e troca de conhecimento entre os
agentes. Sendo que o conhecimento pode ser formatado em regras, expressões
quantificadas, etc.
No próximo capítulo será apresentado o modelo teórico, com base nas teorias
estudas neste capítulo.
CAPÍTULO III
3 - MODELO PROPOSTO
3.1 – Considerações Gerais
Considerando o grande número existente de diferentes softwares, distribuídos
nos diversos setores de instituições públicas ou privadas, onde as pessoas
responsáveis pelos níveis decisórios necessitam de informações em tempo real,
para que as decisões possam ser tomadas em tempo hábil, surge uma proposta
inovadora para integrar os sistemas existentes de forma interativa e automática, com
o auxílio da inteligência artificial distribuída e suas técnicas, buscando a melhoria da
eficiência e da eficácia na gestão de informações, quer sejam em nível interno, como
externo às instituições, através da grande rede WEB.
Com a globalização da economia, surge a necessidades de ações rápidas que
muitas vezes dependem de análises de relatórios para se tomar as decisões
cabíveis, cujos responsáveis, na maioria da vezes, não podem dispor desse tempo.
Procurando a melhor solução para o problema, propõe-se a criação de um
“ambiente multi-agente para desenvolvimento e/ou integração de sistemas
existentes”, de forma que usuários comuns possam programar através de menus
amigáveis, agentes especialistas para cada caso específico, aproveitando dados dos
próprios sistemas já existentes, os quais são analisados, comparados com outros
dados e repassados para os usuários, de forma impressa ou sonora, com gráficos e
tabelas.
Sendo
que,
após
um
primeiro
momento
de
um
processo
ensino/aprendizagem, o sistema passa a executar as tarefas de forma automática,
fornecendo informações atualizadas sempre que houver qualquer alteração nos
diversos bancos de dados dos sistemas integrados.
3.2 – Descrição do Modelo
-
Ambiente Multi-Agente para
Desenvolvimento e/ou Integração de Sistemas Informatizados
A situação problema, enfocada neste trabalho, envolve uma série de recursos e
necessidades, onde no centro estão as pessoas responsáveis superocupadas,
procurando as melhores soluções, conforme ilustrado na
figura 8. A solução
proposta é um “Gerente Virtual”, capaz de interagir através de vários módulos (ver o
centro da figura), com diferentes funções, atuando no meio de forma integrada e
inteligente. Telas interativas e menus amigáveis garantem, ao usuário, a facilidade
para operar e programar ou “ensinar” o sistema para cada caso específico.
A figura 9 mostra um quadro resumo – Arquitetura do Sistema, das funções
desempenhadas pelos diferentes módulos, ilustrando também o canal interno de
comunicação entre eles.
Na seqüência, serão descritas as funções de cada módulo.
Percepção do Ambiente - O sistema é capaz de: detectar automaticamente todas
as estações e aplicações ativas no ambiente; detectar a presença efetiva de
usuários nas estações do ambiente; modificar a memória dinâmica
comandos de voz.
e detectar
Bancos de dados
dos sistemas
informatizados
Sistemas
informatizados
s
Rede local
Usuários dos
sistemas
informatizados
Internet
s Percepção do ambiente
s Base de conhecimento
s Memória dinâmica
s Aprendizado
s Atuação no ambiente
s Comunicação
s Autonomia
Outras pessoas
Computadores
Outros agentes
de software
Mensagens em
linguagem natural
Mensagens
codificadas
Gráficos
Consultas
FIGURA 8 -
Relatórios
AMBIENTE DE APLICAÇÃO
PERCEPÇÃO DO AMBIENTE
BASE DE CONHECIMENTO
w Estações e aplicações ativas no ambiente
w Estações do ambiente
w Presença efetiva de usuários nas estações do ambiente
w Usuários no ambiente
w Modificações na Memória Dinâmica
w Aplicações no ambiente
w Detecção de comandos de voz
w Operações válidas
w Procedimentos lógicos do gerente virtual
APRENDIZAGEM
w Telas interativas para modificação
da base de conhecimento
w Autoconfiguração de estações no ambiente
w Autoconfiguração do dicionário de dados
AUTONOMIA
w Reação automática a estímulos percebidos
através de eventos
w Execução de tarefas baseadas no tempo
w Agenda de tarefas temporais
w Conexão com bancos de dados
w Dicionário de dados das aplicações
w Sentenças SQL
w Formatação de gráficos
w Formatação de relatórios
MEMÓRIA DINÂMICA
w Bancos de dados dos sistemas informatizados
w Banco de dados internos do sistema
ATUAÇÃO NO AMBIENTE
COMUNICAÇÃO
w Apresentação de informações visuais
w Mensagens interativas para usuários (linguagem natural)
(mensagens e gráficos)
w Correio eletrônico na Internet (linguagem natural)
w Geração de avisos sonoros
w Eventos de dados (objetos distribuídos, KQML, KIF)
w Fala sintetizada
w Reprodução de áudio digital
w Emissão de relatórios
w Execução/finalização de aplicações
(outros sistemas informatizados)
w Modificação da Memória Dinâmica
Canal interno de comunicação
w Interpretação de procedimentos lógicos
do gerente virtual
Figura 9 - QUADRO RESUMO DO AMBIENTE PROPOSTO
Base de Conhecimento – Mantém o registro de: estações do ambiente, usuários do
ambiente, aplicações do ambiente, operações válidas, procedimentos lógicos do
“gerente virtual”, agenda de tarefas temporais, conexão com bancos de dados,
dicionários de dados das aplicações, sentenças SQL que são instruções em
linguagem declarativa, orientando o gerenciador de banco de dados para extrair as
informações desejadas ou modificar os dados da forma que o usuário desejar,
formatação de gráficos e relatórios.
Memória Dinâmica – Interage com os bancos de dados dos sistemas
informatizados sobre o domínio do ambiente e com o banco de dados interno do
sistema.
Aprendizagem – Telas interativas com menus amigáveis permitem que usuários
comuns possam programar agentes especialistas para cada caso, modificando a
base de conhecimento; todas as modificações são autoconfiguradas em todas as
estações do ambiente; também é autoconfigurado o dicionário de dados, que são
tabelas com dados dos diferentes casos ou situações programadas.
Autonomia – Reação automática a estímulos percebidos através de eventos e
execução de tarefas baseadas no tempo.
Comunicação – A comunicação é processada através de: mensagens interativas
para usuários em linguagem natural; correio eletrônico na Internet em linguagem
natural e eventos de dados, utilizando objetos distribuídos, KQML e KIF.
Atuação no ambiente - Através de: apresentação de informações visuais com
mensagens e gráficos; geração de avisos sonoros; fala sintetizada; reprodução de
áudio digital; emissão de relatórios; execução/finalização de aplicações de outros
sistemas informatizados interligados; modificação da memória dinâmica e
interpretação de procedimentos lógicos do “gerente virtual”.
No próximo capítulo será descrito o desenvolvimento do soltware para atender o
que foi proposto no modelo teórico deste capítulo.
.
CAPÍTULO IV
4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO DO SISTEMA
4.1 – Plataforma de Desenvolvimento
O Sistema Multi-Agentes (SMA) foi desenvolvido e implementado na linguagem
Delphi, podendo conseqüentemente
operar
em
ambientes
Windows,
com
equipamentos e sistemas operacionais tradicionais, reduzindo custos e outras
limitações existentes em outros sistemas. O sistema possui uma característica
genérica. Embora existam inúmeros softwares desenvolvidos para as mais
diferentes situações, é muito difícil para as pessoas, que estão à frente
nas
gerências de grandes instituições públicas ou privadas, conseguir tempo para buscar
dados de diferentes áreas, analisar, comparar com dados de períodos anteriores,
classificar e tomar as decisões necessárias, baseadas em fatos reais e não por
intuição ou experiência.
4.2 - Sistema Multi-agentes para Gerenciamento de Sistemas –
SMAGS
O SMAGS desenvolvido tem como característica principal a generacidade,
contendo vários módulos ou subsistemas, onde o subsistema principal, denominado
Gerente de Aplicações, é uma célula que pode ser aperfeiçoada ou substituída (em
trabalhos futuros), de forma a tornar este SMAGS cada vez mais inteligente e,
talvez, sem querer ser por demais pretensioso, com o uso compartilhado das várias
técnicas de inteligência artificial, recursos computacionais e outros, construir o seu
próprio conhecimento, adquirindo capacidades similares às dos seres humanos e,
conseqüentemente, ser dotado de consciência.
4.2.1 – Estrutura de Funcionamento
O Sistema Multi-Agentes para Gerenciamento de Sistemas, ou simplesmente
SMAGS, é um software dotado de recursos para gerenciar, de forma autônoma,
serviços especiais que são normalmente desenvolvidos por seres humanos, tais
como:
análise,
pesquisa
e
classificação
de
informações,
num
ambiente
informatizado.
O SMAGS atuará sobre o meio através da execução de aplicações
especializadas, modificação automática de banco de dados, geração de consultas,
gráficos e relatórios, bem como, a comunicação de mensagens visuais e sonoras,
refletindo suas percepções e ações sobre o sistema gerenciado.
Não será apresentado neste capítulo um fluxograma das rotinas e subrotinas do
SMAGS, por que as possibilidades seriam infinitas, em função da flexibilidade do
sistema para cada aplicação específica. No capítulo de testes e resultados serão
apresentados os fluxogramas para os testes realizados, onde serão detalhadas cada
uma das partes testadas, tendo em vista o funcionamento, com o fornecimento de
resultados, os quais necessitam passar por todas as rotinas do sistema.
A sensibilidade do SMAGS às ocorrências no sistema gerenciado, é dada
através de eventos especiais, que podem ser disparados por qualquer um de seus
elementos, tais como: por aplicações especiais e pelos próprios agentes do SMAGS.
Esses eventos são comunicados, em primeira instância, dentro do sistema
operacional, sensibilizando os subsistemas que estiverem registrados para
determinados eventos. Em segunda instância, os eventos são comunicados ao
longo da rede, através do agente de comunicação de eventos que, desse modo,
converte eventos locais em eventos externos e vice-versa, a fim de propagar as
informações para todos os destinatários registrados.
O subsistema principal é o gerente de aplicações, que deve ser programado ou
treinado para monitorar e atuar sobre determinadas aplicações no sistema
gerenciado. Os outros subsistemas são elementos genéricos que poderão existir em
qualquer ambiente gerencial, de modo a colaborar com o gerente de aplicações,
fazendo dele um subsistema mais especializado e mais fácil de construir e adaptar,
para cada caso específico de gerenciamento.
O gerente de aplicações será notificado sobre ocorrências especiais no seu
domínio, ou ambiente, de gerenciamento. Esses eventos são classificados em
alguns tipos elementares, que serão ainda subclassificados em operações. Os
principais eventos que transitarão no ambiente gerenciado são:
- Evento de notificação genérica – usado por aplicações específicas do ambiente
gerenciado.
- Evento de notificação de tarefa agendada – usado para informar que uma tarefa
agendada está na hora de ser executada.
- Evento de transmissão de dados – usado para transferir resultados de consultas
do subsistema explorador de dados.
- Evento de transmissão de mensagem – usado para comunicar mensagens para
usuários.
- Evento de controle de conexão de usuário – usado para notificar uma conexão
ou desconexão de usuário ao sistema.
- Evento de execução de operação – usado para executar tarefas especializadas
nos subsistemas constituintes.
Todos os eventos podem alcançar o gerente de aplicações, desse modo ele
poderá ser treinado para responder autonomamente a eles, ou, então, pode ser
programado para reagir de forma especializada a determinadas situações.
4.2.2 - Arquitetura do Sistema
Os seguintes elementos constituirão o SMAGS, sendo que todos eles cooperam
mutuamente, através de eventos locais ou externos por meio da rede (intranet ou
internet).
Aplicações específicas
Aplicações específicas funcionam na rede – no ambiente gerenciado consultando e modificando os dados de bancos de dados, bem como realizando
operações não dedicadas a bancos de dados.
Essas aplicações não precisam, necessariamente, ser modificadas para
funcionarem de modo integrado ao SMAGS, haja vista que a sua integração pode
ocorrer através da simples execução destes programas ou através do banco de
dados que eles operam. O explorador de dados poderia, assim, extrair dados e
modificar dados que estão sendo compartilhados por tais aplicações em uso no
ambiente gerenciado. Por outro lado, com adaptações nessas aplicações
específicas, pode-se tornar a interatividade do gerente de aplicações muito mais
intensa, permitindo, por exemplo, que ele realize operações especiais dentro dessas
aplicações ou perceba operações especiais que estão sendo feitas nessas
aplicações. Para atender à parte de percepção, atuação e base de conhecimento do
ambiente, descrita no modelo, foi idealizado pelo autor e desenvolvido por um
programador, um Agente Explorador de Dados, que age e interage da forma descrita
a seguir, e ilustrada na figura 10.
Agente Explorador de Dados
É a aplicação de comunicação com bancos de dados, responsável pela
extração, modificação e comunicação de informações do banco de dados. O
explorador de dados é o módulo ou subsistema que irá desempenhar as seguintes
funções no ambiente gerenciado:
a) Permitir que os usuários construam e executem consultas especiais para um
banco de dados qualquer, existente no ambiente gerenciado, através de uma
interface amigável e universal. Este módulo ou subsistema usa tecnologias
diversas de conectividade com banco de dados através de ODBC (Open
DataBase Conectivity) e de bibliotecas específicas para acesso nativo, e
ampliável, para diversos tipos de bancos de dados. Alguns tipos de bancos de
dados que podem ser nele conectados são: Oracle, SQL Server, SyBase,
DB2, InterBase, PostgreSQL, MySql, dBase, FoxPro, Ms-Access, Informix,
ZIM e muitos outros.
b) Permitir que os usuários construam formatações de relatórios e gráficos, com
auxílio de uma estrutura de menus. As consultas, relatórios e gráficos são
construídos por pessoas que têm um mínimo conhecimento da estrutura do
banco de dados e são montadas de tal forma que os usuários possam
executá-las parametrizavelmente, sendo assim mecanismos genéricos de
extração de dados. Esses mecanismos também poderão ser disparados,
automaticamente, por eventos do SMAGS.
c) Permitir que os usuários construam e executem rotinas de modificação de
dados, baseadas em parâmetros que podem ser solicitados para o usuário ou
recebidos através de eventos do SMAGS, de modo a realizar alguma função
específica no sistema gerenciado, atualizando seus dados.
A operação do extrator de dados pode ser feita independentemente dos outros
subsistemas do SMAGS. Mas quando feita em conjunto, permite que o SMAGS
perceba as operações que o usuário está fazendo, correlacionando-as com outros
dados, permitindo assim algum tipo de aprendizado ou treinamento. O extrator
também poderá receber comandos do SMAGS e transmitir informações do banco de
dados, através dos eventos locais e externos.
O extrator de dados também poderá integrar aplicações específicas do ambiente
gerenciado, de modo a desempenhar funções que poderiam ser programadas dentro
de tais sistemas, mas que, de modo integrado ao SMAGS, tornará a interface com o
banco de dados mais homogênea e permitirá que essas aplicações específicas
tenham forte interatividade com o SMAGS.
O explorador de dados poderá operar numa única estação da rede, em geral no
servidor, ou mesmo em várias estações. A forma proposta é sua execução
automática, ocorrendo numa única estação – servidor – mas sua execução
específica pelos usuários poderá ocorrer em qualquer ponto da rede. Neste caso,
todas estas estações estarão comunicando eventos na rede, para notificar as
operações que estão sendo executadas no ambiente gerenciado.
Aplicações específicas
(sistemas informatizados no ambiente)
Agente Explorador de dados
(percepção, atuação e base de conhecimento do ambiente)
Agente de tarefas agendadas
(autonomia e base de conhecimento do ambiente)
Agente de mensagens
(comunicação em linguagem natural)
Canal interno de comunicação dos eventos
( COM )
Bancos de dados
dos
sistemas
informatizados
Agente de conexão de usuários
(percepção e atuação no ambiente)
Agente Gerente Virtual
(autonomia e atuação no ambiente)
Agente de comunicação
(comunicação de eventos no ambiente)
Canal externo de comunicação
Sistemas externos
(DCOM e TCP/IP)
Figura 10 - QUADRO RESUMO DO AMBIENTE PROPOSTO
ARQUITETURA DO SISTEMA
Para atender à parte de autonomia e também à base de conhecimento do
ambiente, citada no modelo, foi integrado ao sistema, com os devidos ajustes, um
Agente de Tarefas Agendadas, o qual age e interage da forma descrita a seguir, e
ilustrada na figura 10.
Agente de tarefas agendadas
É o agente especialista responsável por organizar a agenda de eventos, bem
como disparar eventos de acordo com a prévia programação.
Este subsistema poderá operar numa única estação, em geral no servidor, ou em
várias estações do sistema gerenciado.
A execução, propriamente dita, das tarefas não será realizada pelo agente, mas
sim, por algum receptor de eventos registrado para essa ocorrência. Desse modo, o
agendador de tarefas torna-se genérico, delegando a execução específica de
atividades para algum outro elemento do sistema gerenciado, previamente existente
ou implementado especificamente para tal finalidade.
As seguintes funções serão realizadas por esse agente:
a) Permitir o cadastramento de operações em tempos predeterminados ou em
resposta a determinados eventos do ambiente gerenciado. A programação de
tempo poderá ser absoluta, informando data e hora arbitrárias para disparar a
operação; ou, então, poderá atuar, informando um intervalo de tempo que
sucederá algum evento específico do sistema gerenciado, como por exemplo,
uma determinada execução de atualização de dados, uma execução de um
determinado programa, a ocorrência de algum feriado, final de semana ou
outro evento de calendário, etc.
b) Registrar e perceber eventos associados ao disparo de tarefas agendadas.
c) Cronometrar o tempo para o disparo de tarefas agendadas.
d) Notificar o sistema, através de eventos específicos, informando que uma
tarefa está na hora de ser executada.
e) Operar de forma autônoma, através de eventos do SMAGS.
Para atender à parte de comunicação em linguagem natural no ambiente, citada
no modelo, foi desenvolvido um Agente de Mensagens, que age e interage da forma
descrita a seguir, e ilustrada na figura 10.
Agente de mensagens
É o agente especialista responsável por elaborar, armazenar, classificar e
entregar mensagens de usuários na rede. Este subsistema é análogo a um cliente,
integrado a um servidor de e-mail da Internet. Porém, este subsistema deverá
realizar funções adicionais especializadas, para operar em cooperação com o
SMAGS. Esse agente deverá operar em todas as estações do ambiente gerenciado.
As seguintes funções deverão ser desempenhadas por esse agente:
a) Permitir a pré-definição de mensagens especiais (visuais ou sonoras), que
serão usadas para notificar os usuários do sistema gerenciado, acerca das
ocorrências percebidas tanto por pessoas, quanto pelo SMAGS.
b) Permitir a elaboração de quaisquer mensagens, cujo remetente é o usuário
ativo no agente de conexão de usuários, e o destinatário, que é qualquer usuário
registrado como usuário do sistema gerenciado.
c) Enviar e receber mensagens entre usuário do sistema gerenciado, utilizando
eventos do agente de comunicação.
d) Notificar, classificar e arquivar mensagens recebidas localmente e recebidas
no destinatário.
e) Arquivar mensagens enviadas para cada destinatário.
f) Operar autonomamente através de eventos disparados por outros subsistemas
do SMAGS.
Para atender à parte de percepção e também atuação no ambiente, foi
desenvolvido um Agente de Conexão de Usuários, que age e interage da forma
descrita a seguir, e ilustrada na figura 10.
Agente de conexão de usuários
É o agente especialista responsável por ativar e monitorar as conexões de
usuários na rede. Esses agentes mantêm registros dos usuários autorizados para
operar o SMAGS. ( ver tela ilustrativa no anexo I ).
Ele deverá desempenhar as seguintes funções no ambiente gerenciado:
a) Solicitar senha para ativar a conexão de um usuário em uma estação
qualquer.
b) Permitir desativação do usuário corrente e reconexão de outro usuário na
mesma estação.
c) Monitorar os usuários conectados no sistema.
d) Registrar, opcionalmente, um log das operações que estão sendo realizadas
pelos usuários no sistema gerenciado.
e) Realizar todas as suas operações, de modo autônomo, através de eventos
recebidos e enviados no SMAGS.
Para atender às características de um “um gerente virtual”, citada no modelo, foi
desenvolvido um Agente Gerente Virtual, que age e interage da forma descrita a
seguir, e ilustrada na figura 10.
Agente Gerente de aplicações
Este é o agente principal do sistema, responsável por integrar as aplicações e
outros agentes que fazem parte do sistema. Este agente pode ser aperfeiçoado em
nível de “inteligência”. Neste trabalho inicial, ele será modelado através de um
especialista computacional, constituído de uma base de conhecimento, que por sua
vez será montada através de regras lógicas e um dispositivo de inferência, que
analisará as regras, de modo a reagir automaticamente aos eventos que estiverem
trafegando no sistema. Futuramente, este agente poderá aprender suas próprias
regras, com base no que ele percebe sobre eventos e dados que trafegam no
sistema, conforme descrito no tópico anterior.
Esse agente poderá executar em qualquer ponto do sistema gerenciado. Sua
concepção deverá ser, essencialmente, cliente-servidor, porque deverá ser capaz de
centralizar sua base de conhecimento e distribuir suas ações na rede.
Em geral, suas atribuições serão:
a) Registrar, receber e codificar os eventos de entrada que são relevantes para
suas ações. Geralmente, todos os eventos deverão chegar até o gerente.
b) Aplicar as entradas codificadas - eventos de operações e eventos de dados –
à etapa de resolução, aprendizado e reação autônoma, avaliando
numericamente as informações presentes, mudando seu estado quando
necessário e decodificando seus resultados para agir sobre o meio.
c)
Agir sobre o sistema gerenciado, executando outras aplicações, produzindo
eventos para executar operações nos subsistemas do SMAGS, realizando
tarefas específicas do ambiente gerenciado.
d)
Permitir, opcionalmente, que algum operador humano ou outra aplicação
possa interferir em sua autonomia ou monitorar seu estado, quando possível
e desejado. Isso pode ser feito através de uma interface de usuário ou mesmo
através de eventos especiais do SMAGS.
Para atender à parte de comunicação de eventos no ambiente, foi desenvolvido
um Agente de Comunicação, que age e interage da forma descrita a seguir, e
ilustrada na figura 10.
Agente de comunicação
É o agente especialista responsável por converter e entregar eventos entre
aplicações e outros agentes na rede.
Este subsistema deverá funcionar em
segundo-plano, de modo autônomo e transparente, em todos os pontos do ambiente
gerenciado, embora, apenas um destes pontos seja configurado como servidor de
comunicação. Todos os pontos podem receber eventos locais e propagá-los para
que o servidor os entregue ao destinatário, quando existirem receptores de eventos
interessados externamente.
Cada ponto da rede mantém uma lista de receptores externos e o endereço do
servidor. Assim, apenas eventos que devem ser entregues em pontos externos
trafegarão na rede, do remetente para o servidor e do servidor para o destinatário,
ou, então, do remetente para o destinatário diretamente, caso essa topologia seja
mais interessante.
Os eventos locais são pacotes de dados que trafegam através de algum sistema
de comunicação do sistema operacional. Algumas possibilidades são: sistema de
mensagens do sistema operacional, OLE Automation, COM, DCOM, CORBA, Mail-
Slots, memória compartilhada, ou mesmo, através de arquivos ou banco de dados
compartilhados ou DLL compartilhadas.
Os eventos externos são pacotes de dados que trafegam através da rede local
ou Internet. Algumas possibilidades de pacotes de básicos e caminhos de mais alto
nível são: TCP/IP, NetWare, CORBA, DCOM, HTTP ou então, através de bancos de
dados cliente-servidor, arquivos compartilhados na rede ou mesmo algum outro
protocolo de rede.
O agente de comunicação deverá realizar as seguintes funções no ambiente
gerenciado:
a) Registrar receptores, ou ouvintes, para determinadas categorias de eventos.
b) Receber eventos locais, identificar o destinatário e avaliar se é local ou
externo.
c) Propagar eventos locais no sistema operacional, quando o remetente e o
destinatário forem locais.
d) Converter eventos locais em eventos externos, quando o remetente for local e
o destinatário for externo.
e) Converter eventos externos em locais, quando o remetente for externo e o
destinatário for local.
f) Monitorar a presença do servidor e dos outros clientes.
No próximo capítulo serão feitas algumas aplicações em casos práticos do
software desenvolvido.
CAPÍTULO V
5. – TESTES REALIZADOS E ANÁLISE DOS RESULTADOS
5.1 – Aplicação em Casos Práticos
O SMAGS foi desenvolvido e aplicado em casos práticos, na Unidade de
Curitiba do CEFET-PR, com a finalidade de viabilizar o acompanhamento
acadêmico, extraindo dados do sistema acadêmico já existente no CEFET-PR;
analisando, classificando e elaborando gráficos ilustrativos a cada lançamento de
notas e freqüências, fornecendo informações em tempo real em todos os níveis,
setores ou pessoas, de forma comparativa, interativa e automática.
5.2 – Testes na Aplicação em Avaliação ou Acompanhamento
Acadêmico
O sistema foi testado utilizando uma parte uma parte do sistema acadêmico do
CEFET-PR, envolvendo as disciplinas do curso de Engenharia Industrial Elétrica,
tendo como objetivo analisar a cada lançamento de notas e freqüências, as
disciplinas onde os alunos tenham obtido notas inferior a 2, fornecendo informações
detalhadas desses alunos, turmas/professores, distribuindo as informações em todos
pontos onde o sistema estiver instalado, nos diferentes setores do ambiente
gerenciado.
Para a execução dos trabalhos/tarefas propostas, na forma tradicional, seriam
necessárias várias horas de trabalho, onde um usuário privilegiado e com bom
conhecimento de informática, deveria abrir uma aplicação de extração de dados
para realizar várias consultas ao sistema acadêmico, envolvendo várias operações
conforme ilustrado na figura 11. Com os dados obtidos é necessário ainda elaborar
gráficos e/ou tabelas ilustrativas para encaminhar aos setores ou pessoas
envolvidas para que sejam tomadas as providência necessárias. Sendo que embora
já existam os conhecidos E-mail para a transmissão de informações, eles ainda não
são dotados de formas motivadoras que levem o usuário a se interessar pelo seu
uso mais intensamente, preferindo a impressão em papéis, o que resulta em mais
gastos desnecessários e tempo perdido.
O SMAGS em teste, instalado em um notebook Compaq Pressário 1200 de 450
MHZ e em um desktop de 350 MGZ, ambos com o sistema operacional windows98,
portanto, equipamentos e sistema de uso corrente, após um período de tempo inicial
utilizado para configuração e/ou treinamento do sistema para
a aplicação
específica, resultando em um Sistema Especialista para essa situação, segundos
após a digitação/inserção
dos dados, os resultados passaram a ser fornecidos
automaticamente, o que caracteriza o tempo real proposto para o sistema.
O fluxograma da rotina das várias operações executadas pelo
SMAGS ou
Gerente Virtual, está ilustrado na figura 12, onde também estão registrados, em
forma de resumo, as principais operações.
Início da rotina de avaliação
acadêmica bimestral
Um usuário privilegiado deve
abrir uma aplicação de extração
de dados para realizar várias
consultas ao sistema acadêmico
Avaliação de turmas/professores
Avaliação de alunos
O índice de aprovação é dado pelo
número de alunos aprovados sobre o
número de alunos reprovados
O índice de aprovação é dado pelo
número aprovações sobre o número de
reprovações do aluno
A média c o n s i d e r a a m é d i a d e t o d o s o s
alunos da turma
A média é c a l c u l a d a c o m b a s e n a s n o t a s
bimestrais do aluno
A frequência é a m é d i a d e f r e q u ê n c i a d e
todos os alunos da turma
A frequência c o r r e s p o n d e a o t o t a l
bimestral de presenças
O coeficiente de rendimento é
calculado conforme o critério da
instituição
O usuário privilegiado deve consultar o banco de dados
para identificar turmas/professores que apresentam
índice de aprovação semestral, média ou frequência
bimestrais abaixo de parâmetros pré-estabelecidos
para avaliação das turmas/professores
Existe alguma turma/professor
com desempenho abaixo do
desejado e ainda não
identificado no bimestre
atual?
Sim
O usuário deve elaborar gráficos do histórico
dos últimos semestres sobre o desempenho
de cada turma identificada na pesquisa, para
encaminhá-los com uma anotação para os
professores e coordenadores
correspondentes a cada turma que está com
desempenho insatisfatório
Não
O usuário privilegiado deve consultar o banco de
dados para identificar alunos que apresentam
índice de aprovação, coeficiente de rendimento,
média ou frequência abaixo de parâmetros
pré-estabelecidos para avaliação de alunos
Existe algum aluno com
desempenho abaixo do
desejado e que ainda não
foi identificado no
bimestre atual?
Sim
O usuário deve elaborar gráficos do
histórico dos últimos semestres sobre o
desempenho de cada aluno identificado na
pesquisa, para encaminhá-los com uma
anotação para os professores e
coordenadores do curso de cada aluno que
está com desempenho insatisfatório
Não
O usuário deve entregar os
resultados obtidos na
avaliação ou arquivá-los em
um histórico para uso futuro
Fim da rotina de avaliação
acadêmica bimestral
Figura 11 – Fluxograma com a rotina de Avaliação ou Acompanhamento Acadêmico
na forma tradicional.
Início da rotina diária do gerente
virtual de avaliação acadêmica
Existe algum novo
lançamento bimestral de
informações sobre alunos,
turmas ou professores?
Não
1
Sim
O gerente virtual executa várias
consultas ao banco de dados do
sistema acadêmico para avaliar
o desempenho de turmas,
professores e alunos
Existe alguma
turma/professor com
desempenho insatisfatório,
ainda não identificados no
bimestre atual?
O gerente virtual elabora gráficos do histórico dos
últimos semestres sobre o desempenho de cada turma
identificada na pesquisa e encaminha-os
Sim
automaticamente, com uma mensagem, para os
professores e cordenadores correspondentes a cada
turma que está com desempenho insatisfatório
Não
Existe algum aluno com
desempenho
insatisfatório ainda não
identificado no bimestre
atual?
Sim
O gerente virtual elabora gráficos do histórico dos
últimos semestres sobre o desempenho de cada aluno
identificado na pesquisa e encaminha-os
automaticamente, com uma mensagem, para os
professores e cordenadores do curso de cada aluno que
está com desempenho insatisfatório
Não
1
Fim da rotina diária do gerente
virtual de avaliação acadêmica
FIGURA 12 - Fluxograma da Rotina de Avaliação ou Acompanhamento Acadêmico.
5.3
Análises dos Resultados da Aplicação em Avaliação ou
Acompanhamento Acadêmico
A configuração ou treinamento do SMAGS para o caso específico em tela, com
sucesso, considerando as respostas obtidas, resultando em um Sistema Especialista
para os fins propostos, testou a eficácia e a acessibilidade de um dos módulos do
sistema, extrator de dados, denominado Automa Builder, desenvolvido e integrado
ao SMAGS, dando origem ao Agente Explorador de Dados,
o qual permite a
configuração para acesso a diferentes bancos de dados, conforme está
demonstrado na tela contida na figura 13 e que no caso do sistema acadêmico do
CEFET-PR é o oracle, hoje, um dos mais usados nos sistemas informatizados.
O fato de o sistema ter percebido os dados lançados e processado, testa
também a eficácia na parte de percepção, atuação e base de conhecimento do
ambiente do Agente Explorador de Dados e sua integração com os demais módulos
do SMAGS que passam a fornecer informações a partir dos dados processados.
O fato de o sistema ter percebido os dados lançados e processado também testa
a eficácia do Agente de Tarefas Agendadas e o bom trânsito dos eventos de:
notificação genérica, notificação de tarefas agendadas, transmissão de dados,
transmissão de mensagens ou qualquer outro tipo de aviso na forma mostrada na
figura 14 (escrita e/ou sonora), testando ainda a eficácia dos eventos de controle de
conexão, execução de operações, Agente de Mensagens e do Agente de Conexão
de Usuários.
Figura 13 - Tela de configuração de banco de dados de sistemas
Figura 14 - Tela de entrega de mensagens escrita e sonora
O gráfico da figura 15, mostra que após um período de tempo inicial necessário
para configuração/treinamento do sistema, todas as alterações de informações
inseridas no ambiente sob o domínio do sistema são percebidas pelo Agente de
Tarefas Agendadas, que age também como um contestador de mudança de estado,
cujos dados são processados e utilizados conforme previamente estabelecido,
fornecendo informações em tempo real para todos os pontos do ambiente
gerenciado.
As figuras 16 e 17 mostram gráficos e relatórios de desempenho de alunos,
testando e comprovando o bom funcionamento do sistema na parte envolvendo o
Agente Explorador de Dados, com o Automa Builder e o Agente de Comunicação
de Dados.
T
E
Gráfico do tempo e trabalhos
M
na forma tradicional
p
o
Gráfico do tempo e trabalhos com o SMAGS
0
Trabalhos/tarefas executados e dados comunicados
Figura 15 – Gráfico do Tempo/Trabalhos executados na forma tradicional e com o
SMAGS
Figura 16 - Gráfico de desempenho de alunos
Figura 17 - Relatório de desempenho de alunos
5.4 - Outras Aplicações
O Sistema também pode ser aplicado na rotina diária de um Gerente Financeiro,
após um período inicial de tempo destinado à configuração/treinamento do sistema,
os trabalhos passarão a ser executados automaticamente, cujos resultados levaram
às mesmas considerações da aplicação anterior.
Do exposto, percebe-se que o Sistema apresenta características genéricas,
podendo ser aplicado em qualquer área ou setor, quer sejam: recursos humanos,
educação, comércio, indústria e outros.
CAPÍTULO VI
6. – CONCLUSÕES E RECOMENDAÇÕES
6.1 – Conclusões
Sistemas multi-agentes, utilizando técnicas de Inteligência Artificial Distribuída,
melhoraram e facilitaram a comunicação de dados entre sistemas, conforme ficou
demonstrado nos testes e, por conseqüência, entre setores de uma instituição,
potencializando as ações de pessoas envolvidas em níveis decisórios.
O
tempo
real,
após
um
período
inicial
de
tempo
destinado
à
configuração/treinamento, conforme ficou demonstrado nos testes, permite que as
ações sejam implementadas sem perda de tempo, o que ocorre em situações
normais.
A utilização da plataforma Delphi demonstrou atender às necessidades a que se
propõe, além da operacionalidade em ambientes Windows e boa performance,
processando e fornecendo as informações, com equipamentos já citados e de uso
corrente.
No protocolo DCOM, a comunicação entre componentes não dependem da
linguagem em que foram desenvolvidos, sendo que até linguagens de outros
fabricantes podem estar abrigadas em estações, utilizando diferentes sistemas
operacionais. Este o motivo pelo qual foi o protocolo escolhido, além de trabalhar
com objetos distribuídos, em consonância com a linha de sistemas distribuídos deste
trabalho.
A tecnologia de objetos distribuídos vêm solucionar o problema de comunicação
entre softwares heterogêneos. A orientação a objetos permite a reutilização e a
recombinação de códigos. Esta vantagem é ainda maior quando se trata de objetos
distribuídos, uma vez que, além de poder utilizar um objeto já existente, dispensando
a necessidade de criar novamente um mesmo objeto, não é preciso amarrar-se à
linguagem a qual ela tenha sido desenvolvida. O objeto pode ainda ser
personalizado de acordo com a aplicação e a necessidade do programador e, então,
utilizado por sistemas diferentes, tendo uma “imagem” distinta para cada um deles,
mas com o mesmo fim. Pode-se, ainda, citar as vantagens de uma maior agilidade e
o não sobrecarregamento de um único computador.
A utilização da plataforma Delphi demonstrou atender às necessidades a que se
propõe, além da operacionalidade em ambientes Windows e boa performance com
equipamentos de uso corrente.
A ferramenta desenvolvida para extrair dados de bancos de dados genéricos,
também demonstrou ser eficiente e eficaz em diferentes situações, conforme ficou
demonstrado nos testes.
O desenvolvimento do sistema englobou várias formas de controle de gestão,
visando disponibilizar aos seus usuários uma poderosa ferramenta de apoio ao
processo de tomada de decisão. Os resultados obtidos nos testes, demonstraram a
sua eficácia no apoio para o gerenciamento de diferentes tarefas, com ganhos de
tempo e qualidade nos serviços, demonstrando que o objetivo principal foi
alcançado.
6.2 – Recomendações
Em aprimoramentos futuros, recomenda-se capacitar o sistema com métodos de
aprendizagem mais sofisticados e uma abrangência mais ampla na rede, através de
uma maior interatividade entre agentes e a inserção de outras técnicas de IAD, tais
como: redes neurais, algoritmos genéticos, lógica fuzzy
e outras, que poderão
solucionar uma das limitações deste trabalho, com a auto-aprendizagem.
Recomenda-se, também, o estudo da performance dos princípios aqui aplicados,
com outras plataformas de programação, tais como Java, que poderá resultar em
uma abrangência maior em nível de sistemas operacionais.
Finalmente, recomenda-se também o estudo de melhorias, tais como: dotar os
menus de recursos que descrevam ainda melhor quais os passos a serem seguidos,
para facilitar ainda mais a programação do sistema para casos específicos,
proporcionando ao usuário comum uma maior acessibilidade a tudo o que o sistema
oferece.
7. - REFERÊNCIAS BIBLIGRÁFICAS
BAYLOR-A, Beyond Butler: inteligent agents as mentors. Journal-of-EducationalComputing-Research. Vol.22, no.4; 2000; Florida State Univ., Tallahassee,
FL, USA, 2000.
DELPHI, Borland 4.0: passo a passo lite/Núcleo Técnico e Editorial Makron Books.
São Paulo: Makron Books, 1999.
BOUNABAT-B et al. Designing multi-agent reactive systems: a specification method
Based on reactive decisional agents. Ecole Nat. Superieure d Inf. Et d Analyse
des Syst., Rabat, Morocco, 1999.
BRADSHAW, JEFFREY M. (Ed.). Software Agents. Cambridge: MIT Press., 1997.
CANTÚ, Marco. Borland Delphi 5.0: “A Bíblia” – Dominando o Delphi 5. Makron
Books, 1999.
Currenly Offered functionality inthe information society & a prediction of
(near-) future Developments. Thesis, Tilburg University, The Netherlands, July
1996. http://www.hermans.org/agents .
CHEUNG, Y. C.; HULL JR, S. S. Pattern recognition using a bipolar associative
memory. Proceeding 31s t Midwest Symposium on Circuits and Systems,
August, 1988.
DURKIN, John. Expert Systems: Design and Development. Prentice Hall,
Englewood Cliffs New Jersey, USA, 1994.
DURKIN, John. Expert Systems: Aview of the field. IEEE Expert, April 1996.
FAUSETT, Laurene V. Fundamentals of Neural Networks: Architectures,
Algorithms, and Applications. Prentice Hall, New Jersey, USA, 1994.
FOX-J. Guardian agents: a role for artificial intelligence in safety-critical systems.
Imperial Cancer Res. Fund Labs., London, UK, 2000.
FREEDMAN, Roy S.; ROBER, A. Klein; LEDERMAN, Jess. Artificial Intelligence in
the Capital Markets, Chicago: Irwin Press, 1995.
GIDDENS, Antony. As consequências da modernidade. SP: ed. UNESP, 1991.
GOLDBERG, David E. Genetic Algorithms: in search, opytimizations & machine
Learning. New York: Addison-Wesley Publishing Company, 1989.
GOONATILAKE, Suran; TRELEAVEN, Philip. Intelligentent Systems for finance
and Busines. New York: John Wiley & Sons, 1995.
HAYKIN, Simon. Neural networks: a comprehensive foundation. New York:
MacMillan-IEEE Press, 1994.
HERMANS, Björn. Intelligent Software Agents on the Internet: na inventory of
http://www.inf.ufsc.br/~mauro/INE6102/Aula2?sld002.htm. Capturado em
0l-05-2000.
http://www.lcmi.ufsc.br/~loureiro/pesquisa.html. Capturado em 21/04.2000.
http://www.inf.ufsc.br/~jbosco/adriana/links.htm. Capturado em 04/05/2000.
http://www-cia.mty.itesm.mx/~lgarrido/Repositories/IA/agents.html. Capturado em
24-08-2000.
KASABOV, Nikola K.. Fundations of Neural Networks, Fuzzy Systems, and
Knowledge Engineering. Cambridge, Massachusetts: MIT Press, 1996.
KELLER, Robert. Tecnologia de Sistemas Especialistas: Desenvolvimento e
Aplicação. São Paulo: Makron Books do Brasil, 1991.
KHOSLA, Rajiv; DILLON, Tharam. Engineering Intelligent Hibrid Multi-Agent
Systems. Kluwer Academic Publisher, 1997.
KUNSTIC-M et al. Mobili agents as network management problem solvers. Dept. fo
Telecommun., Fac. Of Eletr. Eng. & Comput., Zagreb, Croatia, 1999.
LEMOS, David. A utilização de sistemas especialistas para o diagnóstico de
uso do solo e Seus limites de ocupação. Florianópolis, 1997. Dissertação
(Mestrado em Engenharia de Produção) – Universidade Federal de Santa
Catarina.
LEVY, Pierre. As Tecnologias da Inteligência: o futuro do pensamento na era da
Informática. São Paulo: Editora 34, 1998.
LIMA, A. et al; Objetos Distribuídos – DCOM, 1999. Disponível on line em: URL:
http://www.inf.pucrs.br/~arruda/artigos/esp cs 991/grupo02/index.htm
MATTELART, Armand. Comunicação-mundo. Ed Vozes, 1996.
MEDSKER, L. Hybrid Intelligent Systems. Boston: Kluwer Ac Pub., 1995.
MICHAEL WOOLDRIDGE 1 and NICHOLAS R. JENNINGS.2 Intelligente agents:
Theory And practice–The knowledge Emgineering Review, vol 10:2, 1995.
1 Departamente of computing, Manchester Metropolitan University, Chester Street,
Manchester M1 5GD, UK.
2 Departament Of Eletronic Engeneering, Queen Mary & Westfield College, Mile
and road, London E1 4NS, UK.
MARCIC-I. Real-timecollaboration heterogeous computing environments. Dept. of
Electr. & Comput. Eng., Rutgers Univ., Piscataway, NJ, USA, 2000.
MIYAZAKI-K et al. Rationaly of reward sharing in multi-agent reinforcement learning.
Dept. of Comput. Intelligence & Syst. Sci., Tokio Inst. Of Technol., Japan, 1999.
MORELLI, Eduardo Terra. Oracle 8, SQL, PL/SQL e Administração. São Paulo: Érica
2000.
MODRO, Nilson Ribeiro. Sistema Inteligente de Monitoramento e Gerenciamento
Financeiro para Micro e Pequenas Empresas. Florianópolis, 2000. (Dissertação de
Mestrado) - UFSC.
NISSEN, Marks. Intelligent Agents: A technology and business application
Analysis. http://hass.berkeley.edu/~heilmann/agents/#exnum, November, 1995.
OHGURO-T et al. Gleams of people: monitoring the presence of people with multiagent Architecture. NTT Commun. Sci. Labs., Kyoto, Japan, 1999.
PARAISO, Emerson Cabrera, “Proposta de um Ambiente Multi-Agente para
monitoração e Controle de Processos Industriais”, Dissertação de Mestrado,
Cefet-PR, 1997.
POMERANTSEVA-GN. Application of models of interacting agent for systems
simulation
of social processes. Kiev polytech. Inst., Ukraine, 1999.
POLLONI, Enrico Giulio Franco. Administrando Sistemas de Informação. São Paulo:
Futura, 2000.
RUSSEL, Stuart, NORVIG, Peter. Artificial Intelligence: A Modern Approach. New
Jerssey, USA: Prentice Hall, 1995.
SELF-El-Nasr-M et al. FLAME – Fuzzy Logic Adaptive Model of Emotions. Inst. of
Learning Sci., Northwestem Univ., Evanston, IL, USA, 2000.
TAFNER, Malcon; Xeres, Marcos de; Filho, Ilson W. R.. Redes Neurais Artificiais:
Introdução e princípios de neurocomputação. Blumenau: Editora da FURB,
1995.
TIFFIN, John e Rajasingham, L. In search on the virtual class. Londres: Routledge,
1995, Cap. 2 e 3, p. 19-70.
.
TAKADAMA-K et al. How to design good rules for multiple learning agents in
scheduling problems. Process. Res. Labs., ATR Human Inf., Kyoto, Japan, 1999.
TIDHAR-G et al. Using intelligent agent in military simulation or “using agents
Intelligently”. Defence Sci. & Tecchnol. Organ., Melbourne, Vic., Australia, 1999.
VAN-Lent-M et al. Intelligent agents in computer games. Artificial Intelligence Lab.,
Michigan Univ., Ann Arbor, MI, USA, 1999.
Anexo I

Documentos relacionados