Você está na página 1de 93

INSTITUTO FEDERAL DO ESPÍRITO SANTO

CURSO DE ENGENHARIA ELÉTRICA

YNGRITH SOARES DA SILVA

ALGORITMOS DE OTIMIZAÇÃO PARA A LOCALIZAÇÃO DE ESTAÇÕES DE


CARREGAMENTO DE VEÍCULOS ELÉTRICOS

Vitória
2017
YNGRITH SOARES DA SILVA

ALGORITMOS DE OTIMIZAÇÃO PARA A LOCALIZAÇÃO DE ESTAÇÕES DE


CARREGAMENTO DE VEÍCULOS ELÉTRICOS

Trabalho de Conclusão de Curso apresentado à


Coordenadoria de Engenharia Elétrica do Instituto
Federal do Espírito Santo – Campus Vitória, como
requisito parcial para a obtenção do título de Graduação
em Engenharia Elétrica.

Orientador: Prof. Dr. Mário Mestria

Vitória
2017
YNGRITH SOARES DA SILVA

ALGORITMOS DE OTIMIZAÇÃO PARA A LOCALIZAÇÃO DE ESTAÇÕES DE


CARREGAMENTO DE VEÍCULOS ELÉTRICOS

Trabalho de Conclusão de Curso apresentado à


Coordenadoria de Engenharia Elétrica do Instituto
Federal do Espírito Santo, como requisito parcial para a
obtenção do título de Graduação em Engenharia
Elétrica.

Aprovado em 06 de dezembro de 2017.

COMISSÃO EXAMINADORA

Prof. Mário Mestria


Instituto Federal do Espírito Santo
Orientador

Prof. Danilo Cezar Azeredo Silva


Instituto Federal do Espírito Santo

Prof. Renato Benezath Cabelino Ribeiro


Instituto Federal do Espírito Santo

Profª. Sandra Mara Torres Muller


Instituto Federal do Espírito Santo
DECLARAÇÃO DA AUTORA

Declaro, para fins de pesquisa acadêmica, didática e técnico-científica, que este


Trabalho de Conclusão de Curso de graduação pode ser parcialmente utilizado, desde
que se faça referência a fonte e à autora.

Vitória, 06 de dezembro de 2017

Yngrith Soares da Silva


AGRADECIMENTOS

“Não sabendo que era impossível, foi lá e fez. ” Essa frase de Jean Cocteau resume
essa conquista. De Medicina a Engenharia e agora vejo que tudo valeu a pena! Hoje
posso dizer: sou engenheira! Chegou ao fim mais esta etapa e só tenho a agradecer,
pois sozinho não podemos alcançar tantas conquistas. Sempre necessitamos de
carinho, apoio e palavras de incentivo.
Primeiramente, Senhor obrigada por essa vitória que me deu! Obrigada por me fazer
querer lutar nas horas mais difíceis, nas noites sem dormir...
Agradeço imensamente a minha mãe Sirlene, por me amar incondicionalmente e ter
lutado para que eu tivesse mais essa conquista.
Agradeço ao meu pai Luis Carlos, mesmo in memoriam, pois esteve ao meu lado
lutando e possibilitando a realização desse sonho.
Em especial aos dois, pois não mediram esforços em me proporcionar uma boa
educação.
Agradeço aos meus irmãos, Jéssica e Davi, que sempre me deram todo o carinho
necessário.
Agradeço aos meus familiares, pois foram escolhidos por Deus para estarem ao meu
lado.
Agradeço ao meu esposo, Marcos Vinícios, que sempre me apoiou e me incentivou.
Agradeço ao meu filho, João Vitor, pois sem o seu sorriso essa batalha seria mais
difícil.
Agradeço à família do meu esposo pela ajuda nos momentos necessários. Em
especial, minha sogra Eva, meu sogro José, minha concunhada Natália e meu
cunhado Carlos.
Agradeço também aos meus amigos da faculdade pelo companheirismo, passando
pelas mesmas dificuldades e alegrias. Em especial, Elisângela, Thaís e Carol.
Agradeço aos amigos em geral, pela amizade.
Muito obrigada, pois sem vocês nada disso seria possível!
Para Vinícios, João, Jéssica e Davi, razões de minha vida.
Para Luis Carlos e Sirlene, que me deram a vida.
“Eu gosto do impossível porque lá a concorrência é menor."
(Walt Disney)
RESUMO

Desde as décadas de 60 e 70, quando os veículos elétricos (VEs) ressurgiram, a taxa


de inserção deles no mercado vem crescendo gradualmente. Aliado a este aumento
dos VEs está a preocupação com o meio ambiente e a dependência de combustíveis
fósseis. Portanto, os VEs se tornarão os componentes principais no sistema de
transporte futuro. Com o aumento da quantidade desses veículos surgem
necessidades, como infraestrutura de recarga. Com isso, surge o problema de
localizar estações de carregamento em pontos estratégicos na cidade para atender a
demanda dos clientes, para que não haja necessidade de os clientes deslocarem-se
a uma distância muito longa para encontrar uma estação ou consigam encontrar uma
estação de recarga sem que alcance o limite mínimo de carga na bateria do VE. Este
trabalho tem como objetivo o desenvolvimento de um algoritmo com base na técnica
“guloso” e de um CRO (Chemical Reaction Optimization) para determinar a localização
do menor número possível de estações de carregamento de veículos elétricos. O
ponto ótimo definido para o trabalho será aquele no qual a função objetivo for mínima.
Além disso, será verificado o desempenho desses algoritmos na localização destas
estações para diferentes situações.

Palavras-chave: Veículos elétricos. Otimização. Metaheurística. Algoritmo guloso.


Otimização por reações químicas.
ABSTRACT

Since the ressugence of electric vehicles (EVs), in the 1960s and 1970s, their market
insertion rate has gradually increased. Along with with this increase in EVs circulation,
there has been an increasing concern for the environment and dependence on fossil
fuels. Therefore, VEs will become the major components in future transportation
systems, requiring the development of an EV recharging infrastructure.. This leads to
the problem of locating these charging stations at strategic points in the city to meet
customers demands, so that there is no need for customers to drive a very long
distance to find a station or require a recharge before reaching the minimum charge of
their VE’s batteries. This work aims to develop a Greedy and a Chain Reaction
Optimization (CRO) algorithms to determine the location of the fewest possible number
of EV charging stations. The optimum point defined for this work is where the objective
function value is minimal. In addition, the performance of the algorithms in locating
these charging stations are evaluated.

Keywords: Electric vehicles. Optimization. Metaheuristics. Greedy algorithm.


Optimization by chemical reactions.
LISTA DE ABREVIATURAS E SIGLAS

AIE - Agência Internacional de Energia


AG – Algoritmo Genético
ABVE - Associação Brasileira de Veículos Elétricos
BEV - Battery Electric Vehicle
BNEF – Bloomberg New Energy Finance
CRO - Chemical Reaction Optimization
Denatran - Departamento Nacional de Trânsito
GRASP – Greedy Randomized Adaptive Search Procedure
HEV - Hybrid Electric Vehicles
ICE - Internal Combustion Engine
ILS - Iterated Local Search
KE - Energia cinética
MinHit – Número mínimo de colisões
MinPE – Energia potencial mínima
MinStruct – Estrutura mínima
NumHit – Número de colisões
PE – Energia potencial
PHEV - Plug-in Hybrid Electric Vehicles
SA - Simulated Anneling
SOC - State of Charge
VCA – Tensão em corrente alternada
VE - Veículo elétrico
LISTA DE SÍMBOLOS

I Conjunto de centros de demanda


J Conjunto de locais candidatos à estações de recarga
fj Custo para localização da estação de recarga
dij Distância, percorrida pelo veículo, de um centro de demanda i até a estação
de recarga j
α Custo do kilowatt hora
distij Distância entre estação de recarga i e estação de recarga j
xj Variável de decisão
yij Variável de decisão
LISTA DE FIGURAS

Figura 1 – Vanguard Citicar (1974) ........................................................................... 20


Figura 2 - Medida do interesse global de consumo de VEs ...................................... 22
Figura 3 - Arquitetura série HEV ............................................................................... 24
Figura 4 - Arquitetura paralela HEV .......................................................................... 25
Figura 5 - Conector com fio em conexão condutiva .................................................. 28
Figura 6 - Equipamento de recarga tipo nível 2 condutivo .. ......................................30
Figura 7 - Estação de carregamento de nível 3......................................................... 30
Figura 8 - Formulação de um problema de otimização ............................................. 33
Figura 9 – Pseudocódigo do algoritmo guloso .......................................................... 37
Figura 10 - Representação da reação química na superfície potencial de energia ... 39
Figura 11 - Tipos de reações químicas ..................................................................... 45
Figura 12 - Classe “Molécula” .................................................................................. 47
Figura 13 – Pseudocódigo da colisão unimolecular .................................................. 48
Figura 14 – Pseudocódigo da decomposição............................................................ 48
Figura 15 – Pseudocódigo da colisão intermolecular ................................................ 49
Figura 16 – Pseudocódigo da síntese ....................................................................... 50
Figura 17 – Pseudocódigo do algoritmo CRO ........................................................... 51
Figura 18 – Locais candidatos a estações e os clientes escolhidos em
Vitória ............................................................... ......................................57
Figura 19 – Parte da pmed1 da base Beasley .......................................................... 60
Figura 20 – Pseudocódigo do Algoritmo de Floyd ..................................................... 60
Figura 21 – Algoritmo de leitura de dados do arquivo ............................................... 61
Figura 22 – Algoritmo guloso para perturbação da solução ...................................... 63
Figura 23 – Configuração de 1 estação escolhida com algoritmo Guloso ................. 69
Figura 24 - Configuração de 2 estações escolhidas com algoritmo Guloso .............. 69
Figura 25 - Configuração de 3 estações escolhidas com algoritmo Guloso .............. 70
Figura 26 – Configuração de 4 estações escolhidas com algoritmo Guloso ............. 70
Figura 27 – Configuração de 2 estações escolhidas com metaheurística CRO ........ 71
Figura 28 – Distância entre local candidato 1 e cliente 6 no Google Maps ............... 84
Figura 29 – Distâncias reais entre locais candidatos e clientes ................................ 85
Figura 30 – Matriz construída pelo algoritmo de Floyd no LabWindows 2017 .......... 86
LISTA DE FIGURAS

Figura 31 – Algoritmo de perturbação da solução no CRO ....................................... 89


Figura 32 – Valores da base OR-Library ................................................................... 90
LISTA DE GRÁFICOS

Gráfico 1 - Preço do petróleo bruto: 1965-2013 (em US$) ........................................ 20


Gráfico 2- Consumo global de VEs ........................................................................... 21
Gráfico 3 - Tempo computacional x Tamanho do problema ...................................... 72
LISTA DE TABELAS

Tabela 1 - Características dos BEVs e HEVs............................................................ 20


Tabela 2 - Correspondência entre os significados das estruturas na química e no
algoritmo ................................................................................................... 41
Tabela 3 - Tipos de reação classificadas quanto a intensificação e diversificação ... 46
Tabela 4 - Locais candidatos a estações de carregamento em Vitória ..................... 56
Tabela 5 - Resultados do algoritmo Guloso para 16 clientes e linha reta em Vitória 65
Tabela 6 - Resultados do algoritmo Guloso para 16 clientes e distâncias reais em
Vitória ....................................................................................................... 65
Tabela 7 - Resultados da metaheurística CRO para 16 clientes e linha reta em
Vitória ....................................................................................................... 66
Tabela 8 - Resultados da metaheurística CRO para 16 clientes e distâncias reais em
Vitória ....................................................................................................... 67
Tabela 9 - Resultados da resolução dos 40 problemas da base OR-Library. ........... 73
Tabela 10 - Longitude e latitude dos locais candidatos mostrados no Google Maps..
................................................................................................................. 82
Tabela 11 - Longitude e latitude dos clientes mostrados no Google Maps ............... 82
SUMÁRIO

1 INTRODUÇÃO .......................................................................................... 16
2 REVISÃO DE LITERATURA ..................................................................... 19
2.1 HISTÓRIA DOS VEÍCULOS ELÉTRICOS ................................................. 19
2.1.1 Veículos Elétricos – Futuro ..................................................................... 21
2.1.2 Veículos Elétricos - Brasil ....................................................................... 23
2.2 TIPOS DE VEÍCULOS ELÉTRICOS .......................................................... 23
2.2.1 Veículo Elétrico Híbrido (HEV) ............................................................... 23
2.2.2 Veículo Híbrido Elétrico plug-in (PHEV) ................................................ 25
2.2.3 Veículo Elétrico somente a Bateria (BEV) ............................................. 25
2.3 TIPOS DE BATERIAS ............................................................................... 26
2.3.1 Chumbo / Ácido (Pb/A) ............................................................................ 27
2.3.2 Hidreto de Metal de Níquel (Ni-MH) ........................................................ 27
2.3.3 Lítio-íon ..................................................................................................... 27
2.4 MODOS DE CARREGAMENTO ................................................................ 28
2.4.1 Carregadores internos ............................................................................ 28
2.4.2 Carregadores externos ............................................................................ 29
2.4.2.1 Nível 1 de carregamento ............................................................................ 29
2.4.2.2 Nível 2 de carregamento ............................................................................ 29
2.4.2.3 Nível 3 de carregamento ............................................................................ 30
2.5 PROBLEMA DE LOCALIZAÇÃO DE FACILIDADES ................................. 31
2.6 OTIMIZAÇÃO............................................................................................. 32
2.7 METAHEURÍSTICAS ................................................................................. 34
2.7.1 Classificação das metaheurísticas ......................................................... 35
2.7.1.1 Inspiradas ou não na natureza................................................................... 35
2.7.1.2 Busca por entorno ou populacionais .......................................................... 35
2.8 ALGORITMO COM ESTRATÉGIA GULOSA............................................. 36
2.9 ALGORITMO CRO .................................................................................... 38
2.9.1 Componentes básicos ............................................................................. 40
2.9.2 Reações químicas.................................................................................... 41
2.9.2.1 Colisão ineficaz unimolecular..................................................................... 42
2.9.2.2 Decomposição ........................................................................................... 42
2.9.2.3 Colisão ineficaz intermolecular .................................................................. 43
2.9.2.4 Síntese ....................................................................................................... 44
2.9.3 Design do algoritmo ................................................................................ 46
2.9.3.1 Inicialização ............................................................................................... 46
2.9.3.2 Iterações .................................................................................................... 47
2.9.3.3 Finalização ................................................................................................. 50
2.10 TRABALHOS RELACIONADOS Á VEÍCULOS ELÉTRICOS .................... 51
3 METODOLOGIA ....................................................................................... 53
3.1 FORMULAÇÃO MATEMÁTICA ................................................................. 53
3.2 LEVANTAMENTO DE DADOS .................................................................. 55
3.2.1 Casos Reais - Vitória ............................................................................... 55
3.2.2 Base de Dados OR-Library...................................................................... 59
3.2.2.1 Algoritmo de Floyd ..................................................................................... 60
3.2.2.2 Arquivos texto ............................................................................................ 61
3.3 ALGORITMO GULOSO ............................................................................. 62
3.4 ALGORITMO CRO .................................................................................... 63
4 RESULTADOS .......................................................................................... 65
4.1 CASOS REAIS – VITÓRIA ........................................................................ 65
4.2 BASE DE DADOS OR-LIBRARY ............................................................... 71
4.3 COMPARAÇÃO DOS RESULTADOS APRESENTADOS ......................... 74
5 CONCLUSÃO E TRABALHOS FUTUROS ............................................... 75
REFERÊNCIAS ......................................................................................... 76
APÊNDICE A ............................................................................................. 82
APÊNDICE B ............................................................................................. 83
APÊNDICE C ............................................................................................. 86
APÊNDICE D ............................................................................................. 86
APÊNDICE E ............................................................................................. 86
APÊNDICE F ............................................................................................. 86
ANEXO A .................................................................................................. 90
16

1 INTRODUÇÃO

Desde as décadas de 60 e 70, quando os veículos elétricos (VEs) ressurgiram, a taxa


de inserção deles no mercado vem crescendo gradualmente (BNEF, 2017). A
preocupação com o meio ambiente e a dependência de combustíveis fósseis auxilia
nesse aumento dos VEs.

Desde o século XX, a mobilidade é dependente dos motores de combustão interna


e, consequentemente, dos combustíveis fósseis. Segundo as últimas estatísticas da
Agência Internacional de Energia (AIE), 60% do consumo mundial de derivados de
petróleo é do setor de transportes. Dos transportes existentes no planeta, cerca de
900 milhões, 90% consome derivados de petróleo (ANEEL, 2008).

Além disso, o motor de combustão interna está se tornando obsoleto, pois sua
eficiência é de, aproximadamente, 30% da energia do combustível. Além da baixa
eficiência, a emissão de gases poluentes, como o dióxido de carbono (CO 2),
permanece alta (OSORIO, 2013).

