Uma introdução a inteligência artificial distribuída e sistemas multi-agente

A área de machine learning está tão desenvolvida que muitas de suas aplicações já fazem parte de nossa rotina, indo de recomendações nas plataformas de streaming de vídeo a assistentes virtuais nos nossos smartphones. Entretanto, estas aplicações ainda se encontram confinadas a subdomínios específicos, já que, apesar de extremamente eficientes, os algoritmos são capazes de resolver apenas problemas simples e bem definidos, com entradas e saídas claras. Mas processos de decisão complexos têm uma natureza muito mais difusa, onde as entradas são processadas por módulos lógicos diferentes, que às vezes até têm objetivos conflitantes, mas que no final precisam chegar a um consenso. Até algumas decisões corriqueiras de nossas vidas podem ter uma complexidade oculta. Pense por exemplo que você esteja escolhendo o que almoçar num restaurante. Por um lado, entram suas preferências pessoais; por outro, a preocupação com a saúde. Ainda pesam na decisão o preço e o tempo de preparo. Ainda assim, nós conseguimos chegar a um veredito.

Inteligência artificial distribuída

A inteligência artificial distribuída é uma abordagem para resolver problemas de aprendizado complexo, planejamento e tomada de decisão. Ela busca incorporar alguns conceitos do mesmo processo que são observados em animais superiores, para produzir resultados semelhantes. Em um sistema de inteligência artificial distribuída, vários nós de processamento autônomos, chamados de agentes, são distribuídos e arranjados em larga escala. Os agentes podem interagir com o ambiente e com outros agentes na sua proximidade. Eles agem independentemente, com objetivos próprios, e produzem soluções parciais que são integradas através da comunicação entre os nós. É mais ou menos como funciona cada módulo lógico no nosso cérebro decidindo sobre o almoço: um busca solucionar o problema da fome, outro da satisfação do paladar, outro do planejamento de saúde de longo prazo, outro o econômico e outro o do tempo disponível. Ou ainda, os sistemas de inteligência artificial distribuída costumam ser comparados ao que ocorre em uma colmeia. Cada abelha tem uma tarefa específica estritamente estabelecida, mas o enxame todo tem um comportamento muito mais complexo, garantido por uma espécie de inteligência coletiva que emerge das interações simples entre os agentes deste sistema.

Os sistemas de inteligência artificial distribuída buscam resolver os problemas de raciocínio, planejamento, aprendizagem e percepção da inteligência artificial, especialmente nos casos onde eles requerem grande volume de dados. Para isso, eles implementam a distribuição do problema para agentes de processamento autônomos, que devem trabalhar de forma coordenada. Isso faz com que sejam extremamente paralelizados, sendo capazes de explorar computação em larga escala de recursos computacionais amplamente distribuídos. As interações entre os agentes faz com que estes sistemas se tornem redundantes, e assim altamente robustos e elásticos, capazes de se recuperar prontamente de falhas. A maleabilidade também os torna adaptativos a mudanças na definição do problema ou dos dados que recebem para processamento. Os módulos deste sistema podem ficar responsáveis por apenas amostras do conjunto total de dados, o que permite que os dados também tenham essa característica decentralizada.

Sistemas multi-agente

Os sistemas multi-agente constituem uma área de conhecimento oriunda da inteligência artificial distribuída. Esta área se ocupa de resolver computacionalmente problemas de natureza prática, sem muita preocupação com a explicação do funcionamento do sistema ou dos comportamentos emergentes, sendo empregada em engenharia e tecnologia. Os sistemas multi-agente podem resolver problemas difíceis ou impossíveis para agentes individuais ou sistemas monolíticos. Eles podem integrar várias abordagens mais simples, como métodos funcionais e procedurais, busca algorítmica e aprendizagem por reforço.

Sistemas multi-agente são compostos por agentes e seu ambiente. Geralmente os agentes são virtuais como um algoritmo, mas também podem ser robôs, pessoas ou times mistos. Eles podem ser passivos quando não têm objetivos, ativos quando executam tarefas simples, ou cognitivos quando responsáveis por tarefas mais complexas. Os ambientes podem ser virtuais, discretos ou contínuos. Algumas de suas características são: acessibilidade, relativa à possibilidade de coletar informação completa sobre o ambiente; determinismo, que define se as ações causam efeitos determinados; dinâmica, sobre quantas entidades podem influenciar o ambiente em determinado momento; discricionariedade, que define sobre o número de ações possíveis; episodicidade, sobre o efeito temporal das ações dos agentes; e dimensionalidade, relativa ao impacto do espaço ocupado pelo ambiente no processo de decisão.

As características mais marcantes dos sistemas multi-agente são a autonomia, que garante que os agentes sejam ao menos parcialmente independentes; o acesso local, limitando acesso dos agentes a apenas uma parcela do sistema, seja por engenharia, seja porque o sistema todo é muito complexo; e a descentralização, de forma que nenhum agente esteja sob controle direto de outro. Estas características resultam na capacidade de auto-organização e auto-direção do sistema, além da emergência de comportamentos complexos mesmo quando as estratégias individuais dos agentes são simples. Os sistemas multi-agente costumam encontrar a melhor solução sem intervenção, de forma análoga a fenômenos físicos, que tendem a um equilíbrio que espelha a melhor solução pela mera observância das leis impostas pela realidade fisicamente limitada.

Aplicações

A habilidade de resolver problemas complexos com alta resiliência faz com que os sistemas multi-agente encontrem aplicação em redes e tecnologias móveis, garantindo um balanceamento dinâmico das cargas impostas, alta escalabilidade e auto-regeneração. Seu processo deliberativo difuso é aplicado para resolver problemas de transporte, logística, produção, sistemas energéticos e redes de distribuição inteligentes. Problemas mais arrojados envolvem a simulação de vida artificial e de sociedades, permitindo simulações associadas ao clima, a crises epidemiológicas e a resolução de conflitos, por exemplo.