Sistemas Multiagentes

Ricardo Araujo
5 min readAug 19, 2020

Este texto é parte da disciplina de Fundamentos de Inteligência Artificial do Programa de Pós-Graduação em Computação da Universidade Federal de Pelotas.

Formigas dão ótimos exemplos de sistemas multiagentes. Foto de Stephan Schultz.

Um agente, no contexto de Inteligência Artificial, é uma entidade que encapsula um sistema que interage localmente com um ambiente de forma autônoma e propositada.

Um Sistema Multiagente é um sistema composto da interação entre múltiplos agentes. É a área da IA que estuda fenômenos que emergem destas interações e fornece metodologias e ferramentas para desenvolver e estudar estes agentes e sistemas.

Para compreender a necessidade de estudar interações entre agentes, considere o ato de dirigir um carro até o local de trabalho em uma cidade completamente vazia. Podemos traçar o melhor caminho no GPS de forma bastante simples, talvez pegando a rota mais rápida. Mas considere agora que temos outros carros. A decisão já não é mais trivial — a melhor rota envolve a que terá menos carros e isso envolve saber a decisão de cada motorista. Porém, não temos como saber a decisão de todos motoristas, pois temos uma visão local e apenas obtemos informações limitadas do ambiente como um todo. Talvez saibamos as ações de nossos vizinhos, já que podemos vê-los saindo das garagens, mas não temos como observar outros carros até que já estejamos comprometidos com uma rota. Como cada motorista pode decidir a rota nessa situação para garantir que não teremos engarrafamentos?

Esta é uma tarefa de coordenação e é uma das principais tarefas para sistemas multiagentes. Com alguma frequência, tarefas de coordenação são trivialmente solucionadas de forma centralizada, um agente especial que tem uma visão global do sistema e de todos os demais agentes. Se cada motorista ligar para uma central e perguntar "que rota devo seguir?", esta central pode determinar de forma ótima uma decisão para cada motorista que minimiza o congestionamento (e.g. se há duas rotas, dividir exatamente à metade os carros em cada uma).

Porém, como cada agente é autônomo, ele não exige ordens externas e, se as recebe, não precisa seguí-las. Nestes casos, o sistema centralizado torna-se ineficaz. Mais do que isso, com frequência sistemas centralizados são indesejáveis: o que acontece se a central falhar? Este ponto de falha única torna-se um gargalo e é importante conseguir evitar congestionamentos mesmo em uma situação de inexistência ou indisponibilidade do agente centralizador. Gostaríamos que a decisão ótima pudesse ser tomada de forma descentralizada.

Hoje temos pelo menos três robôs em Marte. O rover Curiosity é o único atualmente operante (um robô-helicóptero foi recentemente enviado). Este rover, bem como os outros antes dele, é um sistema monolítico. Tudo que é necessário para cumprir a missão está contido no rover. Isto tem a óbvia desvantagem de que, se algo drástico acontecer com o rover, como uma falha catastrófica, a missão é interrompida. Uma proposta alternativa, proposta por muitos pesquisadores como Rodney Brooks, é enviar sistemas multiagentes — uma multitude de pequenos robôs que podem trabalhar em conjunto.

Quadricópteros jogando bola

A vantagem de ter múltipos robôs no lugar de um único monolítico é a chamada degradação graciosa: se um pequeno número de robôs sofrer pane, os demais podem continuar a missão, ainda que de forma menos efetiva. Isso exige que estes agentes sejam capazes de se adaptarem às necessidades da missão — se algum agente falhar, outro deve assumir suas funções essenciais de forma absolutamente transparente. É desejável que a decisão de quem assumirá seja, novamente, descentralizada. Idealmente, um sistema multiagente permite que agentes entrem e saiam do sistema sem grande disrupção das atividades sendo realizadas.

Os dois exemplos acima, de carros e robôs, demonstram duas grandes aplicações de sistemas multiagentes: estudar sistemas existentes e desenvolver novas soluções.