É neste cenário que os VEs, puros ou híbridos, vêm ganhando força como alternativa
para a independência energética, pois os VEs têm a vantagem de produzir menos
gases que são prejudiciais para a saúde do ser humano em comparação com os
veículos de combustão interna, segundo Marinho (2013). Para Lam e Li (2010),
veículos elétricos não só podem aliviar a nossa demanda de combustíveis fósseis,
mas também ajudam a promover um ambiente melhor para viver. De acordo com
Lam et al. (2014), fontes alternativas de energia tem se tornado crucial para o
desenvolvimento futuro de uma nação.

Outra vantagem oferecida pelos VEs é o custo por distância percorrida. Segundo a
EDP Portugal (2017), o custo estimado de um carro elétrico é de 1315€/ano contra
2090 €/ano de um carro a combustão, supondo uma média de 12000 Km
rodados/ano. Portanto, os VEs se tornarão os componentes principais no sistema de
transporte futuro. De acordo com a ABVE (2016), o Brasil comercializou 855 modelos
de VEs em 2014. Hoje, a frota é formada por 3 mil veículos.

O maior mercado mundial está no Japão, que conta com 11% da frota movida à
eletricidade. Nos Estados Unidos, temos 4% (ABVE, acesso em 20 out. 2016).
17

Com o aumento da quantidade desses veículos surgem necessidades, como


infraestrutura de recarga. Ainda existem poucas estações de carregamento
disponíveis para atender a demanda de VEs e há a necessidade de maior número
de estações de carregamento em espaços públicos.

Com isso, surge o problema de localizar estas estações de carregamento em pontos


estratégicos na cidade para atender a demanda dos clientes, para que não haja
necessidade de os clientes deslocarem-se a uma distância muito longa para
encontrar uma estação ou consigam encontrar uma estação de recarga sem que
alcancem o limite mínimo de carga da bateria do VE (Lam et al., 2014).

Para localizar o ponto ótimo de instalação destas estações de carregamento podem


ser usadas diferentes técnicas computacionais através de métodos exatos, como
métodos cutting planes, branch-and-bound e divide and conquer (Genova; Guliashki,
2011). Os métodos exatos devem ser aplicados à resolução de problemas de
instâncias pequenas, pois o tempo computacional cresce rapidamente à medida que
aumenta o número de instâncias. Em situações reais, precisamos encontrar soluções
com baixo tempo computacional. Desta forma, a técnica proposta neste trabalho é a
do uso do algoritmo guloso (Greddy). Outra técnica proposta é metaheurística
Chemical Reaction Optimization (CRO), que se baseia em reações químicas.

Este trabalho tem como objetivo o desenvolvimento de um algoritmo guloso e de um


algoritmo baseado na metaheurística CRO para determinar a localização do menor
número possível de estações de carregamento de veículos elétricos. O ponto ótimo
definido para o trabalho será aquele no qual o valor da função objetivo for mínima.

Além disso, será verificado o desempenho desses algoritmos na localização destas


estações para diferentes tipos de situações.

Já os objetivos específicos deste trabalho foram: realizar um estudo sobre modelos


matemáticos de otimização de implementação de facilidades, definir as funções
objetivo e parâmetros envolvidos na localização de estações de carregamento,
desenvolver um algoritmo com estratégia gulosa para localizar estações de
carregamento de veículos elétricos numa planta, desenvolver um algoritmo CRO,
com a mesma finalidade, além de comparar os resultados obtidos pelos algoritmos.

Este trabalho está dividido em cinco capítulos. No primeiro capítulo encontra-se a


introdução do trabalho, que apresenta uma breve motivação para o mesmo além dos
18

objetivos. No segundo capítulo é realizada uma revisão bibliográfica, abordando os


conceitos de metaheurísticas, algoritmo guloso e do CRO. Já no terceiro capítulo,
aborda-se a metodologia utilizada no desenvolvimento do trabalho. No quarto
capítulo, discute-se os resultados e no quinto capítulo, encontram-se a conclusão e
sugestão de trabalhos futuros.
19

2 REVISÃO DE LITERATURA

2.1 HISTÓRIA DOS VEÍCULOS ELÉTRICOS

Não se sabe ao certo quem inventou o veículo elétrico, já que o mesmo surgiu em
diferentes localidades quase ao mesmo tempo. Em 1800, a França e a Grã-Bretanha
foram os primeiros países a incentivar o desenvolvimento dos carros elétricos. Em
1828, o húngaro Ányos Jedlik fez um carro alimentado por um motor elétrico, mas
em escala reduzida. Por volta de 1832, o escocês Robert Anderson também fez um
carro movido a eletricidade. Em 1835, surgiu, na Holanda, outro veículo elétrico. A
primeira aplicação comercial do veículo elétrico ocorreu em 1897, na cidade de Nova
York. Os veículos foram utilizados numa frota de táxi (BELLIS, 2013, tradução
nossa).

O auge dos veículos elétricos ocorreu em 1900, quando as vantagens de se ter um


carro elétrico em relação a um veículo com motor de combustão eram maiores. Na
época, os veículos elétricos não tinham a vibração, o ruído e o cheiro dos carros a
gasolina. O pico de produção desta modalidade de veículos ocorreu em 1912
(BELLIS, 2013, tradução nossa).

Anos depois, foi descoberto petróleo no Texas (EUA), que contribuiu para a redução
do preço da gasolina, tornando-a um preço atrativo para o setor de transportes.
Henry Ford iniciou a produção em massa dos carros de motor de combustão interna
(ICE), o que fez reduzir o valor de venda deste tipo de carro. Os carros com ICE
tinham uma velocidade e autonomia maiores. Então, tornou-se vantajoso adquirir
um carro com ICE ao invés de um veículo elétrico. Consequentemente, houve um
declínio na popularidade dos carros elétricos. Sendo que quase desapareceram em
1935 (BELLIS, 2013, tradução nossa).

Na década de 70 surgiu a necessidade de se criarem alternativas para reduzir a


emissão de gases dos ICE e a dependência de combustíveis fósseis, no setor de
transportes, pois o preço do petróleo voltara a subir, como é mostrado no Gráfico 1.
Então, os veículos elétricos voltaram a ser explorados (MOREIRA et al., 2013).
20

Gráfico 1 - Preço do petróleo bruto: 1965-2013 (em US$)

Fonte: Vaz (2015).

Surgiram vários protótipos, como o Vanguard-Sebring CitiCar, mostrado na Figura 1,


menor que seu antecessor indiano REVA, que foi um dos carros elétricos mais
vendidos mundialmente. Versões melhores dos carros elétricos foram criadas nas
próximas duas décadas, como: o EV1, da General Motors, que ficou muito caro para
ser fabricado em escala; o Toyota RAV4, que surgiu em 2001; o Tesla Roadster, que
foi para as ruas em 2006 (FRANCES, 2009, tradução nossa).

Figura 1 - Vanguard CitiCar (1974)

Fonte: CarBuzz (2013).

O desenvolvimento dos veículos elétricos ocorreu de forma gradual e lenta até o início
do século XXI, mas o interesse pelos mesmos vem aumentando.
21

2.1.1 Veículos Elétricos – Futuro

Nos últimos anos, com o crescente aumento do preço do petróleo e a preocupação


com o meio ambiente, o interesse do governo e da indústria pelos veículos elétricos
intensificaram-se.

Conforme pesquisa realizada pela Deloitte em 2011, com mais de 13000 pessoas em
17 países, 30% das pessoas se veem como potenciais compradores do primeiro
veículo elétrico, assim como 56% das pessoas talvez estejam dispostas a comprar,
no Brasil, como se pode ver no Gráfico 2 (GIFFI et al., 2011, tradução nossa).

Gráfico 2 - Consumo global de VEs

Fonte: Adaptado de Giffi et al. (2011).

A mesma pesquisa mostra que Brasil, Argentina, China e Índia são os países onde há
maior interesse no consumo de VEs, conforme mostra a Figura 2.
22

Figura 2- Medida do interesse global de consumo de VEs

Fonte: Adaptado de Giffi et al. (2011).

No mundo, em 2013, foram licenciados 1,6 milhão de veículos elétricos híbridos e 105
mil elétricos puros, correspondendo a 2% do total de licenciamentos mundiais (VAZ et
al., 2015).

O Japão possui o maior mercado mundial de VEs, contando com 11% da frota movida
à eletricidade (ABVE, acesso em 20 out. 2016). De acordo com a Nissan, o Japão
conta com 40 mil totens de recarga de VEs contra 35 mil postos de combustíveis
(EXAME, 2016).

Nos EUA, considerado o maior mercado automotivo mundial, em 2014 foram


licenciados, aproximadamente, 63 mil veículos elétricos puros e 544 mil híbridos,
incluindo HEV e PHEV, representando 3,5% do número de veículos.

Já na Noruega, o número de veículos elétricos puros licenciados corresponde a 4%


do total de veículos (ANFAVEA, 2014; MARKLINES, 2014).

Hoje, diversos modelos de carros elétricos são comercializados, como o Model 3 da Tesla,
que é considerado o primeiro carro elétrico puro popular da marca, com valor de revenda
23

de U$35 mil. Este modelo tem uma autonomia de 345Km. Há outra versão da marca que
possui autonomia de 500Km e custa U$44 mil. Há também o Chevrolet Bolt que atualmente
está sendo vendido por U$30 mil nos EUA, com autonomia de 382Km. O carro elétrico
mais vendido no mundo é o Nissan Leaf, com autonomia de 172Km. Porém, nenhum
destes modelos é comercializado no Brasil. Há previsão do Nissan Leaf ser comercializado
no Brasil a partir de 2019 (PRESSE, 2017).

2.1.2 Veículos Elétricos - Brasil


Sabe-se que a frota de VEs ainda é pequena no Brasil. Segundo a Associação Brasileira
do Veículo Elétrico (ABVE), em setembro de 2015, o país contava, aproximadamente,
com 3 mil veículos elétricos puros e híbridos. Sendo que a frota total de veículos era de
89,7 milhões de veículos, de acordo com o Departamento Nacional de Trânsito
(Denatran).

No Brasil, é comercializado a BMWi3, que possui autonomia de 160Km e está sendo


comercializado por R$160 mil (BMW, 2017). Temos também o novo Toyota Prius, com
poucas unidades funcionando como táxis da prefeitura de São Paulo. A expectativa da
Associação Brasileira do Veículo Elétrico é que circulem de 30 mil a 40 mil carros
elétricos, no Brasil, em 2020.

2.2 TIPOS DE VEÍCULOS ELÉTRICOS

Um veículo elétrico é aquele que possui o motor elétrico ligado à tração do veículo,
diferentemente dos veículos com motor de combustão interna (Castro e Ferreira,
2010).
Podem-se classificar os veículos elétricos em: veículos elétricos híbridos e puros.

2.2.1 Veículo Elétrico Híbrido (HEV)

Um veículo híbrido é um automóvel que possui mais de um motor de propulsão. A


forma mais empregada em um veículo elétrico híbrido é a que combina motor de
combustão interna e motor elétrico. O ICE está ligado a tração do veículo ou
movimenta um gerador, fornecendo energia para o motor elétrico. Neste tipo de
24

veículo existem dois tipos de arquitetura de hibridização: série e paralelo. Quanto


maior a hibridização, maior é o motor elétrico e menor o ICE (OSORIO, 2013).

O ICE é utilizado em último caso, pois o veículo pode ser utilizado somente em modo
elétrico ou pode ter o motor elétrico complementando o ICE. Há um sistema eletrônico
no veículo que decide em que instante utilizar ICE e quando usar a fonte elétrica. A
carga da bateria é obtida através da frenagem regenerativa e excesso de energia do
ICE, portanto, o veículo necessita ser abastecido com combustível. A melhoria na
capacidade das baterias pode reduzir o uso do ICE. O Ford Fusion e o Toyota Pirus
são exemplos de HEVs (ETSAP, 2010, tradução nossa).

Na arquitetura série, o motor a combustão interna tem a função de gerar a energia


necessária para o funcionamento do motor elétrico. Ou seja, motor a combustão
interna aciona um gerador, cuja energia pode ser utilizada para carregar as baterias e
acionar o motor e não há conexão entre o ICE e as rodas. O motor elétrico é quem
movimenta as rodas (BORBA, 2012), como mostra a Figura 3.

Figura 3 – Arquitetura série HEV

Fonte: Adaptado de Esposito (2008).

Na arquitetura paralela, tanto o ICE como o motor elétrico tem conexão com as rodas.
Dependem da frenagem para manter a bateria recarregada e podem ter uma bateria
menor do que na arquitetura série, como pode ser visto na Figura 4.
25

Figura 4 – Arquitetura paralela HEV

Fonte: Adaptado de Esposito (2008).

Existe uma terceira arquitetura que conjuga as duas arquiteturas anteriores, chamada
arquitetura série-paralela, que permite que o ICE tenha o controle das rodas em altas
velocidades, como um híbrido paralelo, e em menores velocidades, as rodas são
conectadas ao motor elétrico, como na arquitetura série.

2.2.2 Veículo Híbrido Elétrico plug-in (PHEV)

O PHEV possui uma bateria com maior capacidade de armazenamento, em relação


ao HEV, que é utilizada para alimentar o motor elétrico. A bateria é carregada
diretamente da rede elétrica por meio de uma tomada (plug) (BORBA, 2012).

2.2.3 Veículo Elétrico somente a Bateria (BEV)

Os veículos elétricos a bateria ou veículos elétricos puros são o tipo de veículo


formado somente por motor elétrico e a bateria. O BEV depende da conexão com a
rede elétrica para carregar sua bateria. Por esse motivo, sua bateria tem maiores
dimensões, além do veículo possuir uma autonomia menor (OSORIO, 2013).

Na Tabela 1 estão resumidas as principais características destes tipos de veículos.


Os PHEV e os HEV foram agrupados em "Hybrid EVs", por terem vários aspectos em
comum.
26

Tabela 1 - Características dos BEVs e HEVs

Característica VEs a bateria VEs híbridos


Motor elétrico
Propulsão Motor elétrico Motor combustão
interna
Energia do Bateria
Bateria
sistema ICE
Estações de recarga de
Estações de recarga de
Fonte de energia VEs
VEs
Postos de gasolina
Zero emissão de poluentes Baixa emissão de
Independência de poluentes
Características
combustíveis Dependente de
Custo inicial alto combustíveis fósseis

Fonte: Adaptado de Chan (2002).

2.3 TIPOS DE BATERIAS

A bateria é um elemento muito importante em veículos elétricos. Sua função é de


armazenagem de energia. É formada por duas ou mais células eletroquímicas unidas
entre si, que convertem energia química em elétrica. Quando a bateria é
recarregável, ela consegue fazer a reação química inversa, sendo assim carregada
(BAKKER, 2010, tradução nossa).

Segundo Castro e Ferreira (2010), existem três tipos de baterias mais utilizadas na
indústria automobilística: as de chumbo-ácido (PbA), as de níquel-hidreto metálico
(NiMH) e as de Lítio-íon (Li-Ion).

Para que os VEs sejam bem difundidos, a bateria deve ter bom tempo de vida útil e
alta energia específica (Wh/kg). (AHMAN, 2000, tradução nossa).

A energia específica das baterias é menor do que a energia específica dos


combustíveis fósseis, assim são uma fonte de energia que se esgota mais
rapidamente (CHAN, 2007).
27

2.3.1 Chumbo / Ácido (Pb/A)

Eram usadas antigamente em VEs. As baterias de chumbo/ácido são as mais


utilizadas em motores de combustão interna para acionamento de partes elétricas,
pois possui preços menores se comparada a outras e exigem baixa manutenção
(OSORIO, 2013).

Além disso, possui vida útil baixa assim como baixa energia específica, de 30 a 50
Wh/Kg (Valsera-Naranjo et al, 2009). O número de ciclos desta bateria é de 100 ciclos
e a razão para isto é a corrosão que ocorre na placa positiva (RUESTCHI, 2004,
tradução nossa).

2.3.2 Hidreto de Metal de Níquel (Ni-MH)

Foi o primeiro tipo de bateria a ser utilizado nos carros híbridos. Essas baterias têm
sido gradualmente substituídas pelas baterias de lítio-íon. Possui uma energia
específica maior em relação à bateria de chumbo/ácido. Segundo Valsera-Naranjo et
al (2009), a energia específica varia de 60 a 80 Wh/kg. A vida útil de uma bateria de
Ni-MH pode chegar a 3000 ciclos de recarga, aproximadamente 10 anos (EPRI, 2004,
tradução nossa).

De acordo com Castro e Ferreira (2010), suas desvantagens são o alto custo, o peso
relativamente alto e o fato de não poderem descarregar-se completamente.

