APLICAÇÃO DE ALGORITMOS GENÉTICOS EM ALOCAÇÃO DE PARADAS DE ÔNIBUS Franciele Leal Farias (UFVJM) franleal09@hotmail.com Jhieson Luiz Seles (UFVJM) jhiesonx@hotmail.com LORENA SOPHIA CAMPOS DE OLIVEIRA (UFVJM) lorena.oliveira@ufvjm.edu.br A otimização de processos tem cada vez mais se destacado na sociedade atual. Procurando solucionar este problema, juntamente com a questão do transporte urbano de qualidade nas cidades brasileira, escolheram-se os Algoritmos Genéticos como método de aplicação para buscar a solução mais viável. O algoritmo criado foi desenvolvido na linguagem Java e implementado no ambiente NetBeans. O algoritmo foi capaz de encontrar uma solução satisfatória para a alocação de paradas de ônibus em uma cidade de médio porte do nordeste mineiro. Porém, é importante destacar o fato de que o mesmo pode ser utilizado em qualquer cidade, sem restrições de tamanho, e para qualquer percurso desde que este possa ter seu comprimento identificado. Palavras-chave: Algoritmos Genéticos, paradas de ônibus, otimização, percurso
1. Introdução A crescente procura por maneiras de potencializar processos em diversas áreas do conhecimento e o aumento da competitividade no mercado atual, levaram a otimização de processos a um espaço de destaque no cenário mundial. O tema otimização remete a uma busca por meios de maximizar lucros e minimizar perdas, obtendo vantagens competitivas sobre as empresas concorrentes (MUNDIM; DELAVY, 2008). Através dessa corrida estimulada pelo avanço cientifico atual e pelo desenvolvimento de novos métodos de gestão empresarial, diversos estudiosos tem se dedicado a encontrar métodos computacionais genéricos que se adaptem a diversos problemas da sociedade moderna e auxiliem a gestores de todas as áreas (MUNDIM; DELAVY, 2008). Segundo Linden (2012), na atividade de busca pelos melhores desempenhos, os Algoritmos Genéticos são uma classe de procedimentos que compõe uma das técnicas de Inteligência Artificial que se destaca pelo desempenho adequado em otimização de processos nas mais diversas áreas de conhecimento. Outro problema que tem tido destaque nas cidades mais desenvolvidas do cenário brasileiro é a questão da mobilidade urbana. Os sistemas de transporte público disponibilizados nessas cidades operam em nível adequado de oferta e qualidade de serviço. Porém, analisando as cidades de menor porte é possível perceber que não existe um planejamento urbano e de transportes que seja eficaz. Portanto, se torna necessário o desenvolvimento desse planejamento nas cidades menores, visando minimizar os problemas de mobilidade nas cidades do curto ao longo prazo (ANDRADE, 2004). Assim, considerando os dois problemas apresentados e levando em conta o desempenho dos Algoritmos Genéticos para lidar com o problema da otimização, este trabalho tem por intuito a criação de um algoritmo capaz de determinar a distribuição de circunferências em áreas retangulares, podendo ser utilizado em diversas situações. Ainda 2
neste trabalho, o algoritmo criado é utilizado para a alocação de paradas de ônibus ao longo de uma avenida de uma cidade de médio porte do nordeste mineiro. 2. Metodologia Os Algoritmos Genéticos (AGs) são um modelo heurístico computacional criado por John Holland que, ao ser implementado, poderia oferecer boas soluções para problemas até então considerados computacionalmente insolúveis (LINDEN, 2012). Este modelo foi inspirado no processo de modificação natural das populações, segundo os princípios da seleção natural proposto por Charles Darwin, em 1859, no seu livro intitulado A Origem das Espécies (FILITTO, 2008). Estes algoritmos estão baseados nos processos genéticos dos organismos biológicos que codificam possíveis soluções a uma situação/problema descrita em seus cromossomos. Os cromossomos representam um conjunto de indivíduos denominados população. Estes indivíduos são reproduzidos e selecionados ao longo de várias gerações seguindo os princípios de seleção natural e sobrevivência dos mais aptos, segundo a teoria de Darwin. Seguindo cada passo desse processo, os Algoritmos Genéticos são capazes de gerar soluções para problemas do mundo real (MAIA; MICHELAN, 2014). A ferramenta utilizada para implementação do AG proposto é o NetBeans. Essa ferramenta é um ambiente de desenvolvimento integrado (IDE) para desenvolvimento de softwares em diversas linguagens. Ele oferece aos usuários os instrumentos necessários para criar aplicativos profissionais de desktop, empresariais, web e multiplataformas. O NetBeans fornece uma base sólida para a criação de projetos e módulos, possuindo um grande conjunto de bibliotecas, módulos e uma documentação vasta bem organizada (NETBEANS, n.p.d.). O NetBeans ainda possui um framework baseado em Java para implementação de Algoritmos Genéticos, o JGAP (Java Genetic Algorithms Package). Essa ferramenta 3
proporciona mecanismos genéticos básicos de fácil utilização para solucionar problemas aplicando os princípios evolutivos (MEFFERT; ROTSTAN, 2012). Outras ferramentas utilizadas foram o Google Maps e o Google Earth Pro, ambas gratuitas e fornecidas pela empresa Google Inc. O Google Maps se trata de um aplicativo de serviço de pesquisa e visualização de mapas e imagens de satélites (GOOGLE, n.p.d.). Esse aplicativo fornece mapas e rotas em qualquer ponto do Brasil, por isso, foi utilizado nesse trabalho para demonstrar a avenida em que serão implementados os pontos de ônibus. O Google Earth Pro também é um aplicativo para visualização de imagens de satélite, mas, nele é possível gerar mapas bidimensionais para identificar lugares, paisagens, construções, entre outros (GOOGLE, n.p.d.). O programa é similar, porém mais complexo do que o Google Maps. Este aplicativo foi utilizado para demonstrar a localização exata dos raios de influência na avenida. O algoritmo utilizado neste trabalho tem por finalidade definir a posição de paradas de ônibus na Avenida Luiz Boali em Teófilo Otoni, Minas Gerais. A determinação da posição exata é baseada nos raios de influência. Cada ponto de ônibus abrange uma área especifica, recebendo as pessoas que se encontram dentro dela. Essa área é conhecida como raio de influência, pois ela tem o formato de uma circunferência e mostra a distância máxima que aquele ponto de ônibus pode atingir a população. 2.1 Topologia Para a realização deste trabalho foi construído um Algoritmo Genético com a utilização da codificação binária, que se adéqua facilmente ao problema em questão. Cada indivíduo é gerado aleatoriamente, possuindo um conjunto de bits que representam a quantidade de pontos a serem alocados dentro da área pré-definida, sendo que a cada oito bits é representada uma coordenada (x,y) de um ponto (FILITTO, 2008). Nesse trabalho serão alocados 6 pontos de ônibus, gerando um individuo de 48 bits. 4
Durante a simulação ocorreram testes com populações de diversos tamanhos, porém o melhor resultado foi encontrado na simulação que ocorreu com uma população contendo um grupo de trinta e cinco indivíduos. Nesta simulação foram utilizadas 150 gerações. O operador de seleção é um componente fundamental no algoritmo e é classificado pela sua intensidade de seleção (FILITTO, 2008). O operador de seleção deste trabalho é a roleta viciada. Um importante fator no processo de seleção é a função de avaliação que consiste em um elo entre o Algoritmo Genético e o meio ao qual ele está inserido. A avaliação é feita através de uma função inserida no AG que traduz o problema analisado, e retorna o nível de aptidão de cada individuo da população (FILITTO, 2008). Neste algoritmo, foi implantada uma função que determinasse a melhor posição para as circunferências na área determinada. O operador de cruzamento tem por função combinar partes dos cromossomos dos pais, para criar o cromossomo dos filhos (FILITTO, 2008). O operador escolhido para este algoritmo foi o crossover uniforme, e a taxa de cruzamento utilizada está na faixa de 80 a 95%. O operador de mutação é responsável pela introdução de pequenas mudanças que podem ocorrer nos cromossomos dos descendentes (FILITTO, 2008). O operador de mutação utilizado foi a inversão de bits e a taxa de mutação aplicada está na faixa de 1 a 10%. No decorrer do processo de gerações, o individuo perfeito pode ser encontrado e perdido no desenvolvimento do algoritmo, durante o cruzamento ou na mutação. Para evitar sua perda, foi inserido o elitismo que armazena esse individuo quando ele é encontrado e impede que ele seja modificado (FILITTO, 2008). Nesse algoritmo também foi o utilizado o método da adaptação dinâmica que é responsável por determinar a ocorrência do crossover e da mutação. Esse método possui grande importância, pois ele é capaz de determinar se a população utilizada está homogênea ou diversificada. Nele é quantificado o valor de avaliação de cada um dos indivíduos da população e determinado o valor médio do grupo. Através desses valores é possível 5
determinar a condição da população do algoritmo. Se esta for considerada homogênea, a probabilidade de ocorrência da mutação aumenta e a probabilidade do crossover diminui. Se considerada diversificada, a probabilidade de ocorrência do crossover aumenta e a da mutação diminui (SOARES, 1997). O algoritmo criado possui uma característica importante que deve ser levada em consideração que é a sua generalidade. Por se tratar de um problema que abrange muitas cidades, o mesmo foi construído de maneira que possibilitasse a sua adaptação a diversas situações. Nas Figuras 1 e 2 são apresentadas as caixas de entradas de dados onde o usuário final pode escolher o comprimento do percurso e o tamanho do raio de influência que será utilizado, ambas as informações em metros, tornando o algoritmo compatível com as mais variadas situações que podem ser encontradas. Figura 1 - Caixa de entrada do tamanho do raio de influência do ponto de parada Fonte: Adaptado do NetBeans Figura 2 - Caixa de entrada do tamanho do trecho analisado 6
Fonte: Adaptado do NetBeans 3. Resultados e Discussões A Figura 3 apresenta o percurso analisado neste trabalho, tendo este 1800 metros de comprimento. Porém, é necessário ressaltar que o percurso possui curvas e para realizar a alocação dos pontos foi necessário considerá-lo como uma reta para que o algoritmo pudesse obter um resultado satisfatório. Para realizar a locação das paradas de ônibus é necessário analisar as normas que regulamentam a distância mínima entre estes. Segundo Andrade (2004), o distanciamento recomendado entre as paradas está em torno de 500 metros que é considerada uma distância normal para o passageiro percorrer caminhando. Porém, é comum se utilizar o espaçamento de 300 metros entre as paradas. É importante ressaltar que essa distância é o recomendado para paradas nas áreas centrais e que esse valor aumenta nas áreas periféricas das cidades. Utilizando a distância de 300 metros entre as paradas, foi determinado um raio de influência de 150 metros em torno de cada uma delas. Figura 3- Percurso analisado no trabalho Fonte: Adaptado do Google Maps 7
Assim, o algoritmo foi capaz de determinar a posição de cada uma das seis paradas de ônibus na avenida, como pode ser visto na Tabela 1 e na Figura 4. Na Figura 4 é possível perceber que algumas circunferências se sobrescrevem em pequenos espaços do percurso. Este acontecimento é atribuído ao fato de o percurso ter sido considerado como reto para a alocação das paradas e quando ocorre o posicionamento no percurso de fato, as curvas acabam concentrando uma quantidade de espaço maior do que uma reta. Por isso, as circunferências que se sobrescrevem são exatamente as que possuem curvas no seu interior. Tabela 1 - Posição dos pontos de parada na avenida a partir da posição inicial de análise Parada Posição na avenida (m) 1 150 2 450 3 750 4 1050 5 1350 6 1650 Fonte: Autor Próprio Figura 4 - Posição das paradas de ônibus no percurso 8
Fonte: Adaptado do Google Earth Pro 4. Conclusão A busca por novas técnicas que resolvam problemas relacionados à otimização de processos, levou os pesquisadores aos Algoritmos Genéticos. Estes mostraram que são capazes de gerar soluções satisfatórias para diversos problemas do cenário atual. Assim, foi escolhido um problema relacionado ao transporte urbano para que o algoritmo fosse aplicado e gerasse soluções, sendo estas consideradas satisfatórias. É importante ressaltar que este algoritmo empregado é extremamente generalista, podendo ser utilizado desde cidades pequenas até grandes metrópoles, não importando o tamanho do município, e em qualquer percurso que possa ter seu comprimento mensurado. Também pode-se destacar o fato do algoritmo criado ter a funcionalidade de se aplicar a outros problemas que não envolvam a questão do transporte urbano, desde que o usuário possua conhecimento na área de AGs e que saiba manusear a ferramenta onde o mesmo foi implementado. 9
Analisando apenas o percurso utilizado neste trabalho, o resultado encontrado foi considerado satisfatório. Porém, pretende-se futuramente implementar a análise da população que circula pela área considerada e que utiliza o transporte público, de maneira que o algoritmo também leve essas informações em consideração quando for realizar a alocação das paradas de ônibus no percurso. Referências ANDRADE, Karoline; PAULA, Victor; MESQUITA, Adailson; VILLELA, Patrícia. Problemas relacionados aos pontos de parada do transporte público nas cidades de porte médio. IV Seminário Internacional da Lares, 2004. Disponível em:<http://www.lares.org.br/sl4g_andrade.pdf> Acesso em 15 de dezembro de 2016. FILITTO, Danilo. Algoritmos Genéticos: uma visão explanatória. Revista multidisciplinar da UNIESP, Saber Acadêmico - nº 06 - Dezembro 2008/ ISSN 1980-5950. Págs. 136-137. GOOGLE [Internet]. Visão geral do Google Earth Pro. [S.d.] Disponível em: <https://www.google.com.br/intl/pt-pt/earth/> Acesso em: 15 de abril de 2017. GOOGLE [Internet]. Visão geral do Google Maps. [S.d.] Disponível em: <https://www.google.com.br/maps/> Acesso em: 15 de abril de 2017. LINDEN, Ricardo. Algoritmos Genéticos. 3ª ed. Rio de Janeiro: Editora Ciência Moderna Ltda, 2012. 475p. MAIA, Alexandra Carniel Perdigão; MICHELAN, Roberto. Algoritmos Genéticos. Universidade Estadual de Maringá. Disponível em: < http://www.din.uem.br/ia/geneticos/> Acesso em: 06 de set. 2016. MEFFERT, Klaus; ROTSTAN, Neil. 2002-2012. Disponível em:< http://jgap.sourceforge.net> Acesso em 07 de jul. 2016. MUNDIM, Kleber; DELAVY, Vilma. Otimização Global de Processos Usando o Método Generalized Simulated Annealing. Revista Processos Químicos Pag 09-23. Julho Dezembro, 2008. NETBEANS [Internet]. Visão geral do NetBeans IDE. [S.d.] Disponível em: <https://netbeans.org/features/index_pt_br.html>. Acesso em: 07 de jul. 2016. 10
SOARES, Gustavo L. Algoritmos Genéticos: Estudo, Novas Técnicas e Aplicações. Dissertação de Mestrado, Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal de Minas Gerais (UFMG), 1997 11