top of page

simulações etc: eteceteras, simulando

redinha

Nesta tese pretendemos estudar a relação entre cidade-física e cidade-rede. Como expusemos, as dificuldades de operacionalização no mundo real nos fizeram optar por uma representação que permitisse uma analogia. O ponto de partida é uma modelagem, ou descrição, do princípio de funcionamento desse fenômeno, o encontro das pessoas na sua rotina diária. Assim, a cidade-física é representada pela geometria de distribuição de lugares em um mapa, e a cidade-rede pela rede de encontros entre os agentes que circulam no mapa, numa rotina simulada computacionalmente. A modelagem do mecanismo desses encontros é que compõe os axiomas base da simulação. É a partir da exploração das consequências desses axiomas que buscamos responder nossa hipótese, elaborando um sucinto teorema. Os princípios de partida são:

hipótese:  a geometria do espaço onde acontece a rotina das pessoas não muda a topologia da rede de encontros entre elas formada no seu dia a dia.

fenômeno: encontro das pessoas na sua rotina de deslocamento diário.

 

Para a modelagem no simulador, são utilizados os seguintes axiomas e representações

axiomas:

  • cada pessoa tem a sua rotina de deslocamento entre as suas atividades;

  • um encontro se dá quando duas pessoas estão a menos de ‘x’ metros de distância uma da outra;

representação:

  • cada pessoa é um nó pn na rede;

  • a rede é representada por uma matriz de adjacência E (pn,pn);

  • cada encontro que acontece entre pi e pj adiciona 1 na aresta E(pi,pj);

  • a rotina das pessoas é definida pelo ciclo de deslocamento entre as atividades, o par de objetos casa e trabalho;

  • objetos ocupam lugares num mapa;

  • um mapa é constituído por lugares, que são pontos distribuídos no espaço seguindo uma determinada geometria;

  • um cenário é composto por um mapa com objetos atribuídos a lugares e pessoas atribuídas a um par casa-trabalho.

O que se está investigando é a consequência da variação de um parâmetro específico, o da geometria do mapa, de modo que a questão não é estatística, mas qualitativa na diferença entre as configurações. Os cenários estipulados para os estudos da simulação foram escolhidos com esse objetivo. Foi também implementada a variação do processo de atribuição dos lugares às atividades. 

programando

Como plataforma para desenvolvimento do simulador Redinha foi escolhido o Unity, uma plataforma de desenvolvimento de jogos que faz a interface entre design 2D/3D e a programação em si. Ele conta com suporte para geometrias 2D e 3D, emuladores de propriedades físicas como gravidade, colisão entre objetos e outras. Essa economia de programação, aliada a ser uma plataforma voltada para jogos, pensando em trabalhos futuros, foi o fator de decisão pelo Unity. O IDE (Integrated Development Environment, ambiente de desenvolvimento integrado) para programação escolhida foi o Visual Studio, utilizando C#, devido a uma certa familiaridade prévia. Toda a estrutura dessa linguagem de programação é orientada a objetos e estruturada em classes, já organizada para uma modelagem baseada em agentes (ABM). Tanto o Unity quanto o Visual Studio foram instalados no computador para desenvolvimento da programação do Redinha. Ao final, o arquivo executável foi criado, e utilizado para fazer as simulações do estudo.

O Redinha é organizado a partir de 5 entes, ou objetos (figura S1): 

  • os agentes, simulando as pessoas de uma cidade;

  • casas e trabalhos, simulando "origens" e "destinos";

  • um mapa e lugares, simulando a conformação de cidade;

  • a rede, na forma de uma matriz de adjacências E (pn,pn).

Unity in 100 seconds

Fireship

7 de mar. de 2022

S1. elementos do simulador

No Redinha, o processo de geração de cenários é o seguinte:

  1. definição do número de pessoas pelo usuário; 

  2. geração de um par casa-trabalho por agente;

  3. número de lugares definido pelo total de casas e trabalhos;

  4. seleção da geometria dos lugares pelo usuário;

  5. seleção do modo de atribuição dos lugares aos pares casa trabalho.

Vetor é uma organização de dados do mesmo tipo, usado para organizar conjuntos. Ele é representado na forma vetor[n] que indica que esse conjunto é formado pelos elementos vetor = {0, …, n}. Pessoas, casas, trabalhos e lugares são definidos com vetores. O total de pessoas n cria o vetor pessoa[n]. Esse mesmo n gera mais 2 vetores, casa [n] e trabalho[n]. Já o vetor lugares é a soma de casas e trabalhos, de modo que lugares[2n] (figura S2).

S1 quantidades.jpeg

S2. relação de quantidade entre os objetos e propriedades