2.3.3 Lítio-íon (Li-Ion)

Essa bateria é uma das mais utilizadas nos VEs, pois é uma bateria de alto
desempenho. Tem a maior energia específica, em torno de 130 Wh/kg, e todos os
materiais utilizados para a sua fabricação são mais leves. Tem um ciclo de vida maior
comparado com os outros tipos de baterias. A desvantagem da bateria de Lítio-íon
ainda é o preço e sua baixa tolerância a picos de potência na recarga (OSORIO, 2013).
28

2.4 MODOS DE CARREGAMENTO

As tecnologias de carregamento de VEs podem ser agrupadas em carregadores


internos e externos.

2.4.1 Carregadores internos

Os carregadores internos situam-se no interior do VE e são acessados do exterior


para conectar-se a uma fonte de alimentação. A função da fonte de alimentação é
fornecer energia para a recarga a bateria.

Existem dois tipos de técnicas de conexão ao veículo elétrico para a recarga: conexão
condutiva e conexão indutiva. Na conexão condutiva, a energia é transferida pelo
contato direto do veículo e o carregador, que possui um fio, conforme mostrado na
Figura 5 (ECHEVERRI, 2014).
Figura 5 - Conector com fio em conexão condutiva

Fonte: Valsera-Naranjo et al. (2009)

Na conexão indutiva ou conexão sem fio, é utilizado o campo eletromagnético para


recarga, sem contato direto.
29

2.4.2 Carregadores externos

Os carregadores externos consistem em carregadores que se situam no exterior do


veículo. A forma mais conhecida são as estações de carregamento.

Existem três diferentes níveis de carga, que foram definidos pelo Instituto de Pesquisa
de Energia Elétrica dos Estados Unidos (EPRI), que serão explicados adiante.

2.4.2.1 Nível 1 de carregamento

Neste nível de carregamento, a recarga é realizada de forma lenta, com baixos níveis
de tensão e corrente. Geralmente, é realizado em residências no horário noturno ou
em empresas de grande porte, durante o horário de trabalho dos funcionários, onde
as tarifas de energia são mais baratas que em horário de ponta (OSORIO, 2013).

Para este tipo de recarga é usada uma tensão padrão de 120 VCA, com corrente de
15 A a 20A. Como a potência fornecida por este tipo de recarga é de,
aproximadamente, 1,9 kW, o tempo que a bateria leva para atingir um estado de carga
(SOC) de 100% oscila entre 12 e 18 horas, dependendo do tipo e do modelo do veículo
(ECHEVERRI, 2014).

2.4.2.2 Nível 2 de carregamento

É um dos métodos mais utilizados para a recarga dos VEs, pois pode ser feita em
locais públicos e privados, a partir de uma tensão de 240 VCA com uma corrente de
40A. Existem equipamentos condutivos para esse tipo de recarga que usam
conexões tipo "butt-type" ou "pin and sleeve", como mostrada na Figura 6
(MORROW et al., 2008, tradução nossa).
30

Figura 6 - Equipamento de recarga tipo nível 2 condutivo

Fonte: Morrow et al. (2008).

2.4.2.3 Nível 3 de carregamento

Este modo é conhecido como carga rápida e é utilizado em espaços comerciais


públicos, com desempenho similar a um posto de gasolina. Geralmente, utiliza uma
tensão de 480 VCA e circuito trifásico. Neste nível de carga, as baterias atingem 50%
do SOC em 10 a 15 minutos. Um exemplo desse tipo de estação é mostrado na Figura
7 (MORROW et al., 2008, tradução nossa).

Figura 7 - Estação de carregamento de nível 3

Fonte: Morrow et al.(2008).


31

2.5 PROBLEMA DE LOCALIZAÇÃO DE FACILIDADES

O problema de localização de facilidades é um método da Pesquisa Operacional de


grande importância, pois uma boa localização de facilidades pode garantir melhorias
na qualidade de serviços e a competitividade de um negócio, diminuindo os custos de
logística (OLIVEIRA, 2012).

Ainda segundo o autor, trata-se da decisão de localizar objetos, chamados de


facilidades, para que atendam da melhor forma aos critérios de demanda. As
facilidades vão interagir com os clientes, que terão localizações fixas. Este problema
também é conhecido como problema de localização-alocação (OLIVEIRA, 2012).

Podem ser consideradas facilidades: redes de comunicação, subestações em rede


elétrica e estações de carregamento de veículos elétricos. Para encontrar soluções
para este problema, o primeiro passo é a análise de suas características dele.
Algumas destas características são: minimização de custos (por exemplo: distância,
tempo, localização, demanda de energia), região geográfica abordada, número de
facilidades que são necessárias, tamanho da facilidade e capacidade de atendimento
à demanda da facilidade (KLOSE, 2005, tradução nossa).

Esta teoria avançou a partir das pesquisas de Hakimi (1964) com as formulações do
problema de p-mediana, que tem como objetivo localizar p facilidades para atender n
pontos de demanda de forma que a distância percorrida do ponto de demanda a
facilidade seja a menor possível (TRAGANTALERNGSAK et al.,1999, tradução
nossa). O problema de p medianas pode ser classificado em: capacitado e não-
capacitado. No capacitado, cada local candidato a se tornar facilidade tem uma
capacidade finita, não podendo atender clientes além do que a sua capacidade
permite. Já no problema não-capacitado, o local candidato a facilidade pode atender
um número infinito de clientes. (TRAGANTALERNGSAK et al. (1999)).

Os problemas de localização de facilidades são considerados NP-hard, ou seja, de


difícil solução, devido a sua complexidade (DASKIN, 2015, tradução nossa). Existem
diversas formas de solucioná-lo, como os métodos exatos, que podem ser aplicados
a problemas de pequeno porte, já que buscam o ponto ótimo (STEINER, 2003).

Para a resolução de problemas de grande porte, na qual a utilização de um método


exato não é adequada devido ao tempo de processamento, aplicam-se métodos
32

aproximados que fornecem soluções próximas da ótima em um tempo viável, como a


heurística relaxação Lagrangeana/Surrogate (COSTA, 2005). Contudo, a maioria das
heurísticas é utilizada para a resolução de um problema específico, não sendo
eficiente na resolução de problemas genéricos (SOUZA, 2008).

Então, outra forma de solucionar esse tipo de problema é utilizar metaheurísticas,


que são métodos de busca inteligentes que se adaptam a diversos tipos de
problemas e permitem obter uma solução aproximada do problema em um bom
tempo computacional (HÖRNER, 2009).

Temos como exemplos de técnicas metaheurísticas: GRASP (procedimento de


pesquisa gulosa aleatorizado e adaptativo) (FEO e Resende, 1995), Simulated
Annealing (CHIYOSHI e GALVÃO, 2000), Pesquisa em Vizinhança Variável -
Variable Neighborhood Search (HANSEN et al., 2001), o algoritmo genético
(CORREA et al., 2001), CRO (Chemical Reaction Optimization) (Lam e Li, 2012),
além do algoritmo guloso (Greddy) (ROCHA, 2004), que pode ser utilizado dentro de
módulos de metaheurísticas.

2.6 OTIMIZAÇÃO

A otimização envolve a maximização ou a minimização de uma função de uma ou


mais variáveis, chamada de função objetivo. Função objetivo representa o objetivo
principal daquele problema, o que deseja ser atingido. É acompanhada de um
conjunto de restrições e variáveis de decisão.

Esse tipo de problema pode ser representado, matematicamente, por uma função f
com domínio S, chamada de função custo, função de avaliação ou função objetivo
(BECCENERI, 2012).

Em um problema de minimização, dada uma função f, temos que encontrar s* ϵ S tal


que f(s*) ≤ f(s), para todo s ϵ S. Num problema de maximização, temos que encontrar
s* ϵ S tal que f(s*) ≥ f(s), para todo s ϵ S (BECCENERI, 2012).

Um modelo de método de otimização pode ser visto na Figura 8, onde é mostrada a


função objetivo e as restrições.
33

Figura 8 - Formulação de um problema de otimização

Fonte: Bastos (2004).

Os algoritmos utilizados para otimização podem ser determinísticos ou probabilísticos


(BASTOS, 2004). Algoritmos determinísticos são caracterizados por produzir a
mesma solução sempre que as variáveis de entrada não forem alteradas (forem
repetidas). Já os algoritmos probabilísticos produzem soluções diferentes, mesmo que
as variáveis de entrada sejam repetidas em diversos testes, pois possuem eventos
pseudoaleatórios, como exemplo: a geração de um número randômico (BECCENERI,
2012).

Estes algoritmos atuam em um espaço de busca ou espaço de soluções, isto é, um


conjunto que contém todas as soluções do problema. A etapa principal em problemas
de otimização é a definição do espaço de busca. Esse espaço pode ser finito ou infinito
enumerável (conjunto que é subconjunto infinito de um conjunto enumerável).
Somente terá soluções viáveis ao problema, ou seja, àquelas que satisfazem às
restrições.
34

A função objetivo é uma forma de avaliar os elementos do espaço de busca


(BECCENERI, 2012). A melhor solução de uma área específica do espaço é chamada
de ótimo local, enquanto a melhor solução do problema é conhecida como ótimo global
(FREITAS et al., 2014).

2.7 METAHEURÍSTICAS

A palavra Heurística é derivada do grego heuriskein, que significa descobrir. É um


termo usado para métodos que conduzem a uma solução ótima, mas não garantem a
sua otimalidade. Já a palavra Metaheurística é uma composição de duas palavras
gregas que significam “heurística” e “após”, mostrando um nível superior de
descoberta.

Metaheurística é uma ferramenta algorítmica que é utilizada em problemas de


otimização, com pequenas modificações para adaptá-la a um problema específico
(METAHEURISTICS NETWORK, 2000, tradução nossa).

São utilizadas para resolver problemas que apresentam poucas informações para sua
solução e quando não se sabe como é a aparência de uma solução ótima. Ou seja,
há pouca informação heurística disponível e testar todas as soluções possíveis é
considerado inviável devido ao espaço de solução ser muito grande. Contudo, pode-
se testar uma possível solução e analisar como ela responderá (LUZIA; RODRIGUES,
2014).

De acordo com Mélian et. al (2003), três características são significativas nas
metaheurísticas: soluções inviáveis, função objetivo e critério de parada. As
metaheurísticas geralmente não possuem critério para lidar com soluções inviáveis,
sendo tarefa do programador impedir a manipulação (criação) de soluções inviáveis.

A função objetivo é importante quando a avaliação da solução é computacionalmente


custosa, então conta-se com o auxílio da função objetivo para estabelecimento de
uma estratégia de avaliação. O critério de parada define o momento em que o
algoritmo será finalizado e pode ser definido de acordo com o tempo gasto ou o
número de iterações (Mélian et. al (2003)).

Dois processos têm grande importância na metaheurística: a diversificação e a


intensificação. Com a diversificação, o processo de busca mantém uma aleatoriedade
35

para abranger o espaço de busca. Com a intensificação, reforça o desempenho das


boas soluções encontradas. O desafio das metaheurísticas é manter o equilíbrio entre
esses processos (SILVA NETO et al, 2012).

2.7.1 Classificação das metaheurísticas

2.7.1.1 Inspiradas ou não na natureza

Uma metaheurística é inspirada na natureza quando suas regras de busca simulam


aspectos do comportamento de organismos vivos ou sistemas físicos da natureza,
como o algoritmo genético, o algoritmo de formigas, o algoritmo das abelhas, o
algoritmo baseado em reações químicas (BECCENERI, 2012).

Quando não simulam este tipo de comportamento, então não são inspirados na
natureza, como o Iterated Local Search (ILS), Busca Tabu e GRASP.

2.7.1.2 Busca por entorno ou populacionais

As metaheurísticas de busca por entorno iniciam com uma solução prévia. A cada
iteração, percorrem o espaço de busca, exploram a vizinhança da solução obtida
anteriormente, até encontrar um resultado de boa qualidade e avaliam se houve uma
melhoria no custo. Como exemplo, temos os algoritmos gulosos que, a cada iteração,
selecionam a melhor solução da vizinhança da solução atual (SUCUPIRA, 2007).
Existem outras metaheurísticas deste tipo, como: Variable Neighbourhood Search,
Recozimento Simulado (Simulated Annealing), Busca Tabu, GRASP e ILS.

Já as metaheurísticas populacionais começam com um conjunto de solução inicial,


chamado população, formado por indivíduos aleatórios que são possíveis soluções
para o problema, exploram diversas regiões do espaço de busca a cada iteração, na
qual diversas trajetórias são testadas e combinadas gerando novas soluções através
de operadores de recombinação, por exemplo: o algoritmo genético, o algoritmo
memético, a otimização com Formigas Artificiais (Ant Colony Optimization), o método
Particle Swarm Optimization e o algoritmo baseado em reações químicas
(BECCENERI, 2012).
36

Um operador é qualquer procedimento que pode modificar uma solução parcial ou


completamente, produzindo outra solução. Vizinhança é o conjunto de soluções que
podem ser geradas através da aplicação de um operador a uma solução S.

2.8 ALGORITMO COM ESTRATÉGIA GULOSA

Uma boa forma de resolução de problemas de otimização está em usar os algoritmos


gulosos, que sempre escolhem a melhor solução naquele instante para chegar a um
ótimo global. Progridem de cima para baixo, isto é, a cada iteração, a instância do
problema é reduzida (ROCHA, 2004).

É um algoritmo determinístico, ou seja, dado um conjunto de entrada, sempre


produzirá a mesma solução com este conjunto. Uma grande vantagem do algoritmo
guloso é o reduzido tempo computacional. Em compensação, a solução obtida nem
sempre será a melhor que pode ser obtida. Também é chamado de algoritmo míope
ou ganancioso (BASTOS, 2004).

A cada iteração, ele escolhe o maior valor, no caso de maximização, ou o menor valor
disponível, no caso de minimização. A cada decisão a ser tomada, sempre escolhe a
alternativa que parece ser a mais promissora naquele dado momento, ou seja, escolhe
o ótimo local. Além disso, uma escolha já feita nunca é revista (SILVA et al., 2015).

A principal característica dos algoritmos gulosos é a criação de um conjunto candidato.


Sempre inicia com um conjunto de solução vazio, ou seja, nenhum candidato foi
escolhido (ROCHA, 2004).

Ao executar um algoritmo guloso, são criados dois conjuntos. Os dois conjuntos são
formados por elementos que já foram analisados. Mas um é formado pelos elementos
rejeitados na tomada de decisão e outro, pelos elementos escolhidos, que não saem
mais do conjunto solução (ROCHA, 2004).

Um algoritmo guloso contém quatro funções principais. A primeira função averigua se


um conjunto de candidatos já é uma solução possível para o problema. A segunda
função sempre faz a verificação do conjunto de candidatos para ver se é possível
acrescentar mais candidatos a solução. A terceira função, chamada de função
seleção, avalia qual dos candidatos restantes é o melhor para ser acrescentado no
conjunto de candidatos selecionados. A quarta função, chamada função objetivo,
retorna o valor da solução encontrada (ROCHA, 2004).
37

Este tipo de algoritmo funciona da seguinte forma: a cada iteração, a função de


seleção determina aleatoriamente quais elementos candidatos serão selecionados
para fazer parte do conjunto solução, inicialmente vazio. Uma vez avaliado, se o
candidato é rejeitado, não será considerado mais como candidato à solução. A cada
candidato acrescentado no conjunto solução, é verificada se a solução do problema
já foi obtida.

A Figura 9 ilustra o funcionamento de um algoritmo guloso genérico (ROCHA, 2004).

Figura 9 - Pseudocódigo do algoritmo guloso

Fonte: Rocha (2004).

Na Figura 9, linha 2, o conjunto solução está vazio. Na linha 3, seleciona elemento


candidato e se este não é solução, então na linha 4, seleciona-se o próximo elemento
candidato. Após, retira-se o elemento do conjunto C. Na linha 6, verifica se a solução
é viável. Se for, na linha 7, o elemento candidato é incorporado a solução. Na linha
10, verifica-se se o novo conjunto S já é uma solução do problema. Se sim, retorna-
se S na linha 11. Se não, retorna-se a mensagem de não haver solução. Das linhas
3 a 9, temos um laço de repetição, que continua até todos os elementos candidatos
serem analisados.
38

2.9 ALGORITMO CRO

É uma metaheurística probabilística inspirada na natureza das reações químicas.


Assim, se baseia na estrutura da molécula, que é composta de vários átomos e
caracterizada pelo tipo de átomo, ligação, comprimento, ângulo e torção, além de se
basear, também, na primeira e segunda leis da termodinâmica (BARHAM et al., 2016).

A primeira Lei da termodinâmica, chamada de Lei da conservação de energia, diz que


