A constante evolução dos sistemas de computação, em se tratando de hardware, além de técnicas usando a combinação de hardware e software, a exemplo de clusters e, mais recentemente, o conceito de computação nas nuvens, fez com que os sistemas de simulação computacional também ficassem cada vez mais completos, robustos e fáceis de ser utilizar. Muitos desses sistemas possuem interfaces gráficas intuitivas, que podem proporcionar a sua utilização por qualquer usuário, mesmo aqueles que não têm certa intimidade com sistemas tecnológicos. Este cenário fez com que as empresas, principalmente de manufatura, adotassem essa metodologia para tentarem funcionar bem próxima de sua capacidade máxima.
O professor (SWAIN, 2011), da Universidade do Alabama, e que trabalha com simulação desde a década de 70, diz que “as ferramentas de software de simulação pesquisadas nos últimos estudos (surveys) estão impressionantes em sua escala, sofisticação e capacidade. Elas fornecem um suporte inigualável para a construção, visualização e análises de modelos para grade gama de aplicações.”
Em se tratando de sistemas de simulação envolvendo questões relacionadas ao planejamento urbano e/ou tráfego de veículos, existem algumas ferramentas disponíveis, como o UrbanSim, UrbiSim e o SUMO – Simulation of Urban Mobility.
Essas ferramentas, que serão detalhadas mais abaixo, foram analisadas minuciosamente para se tentar alcançar o principal propósito deste trabalho, que é a viabilidade da utilização de sistemas de simulação computacional, juntamente com dados da rede de telefonia móvel celular, para se tentar criar um sistema de monitoramento da mobilidade urbana.
O simulador que foi escolhido para ser usado neste trabalho foi o SUMO. Esta escolha foi possível graças à definição de uma série de requisitos que foram analisados em cada um dos sistemas de simulação citados, sendo ele o único capaz de implementá- los na prática. Esses requisitos foram os seguintes:
Importação de mapas de ambientes urbanos: o simulador teria que ter a funcionalidade de importação de mapas de ambientes urbanos reais para a realização de simulações;
Customização dos mapas: além da importação dos mapas do ambiente urbano, o simulador teria que ser capaz de realizar a customização desse mapa, com a finalidade de incluir as torres de transmissão da rede de telefonia móvel celular (abrangendo a sua cobertura no mapa);
Inclusão de pontos móveis: este requisito objetivava a adição de pontos móveis (como veículos) no mapa importado, com a finalidade de analisar como se dá o seu deslocamento no mapa;
Geração de arquivo de registro (logs) para análises: o simulador deveria ser capaz de gerar um arquivo que armazenasse o percurso utilizado pelos pontos móveis, com a finalidade de se realizar análises pós a simulação.
A seguir, encontra-se a descrição dos sistemas de simulação que foram testados neste projeto.
2.6.3.1 UrbanSim
O UrbanSim é um sistema de simulação computacional que teve como principal motivação de desenvolvimento a tentativa de tentar entender a complexidade que existe no ambiente urbano para antecipar efeitos que possam vir a acontecer no futuro. Realizar mudanças estruturantes, como a criação ou alargamentos de rodovias, por exemplo, não podem ser tratadas como simples obras para resolver problemas de forma imediata, como acham as empreiteiras. Algumas características que o sistema de simulação UrbanSim modela incluem:
Representação explicitamente da terra, estrutura (casas, edifícios, etc) e seus ocupantes (famílias e empresas);
Projeção para altos níveis de desagregação espacial;
A simulação do desenvolvimento urbano como um processo dinâmico ao longo do tempo e espaço, em oposição a um método de corte transversal ou de equilíbrio.
A figura 2.5 apresenta o software de simulação UrbanSim com uma interface gráfica bastante amigável.
Figura 2.5: Sistema de simulação UrbanSim Fonte: UrbanSim (2012)
Apesar de o UrbanSim conseguir implementar muitas funcionalidade interessantes, ele se tornou inapto para este trabalho por não atender aos requisitos especificados.
2.6.3.2 UrbinSim
Outro sistema de simulação computacional que simula o ambiente urbano, e de nome muito parecido com o anterior citado, é o UrbiSim. Este sistema foi projetado para simular o comportamento humano em um ambiente urbano. Desenvolvido com a linguagem C++, este simulador recebeu a denominação de um framework que independe de qualquer ferramenta de simulação, e seve para receber dados reais para atender a diversos requisitos, o que inclui a mobilidade de pedestres e veículos (HERBIET; BOUVRY, 2009).
Apesar de o UrbiSim parecer ter uma idéia bastante inovadora, o projeto ainda está em fase de desenvolvimento, e não foram encontradas novas atualizações desde o ano de 2009. A figura 2.6 apresente a parte gráfica do sistema que, assim como o
Figura 2.6: Sistema de simulação UrbinSim Fonte: UrbinSim (2012)
Assim como o UrbanSim, o UrbinSim também possui diversas funcionalidades interessantes, mas também não atende aos requisitos propostos. Além disso, de acordo com web site oficial do projeto, desde o ano de 2009 não foram realizadas atualizações, o que pode caracterizar-se como abandono do projeto.
2.6.3.3 SUMO – Simulation of Urban Mobility
O SUMO – Simulation of Urban Mobility é um sistema de código aberto desenvolvido e mantido pelo Instituto de Sistemas de Transportes do Centro Aeroespacial da Alemanha, com a finalidade de realizar simulações com tráfego de veículos (BEHRISCH et al., 2011).
Com pequenas adaptações, este sistema permite-nos simular situações reais de usuários da rede de telefonia celular, sendo representados como veículos em movimento. A figura 2.7 apresenta a interface do SUMO já com a utilização de um mapa importado pelo OpenStreetMap.
Figura 2.7: Sistema de simulação SUMO Fonte: SUMO (2012)
O SUMO foi escolhido para este trabalho por ter atendido a todos os requisitos listados anteriormente. Abaixo, se encontra a forma com que o sistema implementa cada um deles:
Importação de mapas de ambientes urbanos: Uma das principais características do SUMO é a possibilidade de importação de mapas, no formato XML, a partir do serviço oferecido pelo OpenStreetMap. A importação é feita de modo que o sistema reconheça de forma fiel os sentidos de mão e contramão das ruas e avenidas do ambiente urbano que se deseja trabalhar. A figura 2.8 mostra o detalhe de um cruzamento de avenidas de um mapa que foi importado para o SUMO (BEHRISCH et al., 2011).
Figura 2.8: Detalhe do cruzamento de avenidas com o SUMO, a partir de um mapa importado pelo OpenStreetMap
Fonte: SUMO (2012)
Customização dos mapas: É possível definir polígonos no mapa, através de um arquivo XML, que é indicado no arquivo de configuração do sumo. Neste arquivo, além dos vértices do polígono, estão definidos outros atributos como cor, layer (camada do mapa) e fill (pintado ou não). No nosso caso, as áreas delimitadas são as coberturas das antenas (regiões hexagonais). A figura 2.9 apresenta este polígono no mapa.
Figura 2.9: Customizando mapas com o SUMO Fonte: SUMO (2012)
Inclusão de pontos móveis: O SUMO possibilita a inclusão de pontos móveis, a exemplo de automóveis e ônibus, durante a simulação. Esses pontos móveis podem ser inseridos nas ruas e avenidas do mapa que venha a ser importado pelo sistema. Além disso, esses pontos podem ser configurados com uma rota, que incluem origem e destino.
Geração de arquivos de registros (logs) para análises: Por fim, existe a possibilidade da geração de um arquivo de registro (log) contendo a movimentação de todos os pontos móveis utilizados na simulação. Esse log registra os locais por onde esses pontos passaram, e servem para realizar as análises pós a simulação.
Além de implementar todos os requisitos necessários para esta pesquisa, o SUMO dispõem também de um poderoso recurso que se chama traci -
Traffic Control Interface. O traci age como um servidor, e se comunica com o SUMO
através do protocolo TCP, o que pode ser interessante para a utilização em máquinas com alto poder de processamento. Com ele, é possível controlar todos os recursos de uma simulação de trânsito, alterando comportamentos e fluxos dos objetos que estão sendo monitorados. Esse controle é feito através de métodos já definidos. Com isso, é possível utilizar a linguagem de programação python de modo a executar esses métodos e conseguir os resultados esperados para este trabalho (TRACI, 2013).