Sistemas de Inteligência Artificial Distribuida são a classe de sistemas que permite a vários processos autonomos, chamados agentes, realizarem atos de inteligência global, somente através de processamento local e comunicação interprocessos. Enfim, a meta de sistemas especialistas baseados em conhecimento e distribuídos é poder coordenar atividades de grupo resolvendo problemas que os sistemas compartilham - totalmente ou em parte. Percebe-se então que a IAD não pode ser considerada um subcampo da IA, mas sim um componente essencial na existencia de um sistema de IA.
Os benefícios da IAD são similares aos benefícios derivados de ter um grupo de pessoas trabalhando juntas para resolver problemas. Problemas que são muito extensos para um só especialista resolver, pode ser resolvido por um grupo. Os problemas podem ser resolvidos em partes por pessoas trabalhando em paralelo.
Existem muitas razões para que seja empregado o conceito de Inteligência Artificial Distribuída. Entre elas podemos rassaltar as que segue:
- Mais Poder de Computação ou Hardware mais barato. Esta é uma das principais razões para se aplicar as funcionalidades distribuídas em um sistema: o alto custo do hardware necessário para resolver o problema de forma centralizada, que nem sempre é rápido o suficiente para tal tarefa.
- Maior Segurança e Tolerância a Falhas. Se você não está confiando ou não pode confiar a resolução de problemas a um único processo, nada mais justo que encaminhar o problema a um grupo de experts. Tendo varios processos especialistas, quando um problema surge, o problema pode ser colocado em evidência, sendo analisado por vários sistemas, paralelamente. Como conseqüência disso, temos várias opiniões - e não apenas uma, sobre qual atitude tomarmos. Como exemplo de uma situação real do emprego da DAI, temos o sistema de defesa dos E.U.A.. O sistema é composto de mais de um sistema especialista, todos com a mesma função, contudo com formas diferenciadas de armazenar e decidir sobre os problemas. Dessa maneira, para uma resolução ser feita, mais de um sistema deve chegar na mesma solução, de formas diferentes e por métodos diferentes. O sistema é composto por um número ímpar de processos distribuídos para que não ocorra empate de decisões.
- Aproveitamento da Tecnologia existente. Utilizando-se da IAD, pode-se resolver problemas que não seriam possíveis resolver com a tecnologia já desenvolvida. Com a IAD a base de conhecimentos pode ser subdividida em áreas, assim como o problema. A IAD estimula decomposição do problema total de gerenciamento, tornando a solução o somatório de módulos (sistemas).
Com a distribuição dos processos, surge o problema da padronização. A linguagem de comunicação entre os processos deve ser padronizada, como também a forma de representar o conhecimento - para que o mesmo seja trocado e tratado por processos especialistas distintos sem a perda de informação.
Levando em conta que a informação deve ser padronizada, porque não pensar em uma base de dados comum aos processos. Compartilhando a base de conhecimento, elimina-se o problema da padronização das informações. Tomada a decisão de compartilhamento da base de conhecimentos, pode-se diminuir sensivelmente a comunicação interprocessos, fazendo com que cada processo busque na base de conhecimentos um padrão de dados que ele possa manipular. Dessa maneira, cada processo procura um problema, resolve a sua parte e devolve os dados trabalhados à base, para que um outro processo identifique - então, o seu padrão e possa seguir manipulando os mesmos dados, adiantando mais a resolução do problema em questão.
Uma das arquiteturas mais predominantes na área de Inteligência Artificial Distribuída é a blackboard arquiteture. Seus principais componentes são os seguintes:
-
- a blackboard, é um repositório onde está armazenado o conhecimento do problema e o estado de sua solução;
- os knowledges sources, são processos simples que procuram na blackboard por um padrão de dados e tomar alguma atitude sobre eles, adiantando a solução do problema;
- a agenda, que avalia a lista de knowledges sources pronta para rodar e seleciona um para executar.
-
Desde que a arquitetura blackboard possui um raciocínio inerentemente distribuído, ela trabalha bem em ambiente onde os dados são passados entre agentes independentes, coordenando a atividade e a resolução parcial de problemas compartilhados.
Ao se projetar um sistema especialista distribuído, devem ser feitas algumas perguntas básicas como O que um agente irá dizer ao outro?, Que linguagem eles usarão?, O que eles devem descrever? e etc. É muito importante, como em qualquer projeto, que seja feita uma excelente análise do problema para que o custo de uma reestruturação seja poupado.