um sistema não pode criar ou consumir energia, apenas armazenar ou transferir ao
meio em que se encontra, como trabalho. A segunda Lei da termodinâmica diz que a
entropia de um sistema isolado tende a aumentar com o tempo até atingir um valor
máximo (BARHAM et al., 2016).

A principal característica das reações químicas é transformar substâncias instáveis


em estáveis. Numa visão microscópica, a reação química transforma o estado de
energia excessivo das moléculas em um estado de energia potencial mínima, que
sustente a existência da molécula.

O sistema de reação química é representado pelas substâncias químicas e suas


redondezas. As substâncias químicas possuem energia potencial e cinética. Já a
redondeza tem sua energia representada por um reservatório de energia central,
denominado buffer, no CRO (LAM E LI, 2012, tradução nossa).

As reações podem ser endotérmicas, quando necessitam de calor do meio para iniciar
a reação, ou exotérmicas, quando liberam calor para o meio. Estes dois tipos de
reações são caracterizados no CRO pelo tamanho do buffer. Se for positivo, a reação
é endotérmica. Se for negativo, a reação é exotérmica (LAM E LI, 2012, tradução
nossa).

Energia potencial é a energia armazenada em uma molécula em relação a sua


configuração. Quando a energia potencial é convertida em outras formas, o sistema
fica mais desordenado e a entropia aumenta. No CRO, este fenômeno é representado
pela conversão da energia potencial das moléculas em energia cinética e
gradualmente, perdendo a energia para o meio.

Uma reação química ocorre em etapas de sub-reações de reagentes convertendo-se


em produtos através de estados de transição e intermediários, resultando em produtos
39

com energia mínima, ou seja, mais estáveis (LAM E LI, 2012, tradução nossa). Esse
processo iterativo de busca do ponto ideal é mostrado na Figura 10.
Figura 10 - Representação da reação química na superfície potencial de energia

Fonte: Lam e Li (2012).

Existem quatro tipos de reações químicas. Os quatro tipos são: colisão ineficaz na
parede, decomposição, colisão ineficaz intermolecular e síntese (BARHAM et al.,
2016), sendo a colisão ineficaz na parede e a decomposição, reações unimoleculares
e a colisão ineficaz intermolecular e a síntese, reações intermoleculares. Uma reação
elementar ineficaz é aquela que resulta em uma pequena mudança na estrutura da
molécula.

Como o CRO é uma metaheurística populacional, o número de moléculas antes e


depois das reações podem não ser o mesmo. Quando uma colisão ineficaz ocorre, o
número de moléculas antes e depois não é alterado e permanece o mesmo. Mas na
decomposição e síntese, o número de moléculas aumenta e diminui, respectivamente.

O CRO possui as vantagens do Simulated Anneling (SA) e do algoritmo genético. O


princípio de conservação de energia é semelhante ao utilizado no SA e as reações de
decomposição e síntese se assemelham as operações de crossover e mutação do
algoritmo genético. Quando o número de moléculas é pequeno, o CRO torna-se mais
parecido com o SA (LAM E LI, 2012, tradução nossa).

O CRO pode ser implementado a partir de uma linguagem de programação orientada


a objeto, como exemplo: C++ e Java. As moléculas são instâncias da classe, que
40

representa seus atributos e os métodos representam as reações elementares. Se uma


molécula é construída, através da decomposição e da inicialização, um objeto é
criado. Quando uma molécula é destruída, combinando-se com outra, o objeto
correspondente pode ser destruído.

2.9.1 Componentes básicos

No CRO, os agentes manipulados são moléculas. Cada molécula tem diversos


atributos, como: a estrutura molecular (ω), energia cinética (KE), energia potencial
(PE), número de colisões (NumHit), estrutura mínima (MinStruct), a energia potencial
mínima (MinPE) e número mínimo de colisões (MinHit) (LAM E LI, 2012, tradução
nossa).

A estrutura molecular (ω) possui uma solução do problema. Nesse caso, o valor da
função objetivo.

A energia potencial (PE) representa o valor da função objetivo da solução,


representada por ω. f representa a função objetivo, então:

𝑃𝐸ω = 𝑓(𝜔)

A energia cinética (KE) é um número não-negativo que mostra a tolerância do sistema


em aceitar uma solução pior do que a atual.

O número de colisões (NumHit) registra o número de colisões que uma molécula pode
sofrer.

A estrutura mínima (MinStruct) representa a solução ω com a energia PE mínima que


a molécula já atingiu.

A energia potencial mínima (MinPE) é a energia PE do MinStruct.

O número mínimo de colisões (MinHit) representa o número de colisões que a


molécula sofreu até atingir a MinStruct.

Na Tabela 2, está sendo mostrada a relação entre as estruturas químicas e sua


estrutura correspondente no algoritmo.
41

Tabela 2 - Correspondência entre os significados das estruturas na química e no algoritmo

Significado químico Significado matemático


Estrutura molecular Solução
Energia potencial Valor da função objetivo
Medida da tolerância em aceitar
Energia cinética
uma solução pior que a atual
Número total de colisões da
Número de colisões
molécula
Estrutura mínima Valor solução com menor energia
Energia potencial da estrutura
Energia potencial mínima
mínima
Número mínimo de Número de colisões até atingir
colisões a estrutura mínima

Fonte: Adaptado de Lam e Li (2012).

No trabalho, a estrutura molecular representa os locais candidatos escolhidos como


estações de carregamento. A energia potencial representa a distância mínima para
localização destas estações. A energia cinética é uma medida utilizada para tentar
não escolher um local candidato pior do que o escolhido atualmente. O número de
colisões representa a quantidade de vezes em que a solução do problema será
alterada para chegar a melhor solução. A estrutura mínima representa a solução que
representa os locais candidatos escolhidos com a menor função objetivo. A energia
potencial mínima é o valor da função objetivo da estrutura mínima, explicada
anteriormente. O número mínimo de colisões é o número de mudanças ocorrida na
solução até atingir a estrutura mínima.

2.9.2 Reações químicas

As moléculas exploram a solução do problema através das quatro reações químicas


comentadas anteriormente. As reações manipulam a solução e redistribuem a energia
entre as moléculas e o buffer.
Nas reações químicas, ocorre alteração da solução do problema atual para chegar a
uma melhor solução. Neste trabalho, quando ocorrem as reações, os locais
candidatos escolhidos são transformados em outros para conquistar um menor valor
de distância percorrida pelos clientes entre as estações, já que o objetivo é minimizar
essa distância.
42

2.9.2.1 Colisão ineficaz unimolecular

A colisão ineficaz unimolecular imita uma molécula atingindo a parede do recipiente


na qual está confinada. Após a colisão, a molécula é rebatida. Então, prossegue-se
somente com uma molécula (BARHAM et al., 2016). Este tipo de reação não é
vigoroso e a solução ω é perturbada, transformando-se em:

𝜔 → 𝜔′

O ω’ é gerado nas vizinhanças de ω. Toda vez que esta reação ocorre, uma
quantidade de energia cinética (KE) é transferida para o buffer de energia (LAM E LI,
2012, tradução nossa). Analisando as energias potenciais, vemos que:

𝑃𝐸𝜔 ≥ 𝑃𝐸𝜔′

Como a energia potencial é menor e representa o valor da função objetivo, infere-se


que uma solução melhor foi obtida. Toda vez que uma reação ocorre, uma parte de
KE é transferida para o buffer. A KE da molécula obtida é monitorada, indiretamente,
pelo parâmetro KELossRate, sendo 0 ≤ KELossRate ≤ 1. Sendo α um número
randômico pertencente a [KELossRate ,1], KE da molécula obtida será:

𝐾𝐸𝜔′ = (𝑃𝐸𝜔 − 𝑃𝐸𝜔′ + 𝐾𝐸𝜔 ) 𝑥 𝛼

A energia remanescente é transferida para o buffer, sendo representada por:

(𝑃𝐸𝜔 − 𝑃𝐸𝜔′ + 𝐾𝐸𝜔 ) 𝑥 (1 − 𝛼)

Esta transferência de energia cinética para o buffer auxilia na redução das chances
de soluções piores serem escolhidas (LAM E LI, 2012, tradução nossa).

2.9.2.2 Decomposição

A decomposição mostra uma molécula atingindo a parede do recipiente e dividindo-


se em duas, por exemplo. Esta reação é vigorosa e a solução ω é transformada em:

𝜔 → 𝜔1′ + 𝜔2′

O objetivo da decomposição é permitir que o sistema explore outras regiões do espaço


da solução após efetuar uma quantidade suficiente de busca local através de colisões
43

ineficazes. Neste caso, mais soluções são criadas e então podemos ter que PE e KE
da molécula original não sejam suficientes e assim teríamos:

𝑃𝐸𝜔 + 𝐾𝐸𝜔 ≤ 𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′

No caso mostrado acima, a conservação de energia não é satisfeita e então esta


solução deve ser eliminada. Para que a decomposição funcione, uma pequena
quantidade de energia deve ser retirada do buffer para ajudar na mudança. Sejam δ 1
e δ2 dois números aleatórios independentes gerados no intervalo [0, 1]. Para que a
decomposição seja concluída, temos que:

𝑃𝐸𝜔 + 𝐾𝐸𝜔 + δ1 𝑥 δ2 𝑥 𝑏𝑢𝑓𝑓𝑒𝑟 ≤ 𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′

As energias cinéticas das novas moléculas serão:

𝐾𝐸𝜔1′ = [(𝑃𝐸𝜔 + 𝐾𝐸𝜔 + δ1 𝑥 δ2 𝑥 𝑏𝑢𝑓𝑓𝑒𝑟) − (𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′ )]𝑥 δ3

𝐾𝐸𝜔2′ = [(𝑃𝐸𝜔 + 𝐾𝐸𝜔 + δ1 𝑥 δ2 𝑥 𝑏𝑢𝑓𝑓𝑒𝑟) − (𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′ )]𝑥 (1 − δ3 )

Sendo δ3 um número aleatório gerado no intervalo [0, 1]. Assim, a nova energia no
buffer será dada por:

𝑏𝑢𝑓𝑓𝑒𝑟 ′ = (1 − δ1 𝑥 δ2 )𝑥 𝑏𝑢𝑓𝑓𝑒𝑟

2.9.2.3 Colisão ineficaz intermolecular


A colisão ineficaz intermolecular mostra duas moléculas chocando-se e em seguida,
se separando, pois, a colisão é ineficaz. A reação não é vigorosa, então (BARHAM et
al., 2016):

𝜔1 + 𝜔2 → 𝜔1′ + 𝜔2′

Esta reação é semelhante a colisão ineficaz unimolecular, mas não há transferência


de energia para o buffer. A condição de preservação de energia é determinada por:

𝑃𝐸𝜔1 + 𝑃𝐸𝜔2 + 𝐾𝐸𝜔1 + 𝐾𝐸𝜔2 ≥ 𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′

As energias cinéticas das novas moléculas são dadas por:

𝐾𝐸𝜔1′ = [(𝑃𝐸𝜔1 + 𝑃𝐸𝜔2 + 𝐾𝐸𝜔1 + 𝐾𝐸𝜔2 ) − (𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′ )]𝑥 δ4

𝐾𝐸𝜔2′ = [(𝑃𝐸𝜔1 + 𝑃𝐸𝜔2 + 𝐾𝐸𝜔1 + 𝐾𝐸𝜔2 ) − (𝑃𝐸𝜔1′ + 𝑃𝐸𝜔2′ )]𝑥 (1 − δ4 )

Sendo δ4, também, um número aleatório gerado no intervalo [0, 1].


44

2.9.2.4 Síntese
A síntese mostra duas moléculas colidindo e fundindo-se em uma molécula. A
mudança é vigorosa, então temos (LAM; LI, 2012, tradução nossa):

𝜔1 + 𝜔2 → 𝜔′

Pelo princípio de conservação de energia, nesta reação, temos:

𝑃𝐸𝜔1 + 𝑃𝐸𝜔2 + 𝐾𝐸𝜔1 + 𝐾𝐸𝜔2 ≥ 𝑃𝐸𝜔′

Os tipos de reações químicas detalhados acima são mostrados na Figura 11.


45

Figura 11 - Tipos de reações químicas: a) Colisão ineficaz na parede, b) Decomposição, c)


Colisão ineficaz inter-molecular, d) Síntese

Fonte: Lam e Li (2012).


46

No CRO, a intensificação é realizada pela colisão ineficaz com a parede e colisão


ineficaz inter-molecular, enquanto a decomposição e síntese realizam a diversificação,
como mostra a Tabela 3 (LAM; LI, 2012, tradução nossa).

Tabela 3 - Tipos de reação classificadas quanto a intensificação e diversificação

Reações elementares Intensificação Diversificação

Colisão ineficaz na parede Sim

Decomposição Sim

Colisão ineficaz
Sim
intermolecular

Síntese Sim

Fonte: Adaptado de Lam e Li (2012).

2.9.3 Design do algoritmo

Existem três fases no CRO, como em outros algoritmos evolutivos: inicialização,


iteração e fase final. Na inicialização, são feitas as configurações do algoritmo e
atribuição de valores aos parâmetros. Nas iterações, o algoritmo explora o espaço de
soluções. Na fase final, é utilizado um critério de parada, que pode ser o tempo
computacional gasto, a obtenção de um valor menor que um limiar pré-estabelecido
ou uma quantidade de iterações realizadas sem modificações na solução. Desta
forma, o algoritmo termina (LAM; LI, 2012, tradução nossa).

2.9.3.1 Inicialização

Nesta etapa, são criadas várias variáveis relacionadas a PopSize, KELossRate,


MoleColl, buffer, InitialKE, alfa(α) e beta(β). Após, é definida a classe Molécula com
seus atributos: ω, PE, KE, NumHit, MinStruct, MinPE e MinHit, e também quatro
métodos correspondentes às reações elementares, mostradas em seções anteriores.
O pseudocódigo para a classe “Molécula” é mostrado na Figura 12.
47

Figura 12 – Classe “Molécula”


classe “Molécula”
Atributos:
ω, PE, KE, NumHit, MinStruct, MinPE, MinHit
Método:
Molécula() \\construtor
{
Gerar randomicamente ω no espaço solução
PE ← f (ω)
KE ← InitialKE
NumHit ← 0
MinStruct ← ω
MinPE ← PE
MinHit ← 0
}
ColisaoIneficaznaParede()
Decomposicao()
ColisaoIneficazIntermolecular()
Sintese()
fim classe
Fonte: Adaptado de Lam e Li (2012).

2.9.3.2 Iterações

Nesta etapa é definido o tipo de reação que a molécula participará. Primeiramente, a


molécula pode colidir com o recipiente ou com outra molécula. O tipo de colisão que
ocorrerá é definido pelo número aleatório b, pertencente ao intervalo [0, 1] (LAM E LI,
2012, tradução nossa).

Se 𝑏 > 𝑀𝑜𝑙𝑒𝐶𝑜𝑙𝑙 ou se o sistema só tiver uma molécula, ocorre uma colisão


unimolecular. Se não, ocorre uma colisão ineficaz intermolecular.

Para uma colisão unimolecular, seleciona-se aleatoriamente uma molécula da


população e então decide-se se ocorrerá com ela uma colisão ineficaz com a parede
ou uma decomposição. O critério de decomposição é definido como:

𝑁𝑢𝑚𝐻𝑖𝑡 − 𝑀𝑖𝑛𝐻𝑖𝑡 > 𝛼

Os pseudocódigos de colisão unimolecular e decomposição são apresentados,


respectivamente, nas Figuras 13 e 14.
48

Figura 13 – Pseudocódigo da colisão unimolecular

Entrada: molécula Mω
ω' ←N(ω)
PEω’ ← f (ω’)
NumHit ω’ ← NumHit ω + 1
if PEω + KEω ≥ PEω’ então
Gerar α pertencente a [KELossRate, 1]
KEω’ ← (PEω - PEω’ - KEω ) x α
buffer ←buffer + (PEω - PEω’ - KEω ) x (1 – α)
ω ← ω'
PEω ← PEω’
KEω ← KEω’
if PEω < MinPEω
KE ← InitialKE
MinStructω ← ω
MinPEω ← PEω
MinHitω ← NumHitω
end if
end if
Fonte: Adaptado de Lam e Li (2012).

Figura 14 – Pseudocódigo da decomposição

Entrada: molécula Mω
Criar Mω’1 e Mω’2
Obter ω'1 e ω'2 de ω
PEω’1 ← f (ω’1) e PEω’2 ← f (ω’2)
if PEω + KEω ≥ PEω’1 + PEω’2 então
Edec ← PEω + KEω - PEω’1 - PEω’2
goto Passo (13)
else
Gerar δ1 e δ2 pertencente a [0, 1]
Edec ← PEω + KEω + δ1 δ2 x buffer - PEω’1 - PEω’2
if Edec ≥ 0 então
buffer ←buffer x (1 – δ1 δ2)
Gerar δ3 pertencente a [0, 1]
KEω’1 ← Edec x δ3 e KEω’2 ← Edec x (1- δ3)
MinStructω’1 ← ω’1 e MinStructω’2 ← ω’2
MinPEω’1 ← PEω’1 e MinPEω’2 ← PEω’2
Destruir Mω
else
NumHit ω ← NumHit ω + 1
Destruir Mω’1 e Mω’2
end if
end if
Fonte: Adaptado de Lam e Li (2012).
49

