Aquecendo os neurônios
Idéias soltas sobre sistemas complexos e modelagem multiagentes
Sistemas Complexos
O objeto de modelagem multiagente são sistemas complexos. Sistemas complexos são aqueles em que a simples agregação do comportamento atômico do sistema não leva ao comportamento macro observado. São sistemas em que, grosseiramente, 1+1 não é geralmente igual a 2.
A primeira pergunta que vem à mente é o que diferencia um sistema complexo de um tradicional. Observações micro e macro distintas são resultado, mas quais podem ser as causas? De início, é fácil perceber que uma condição é que as ações de um componente do sistema afete um outro, por menor que seja esse fato. Se assim não for, o resultado final será o simples acúmulo das ações previstas para cada agente.
Mas a condição acima é muito restritiva, trivial e de pouca utilização. Afinal, sistemas em que ações individuais não causam maiores conseqüências não são lá muito interessantes e representam simplificações grosseiras da realidade.
Modelagem
O que poderia ser um esboço de um arcabouço geral para a modelagem de sistemas complexos através de agentes? Talvez uma das primeiras perguntas a serem feitas é se faz sentido, e se seria positivo, separar os agentes e o ambiente. Nos exemplos de situações que me vêm à mente, parece muito razoável. Digamos, por exemplo, que estamos modelando tráfego urbano. As ruas e quarteirões parecem ter uma função totalmente diferente dos automóveis, ônibus, trens e etc. Parece mais razoável dizer que os agentes são os veículos, e as ruas e quarteirões são o ambiente em que esses agentes atuam. Surge aí um problema: o que diferencia o ambiente dos agentes?
Primeiramente, me parece que os agentes estão sempre em contato com o ambiente, diferentemente do que ocorre com outros agentes. Dois carros podem estar em lados opostos da cidade, de forma que as ações de um não afete em nada o outro. Na verdade ambos podem desconhecer a existência do outro. O mapa da cidade não, afinal os carros sempre estão numa rua, num quarteirão ou o que seja.
Há diversos exemplos de ambientes espaciais: o universo, o planeta, um tabuleiro, um rio, o espaço aéreo, etc. Mas podem haver também ambientes não-físicos: o ambiente onde se dá um leilão, uma sociedade, uma competição, etc. E talvez esses ambientes não-físicos ajudem a definir o que é um ambiente.
De início, o ambiente pode ser imutável. O universo, por exemplo, pode ser considerado um ambiente que não é alterado pelos agentes planetas. Os planetas se posicionam no universo, suas interações dependem das características do universo, mas, excluindo as tais deformações gravitacionais do espaço, ele permanece o mesmo.
O ambiente dita algumas regras fundamentais que regem as ações e interações dos agentes. O fato de somente ser possível se transitar com um carro nas ruas é uma restrição do ambiente para a liberdade do agente automóvel. Afinal, embora o carro possa virar à esquerda antes da esquina, a restrição física do prédio impede que essa liberdade passe do muro do prédio.
Aqui vem uma observação interessante: embora o prédio seja, de fato, uma limitação à ação do motorista, o próprio motorista, em geral, não vai precisar bater na mureta para que a sua ação seja limitada. Ele mesmo limita ainda mais a sua ação, trafegando apenas pelo asfalto. Além disso, um outro carro pode estar parado à frente dele. Ou seja, embora o ambiente imponha algumas limitações à ação do agente, não necessariamente as limitações partam apenas do ambiente. Ou seja, o conjunto de regras que limitam as ações dos agentes não vêm apenas do ambiente.
Uma condição que me vem à mente é de que o ambiente, diferentemente dos agentes, não age sobre os agentes. Uma ação de um agente sobre o ambiente pode ter conseqüências para ele (por exemplo, um carro passar sobre um buraco na rua tem consequüências sobre o carro), mas o ambiente não pode agir sobre os agentes. Por exemplo, se uma árvore cai sobre um carro, essa árvore não faz parte do ambiente, mas é mais um agente. Não estou ainda muito certo disso, mas talvez uma definição mais precisa dessa idéia seja que, enquanto o agente não atua sobre o ambiente, o ambiente não pode afetar o agente.
No caso de um leilão, por exemplo. O ambiente são as regras de um leilão. O leiloeiro, no entanto, é um agente. Então, se um comprador dá um lance, é registrada a oferta. Passado um tempo limite, não havendo maiores ofertas, quem deu o maior lance é considerado vencedor e fica obrigado a pagar a sua oferta. Embora o ambiente dite as regras, quem vai efetivamente executar essa cobraça é o leiloeiro. Assim, embora desde a última oferta o agente comprador não tenha executado nenhuma ação sobre o ambiente, ele será afetado externamente. Mas não pelo ambiente, pelo leiloeiro.
Isso. Na verdade pode ser promissora a idéia de, restringindo o papel do ambiente, seja possível uma divisão do sistema em dois grandes componentes (ambiente e agentes), e com isso melhorar precisar e simplificar o processo de modelagem. Se de fato o conceito de ambiente for aplicável a qualquer sistema complexo, vale a idéia.
Resumindo:
- o ambiente está sempre limitando as ações de um agente, não importando o estado do mesmo;
- o ambiente pode ser afetado pelas ações do agente;
- o ambiente pode afetar o agente, mas somente quando o mesmo está atuando sobre o ambiente; (esse é o ponto mais complicado e questionável)
Vem agora a pergunta: não podemos ter um agente com essas características? Se detectarmos um agente com essas características, podemos simplesmente incorporá-lo ao ambiente?
Enfim, essa é uma idéia bem crua ainda, mas sobre a qual vale a pena trabalhar. Será realmente possível essa separação ambiente-agentes?
Análise de resultados
Essa talvez seja a área mais quente. Outro dia entro nela.

20. March, 2006 at 06:59
“Uma condição que me vem à mente é de que o ambiente, diferentemente dos agentes, não age sobre os agentes. Uma ação de um agente sobre o ambiente pode ter conseqüências para ele (por exemplo, um carro passar sobre um buraco na rua tem consequüências sobre o carro), mas o ambiente não pode agir sobre os agentes. Por exemplo, se uma árvore cai sobre um carro, essa árvore não faz parte do ambiente, mas é mais um agente. Não estou ainda muito certo disso,…” vale a pena pensar no conjunto de semáforos e sinais que seriam a ação/resposta (em sistemas inteligentes) do ambiente sobre os agentes, software tradicional nesta linha teria TRANSYT, VISSIM e outros. Talvez este conjunto de entidades fixas como voce vê o ambiente esteja se adaptando para não serem tão inertes!…