A estrutura de programação orientada a objetos permite que cada objeto tenha uma série de propriedades. Usamos a notação objeto.propriedade para facilidade de escrita. Assim, os objetos casas e trabalhos possuem uma propriedade chamada objeto.lugar, que é associada a um objeto lugares, assumindo sua posição no mapa. Os objetos pessoas possuem as propriedades pessoas.casa, pessoas.trabalho e pessoas.rotina. Os vetores pessoas, casas e trabalhos estão associados entre si na mesma sequência, de modo que pessoa{0} = casas{0} = trabalhos {0}, pessoa{1} = casas{1} = trabalhos {1}, pessoa{2} = casas{2} = trabalhos {2}, até pessoa{n-1} = casas{n-1} = trabalhos {n-1}. Foi atribuída apenas uma pessoa por par casa-trabalho para que os resultados das redes fossem devidos apenas aos encontros nos percursos, sem a interferência dos encontros que ocorreriam em casas ou trabalhos que são relacionados à concentração de pessoas no mesmo lugar, e não da geometria de um mapa.

A próxima etapa é a escolha da geometria. A definição das mesmas se deu por distância de forma e topologia. Um círculo ou um octógono não apresentariam diferenças marcantes entre si, nem mesmo com um quadrado. Todas definem um limite periférico com percursos convergindo para o centro. Já uma cruz manteria a relação entre vertical e horizontal do quadrado sem a concentricidade do círculo. As geometrias escolhidas foram linha, cruz, círculo, matriz e pontos aleatórios. O total de lugares define o número de pontos da matriz e os utilizados na localização aleatória, e no caso das formas, o total de pontos sobre elas.

S3 geometrias.jpeg

S3. geometria das distribuiições dos lugares

Com os endereços criados (os lugares), se passa a atribuição dos mesmos a casas e trabalhos. Foram estabelecidas 3 maneiras de associação, buscando causar diferentes efeitos no arranjo do "uso e ocupação do solo", ou seja, das origens e destinos dos percursos. A primeira se dava continuamente, então se tinha casas{0}…casas{n-1} associadas a lugares{0}...lugares{n-1}, e na sequência trabalhos{0}...trabalhos{n-1} associados a lugares{n}...lugares{2n-1} (figura S4). O objetivo aqui era criar uma setorização, algo análogo mas não obrigatoriamente equivalente ao plano modernista de segregação das funções urbanas.

alternado.jpeg
aleatorio.jpeg

S4. associação contínua, alternada, aleatória

O segundo modo de distribuição é alternado, cria uma espécie de "unidade de vizinhança", em que tudo se resolve próximo de "casa", algo que lembra o território isotrópico comentado por Viganó. Nesse caso, a atribuição segue na sequência casas{0} = lugares{0}, trabalhos{0} = lugares {1}, casas{1} = lugares {2}, trabalhos{1} = lugares{3} assim por diante até casas{n-1} = lugares{2n-2} e trabalhos{n-1} = lugares{2n-1} (figura S4).

A distribuição aleatória, por sua vez, seria uma situação mais caótica. Não se poderia dizer que se assemelha a áreas urbanas não "planejadas" porque estas tendem a apresentar alguns elementos de vizinhança preferencial. Para essa distribuição, tanto casas[n] quanto trabalhos[n] são associados de maneira aleatória aos endereços de lugares[2xn]. No caso da geometria de pontos aleatórios, a sequência de atribuição não interfere, de modo que não se aplica e a atribuição é feita de maneira sequencial (figura S4).

Como já dito, além do par casa-trabalho, cada pessoa possui uma rotina.  Essa rotina poderia conter inúmeras etapas, além de serem específicas por pessoa, mas para simplificação e termos apenas o efeito das variáveis desejadas, todas as rotinas foram iguais. A pessoas.rotina possui um destino e um horário, no caso, 8h00 ir para o trabalho, 18h00 ir para casa. O lugar inicial das pessoas é a casa.

Durante a simulação, a rotina dos agentes é operada enquanto os encontros são registrados, montando a rede de encontros da "sociedade" daquela “cidade” adicionando 1 ao respectivo par em E{pi,pj}, o que forma uma rede não direcionada. Essa rotina é simulada por 10 dias, 10 tendo sido arbitrado. O Redinha permite simular 13 cenários, 1 com mapa aleatório, e 12 na combinação entre os 4 mapas disponíveis e as 2 maneiras de associação das atividades.​ A matriz de adjacências final é salva como matriz.csv.

Finalizada a simulação de cada cenário, os arquivos matriz.csv com a rede E(pi, pj) foi analisada no software Gephy, um programa específico para análise de redes. O Gephy permite realizar várias opções de análise, como degree, network diameter, e connected components. Oferece, também, algumas configurações de visualização da rede, envolvendo cor, forma das arestas, tamanho dos nós e distribuição espacial da rede. A versão online do Redinha neste.

tese de doutorado - daniel lenz costa lima

bottom of page