Da mesma forma, seleciona-se duas moléculas e é determinado se ocorrerá colisão


intermolecular ou síntese. Se as moléculas atenderem o critério da síntese, ocorrerá
uma síntese. Se não, ocorrerá, colisão ineficaz intermolecular. O critério da síntese é:

𝐾𝐸 ≤ 𝛽

Os pseudocódigos de colisão intermolecular e síntese são apresentados nas Figuras


15 e 16, respectivamente.

Figura 15 – Pseudocódigo da colisão intermolecular

Entrada: molécula Mω’1 e Mω’2


ω'1 ←N(ω1) e ω'2 ←N(ω2)
PEω’1 ← f (ω’1) e PEω’2 ← f (ω’2)
NumHit ω1 ← NumHit ω1 + 1 e NumHit ω2 ← NumHit ω2 + 1
Einter ← PEω1 + PEω2 + KEω1 + KEω2 - PEω’1 - PEω’2
if Einter ≥ 0 então
Gerar δ4 pertencente a [0, 1]
KEω’1 ← Einter x δ4 e KEω’2 ← Einter x (1- δ4)
ω1 ←N(ω’1) e ω2 ←N(ω’2)
PEω1 ← PEω’1 e PEω2 ← PEω’2
KEω1 ← KEω’1 e KEω2 ← KEω’2
if PEω1 < MinPEω1 então
MinStructω1 ← ω1
MinPEω1 ← PEω1
MinHitω1 ← NumHitω1
if PEω2< MinPEω2 então
MinStructω2 ← ω2
MinPEω2 ← PEω2
MinHitω2 ← NumHitω2
end if
end if
Fonte: Adaptado de Lam e Li (2012).
50

Figura 16 – Pseudocódigo da síntese

Entrada: molécula Mω1 e Mω2


Criar Mω’
Obter ω' de ω1 e ω2
PEω’ ← f (ω’)
if PEω1 + KEω1 + PEω2 + KEω2 ≥ PEω’ então
KE ω’ ← (PEω1 + KEω1 + PEω2 + KEω2 ) - PEω’
MinStructω’ ← ω’
MinPEω’1 ← PEω’
Destruir Mω’1 e Mω’2
else
NumHi ω1 ← NumHi ω1 + 1 e NumHi ω2 ← NumHi ω2 + 1
Destruir Mω’
end if
Fonte: Adaptado de Lam e Li (2012).

Os critérios de decomposição e síntese controlam o grau de diversificação através dos


parâmetros α e β. Valores adequados de α e β promovem um equilíbrio adequado
entre diversificação e intensificação.

Após a ocorrência de uma reação elementar, deve-se verificar se a condição de


conservação de energia é obedecida. Caso isso não haja ocorrido, a mudança deve
ser descartada. A seguir, é verificada se qualquer uma das soluções produzidas
naquela operação possui um valor de função objetivo mais baixo do que a melhor
solução obtida até o momento. Se assim o for, registra-se tal solução como a melhor
até o momento.

Se nenhum critério de parada for atingido, inicia-se uma nova iteração, após
armazenar-se a melhor solução dentre as melhores soluções de toda a população, ou
seja, após armazenar-se o MinStruct com o menor MinPE entre todas as moléculas.

2.9.3.3 Finalização

Se algum dos critérios de parada for atingido, segue-se para a fase final. Os critérios
de parada delimitam o número de buscas do algoritmo. Geralmente, os critérios de
parada utilizados são: tempo máximo de execução, o número máximo de iterações e
o número máximo de iterações realizadas sem melhorias, ou seja, sem que o menor
MinPE entre todas as moléculas tenha mudado (LAM E LI, 2012, tradução nossa). Na
51

fase final, a melhor solução encontrada é exibida e o algoritmo, finalizado. O


pseudocódigo principal do CRO é mostrado na Figura 17.
Figura 17 – Pseudocódigo do algoritmo CRO
Entrada: Função objetivo f e parâmetros
//Inicialização
Setar PopSize, KELossRate, MoleColl, buffer, InitialKE, alfa e beta
Criar moléculas do tamanho de PopSize
//Iterações
while critério de parada não ocorre do
Gerar b ϵ [0,1]
if b > MoleColl then
Selecionar randomicamente uma molécula
if critério de decomposição ocorrer then
Decomposicao( )
else
ColisãoIneficaznaParede ( )
end if
else
Selecionar randomicamente duas moléculas
if critério de síntese ocorrer then
Síntese ( )
else
ColisãoIneficazIntermolecular ( )
end if
end if
end while
Saída: Melhor solução encontrada e valor da função objetivo
Fonte: Adaptado de Lam e Li (2012).

2.10 TRABALHOS RELACIONADOS À VEÍCULOS ELÉTRICOS

O advento dos veículos elétricos e sua expansão no mercado têm atraído diversas
pesquisas nos últimos anos. Muitos pesquisadores estão abordando temas, como:
postos de cobrança, tarifação, tipo de estações de carregamento, tamanho das
estações, impactos na rede elétrica e localização das estações.

No trabalho de Lam e Li (2010), o problema de localização de estações de


carregamento de veículos elétricos foi solucionado a partir de quatro modelos
propostos e a comparação entre eles. Os métodos apresentaram características
próprias e foram adequados para diferentes situações. Lam e Li (2010) estudaram os
locais onde as estações de carregamento deviam ser construídas, em uma cidade,
52

para poder minimizar o custo de construção com cobertura da cidade inteira e o


cumprimento da conveniência para o motorista.

No trabalho de Baouche et al. (2014), o método de localização de estações de


carregamento é baseado em uma adaptação de dois modelos de localização
clássicos: Fixed Charge Location e p-Dispersão. Ao invés da fixação das estações de
carregamento nos pontos de demanda, o modelo dos autores se concentra em
minimizar o custo total da viagem para o local da estação e o custo de investimento
do servidor. A demanda de energia foi derivada de um modelo de consumo de veículo
desenvolvido como parte da biblioteca VEHLIB. O consumo de energia foi avaliado
pelo VEHLIB a partir de viagens realistas.

Estes trabalhos nos inspiraram para propor um modelo para o problema de localização
de estações de carregamento de veículos elétricos e testá-lo numa base da literatura
e também em uma região metropolitana.
53

3 METODOLOGIA

Este capítulo tem como objetivo demonstrar a metodologia utilizada no


desenvolvimento deste trabalho. Assim, serão apresentados a formulação matemática
proposta, levantamento de dados, implementação do algoritmo guloso e CRO.

Todos os algoritmos foram programados no software LabWindows versão 2017 para


melhor comparação dos resultados. O algoritmo guloso foi desenvolvido em
linguagem C. A metaheurística CRO foi desenvolvida em C++. Para utilização do
LabWindows para construção da metaheurística CRO, foi usado DLLs para criação de
funções e para posterior chamada externa à elas, pois o LabWindows tem suporte
para C, mas não possui para C++. Para validação destes testes em C++, foi realizada
a conferência de valores obtidos no software DevC++. Para os testes foi utilizado uma
máquina de 64 bits, processador Intel Core I5 de 2,4GHz, 8GB de memória e Windows
10.

Neste trabalho, tanto o algoritmo guloso quanto a metaheurística CRO foram utilizados
para resolver um caso real da região metropolitana de Vitória –ES, assim como foram
testados para resolução de 40 instâncias conhecidas da biblioteca OR-Library
(BEASLEY, 1990).

Foi escolhido o algoritmo guloso para a resolução destes problemas por ter um baixo
tempo computacional comparado a outros algoritmos e produzir soluções com
diferença mínima de qualidade, dependendo do problema.

Já a metaheurística CRO foi usada porque tem como vantagens: a resolução de


diferentes problemas, ser uma metaheurística única devido o modelo de conversão e
transferência de energia, tem potencial para solucionar problemas que não tenham
sido resolvidos por outras metaheurísticas, além de possuir as vantagens das
metaheurísticas Simulated Anneling e do Algoritmo Genético.

3.1 FORMULAÇÃO MATEMÁTICA

O problema da p-mediana utilizado é uma adaptação do problema proposto por


Baouche et al. (2014), visando minimizar o custo da localização das estações de
carregamento e a distância percorrida pelos clientes até uma estação. É importante
formalizar matematicamente esse problema, pois os algoritmos desenvolvidos
54

derivam desta formulação. O modelo utilizado possui a seguinte função objetivo,


restrições e parâmetros:

Variáveis de decisão:
𝑥𝑗 = {1 𝑠𝑒 𝑎 𝑒𝑠𝑡𝑎çã𝑜 𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑎 𝑗 𝑓𝑜𝑖 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑎; 𝑜𝑢 0, 𝑑𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 (1)
𝑦𝑖𝑗 = {1 𝑠𝑒 𝑜 𝑐𝑒𝑛𝑡𝑟𝑜 𝑑𝑒 𝑑𝑒𝑚𝑎𝑛𝑑𝑎 𝑖 é 𝑐𝑜𝑏𝑒𝑟𝑡𝑜 𝑝𝑒𝑙𝑎 𝑒𝑠𝑡𝑎çã𝑜 𝑗; 𝑜𝑢 0, 𝑑𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 (2)

Modelo:
𝑀𝑖𝑛 ∑ 𝑓𝑗. 𝑥𝑗 + 𝛼 ∑ ∑ 𝑑𝑖𝑗 . 𝑦𝑖𝑗 (3)
𝑗𝜖𝐽 𝑖𝜖𝐼𝑗𝜖𝐽

Com as seguintes restrições:


∑ 𝑦𝑖𝑗 = 1, ∀𝑖 ϵ 𝐼 (4)
𝑗𝜖𝐽

∑ 𝑦𝑖𝑗 = 𝑝, ∀𝑖 ϵ 𝐼 (5)
𝑗𝜖𝐽
𝑦𝑖𝑗 − 𝑥𝑗 ≤ 0 ; ∀𝑖 ϵ 𝐼; ∀𝑗ϵ 𝐽 (6)

𝑥𝑗 𝜖 {0,1}; 𝑗 ϵ 𝐽, 𝑟 ≥ 0 (7)

𝑦𝑖𝑗 𝜖 {0,1}; 𝑖 ϵ 𝐼, 𝑗 ϵ 𝐽 (8)

Onde:
I: Conjunto de centros de demanda
J: Conjunto de locais candidatos a estações de recarga
fj: Custo para localização da estação de recarga
dij: distância, percorrida pelo veículo, de um centro de demanda i até a estação de
recarga j
α: Custo do Kilowatt hora
p: Número de estações escolhidas (medianas)

A função (3) é a função objetivo, que minimiza a distância de cada cliente e o local da
estação candidata escolhida e o custo total de instalação das estações de
carregamento. A restrição (4) diz que toda demanda do centro de demanda deve ser
satisfeita. A restrição (5) estabelece que o número de estações escolhidas seja igual
a p. A restrição (6) assegura que um centro de demanda só pode ser associado a uma
estação escolhida. As restrições (7) e (8) mostram que as variáveis de decisão devem
ter valores inteiros binários.
55

Segundo Christofides (1982), existe o problema da p-mediana puro e p-mediana


generalizado. O problema puro consiste em não considerar o custo de localização das
facilidades. Já o problema da p-mediana generalizado introduz os custos de
localização das instalações na função objetivo.
Como o objetivo deste trabalho é avaliar os algoritmos, foi utilizado somente o caso
da p-mediana puro.

Então, o custo (fj) de localização de uma estação de carregamento j foi mantido fixo,
pois foi considerado que o custo de instalação é igual para todas as estações,
independentemente da localização (custo monetário do espaço territorial), e ainda foi
considerado que as estações possuem o mesmo número de baias (locais para recarga
do veículo elétrico).
Assim, a função (3) torna-se:

𝑀𝑖𝑛 𝛼 ∑ ∑ 𝑑𝑖𝑗 . 𝑦𝑖𝑗 (9)


𝑖𝜖𝐼𝑗𝜖𝐽

Também foi considerado que o custo do quilowatt hora é α = 1, devido ser uma
constante e não impactar na localização das estações de trabalho.

3.2 LEVANTAMENTO DE DADOS

3.2.1 Casos Reais - Vitória

Para a resolução do caso real na região metropolitana de Vitória-ES, primeiramente


definiu-se a localização dos locais candidatos e dos clientes. Foram selecionados 8
locais candidatos e 16 clientes na região de Vitória-ES, pois é a cidade que possui o
maior número de automóveis em circulação do estado segundo DENATRAN (2015).

Como a cidade não tem grande extensão territorial comparada a outras, um pequeno
número de instâncias pode representar este problema de localização.

Os locais candidatos escolhidos são locais de grande circulação de automóveis na


cidade, como centros comerciais, instituições de ensino e áreas de lazer. Além de
serem espaços nos quais, geralmente, ocorre um tempo de permanência mínima
superior a 15 minutos. Então, não há necessidade de serem instaladas estações de
carregamento de nível 3, sendo que estações de nível 2 são suficientes.
56

De acordo com Baouche et al. (2014), o custo de estação nível 3 é cerca de 10 vezes
maior que uma estação nível 2. Estes locais estão listados na Tabela 4. As longitudes
e latitudes destes locais candidatos estão expostos no Apêndice A. Dado que os
clientes podem estar em qualquer região da cidade de Vitória, estes foram
selecionados de forma aleatória, mas cobrindo a maior área possível da região, como
mostra a Figura 18.

Tabela 4- Locais candidatos a estações de carregamento em Vitória

Número Local Cor do ícone

1 OK
Hipermercado Verde

2 Shopping
Vitória Roxo

3 Aeroporto de
Vitória Cinza

4 UFES
Goiabeiras Marrom

5 UFES
Maruípe Amarelo

6 IFES Vitória Preto

7 Praça dos
Namorados Azul

8 Praça do
Papa Laranja

Fonte: Autor (2017)


57

Figura 18 – Locais candidatos a estações e os clientes escolhidos em Vitória

Fonte: Autor (2017)

Os mapas mostrando as configurações escolhidas foram plotados no Google My Maps


(Google Maps, 2017), para melhor visualização. As latitudes e longitudes utilizadas
foram obtidas do programa. Na Figura 18, os ícones em azul são os clientes e os
ícones quadrados, são os locais candidatos, como descrito na Tabela 4.

Para a região de Vitória foram realizados dois tipos de testes. O primeiro com
distâncias em linha reta e o segundo, com distâncias reais.

Para o teste com distâncias em linha reta, utilizou-se as coordenadas geográficas


encontradas no Google My Maps, mostradas no Apêndice A.

Para isso, é importante definir latitude e longitude. Os valores de latitude variam de


0º até 90º no Hemisfério Norte. No Hemisfério Sul, a latitude varia de 0º até -90º. Os
valores de longitude variam de 0º até 180º tanto a leste, sendo positivo, quanto a
oeste, sendo negativo. As medidas são realizadas em graus, minutos e segundos
(DMS) ou em graus decimais (DD). Os valores da latitude e longitude fornecidos pelo
Google My Maps estão em graus decimais.
58

Portanto, foi necessário a conversão dos valores de latitude e longitude para cálculo
destas distâncias. Então, converteu-se todas as latitudes e longitudes de graus
decimais para graus, minutos e segundos.

Também é relevante a definição de milha náutica. A milha náutica foi historicamente


definida como sendo o comprimento de um minuto de arco medido, à superfície média
do mar, ao longo de qualquer grande círculo da Terra. A milha é utilizada como uma
medida aproximada. A inexatidão deriva de a Terra não ser uma esfera perfeita, já
que possui achatamento nos polos e alongamento do seu raio ao longo do Equador.
Esse efeito faz variar o comprimento de um minuto de arco do grande círculo desde
1843 metros nas zonas polares até 1862 metros na zona equatorial. Por convenção,
milha náutica equivale a 1852 metros.

Como as distâncias variam em menos de 7º, não é necessário levar em consideração


a curvatura da Terra. Então, calcula-se a distância latitudinal (DLA) e a distância
longitudinal (DLO). Os resultados das distâncias latitudinal e longitudinal são
multiplicados por uma milha náutica.

Após é feito o cálculo de distância euclidiana. A distância euclidiana (DE) entre dois
pontos A e B quaisquer é dada por:

𝐷𝐸𝐴𝐵 = [(𝐷𝐿𝐴𝑏 − 𝐷𝐿𝐴𝑎 )2 + (𝐷𝐿𝑂𝑏 − 𝐷𝐿𝑂𝑎 )2 ]1/2

Um exemplo deste cálculo está mostrado no Apêndice B.

A partir destes cálculos, foi implementada uma rotina no LabWindows 2017 para
conversão destes valores e o preenchimento da matriz de distâncias. O Google My
Maps fornece a distância em linha reta entre locais, mas se torna inviável coletar estas
informações para grandes instâncias.

No teste com distâncias reais, a matriz de distâncias foi preenchida com a menor
distância percorrida de automóvel pelas ruas da cidade de todos os clientes até os
locais candidatos. Essa distância é mostrada pelo Google Maps. As distâncias reais
para este caso estão mostradas no Apêndice C.
Para o algoritmo guloso, só é necessário realizar um teste para cada valor de
mediana (quantidade de estações escolhidas), pois é um algoritmo determinístico
(explicado na seção 2.8). Como p varia de 1 a 4, no total foram realizados 4 testes
com o algoritmo Guloso para distâncias euclidianas.
59

Para a metaheurística CRO, foi realizada uma rotina de 15 testes utilizando a mesma
configuração para cada valor de mediana para distâncias em linha reta. Isso se faz
necessário, pois, como foi afirmado na seção 2.9, o CRO é probabilístico. Neste caso,
p variou de 1 a 4, então foram realizados 60 testes no total. A quantidade de 15 testes
foi definida empiricamente e com base em valores utilizados nas literaturas
consultadas.

Para distâncias reais com o algoritmo guloso, foi executada também uma rotina de 4
testes. Para teste de distâncias reais com o CRO, foi realizada a mesma rotina
explicada acima.

Nos dois casos foram encontrados os locais candidatos escolhidos, o número de


iterações realizadas, o cálculo da função objetivo e o tempo computacional de
execução.

3.2.2 Base de Dados OR-Library


Como a base de dados da biblioteca OR-Library é altamente utilizada na literatura
para provar a eficácia de metaheurísticas, foram realizados testes com as 40
instâncias desta biblioteca para verificar a qualidade dos algoritmos desenvolvidos.

Existem 40 arquivos de dados em formato .txt para problemas de p-mediana não


capacitada.

Os arquivos contêm entre 100 e 900 estações e consumidores e de 5 a 200 medianas.


Os dados fornecem, neste caso, a distância de um consumidor a outro.

Como exemplo, temos, na Figura 19, o arquivo pmed1.txt que mostra o tamanho, 100,
e 5 medianas. Vemos que a distância de 1 para 2 é 30, a distância de 2 para 3 é 46 e
assim sucessivamente. Pode-se notar também que os dados não estão completos.
Não é fornecido, por exemplo, a distância de 1 para 3.
60

Figura 19 – Parte de Pmed 1 da base Beasley

Fonte: Beasley (1990)

Beasley (1990) sugere que seja utilizado o algoritmo de Floyd para obtenção da matriz
completa, porque é um tipo de algoritmo que calcula o caminho mais curto entre pares
de vértices de um grafo.

3.2.2.1 Algoritmo de Floyd

O algoritmo de Floyd foi criado por Robert Floyd em 1962 para cálculo do caminho
mais curto entre os pares de vértice de um grafo orientado.
A partir do pseudocódigo abaixo, foi desenvolvido uma rotina no LabWindows 2017
para preenchimento de todas as matrizes.

Figura 20 – Pseudocódigo do algoritmo de Floyd


Seja n o número de vértices
Faça c(i,j) = infinito para i= 1,....,n e j= 1, .....,n.
c(i,j) = 0 para i= 1, ...., n
Faça ler cada linha do arquivo
Sendo os três números da linha de dados i, j, k então
Faça c(i,j)= k e c(j,i)=k
Fonte: Autor (2017)

O algoritmo irá preencher a matriz com zero nos casos em que i=j. Quando i e j forem
diferentes, mas os valores forem conhecidos da base, os mesmos serão preenchidos
com esse valor. Caso contrário, serão preenchidos com um valor considerado infinito.
Neste trabalho, foi utilizado como infinito o valor 1.000.000, como mostrado no
apêndice D.
61

3.2.2.2 Arquivos texto

Foram utilizadas as técnicas de arquivo texto para resolução das 40 instâncias. Como
o caso real era de pequeno porte, os valores de xi e yi das matrizes foram escritos no
próprio algoritmo. Já para a base, que são instâncias de grande porte, não se justifica
tal ação. Então, os dados das 40 instâncias foram gravados cada um em um arquivo
.txt, que foram nomeados conforme o autor as nomeou, como pmed1.txt, pmed2.txt e
assim por diante.

Foi criada uma variável char que recebe o nome do arquivo:

char nomearquivo[ ]="pmed1.txt";

Após é declarado um ponteiro de arquivo para manipulação do arquivo em C, da


forma:

FILE *arq;

O tipo de dado FILE já está incluso na biblioteca padrão do C.

Para abrir o arquivo, utilizou-se a função fopen(), que recebeu como parâmetros o
nome do arquivo recebido pela variável do tipo char e o modo de abertura do arquivo,
que neste caso foi especificado como “r” (somente leitura):

arq = fopen(nomearquivo, "r");

Caso o arquivo esteja com erro ao abrir, a fopen retorna a constante NULL e é exibida
a seguinte mensagem:

if(arq == NULL)

printf("Erro. Nao foi possivel abrir o arquivo\n\n\n");

Após a abertura dos arquivos que contém os dados das bases, é feita a leitura dos
dados, conforme mostrado na figura 21 e então é executado o Algoritmo de Floyd
(BEASLEY, 1990).
Figura 21 – Algoritmo de leitura de dados do arquivo
while( (fscanf(arq,"%d %d %d\n", &ch1, &ch2, &ch3))!=EOF )
{
for (i=0; i<qtdeclientes; i++)
{
for(j=0; j<qtdelocais; j++)
{
62

if((i+1) == ch1 && (j+1) == ch2)


{
Di[i][j]= ch3;
Di[j][i]= ch3;
}
}
}
}

Fonte: Autor (2017)

Na figura 21, enquanto a função fscanf, utilizada para fazer leitura dos dados do
arquivo, encontrar dados para leitura, é criada uma matriz com os dados da base OR-
Library. A função para quando não há mais dados para leitura, então retorna o valor
da constante EOF(fim de arquivo). O arquivo é fechado através da função fclose().

3.3 ALGORITMO GULOSO

Neste trabalho foi implementado um algoritmo guloso em linguagem C, que funciona


de acordo com as seguintes etapas:
a) Geração de um conjunto inicial de candidatos;
b) Geração de um conjunto solução vazio;
c) Escolha aleatória de um grupo de candidatos dentro do conjunto inicial;
d) Depois de escolhidos, os candidatos passam por uma seleção;
e) Candidatos rejeitados na seleção formam um novo conjunto;
f) Candidato selecionado entra no conjunto solução;
g) Se for possível acrescentar mais candidatos ao conjunto solução, as etapas
(c) a (f) são repetidas;
h) Se não, o algoritmo retorna o conjunto solução e o valor da função objetivo.

