quarta-feira, 29 de outubro de 2014

Pessimismo social em Python

Já algum tempo, venho me incomodando com essa onda de pessimismo generalizado com o Brasil que acompanho na internet. Parece que fomos perdendo a fé em tudo, na política, na democracia, na propensão das pessoas em serem legais umas com as outras. Acho que isso facilita o isolamento individual, desfavorecendo a solidariedade e a empatia, ao mesmo tempo que estimula uma competitividade insana e todo tipo de tolerância.

Não sei, não parece legal viver numa sociedade assim.

Acontece que, trabalhando com TI todo dia, acabo usando os modelos mentais da minha profissão para analisar os problemas em outras áreas - isso é mais forte que eu, não consigo evitar. Assim, como naquele dito do Mark Twain: "para quem tem um martelo, todo problema vira um prego". De qualquer forma, foi pensando em agrupamentos humanos que lembrei que esse problema do "pessimismo social", por se tratar de gente interagindo com gente, podia ser modelado com agentes.

Sendo bem rápido na explicação, os agentes podem ser entendidos como autômatos que interagem uns com os outros, bem como com o ambiente em que vivem, recebendo estímulos ou realizando ações sobre eles. Na primeira figura, você pode verificar o esquema de um agente.

Uma maneira bem simples de implementar as relações entre os agentes é através de uma matriz bidimensional. Como demonstrado na figura ao lado, dependendo da posição do agente na matriz, ele pode ter 3, 5 ou 8 vizinhos: e a vizinhança define uma relação entre os agentes. Dependendo do problema sendo trabalhado, essa simplificação pode ser satisfatória.

O bacana de recorrer a simulações de computador é que suas pesquisas não serão limitadas por um comitê de ética. Você pode, por exemplo, provocar sofrimento em suas cobaias ou pensar em situações constrangedoras para ver como reagem e ninguém vai te criticar por isso - afinal, são só agentes, simulações de computador. Também pode testar cenários diferentes, variando as relações, os comportamentos dos agentes, etc.

Para começar a estudar esse problema do "pessimismo social", pensei num protótipo em Python. O link aponta para código-fonte hospedado no repl.it, de modo que você nem precisa ter um ambiente Python configurado na máquina: pode testá-lo diretamente no browser.

As pessoas dessa simulação são bem simples e tudo o que fazem  na vida é receber estímulos negativos ("-") ou nêutros("."). Receber um estímulo negativo faz o humor da pessoa diminuir. Ficar um ciclo sem recebê-lo (isto é, receber um nêutro) permite à pessoa recuperar um pouco do humor anterior. Essa ideia do nêutro pode tanto representar a fuga da pessoa para realidades mais confortáveis quanto um movimento pessoal de otimismo.

A cada ciclo, pessoas são escolhidas aleatoriamente para representar o grupo dos que serão "atingidos" pela onda de pessimismo. O negativo, por enquanto, pode representar qualquer coisa: a tendência dos jornais só mostrarem notícias desesperadoras da realidade do país, a irritação de tanto imposto em janeiro ou uma lida nos últimos posts numa rede social.

Se você rodar o programa com os parâmetros padrão (matriz de 10 x 10 e 100 ciclos de simulação), verá que o humor do grupo passa de da casa dos 75 para a casa dos 50: uma redução de 1/3!

Nenhum comentário:

Postar um comentário