No caso dos carros, talvez queiramos entender propriedades de engarrafamentos. Uma maneira é modelar o fenômeno engarrafamento diretamente, como modelaríamos o comportamento de um rio sem nos preocuparmos com moléculas de água. A modelagem por agentes fornece uma alternativa onde modela-se os carros e seus motoristas e, através da interação entre estes, emerge o fenômeno que se deseja estudar. Então, pode-se estudar como alterações no comportamento dos agentes afeta o fenômeno emergente (por exemplo, o que acontece se cada empresa adotar horários diferentes para iniciar o trabalho?).

Um exemplo clássico é o modelo de segregação social proposto pelo economista Thomas Schelling, onde a segregação emerge de simples preferências de agentes.

O modelo de segregação de Schelling

Por outro lado, sistemas multiagentes podem também ser usados para construir novos sistemas. Neste contexto, a área por vezes chamada de inteligência artificial distribuída. O objetivo é solucionar um problema especificando apenas as suas partes fundamentais (agentes) e suas interações. Um exemplo natural deste tipo de sistema são formigas. Colônias de formigas solucionam diversos problemas complexos, como encontrar o menor caminho entre o formigueiro e uma fonte de comida, de forma totalmente descentralizada — ao contrário do imaginário popular, a formiga rainha não dá ordens ou coordena o formigueiro. O fenômeno de encontrar o menor caminho, ou explorar uma área de forma sistemática, emerge inteiramente da interação simples entre múltiplas formigas.

Uma rápida introdução a formigas

A evolução natural especificou o comportamento das formigas para que o formigueiro como um todo solucione problemas complexos como procurar comida ou defender o formigueiro, mas diversos modelos procuram capturar aspectos destes sistemas para solucionar problemas úteis para humanos. É o caso da Ant Colony Optimization, algoritmos de otimização baseados em formigas. Como na contraparte natural, estes algoritmos operam especificando o agente individual apenas e um enxame destes é lançado sobre o problema; através das interações entre os agentes, uma solução emerge. O termo inteligência de enxames (swarm intelligence) também é usado para descrever estes sistemas.

Sistemas multiagentes aparecem em múltiplas formas e exigem a modelagem de diferentes aspectos dependendo da sua função ou objetivo. Por exemplo, agentes podem ou não se comunicar diretamente e podem ou não engajar em negociação. Eles podem ser colaborativos, competitivos, ou um misto dos dois. Podem ser todos absolutamente idênticos, ou ter especializações ou personalidades. Podem aprender, ou serem baseados em regras estáticas.

Ademais, há diversas formas de modelar um agente. Uma destas formas é o chamado modelo BDI — Belief, Desires, Intention. Este modelo estabelece um framework sobre o qual pode-se desenvolver agentes de diversos tipos. Todo agente possui (i) crenças (beliefs), que são informações sobre o mundo; (ii) desejos (desires), objetivos que procura atingir e (iii) intenções (intention), um plano de como atingir os seus desejos dadas suas crenças. Este é um modelo clássico na literatura. Em geral, agentes podem ser categorizados em três grandes grupos:

  • Agentes passivos são agentes sem um modelo interno, ou pelo menos sem objetivos internos. Por exemplo, uma pedra.
  • Agentes reativos são modelos com objetivos, mas sem crenças e, ou desprovidos de intenções ou com intenções muito simples. São agentes que apenas reagem a estímulos de uma forma pré-determinada. Por exemplo, aspiradores robôs mais simples que apenas giram 90 graus ao bater em um obstáculo.
  • Agentes cognitivos são agentes com objetivos, crenças e intenções complexas. Por exemplo, animais em geral ou robôs aspiradores absurdamente caros.

Aplicações de sistemas multiagentes são muitas, indo desde jogos de computador até modelagem de epidemias, passando por problemas de otimização, redes de computadores e até filmes.

--

--

Ricardo Araujo

Computer Science professor at UFPel. Machine Learning and Artificial Intelligence practitioner and researcher.