No caso real, o conjunto inicial de candidatos era formado pelos locais candidatos a
estações em Vitória. Já no caso do teste com a base de Beasley(1990), o conjunto
candidato era formado pela quantidade de instâncias, de acordo com o arquivo texto.
A escolha aleatória de um grupo de candidatos foi feita a partir da escolha randômica
de números que representavam estes locais. Para isto, foi utilizado a função rand().

Depois de escolhidos, os candidatos passaram por uma seleção na qual foi feita a
soma total das distâncias do local candidato selecionado até os outros locais. Depois
63

de obtida a soma total das distâncias de todos os candidatos escolhidos, foi utilizado
um algoritmo de ordenação, o Quicksort (SEDGEWICK, 1983).

A ordenação foi feita em ordem crescente. O ponto de partida do Quicksort é a escolha


de um elemento, denominado pivô. Depois, o algoritmo rearranja os elementos de
forma que todos os elementos anteriores ao pivô sejam menores do que ele e todos
os posteriores, sejam maiores. Assim, teremos duas listas não ordenadas. Após, o
algoritmo ordena recursivamente as listas dos elementos menores e maiores.

O Quicksort foi escolhido como método de ordenação por ser o mais rápido dentre os
algoritmos conhecidos, o que mantém o tempo computacional do Guloso baixo. O
algoritmo Quicksort desenvolvido está mostrado no Apêndice E.

O candidato com o menor valor de soma vai para o conjunto solução. Os outros são
descartados e vão para o conjunto de candidatos rejeitados. Isto é feito até a obtenção
do valor de candidatos no conjunto solução que correspondam ao número de
medianas (p).

3.4 ALGORITMO CRO

A metaheurística CRO foi implementada em linguagem C orientada a objeto, visto que


as moléculas podem ser instâncias de uma classe com seus atributos e as reações
elementares são métodos da classe Molécula.

Na colisão ineficaz na parede, ω é perturbada, transformando-se em ω’, que pertence


a vizinhança de ω. Isto foi obtido através da aplicação do algoritmo guloso proposto
por Lam et. al (2014), mostrado na Figura 22. Assim, temos que PE ω’ será f(ω’).

Figura 22 – Algoritmo guloso para perturbação da solução


Setar xi =1 para i = 1,…, n
Repetir
Construir um nó N composto por nós i com xi = 1
x’ x
flag 0
Repetir
Selecionar j com maior dj (distância) em N
Modificar x’ para que x’j = 0
if x’ satisfaz (critério de ) então
x x’
64

flag 1
else
x’j 1
Remover j de N
end if
até flag = 1 ou N = 0
até N = 0
Fonte: Adaptado de Lam e Li (2012).

Na colisão ineficaz intermolecular, ω’1 e ω’2 também são obtidos através do algoritmo
guloso, como na colisão ineficaz na parede.

Na decomposição, ω’1 e ω’2 são gerados aleatoriamente no espaço solução através


da modificação do algoritmo guloso onde o laço de repetição é iterado um número
aleatório de vezes e é selecionado um nó aleatório, como proposto por Lam et. al
(2014). O mesmo é feito para a síntese.

A frequência de ocorrência da decomposição e síntese pode ser influenciada


indiretamente alterando-se os parâmetros do CRO denominados α e β,
respectivamente.

Para que sejam geradas moléculas aleatórias ao inicializar o algoritmo, utilizou-se o


mesmo critério de geração aleatória da decomposição, através do algoritmo guloso.
Foram criadas as variáveis correspondentes aos parâmetros: PopSize, KELossRate,
MoleColl, buffer, InitialKE, α e β. Depois foi definida a classe “Molécula” com seus
atributos ω, PE, KE, NumHit, MinStruct, MinPE e MinHit, e os quatro métodos
correspondentes às reações elementares.

Como ponto de partida para o algoritmo CRO, utilizamos os valores dos parâmetros
mostrados em Lam et. al (2014). Contudo, cada aplicação tem uma configuração de
parâmetros própria, devido aos objetivos mais específicos de cada aplicação e como
nossas instâncias são diferentes das instâncias do artigo citado, tivemos que variar os
parâmetros do algoritmo CRO desenvolvido.

Os parâmetros utilizados para o caso real foram: KELossRate= 0.5; MoleColl= 0.5;
InitialKE= 1000; buffer= 0; alfa= 500; beta= 1000 e PopSize= 10.

Já para resolução dos dados da base da literatura foram: KELossRate= 0.9; MoleColl=
0.3; InitialKE= 10000; buffer= 0; alfa= 50; beta= 1000 e PopSize= 10.
65

Os valores citados acima foram modificados de Lam et. al (2014) a partir da alteração
de um único parâmetro, de cada vez, e visualização dos resultados obtidos com
valores da base OR-Library. O primeiro valor alterado foi KELossRate. E por último, o
valor de beta.

Os critérios de parada definidos foram o número de iterações sem melhorias e número


de iterações totais. Os valores foram estipulados em 300 e 5000, respectivamente.

4 RESULTADOS

4.1 CASOS REAIS – VITÓRIA

Os resultados obtidos com o algoritmo guloso para a cidade de Vitória estão dispostos
nas Tabelas 5 e 6. As tabelas mostram o número de estações de carregamento
(medianas), as estações escolhidas, o número de iterações, o valor da função objetivo
e tempo de execução do algoritmo.
Tabela 5 - Resultados do algoritmo Guloso para 16 clientes e linha reta em Vitória
Número
Estações
de Função Tempo
Iterações
estações objetivo(km) (s)
escolhidas
(p)
1 1 440 221,9 3
2 1e4 468 178,4 3
3 1, 4 e 5 480 115,9 6
4 1,4, 5 e 7 524 57,03 3
Fonte: Autor (2017)

Tabela 6 - Resultados do algoritmo Guloso para 16 clientes e distâncias reais em Vitória


Número
Estações
de Função Tempo
Iterações
estações objetivo(km) (s)
escolhidas
(p)
1 5 312 366,085 4
2 5e7 340 271,764 4
3 1, 5 e 7 352 179,445 4
4 1,5, 6 e 7 396 87,681 9
Fonte: Autor (2017)

Nos testes realizados para Vitória com o algoritmo Guloso, mostrados nas Tabelas 5
e 6, verificamos que a estação escolhida quando p=1 utilizando a matriz de distâncias
em linha reta e distâncias reais é diferente.
66

Para p=2, vemos que o resultado obtido nos dois casos também é diferente. Então
para p=1 e p=2, houve discrepância nos resultados. Nos resultados do teste para p=3,
as estações 1 e 5 são escolhidas nas duas configurações. Nos resultados para
escolha de 4 estações (p=4), as estações 1, 5 e 7 são obtidas nas duas configurações.
Analisando o número de iterações na configuração de distâncias em linha reta e
distâncias reais, vemos que o número de iterações aumenta em ambos os casos com
a quantidade de estações escolhidas.

Não foi possível encontrar um padrão de comportamento para o tempo de execução


do algoritmo, porque o tempo não aumentou ou diminuiu com o aumento do número
de medianas, mas variou no intervalo de 3 a 9s.

Observando os valores calculados para as funções objetivo, vemos que diminuem


com a quantidade de estações escolhidas, sendo maior para distâncias reais, como
era esperado. Portanto, opta-se pela escolha do modelo de distâncias reais, já que a
diferença nos valores das funções objetivos é considerável e as distâncias reais
representam melhor a realidade da distância percorrida pelos veículos.

Nos testes realizados para Vitória com a metaheurística CRO, mostrado na Tabela 7,
verificamos que o resultado difere do encontrado para o algoritmo Guloso para p=3 e
p=4, pois o algoritmo CRO encontrou uma solução com menor valor da função
objetivo. Para as configurações de 1 e 2 estações, o resultado encontrado foi igual ao
obtido para o algoritmo guloso. Com este algoritmo, foi possível observar que o tempo
computacional aumentou com a quantidade de estações. Foi mostrado os melhores
valores obtidos para a função objetivo dos 15 testes realizados e o tempo mostrado é
a média dos tempos obtidos nos 15 testes.

Tabela 7 - Resultados da metaheurística CRO para 16 clientes e linha reta em Vitória


Número Estações Função
Tempo
de objetivo
médio (s)
estações escolhidas (melhor)(Km)
1 5 221,9 4
2 1e5 178,4 6
3 1, 4 e 5 107,0 9
4 1, 4, 5 e 7 27,40 11
Fonte: Autor (2017)
67

Nos testes realizados para distâncias reais com a metaheurística CRO, mostrado na
Tabela 8, verificamos que o resultado difere do encontrado para o algoritmo Guloso
para p=2, p=3 e p=4, pois o algoritmo CRO encontrou uma solução com menor valor
da função objetivo. Para a configuração 1 estação escolhida, o resultado encontrado
foi igual ao obtido para o algoritmo guloso. Foi mostrado os melhores valores obtidos
para a função objetivo dos 15 testes realizados e o tempo mostrado é a média dos
tempos obtidos nos 15 testes.
Tabela 8 - Resultados da metaheurística CRO para 16 clientes e distâncias reais em Vitória
Número Estações Função
Tempo
de objetivo
médio (s)
estações escolhidas (melhor)(Km)
1 5 366,08 3
2 5e6 243,4 6
3 1, 5 e 6 168,0 6
4 1, 4,5 e 6 56,70 9
Fonte: Autor (2017)
Para a metaheurística CRO, detalharemos o número de iterações, pois há número
total de iterações, número de colisões ineficaz e com a parede, número de sínteses e
número de decomposições.
Para o teste com distâncias em linha reta, para p=1 obtivemos: número total de
iterações= 1321, número de colisões ineficaz= 396, número de colisões com a
parede= 364, número de sínteses= 297, número de decomposições= 264.
Para p=2 obtivemos: número total de iterações= 1403, número de colisões ineficaz=
421, número de colisões com a parede= 385, número de sínteses= 315, número de
decomposições= 282.
Para p=3 obtivemos: número total de iterações= 1442, número de colisões ineficaz=
433, número de colisões com a parede= 396, número de sínteses= 324, número de
decomposições= 289.
Para p=4 obtivemos: número total de iterações= 1578, número de colisões ineficaz=
473, número de colisões com a parede= 434, número de sínteses= 355, número de
decomposições= 316.
Para o teste com distâncias reais, para p=1 obtivemos: número total de iterações=
936, número de colisões ineficaz= 280, número de colisões com a parede= 257,
número de sínteses= 210, número de decomposições= 189.
68

Para p=2 obtivemos: número total de iterações= 1020, número de colisões ineficaz=
306, número de colisões com a parede= 281, número de sínteses= 229, número de
decomposições= 204.
Para p=3 obtivemos: número total de iterações= 1056, número de colisões ineficaz=
317, número de colisões com a parede= 291, número de sínteses= 237, número de
decomposições= 211.
Para p=4 obtivemos: número total de iterações= 1189, número de colisões ineficaz=
357, número de colisões com a parede= 326, número de sínteses= 267, número de
decomposições= 239.
A Figura 23 mostra os resultados obtidos com o algoritmo guloso para p=1 na
configuração de distância em linha reta e distâncias reais em Vitória. A estação
escolhida na configuração de distância em linha reta foi destacada com ícone verde e
a estação escolhida para distâncias reais, em rosa, para melhor visualização espacial.
Já a Figura 24 mostra os resultados para p=2. Os ícones em verde são os resultados
obtidos com distância euclidiana e os ícones em rosa, para distâncias reais. Os ícones
em laranja são as medianas não escolhidas.
Para p=3 e p=4, os ícones seguem a legenda apresentada acima, mostrados nas
Figuras 25 e 26. Além disso, temos ícones roxos que mostram estações escolhidas
em comum nas duas configurações.
A Figura 27 mostra os resultados obtidos com a metaheurística CRO para p=4 na
configuração de distância em linha reta.
69

Figura 23 – Configuração de 1 estação escolhida com algoritmo guloso

Fonte: Autor (2017)

Figura 24 – Configuração de 2 estações escolhida com algoritmo guloso

Fonte: Autor (2017)


70

Figura 25 – Configuração de 3 estações escolhida com algoritmo guloso

Fonte: Autor (2017)

Figura 26 – Configuração de 4 estações escolhida com algoritmo guloso

Fonte: Autor (2017)


71

Figura 27 – Configuração de 4 estações escolhida com metaheurística CRO

Fonte: Autor (2017)

4.2 BASE DE DADOS OR-LIBRARY

Para obtenção dos valores destes testes, o algoritmo guloso foi repetido uma única
vez enquanto a metaheurística CRO foi repetida 15 vezes para cada um dos 40 casos.

Nos testes realizados, o algoritmo guloso deu como resultado o valor ótimo da função
objetivo apresentado na base em 26 dos 40 problemas propostos.

Já a metaheurística CRO atingiu os resultados ótimos 32 vezes. Os maiores gaps


encontrados pelo algoritmo guloso foram para pmed5 e pmed19, sendo de 0,14%
como mostrado na Tabela 8. Para o CRO, os maiores gaps foram nas pmed15 e
pmed20, sendo de 0,06%. Lembrando que, como a metaheurística CRO é
probabilística, também foi calculado o desvio médio para os 40 problemas.

Gap, nesse caso, é utilizado para especificar a diferença percentual entre o valor
obtido na função objetivo pelos algoritmos e o valor ótimo da literatura. O gap
mostrado para a metaheurística CRO é em relação ao melhor resultado. Na
72

Estatística, desvio médio é a medida da dispersão de um dado em relação a uma


média, obtida por:

|𝑋 − 𝑋|
𝐷𝑀 = ∑
𝑁

Como foi utilizado o mesmo computador para realizar os testes com o algoritmo
Guloso e o CRO, podemos fazer a comparação do tempo computacional gasto. O
algoritmo guloso para os problemas menores, foi, em média, 2 vezes mais rápido que
a metaheurística CRO. Para problemas maiores, o Guloso continuou sendo mais
rápido. De acordo com as literaturas consultadas, o algoritmo guloso sempre teve um
menor tempo computacional comparado a algumas metaheurísticas, como: algoritmo
genético, ILS, CRO. Então, o tempo computacional menor do guloso corresponde com
o esperado e está mostrado no Gráfico 3.

Gráfico 3 – Tempo computacional x Tamanho do problema

Tempo computacional ( em s) x Tamanho do problema


500

Guloso Tempo (s) CRO Tempo


médio (s)

Fonte: Autor (2017)

Em relação ao desempenho, o CRO mostrou-se melhor, pois atingiu o valor ótimo 32


vezes contra 26 vezes do algoritmo guloso, o que também era esperado.

Os resultados obtidos pelo algoritmo guloso e pelo CRO estão mostrados na Tabela
8. Estão mostradas o tamanho das instâncias dos problemas, o número de medianas,
o valor da função objetivo, o gap, o tempo gasto (em s), o gap (%) e o desvio médio,
73

somente para a metaheurística CRO. Os valores ótimos mostrados na Tabela foram


obtidos por Beasley (1990) e estão apresentados no Anexo A.

Tabela 9 – Resultados da resolução dos 40 problemas da base OR-Library

OR Library Guloso CRO


Nome Desvio Tempo
Gap
do FO Tamanho p FO Gap(%) Tempo (s) FO médio médio
(%)
arquivo (%) (s)
pmed1 5819 100 5 5819 0,00 0,46 5819 0,00 0,00 0,98
pmed2 4093 100 10 4093 0,00 0,49 4093 0,00 0,03 0,97
pmed3 4250 100 10 4253 0,07 0,49 4253 0,07 0,07 0,98
pmed4 3034 100 20 3034 0,00 0,49 3033 0,03 0,03 0,99
pmed5 1355 100 33 1356 0,14 0,54 1355 0,00 0,11 1,10
pmed6 7824 200 5 7824 0,00 0,93 7824 0,00 0,00 1,78
pmed7 5631 200 10 5631 0,00 0,95 5631 0,00 0,00 1,37
pmed8 4445 200 20 4445 0,00 1,40 4445 0,00 0,39 3,46
pmed9 2734 200 40 2734 0,00 3,47 2734 0,00 0,13 6,74
pmed10 1255 200 67 1256 0,08 3,88 1255 0,00 0,00 7,23
pmed11 7696 300 5 7696 0,00 1,36 7696 0,00 0,04 4,91
pmed12 6634 300 10 6634 0,00 3,11 6634 0,00 0,02 5,37
pmed13 4374 300 30 4374 0,00 7,37 4374 0,00 0,06 13,78
pmed14 2968 300 60 2970 0,07 11,45 2969 0,03 0,00 32,45
pmed15 1729 300 100 1731 0,12 14,48 1730 0,06 0,09 33,56
pmed16 8162 400 5 8162 0,00 4,05 8162 0,00 0,01 7,89
pmed17 6999 400 10 6999 0,00 6,11 6999 0,00 0,00 9,54
pmed18 4809 400 40 4809 0,00 22,13 4809 0,00 0,00 31,93
pmed19 2845 400 80 2849 0,14 32,03 2845 0,00 0,24 57,40
pmed20 1789 400 133 1790 0,06 52,18 1790 0,06 0,11 83,27
pmed21 9138 500 5 9138 0,00 5,14 9138 0,00 0,03 10,36
pmed22 8579 500 10 8579 0,00 11,78 8579 0,00 0,03 19,18
pmed23 4619 500 50 4620 0,02 39,65 4619 0,00 0,00 81,88
pmed24 2961 500 100 2962 0,03 99,79 2962 0,03 0,06 125,02
pmed25 1828 500 167 1830 0,11 114,56 1829 0,05 0,00 142,86
pmed26 9917 600 5 9917 0,00 9,86 9917 0,00 0,00 26,14
pmed27 8307 600 10 8307 0,00 18,27 8307 0,00 0,07 51,08
pmed28 4498 600 60 4498 0,00 123,71 4498 0,00 0,00 154,09
pmed29 3033 600 120 3033 0,00 189,21 3033 0,00 0,11 238,34
pmed30 1989 600 200 1990 0,05 191,34 1989 0,00 0,45 244,67
pmed31 10086 700 5 10086 0,00 17,23 10086 0,00 0,07 26,98
pmed32 9297 700 10 9297 0,00 27,06 9297 0,00 0,00 31,96
pmed33 4700 700 70 4703 0,06 177,08 4701 0,02 0,02 217,71
74

pmed34 3013 700 140 3013 0,00 278,74 3013 0,00 0,00 358,54
pmed35 10400 800 5 10400 0,00 15,67 10400 0,00 0,09 33,10
pmed36 9934 800 10 9934 0,00 32,65 9934 0,00 0,12 55,27
pmed37 5057 800 80 5064 0,14 269,08 5057 0,00 0,02 372,69
pmed38 11060 900 5 11060 0,00 28,56 11060 0,00 0,00 47,37
pmed39 9423 900 10 9423 0,00 45,89 9423 0,00 0,00 60,02
pmed40 5128 900 90 5131 0,06 421,34 5130 0,04 0,04 501,57
Fonte: Autor (2017)

4.3 COMPARAÇÃO DOS RESULTADOS APRESENTADOS

Para maior validação dos algoritmos desenvolvidos, além da comparação feita


anteriormente com os valores ótimos da base OR-Library, também foi estabelecida
uma comparação com os valores encontrados por Daskin e Maass (2015), que
utilizaram a Relaxação Lagrangeana (citada no capítulo 2.5) para resolução do
problema de p-mediana para a mesma base.

A Apesar da Relaxação Lagrangeana desenvolvida por Daskin e Maass (2015) ter


alcançado o valor ótimo da função objetivo em 39 dos 40 casos, o algoritmo Guloso
foi mais rápido em 24 dos 40 casos e com gap máximo de 0,14%. Fazendo uma
comparação com o CRO, este também foi mais rápido em 16 dos 40 casos com gap
máximo de 0,06% contra 19,5% da Relaxação Lagrangeana.

Além disso, pode ser feita uma comparação com o tempo computacional gasto para
resolução do problema. Daskin e Maass (2015) relatam que o maior tempo gasto foi
de 767,16s em pmed36.

Já os maiores tempos dos algoritmos desenvolvidos neste trabalho foram de 421,34s


e 501,57s do algoritmo Guloso e metaheurística CRO, respectivamente.

Vê-se que tanto o algoritmo Guloso como a metaheurística CRO obtiveram resultados
satisfatórios, pois tiveram gaps menores comparado com o resultado encontrado por
Daskin e Maass (2015), além de que o maior tempo computacional gasto foi menor
nos algoritmos desenvolvidos neste trabalho.

Esta comparação é aproximada visto que Daskin e Maass (2015) usaram um


computador com 2.7GHz, Intel Core i7 e 1600MHz DDR3.
75

5 CONCLUSÃO E TRABALHOS FUTUROS

Neste trabalho, foi estudado o problema de localização de estações de carregamento


de veículos elétricos numa região.

Para a solução deste problema foram propostos dois algoritmos: o Algoritmo Guloso
e a metaheurística CRO. O objetivo foi comparar qual deles teria o melhor
desempenho na localização das estações de carregamento. Para validar os
resultados obtidos, a base OR-Library também foi utilizada para testes.

Os valores obtidos por estes dois algoritmos também foram comparados com
resultados da literatura para a Relaxação Lagrangeana.

Os resultados mostraram que os dois algoritmos tiveram bons resultados tanto no


teste com a base de dados de Beasley (1990) como no caso da região de Vitória-ES.

O algoritmo guloso é um tipo de algoritmo amplamente difundido e utilizado em


diversas aplicações. Já o CRO ainda não é tão difundido e apresentou um refinamento
maior nos resultados.

Comparando os dois algoritmos, foi possível concluir que o algoritmo guloso possui
menor tempo computacional em relação ao CRO. Entretanto, a metaheurística CRO
apresenta melhores resultados (mais qualidade) na resolução dos problemas. Os dois
algoritmos se mostraram aplicáveis ao problema da p-mediana e se mostraram
competitivos em relação às diversas metaheurísticas presentes na literatura.

Conclui-se que há oportunidades para desenvolvimento de trabalhos futuros. Em


primeiro lugar, pode-se destacar a possibilidade de avaliar os algoritmos para o
problema de p-mediana capacitada. Seria interessante também a avaliação do
desempenho desses algoritmos em situações reais mais complexas, por exemplo, na
região da Grande Vitória ou no estado do Espírito Santo. Uma outra abordagem seria
considerar a distância mínima entre duas estações de recarga para melhor distribuir
as estações de carregamento. Pode-se também utilizar outras metaheurísticas para
abordar esse problema e comparar com os algoritmos desenvolvidos.
76

REFERÊNCIAS

AHMAN, M. Primary energy efficiency of alternative powertrains in vehicles.


Lund University, Suécia. p. 973-989. June, 2000. Disponível em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.457.3001&rep=rep1&type
=pdf> Acesso em: 16 nov 2016.

ANFAVEA – Associação Nacional dos Fabricantes de Veículos Automotores.


Anuário da indústria automobilística brasileira. São Paulo, 2014.

ANEEL - AGÊNCIA NACIONAL DE ENERGIA ELÉTRICA. Atlas de Energia


Elétrica do Brasil. Brasília, 3. ed., 236 p., 2008.

ABVE - ASSOCIAÇÃO BRASILEIRA DE VEÍCULOS ELÉTRICOS. Informações


úteis. Disponível em: < http://www.abve.org.br/perguntas> Acesso em: 16 nov 2016.

BAKKER, D. Battery electric vehicles: performance, CO2 emissions, lifecycle costs


and advanced battery technology development. 2010. 75 f. Dissertação (Mestrado
em desenvolvimento sustentável). Copernicus Institute, University of Utrecht,
Utrecht, 2010.

BAOUCHE, F., BILLOT, R., El FAOUZI, N.-E e TRIGU. Efficient Allocation of Electric
Vehicles Charging Stations. IEEE Intelligent Transportation Systems, p. 33-43,
Paris, 2014.

BASTOS, E. A. Otimizaçao de Seções Retangulares de Concreto Armado


Submetidas à Flexo-Compressao Oblíqua Utilizando Algoritmos Genéticos.
2004. 168 f. Dissertação (Mestrado em Engenharia Civil). Universidade Federal do
Rio de Janeiro, Rio de Janeiro, 2004.

BEASLEY, J. E. (1990). OR-LIBRARY. Disponível em:


http://people.brunel.ac.uk/~mastjjb/jeb/info.html Acesso em: 20 set 2017.

BECCENERI, J. C. Meta-heurísticas e otimização combinatória: aplicações em


problemas ambientais. Notas de aula. Instituto Nacional de Pesquisas Espaciais.
2012. Disponível em:
<http://www.lac.inpe.br/elac13/arquivos/MiniCurso_02ELAC2012.pdf> Acesso em:
12 out 2017.

BELLIS, M. History of electric vehicles. About.com, 2013.


Disponível em: <http://inventors.about.com/od/cstartinventions/a/History-Of-Electric-
Vehicles.htm> Acesso em: 15 nov 2016.
77

BMW, 2017. Disponível em: <https://www.bmw.com.br/pt/all-models/bmw-i/i3/2013/at-a-


glance.html> Acesso em: 20 jun 2017.

BNEF - Blombeerg New Energy Finance. Disponível em: <https://about.bnef.com/>


Acesso em: 20 jun 2017.

BORBA, B. S. M. C. Modelagem integrada da introdução de veículos leves


conectáveis à rede elétrica no sistema energético brasileiro. 2012. 179 f. Tese
(Doutorado em Planejamento Energético) – Univerdidade Federal do Rio de Janeiro,
Rio de Janeiro, 2012.

CASTRO, B. H. R.; FERREIRA, T. T. Veículos elétricos: aspectos básicos,


perspectivas e oportunidades. BNDES Setorial Automotivo, n. 32, p. 267-310. Rio
de Janeiro: BNDES, set. 2010.

CHAN, C. C. The state of the art of electric and hybrid vehicles. Proceedings of the
IEEE, Piscataway, v. 90, n. 2, p. 247-275, Feb. 2002.

CHIYOSHI, F., GALVÃO, R. D. A statistical analysis of simulated annealing applied


to the p-median problem. Annals of Operation Research. v. 96, n. 4, p. 61-74, 2000.

CHRISTOFIDES, N.; BEASLEY, J. E. A tree search algorithm for the p-median


problem. European Journal of Operational Research, v.10, p. 196 – 204, 1982.

COSTA, C. E. S. Aplicação de técnicas de pesquisa operacional na


determinação de setores de atendimento de uma concessionária de energia.
2005. 146 f. Dissertação (Mestrado em Métodos Numéricos em Engenharia).
Universidade Federal do Paraná, Curitiba, 2005.

CUPANI, A. La peculiaridad del conocimiento tecnológico. Revista Latino-


Americana de Filosofia e História da Ciência. São Paulo, v. 4, n. 3, p. 353-71,
2006. Disponível em: <http://www.revistas.usp.br/ss/article/view/11079>.Acesso em:
14 nov 2016.

DASKIN, M. S.; MAASS, K. L. Chapter 2 - The p-Median Problem. Springer


Inernational Publisinhg Switzerland. 26 f. Suíça, 2015.

DENATRAN – Departamento Nacional de Trânsito. Disponível em:


<http://www.denatran.gov.br/estatistica/257-frota-2015>. Acesso em: 16 abr 2017

ECHEVERRI, W. S. Tecnologias relacionadas aos veículos elétricos e proposta


de um modelo de carregador para uso em redes de distribuição. 2014. 105 f.
78

Dissertação (Mestrado em Engenharia Elétrica) – Univerdidade Federal do ABC,


Santo André - SP, 2014.

ENERGY TECHNOLOGY SYSTEMS ANALYSIS PROGRAMME – ETSAP. Hybrid


electric vehicles. Paris, 6 p., June, 2010. Disponível em: <www. http://iea-
etsap.org/>.Acesso em: 18 nov 2016.

EPRI - INSTITUTO DE PESQUISA DE ENERGIA ELÉTRICA DOS ESTADOS


UNIDOS. Advanced Batteries for Electric-Drive Vehicles: A Technology and Cost-
Effectiveness Assessment for Battery Electric Vehicles, Power Assist Hybrid Electric
Vehicles and Plug-In Hybrid Electric Vehicles. Califórnia, 2004. Disponível em:
<http://www.evworld.com/library/EPRI_adv_batteries.pdf> Acesso em: 21 out 2016.

ESPOSITO, F. A sub-optimal energy management strategy for hybrid electric


vehicles. 2008. 158 f. Dissertação (Doutorado em Engenharia Elétrica) – Scuola Di
Dottorato in Ingegneria Industriale, Universitá degli Studi di Napoli Federico II,
Nápoles, 2008.

FEO, A. T.; RESENDE, M., Greedy randomized adaptive search procedures.


Journal of Global Optimization, v. 6, n. 2, p. 109-133. 1995.

FRANCES, R. The electric car. Time. Nova York: Time Inc. 2009. Disponível em:
<http://content.time.com/time/business/article/0,8599,1871282,00.html> Acesso em:
15 nov 2016.

FREITAS, B. D.; XAVIER, B. M.; OLIVEIRA, F. M.; SCHUSTER, M. A. Programação


Distribuída para otimização de heurística ILS aplicada a problemas do caixeiro
viajante. Revista Cientifica Interdisciplinar. v. 9, n. 20, artigo 10, 2014.

GE ENERGY. Soluções para Carregamento de Veículos Elétricos. DuraStation -


Catálogo de Produtos. 8 ed. 2012. Disponível em: <
https://cdn.hackaday.io/files/9127390489568/GE_DuraStation.pdf> Acesso em: 15
nov 2016.

GIFFI, C.; VITALE, J.; DREW, M.; KUBOSHIMA, Y.; SASE, M. Unplugged: Electric
vehicle realities versus consumer expectations. Deloitte. São Paulo, 2011. Disponível
em:<https://www2.deloitte.com/content/dam/Deloitte/global/Documents/Manufacturin
g/gx_us_auto_DTTGlobalAutoSurvey_ElectricVehicles_100411.pdf> Acesso em: 18
nov 2016.

HANSEN, P.; MLADENOVIC, N.; PEREZ-BRITOS, D. Variable Neighborhood


Decomposition Search. Journal of Heuristics. v. 7, n. 4, p. 335-350, 2001.
79

KLOSE, A; DREXL, A. Facility location models for distribution system design.


European Journal of Operational Research, p. 4 – 29, 2005.

HÖRNER, D. Resolução do problema das p-medianas não capacitado:


comparação de algumas técnicas heurísticas. 2009. 104 f. Dissertação.
(Mestrado em Engenharia de Produção). Universidade Federal de Santa Catarina,
Florianópolis, 2009.

LAM A. Y. S., Leung Y., Chu X. Electric Vehicle Charging Station Placement:
Formulation, Complexity, and Solutions. IEEE Transactions on Smart Grid, v. 5, n.
6, p. 2846-2856, Nov, 2014.

LAM, Y.S.; LI, V. O. K. Chemical-Reaction-Inspired Metaheuristic for Optimization.


IEEE Transactions on Evolucionary Computacion, v. 14, n. 3, p. 391-399, June,
2012.

LUZIA, L. F.; RODRIGUES, M. C. MAC5758 Introdução ao Escalonamento e


Aplicações: Estudo sobre as Metaheurísticas. Apostila. Disponível em:
<http://www.ime.usp.br/~gold/cursos/2009/mac5758/LeandroMauricioHeuristica.pdf>.
Acesso em: 24 nov 2016.

MARKLINES - Automotive Industry Portal. Models by Country – Sales. 2014.


Disponível em: <https://www.marklines.com/en/vehicle_sales/> Acesso em: 15 nov
2016.

MÉLIAN, B.; PÉREZ, J. A. M.; VEGA, J. M. M. Metaheurísticas: uma visión global.


Revista Iberoamericana de Inteligência Artificial. v. 7, n. 19, p. 7-28. 2003.

METAHEURISTICS NETWORK. Algorithms. Disponível em: <


http://www.metaheuristics.net/index.php?main=1> Acesso em: 14 nov 2016.

MOREIRA, DIOGO M. G. Simulação de uma rede de distribuição com veículos


elétricos e produção renovável. 2013. 125 f. Dissertação (Mestrado em
Engenharia Eletrotécnica e de computadores). Universidade do Porto. Porto. Julho,
2013.

MORROW, K.; KARNER, D.; FRANCFORT J. Plug-in hybrid electric vehicle


charging infrastructure review: final report. Department of Energy Vehicle
Technologies Program – Advanced Vehicle Testing Activity, Washington, Estados
Unidos. 34 p. Nov, 2008.

OLIVEIRA, M. G. Sistema de localização de facilidades: uma abordagem para


mensuração de pontos de demanda e localização de facilidades. 2012. 91f.
80

Dissertação (Mestrado em Ciências da Computação).Universidade Federal de Goiás,


Goiás, 2012.

OSORIO, V. A. G. Carregamento ótimo de veículos elétricos considerando as


restrições das redes de distribuição de média tensão. 2013. Dissertação
(Mestrado em Engenharia Elétrica). Universidade Estadual Paulista, São Paulo,
2013.

REVISTA EXAME. São Paulo, Junho, 2016. Disponível em: <


http://exame.abril.com.br/brasil/ha-dois-caminhos-para-o-carro-eletrico-vingar-no-
brasil> Acesso em: 17 ago 2017.

ROCHA, A, DORINI, Leyza Baldo. Algoritmos gulosos: definições e aplicações.


Campinas, SP, p. 42, 2004.

RUESTCHI, P. Aging mechanisms and service life of lead–acid batteries. Journal of


Power Sources, Alemanha, v. 127, p. 33–44, 2004. Disponível em:
<http://www.sciencedirect.com/science/article/pii/S0378775303009340> Acesso em:
20 out 2016.

SILVA NETO, C. A.; SOUZA, J. C. S.; SCHILLING, M. T.; SANTOS, M. G. Melhoria


da Segurança Dinâmica baseada em análise estocástca e metaheurística. Revista
Controle e Automação. V. 23, n. 2, p. 216-230. 2012. Disponível em:
<http://www.scielo.br/pdf/ca/v23n2/v23n2a08> Acesso em: 08 set 2017.

SOUZA, M. J. F. Notas de aula. Universidade Feral de Ouro Preto, Departamento


de Computação, Ouro Preto, MG, 2008. Apostila. Disponível em:
<http://www.inf.ufpr.br/aurora/disciplinas/topicosia/tabu/InteligenciaComputacional.pd
f> Acesso em: 13 nov 2016.

STEINER, M. T. A. Notas de aula. Universidade Federal do Paraná, Programa de


Pós-Graduação em Métodos Numéricos em Engenharia, Curitiba, PR, 2003.
Apostila.

SUCUPIRA, I. R. Um estudo de Hiper-Heurísticas. 2007. 123 f. Dissertação.


(Mestrado em Ciências). Universidade de São Paulo, São Paulo, 2007. 3

TRAGANTALERNGSAK, S.; HOLT, J.; RÖNNQVIST, M. An exact method for the


twoechelon, single-source, capacited facility location problem. European Journal of
Operational Research, Amsterdam, v. 123, p. 473-489, 1999.

VALSERA-NARANJO, E.; SUMPER, A.; LLORET-GALLEGO, P.; VILLAFAFILA-


81

ROBLES, R.; SUDRIA-ANDREU, A. Electrical vehicles: State of art and issues for
their connection to the network. 10th Internacional Conference. Electrical Power
Quality and Utilisation, 2009. p 1-3. Disponível em:
<https://www.researchgate.net/publication/224078023_Electrical_vehicles_State_of_
art_and_issues_for_their_connection_to_the_network> Acesso em: 13 nov 2016.

VAZ, L. F. H.; BAROS, D. C.; CASTRO, B. H. R. Veículos híbridos e elétricos:


sugestões de políticas públicas para o segmento. BNDES Setorial Automotivo, n.
41, p. 295-344. Rio de Janeiro: BNDES, mar. 2015.
82

APÊNDICE A

Longitude e latitude de locais candidatos e clientes de Vitória - ES

Tabela 10 – Longitude e latitude dos locais candidatos mostrados no Google Maps

Locais candidatos Latitude Longitude


Ok Hipermercado -20,29359 -40,30146
Shopping Vitória -20,31242 -40,28781
Aeroporto -20,25802 -40,28297
Ufes Goiabeiras -20,27252 -40,30641
Ufes Maruípe -20,29784 -40,31586
IFES Vitória -20,31019 -40,31891
Praça dos
Namorados -20,29892 -40,29140
Praça do Papa -20,31638 -40,29495

Fonte: Autor (2017).

Tabela 11– Longitude e latitude dos clientes mostrados no Google Maps

Locais candidatos Latitude Longitude


Cliente 1 -20,31377 -40,33135
Cliente 2 -20,24724 -40,27173
Cliente 3 -20,27869 -40,33330
Cliente 4 -20,27310 -40,30708
Cliente 5 -20,31031 -40,30961
Cliente 6 -20,27945 -40,29338
Cliente 7 -20,29881 -40,32027
Cliente 8 -20,30548 -40,33060
Cliente 9 -20,32008 -40,34638
Cliente 10 -20,31625 -40,35377
Cliente 11 -20,30976 -40,28100
Cliente 12 -20,26503 -40,26727
Cliente 13 -20,25988 -40,29720
Cliente 14 -20,29447 -40,29317
Cliente 15 -20,27286 -40,31978
Cliente 16 -20,25873 -40,26143

Fonte: Autor (2017).


83

APÊNDICE B

Exemplo de cálculo de distância em linha reta usando latitude e


longitude

Para exemplo, foi feito o cálculo utilizando as latitudes e longitudes do local candidato
1 (Ok Hipermercado) e cliente 6. As latitudes e longitudes deles estão mostradas nas
Tabelas 9 e 10.

1º: Transformação de graus decimais do local candidato em graus, minutos e


segundos:

Latitude:
20,29359 – Separe a parte inteira. Então, temos 20º.
Depois: 20,29359 – 20 = 0,29359
0,29359 * 60 = 17,6154 – Separe a parte inteira. Temos 17’.
Após: 17,6154 – 17 = 0,6154
0,6154 * 60 = 36,924. Então, temos 36,924’’.
Assim: 20º 17’ 36,924’’

Longitude:
40,30146 - Separe a parte inteira. Então, temos 40º.
Depois: 40,30146 – 40 = 0,30146
0,30146 * 60 = 18,0876 – Separe a parte inteira. Temos 18’.
Após: 18,0876 – 18 = 0,0876
0,0876 * 60 = 5,256. Então, temos 5,256’’.
Assim: 40º 18’ 5,256’’

2º: Transformação de graus decimais do cliente em graus, minutos e segundos:

Latitude:
20,27945– Separe a parte inteira. Então, temos 20º.
Depois: 20,27945 – 20 = 0,27945
0,27945 * 60 = 16,767 – Separe a parte inteira. Temos 16’.
Após: 16,767 – 16 = 0,767
0,767 * 60 = 46,02. Então, temos 46,02’’.
Assim: 20º 16’ 46,02’’

Longitude:
40,29338 - Separe a parte inteira. Então, temos 40º.
Depois: 40,29338 – 40 = 0,29338
0,29338 * 60 = 17,6028 – Separe a parte inteira. Temos 17’.
Após: 17,6028 – 17 = 0,6028
0,6028 * 60 = 36,168. Então, temos 36,168’’.
84

Assim: 40º 17’ 36,168’’

3º: Cálculo de DLA (graus):


DLAG = [(-20) – (-20)] * 60 = 0
DLAM = [(-17) – (-16)] * 1 = -1
DLAS = [(-36,924) – (-46,02)]/60 = 0,1516

DLAtotal = DLAG + DLAM + DLAS = -0,8484

4º: Transformação para distância com milha:

| DLAtotal | * 1852 = 1571,23 m

5º: Cálculo de DLO (graus):


DLOG = [(-40) – (-40)] * 60 = 0
DLOM = [(-18) – (-17)] * 1 = -1
DLOS = [(-5,256) – (-36,168)]/60 = 0,5152

DLOtotal = DLOG + DLOM + DLOS = -0,4848

6º: Transformação para distância com milha:

| DLAtotal | * 1852 = 897,85 m

7º: Distância entre dois pontos:

𝑫𝑬𝑨𝑩 = [(𝟏𝟓𝟕𝟏, 𝟐𝟑)𝟐 + (𝟖𝟗𝟕, 𝟖𝟓)𝟐 ]𝟏/𝟐

𝑫𝑬𝑨𝑩 = 𝟏𝟖𝟎𝟗, 𝟔𝟕 𝒎
Fonte: Autor (2017)

Figura 28 – Distância entre local candidato 1 e cliente 6 no Google Maps

Fonte: Autor (2017)


85

APÊNDICE C

Distâncias reais entre locais candidatos e clientes de Vitória - ES

Figura 29 – Distâncias reais entre locais candidatos e clientes

Fonte: Autor (2017).


86

APÊNDICE D
Dados da matriz construída pelo Algoritmo de Floyd

Figura 30 – Matriz construída pelo Algoritmo de Floyd no LabWindows 2017

Fonte: Autor (2017).


87

APÊNDICE E

Algoritmo de ordenação quicksort

float quicksort(float *vq,int i,int j) /* Função Quicksort crescente */


{
int comp=0,inicio,fim,perm=0;
float aux,pivo;

inicio = i;
fim = j;
pivo = vq[(i+j)/2];/* encontra a posição do elemento 'pivo', que será referência para
comparação*/

do
{
while(vq[inicio] < pivo) /* se o elemento da posição 'inivet' for menor que o da
posição 'pivo', o elemento ficará na mesma posição*/
{
comp = comp + 1; /* Contagem das comparações */
inicio = inicio + 1;
}

while(vq[fim] > pivo)/* se o elemento da posição 'fimvet' for maior que o da posição
'pivo', o elemento ficará na mesma posição*/
{
comp = comp + 1; /* Contagem das comparações */
fim = fim - 1;
}
comp=comp +1;
if(inicio <= fim)/* compara as posições, ordenando os valores de tal forma que os
valores menores e maiores em relação ao valor da posição do "pivo" sejam
separados para direita ou esquerda do valor do 'pivo'*/
{
perm = perm + 1; /* Contagem das permutações */
aux = vq[inicio];
vq[inicio] = vq[fim];
vq[fim] = aux;
inicio = inicio + 1;
fim = fim - 1;
comp= comp+1;
}
88

}while(inicio <= fim);

if(i < fim)


quicksort(vq,i,fim);/* recursividade : função chama a propria função caso os
numéros ainda não estejam ordenados*/

if(j > inicio)


quicksort(vq,inicio,j); /* recursividade : função chama a propria função caso os
numéros ainda não estejam ordenados*/
return (comp);
}

Fonte: Autor (2017).


89

APÊNDICE F

Parte do algoritmo de perturbação da solução no CRO

Figura 31 – Algoritmo de perturbação da solução no CRO

Fonte: Autor (2017).


90

ANEXO A

Dados da base OR-Library

Figura 32 – Valores da base OR-Library

Fonte: Beasley (1990)

Você também pode gostar