Escolar Documentos
Profissional Documentos
Cultura Documentos
Faculdade de Engenharia
Engenharia Elétrica – Habilitação em Robótica e Automação Industrial
Juiz de Fora
2018
Níckolas Moreira Provarelo Borges
Juiz de Fora
2018
Ficha catalográfica elaborada através do Modelo Latex do CDC da UFJF
com os dados fornecidos pelo(a) autor(a)
Borges, Níckolas.
Otimização de Operação de Pátios Ferroviários baseada em Algoritmos
Evolutivos / Níckolas Moreira Provarelo Borges. – 2018.
46 f. : il.
Aprovado em:
BANCA EXAMINADORA
A cada dia, os avanços tecnológicos se tornam mais presentes nas ferrovias ao redor
do mundo e são discutidas soluções alternativas para reduções de custo e aumento de
produtividade. Nesse contexto, este trabalho se propõe a utilizar algoritmos evolutivos
para otimizar a operação em um pátio ferroviário de carga geral. Por meio de um simulador
de eventos discretos, será apresentado um modelo de um pátio ferroviário fictício capaz de
retornar o tempo total de manobra de determinado trem no pátio, em função das linhas
escolhidas para manobra, composição dos vagões do trem e estado inicial do pátio. Um
Algoritmo Genético (Genetic Algorithm – GA) será implementado de forma a utilizar
as respostas da simulação para realizar a otimização do operação do pátio. Ao fim de
diversos cenários analisados, o Algoritmo Genético se mostrou eficiente para encontrar
boas soluções de manobra no pátio ferroviário, apesar de fazer uso de considerável tempo
de simulação, que pode não ser viável durante a operação de um pátio real.
Every day, technological advances become more present in railroads around the world and
alternative solutions are discussed for cost reductions and to increase productivity. In this
context, this work proposes to use evolutionary algorithms to optimize the operation in
a General freight yard. By means of a discrete event simulator, a model of a fictitious
railway yard capable of returning the total maneuver time of a certain train in the yard
will be presented, depending on the lines chosen for maneuver, train composition of the
train and initial state of the yard . A Genetic Algorithm (GA) will be implemented in
order to use the simulation responses to perform the optimization of the patio operation.
At the end of several scenarios analyzed, the Genetic Algorithm proved to be efficient in
finding good maneuvering solutions in the rail yard, despite making use of considerable
simulation time, which may not be feasible during the operation of a real yard.
GA Algoritmo Genético
LISTA DE SÍMBOLOS
∀ Para todo
∈ Pertence
θ1 Theta 1
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 CONTEXTUALIZAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 PÁTIOS FERROVIÁRIOS E TRENS DE CARGA GERAL . . . . . . . 13
1.3 DESCRIÇÃO DO PROBLEMA . . . . . . . . . . . . . . . . . . . . . . 13
1.4 OBJETIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 DESCRIÇÃO DO EXPERIMENTO . . . . . . . . . . . . . . . 28
3.1 CONSTRUÇÃO DE MODELO E OBTENÇÃO DE PREMISSAS . . . 28
3.2 EXPLICAÇÃO DAS LÓGICAS DO MODELO . . . . . . . . . . . . . . 29
3.3 IMPLEMENTAÇÃO DO ALGORITMO GENÉTICO . . . . . . . . . . 35
4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1 RESULTADOS DA OTIMIZAÇÃO . . . . . . . . . . . . . . . . . . . . 37
4.2 TEMPOS DE MANOBRA . . . . . . . . . . . . . . . . . . . . . . . . . 39
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
12
1 INTRODUÇÃO
1.1 CONTEXTUALIZAÇÃO
Nesse contexto, cada vez mais novas tecnologias que envolvem robótica, automação
e inteligência artificial estão sendo usadas para otimizar processos relacionados a operação
ferroviária. Pátios, terminais de carga e descarga e trechos de circulação já sofrem o
efeito dessa mudança de paradigmas nas ferrovias. Cada vez mais é comum se falar em
automatização da condução de trens, pátios ferroviários inteligentes, entre outras inúmeras
inovações que surgem a todo momento.
13
Um pátio ferroviário é um conjunto de linhas e chaves que são utilizados pra fazer
diversas manobras, como recebimento e formação de composições, cruzamento de trens,
abastecimento de diesel, acesso a oficinas, etc. A maneira como essas manobras são feitas
atualmente não é fundamentada num método de otimização, na grande maioria dos casos.
Decisões como “ qual linha deve ser usada pra receber determinado tipo de trem” ou
“quantos vagões carregados devem ficar esperando em cada linha” são tomadas no dia a
dia baseadas na experiência dos operadores do pátio ou em um procedimento pré-definido
pela ferrovia, que muitas vezes acaba engessando a operação ferroviária.
Trens de carga geral são aqueles que não possuem um único produto transportado
ao longo de sua composição. Geralmente o número de vagões transportados não é fixo, o
tipo de produto ou cliente de destino pode variar e a composição para em diversos pátios
entre a origem e o destino para receber e deixar vagões. Em comparação com o trem
expresso, que geralmente trasporta um único tipo de produto do início ao fim do percurso,
o trem de carga geral possui um custo de transporte bem mais baixo, o que torna viável o
transporte de cargas pontuais e em escala menor.
terminais (clientes). Ele possui seis linhas destinadas a estoque de vagões (ou realização
de manobras) e uma linha destinada para decomposição e formação de trens. O tamanho
de cada linha está representado na Figura 2:
Os trens de carga geral chegam no pátio com cinco lotes de vagões (o número de
vagões é fixo para simplificar a modelagem), cada lote contendo 16 vagões, de 15m cada,
destinados a um mesmo cliente. Qualquer um dos cinco lotes pode ser de qualquer um dos
clientes, de forma que pode haver lotes na cabeça e na cauda do trem de um mesmo cliente
(separados por outros tipos de lotes).A forma como os lotes dos clientes estão distribuídas
pelo trem será chamada de modelo de trem. Exemplos de modelos de trens podem ser
vistos na Figura 3:
Os clientes que são atendidos por essa operação são denominados clientes 1, 2 e 3,
como mostrado na Figura 4. Toda vez que um trem chega no pátio P, ele será desmembrado
e seus lotes serão posicionados em alguma linha. Em seguida o trem do cliente 1 será
formado. Todos os vagões destinados a esse cliente serão coletados nas linhas onde estão
15
um modelo do trem seria manobrado no pátio P com determinado estado inicial está
ilustrado nas Figuras 6 a 9:
Figura 7 – Início de manobra para formação de trem do cliente 1 (esquerda) e Fim de manobra
para formação de trem do cliente 1 (direita)
Figura 8 – Início de manobra para formação de trem do cliente 2 (esquerda) e Fim de manobra
para formação de trem do cliente 2 (direita)
17
Figura 9 – Início de manobra para formação de trem do cliente 3 (esquerda) e Fim de manobra
para formação de trem do cliente 3 (direita)
1.4 OBJETIVO
1.5 METODOLOGIA
geralmente está associado a outros custos envolvidos na manobra, por isso foi escolhida
como função objetivo.
Para uma dada combinação de modelo de trem com estado inicial do pátio, o GA
será capaz de buscar a melhor1 forma de fazer o posicionamento de vagões. O Algoritmo
Genético foi escolhido de forma a fazer uma introdução aos estudos de algoritmos evolutivos
por ser mais fácil entender os conceitos básicos.
espera [8]. Os objetos podem ser físicos, como pessoas frequentando um banco, ou
intangíveis, como programas de computadores esperando para serem executados.
Uma fila só é gerada num sistema produtivo devido ao fato dos recursos serem
escassos. Caso não fossem, toda a produção seria gerada instantaneamente, já que o tempo
também é um recurso escasso. Logo, ao projetar um sistema produtivo, o tamanho das
filas deve ser considerado para o dimensionamento dos recursos que serão utilizados. Filas
muito grandes indicam que a quantidade de recursos utilizados não está compatível com a
demanda que se espera atender.
Leadtime é o tempo relacionado ao ciclo completo de realização de uma atividade de
determinado sistema produtivo[9]. O leadtime está diretamente relacionado a capacidade
produtiva de um sistema, pois quanto menor for o ciclo para realização de uma atividade
produtiva, mais cedo o próximo ciclo pode começar, aumentando a capacidade nominal
do sistema. Uma redução no leadtime pode resultar em um aumento de produção do
sistema, caso exista demanda, ou em uma diminuição da necessidade recursos do sistema,
reduzindo os custos associados a esses recursos.
Segundo [11], a otimização de um processo visa uma melhor alocação dos recursos
escassos do sistema de forma a atingir determinados objetivos. Para tal, diversas soluções
serão geradas, cada uma com uma avaliação correspondente (fitness), de forma que possa
haver uma comparação entre todas essas soluções. O processo de otimização deve ser
sempre pensado visando o tempo computacional necessário para avaliar as soluções.
A otimização de um processo que busca não necessariamente a melhor solução,
mas sim uma boa solução, num tempo computacional razoável, é denominada heurística
[12]. As heurísticas são úteis em diversos processos envolvendo inteligência artificial (AI) e
ciências da computação, onde podem ser facilmente modificadas e adaptadas.
Apesar dos algoritmos genéticos terem uma capacidade de encontrar boas soluções
rapidamente, é preciso tomar cuidado com alguns problemas que podem surgir em espaços
de busca mais complexos, como:
24
O algoritmo genético usa uma técnica para otimização diferente dos métodos
baseados em hill climbing[16], que seguem a derivada de uma função para encontrar o
ponto máximo da mesma (ou o gradiente descendente, para minimizá-la). Indivíduos de
uma população são criados e submetidos a uma regra geral que funciona igualmente para
todos dentro da população. Essa regra atribuirá um valor de aptidão a cada indivíduo, que
pode ser chamado de fitness. O objetivo do GA é encontrar o indivíduo com o menor fitness
possível dentro de suas limitações (ou maior, caso for um problema de maximização).
A metáfora da seleção natural se encontra no fato de que os indivíduos de melhor
fitness de cada geração têm uma probabilidade maior de sobreviverem, enquanto que os
de pior fitness têm uma probabilidade menor. Os melhores indivíduos também possuem
a tendência de terem seus genes - conjunto de caraterísticas que definem o indivíduo -
propagados, devido ao operador de crossover. Esse operador busca imitar o processo de
reprodução da vida, no qual um novo indivíduo é formado a partir de uma combinação
dos genes de seus pais.
Dessa forma, a cada geração de um algoritmo genético a tendência é que os
indivíduos de melhor fitness sejam mantidos e novos indivíduos, que possuem genes
semelhantes a seus pais, sejam formados. Para que uma geração não fique com genes
demasiadamente uniformizados, fazendo com que a solução fique "estagnada"em um
determinado ponto, é utilizado o operador de mutação, que gera mudanças aleatórios nos
valores dos genes de alguns indivíduos e proporciona diversidade a população. Isso tenta
evitar que o problema de otimização encontre um mínimo local, ao permitir que uma
região maior do espaço de solução seja abordada.
No fim da execução do algoritmo genético, que pode ocorrer por qualidade das
soluções encontradas ou número limite de gerações, é esperado que se obtenha uma
boa solução do problema - não necessariamente a ótima, já que o GA tem o mesmo
comportamento da evolução natural. Devido a competição e sobrevivência dos mais aptos,
25
Linguagem Natural GA
Cromossomo Indivíduo, String
Gene Característica
Alelo Valor
Locus Posição
Genótipo Estrutura
Fenótipo Conjunto de parâmetros
1. O PSO é melhor para manter a diversidade dentro do grupo, já que todas as partículas
conseguem se melhorar com base nas melhores partículas. No algoritmo genético os
piores indivíduos são descartados, enquanto os melhores são mantidos.
• PS20 [21];
3 DESCRIÇÃO DO EXPERIMENTO
Nesse Capítulo será mostrado como foi realizado o processo de criação do modelo
do pátio P utilizando-se o Arena e uma explicação das principais lógicas implementadas.
Também será exposto o método utilizado para implementação do algoritmo genético,
como características do sistema são representados pelos elementos do GA e o processo de
comunicação entre o MATLAB (onde o GA estará em execução) e o Arena.
1 segundo http://www.paragon.com.br/softwares/arena/
29
Parâmetros Valor
Número de linhas para estoque de vagões 6
Número de linhas para circulação 1
Capacidade da L2 (em lotes de vagões) 5
Capacidade da L3 (em lotes de vagões) 4
Capacidade da L4 (em lotes de vagões) 4
Capacidade da L5 (em lotes de vagões) 3
Capacidade da L6 (em lotes de vagões) 3
Capacidade da L7 (em lotes de vagões) 2
Tamanho do lote (km) 0.24
Quantidade de locomotivas de manobra 1
Velocidade das locomotivas independentes (km/h) 10
Velocidade das locomotivas movimentando lotes (km/h) 5
• Tempo para realização de chaves (também pode ser entendido como um pátio que
possui todas as chaves automáticas);
A lógica do modelo foi dividida em duas grandes sub-lógicas, uma lógica para o
posicionamento de vagões no pátio e outra para a formação dos trens de cada cliente. Uma
representação da implementação dessas lógicas no Arena pode ser visualizada abaixo:
30
Figura 14:
Figura 14 – Exemplo de posicionamento com dois lotes sendo levados numa única volta de
manobra
Outra situação que pode vir a ocorrer é algum lote parado bloqueando a trajetória
de um lote que vai ser posicionado pela locomotiva de manobra. Nesse caso a locomotiva
deve retirar os lotes que estão bloqueando a trajetória antes de buscar os vagões do trem
que serão posicionados, de forma que todos esses lotes sejam posicionados de uma só vez
na linha. Os lotes que já estavam na linha ocasionando o bloqueio vão voltar às suas
posições originais (Figura 15).
estão em sequência na mesma linha, a lógica será capaz de enviar os lotes de uma só vez
para a linha de formação (Figura 16).
Figura 16 – Exemplo de lotes de um mesmo cliente sendo levados simultaneamente para linha
de formação
Caso haja um lote bloqueando o acesso da locomotiva de manobra ao lote que vai
ser levado, a locomotiva vai levar todos os lotes juntos para a linha de formação, deixar
aquele que será levado no trem e voltar com os lotes que estavam bloqueando a manobra
para suas posições originais (Figura 17).
Cada geração processada pelo algoritmo genético será composta por uma determi-
nada quantidade de vetores de posições para o pátio. A quantidade escolhida para esse
problema foi de 1000 indivíduos. Foi escolhido um número grande o suficiente para que a
36
• Não pode ser sorteada nenhuma posição que já esteja inicialmente ocupada no pátio;
• Não pode ser sorteada a mesma posição para dois lotes diferentes do trem;
Dessa forma, antes da geração ser enviada para o Arena, ela passará por duas fun-
ções criadas no MATLAB, elimina_proibidos e elimina_duplicados, que irão sortear
novamente as posições que já estavam ocupadas no pátio e as que forem duplicadas no
próprio indivíduo, respectivamente.
Enquanto o Arena estiver processando os tempos de manobra, o algoritmo genético
no MATLAB ficará em espera. Assim que os valores de fitness forem recebidos, o
MATLAB irá obter uma nova geração – dessa vez baseada no fitness de cada indivíduo e
não aleatoriamente. Novamente as funções elimina proibidos e elimina duplicados serão
chamadas e a geração será enviada para o Arena. Esse ciclo será repetido até que a
condição de parada do algoritmo genético seja atendida.
A condição de parada utilizada para esse problema é a obtenção do mesmo melhor
indivíduo em 20 gerações consecutivas.
37
4 RESULTADOS
Figura 20 – Priorização do algoritmo genético para posicionar em linhas com lotes do mesmo
cliente
Outra priorização feita pelo algoritmo genético foi em relação a lotes consecutivos
no trem que acabaram posicionados na mesma linha. Esse tipo de “escolha” feita pelo
algoritmo reduz o número de voltas de manobra para realizar o posicionamento no pátio,
e caso esses lotes sejam do mesmo cliente, também diminui a quantidade de voltas de
manobra necessárias para formação dos trens de cada cliente (como no resultado da Figura
21).
38
De forma geral, a otimização realizada pelo algoritmo genético fez tanto a priorização
por posicionamentos de lotes consecutivos simultaneamente, como por linhas onde já havia
lotes do mesmo cliente. Isso indica que o GA encontrou soluções que equilibram o tempo
para decomposição do trem que chega no pátio com o tempo para formação dos trens
unitários de cada cliente, utilizando puramente um comportamento evolutivo emulado.
Por fim, outras constatações podem ser feitas em relação a priorização realizada
pelo algoritmo genético. Em poucos cenários os lotes eram posicionados no lado esquerdo
do pátio, devido ao fato de que a locomotiva, vindo do lado direito, teria que percorrer
uma distância maior para posicionar os vagões (Figura 22).
Devido a esse mesmo fator, percebe-se uma tendência para os lotes dos clientes
1,2 e 3 ficarem mais a direita do pátio, respectivamente. Como os trens individuais do
cliente 1 são formados antes dos clientes 2 e 3 (e os do cliente 2 são formados antes do
cliente 3), a locomotiva precisa de menos manobra para incorporar os lotes se eles forem
posicionados na mesma ordem de retirada (Figura 23).
39
Figura 23 – Tendência do algoritmo genético de posicionar lotes dos clientes 1,2 e 3 na ordem de
formação dos clientes
Para os 232 cenários analisados, foram obtidos tempos de manobra propostos pelo
algoritmo variando entre 1.97h (manobra mais rápida) e 3.57h (manobra mais lenta), uma
média de 2.70h e desvio padrão de 0.31h. Os tempos podem ser melhor observados no
histograma da Figura 24:
40
Como cada amostra tem estados iniciais e modelos de trem diferentes, os tempos
de manobra sempre irão divergir. Essa divergência se dá em função de alguns estados
iniciais serem mais organizados, por exemplo quando os lotes não estão muito dispersos no
pátio ou quando a ordem dos lotes na linha corresponde a ordem de formação dos trens
de cada cliente, e em função de modelos de trens que podem ter seus lotes distribuídos
de uma maneira mais uniforme. Além disso, alguns modelos de trem não se “acomodam”
satisfatoriamente em determinadas configurações de pátio, o que pode contribuir para a
divergência entre os tempos.
Analisando o pior dos casos, apresentado na Figura 25, é possível perceber como
o estado inicial do pátio influencia no tempo de manobra. Dois lotes do cliente 1 se
encontram boqueados por lotes do cliente 3, de forma que a locomotiva precisa dar
várias voltas de manobra para formar os trens na ordem correta de clientes. Mesmo o
posicionamento dos lotes no pátio sendo feito em apenas duas voltas de manobra, o que
reduz consideravelmente o tempo de manobra, ainda não é o suficiente para alcançar o
mesmo patamar de tempos das outras amostras.
41
Figura 25 – Posicionamento otimizado pelo algoritmo genético com maior tempo de manobra
Já no melhor dos casos, apresentado na Figura 26, o estado inicial do pátio é tal
que a ordem de disposição dos lotes nas linhas corresponde com a ordem de formação
dos trens de cada cliente. E os lotes do trem que chega se “encaixam” de forma que essa
ordem seja mantida, com um número pequeno de voltas de manobra necessárias para o
posicionamento.
Figura 26 – Posicionamento otimizado pelo algoritmo genético com menor tempo de manobra
É importante ressaltar que todos resultados da otimização foram obtidos por meio
de uma heurística que não tem acesso ao modelo do pátio diretamente para conhecer
informações importantes, como o fato de que trens do mesmo cliente posicionados na
mesma linha reduzem o tempo para formação dos trens ou que posicionar lotes consecutivos
simultaneamente reduz o tempo de posicionamento.
42
A metodologia utilizada pelo algoritmo genético trata o sistema a ser otimizado como
uma caixa preta, onde são fornecidos inputs e colhidos outputs. Ou seja, o comportamento
lógico e coerente obtido foi resultado de um processo iterativo de criação e avaliação de
cenários.
43
5.1 CONCLUSÕES
• Executar diversos cenários do algoritmo genético para que uma rede neural artificial
(ANN) possa aprender o posicionamento ótimo de diversos modelos de trem e estados
iniciais do pátio. Com a rede neural treinada, fornecer como input as características
do trem que irá manobrar e a configuração do pátio no momento, de forma que
ela possa gerar como o output uma boa opção de posicionamento no pátio. Caso
a rede neural seja treinada com um número suficiente de amostras, a sua resposta
será similar a do algoritmo genético, porém com um tempo de execução bastante
reduzido.
REFERÊNCIAS
[1] A. E. Lang, “As ferrovias no brasil e avaliação econômica de projetos: uma aplicação
em projetos ferroviários,” 2007.
[9] F. Martins, “Modelo para avaliação do lead time produtivo nas empresas têxteis,”
Dissertação de Pós-graduação, UNIVERSIDADE FEDERAL DE SANTA CATARINA,
2003.
[10] B. Jerry, Discrete event system simulation. Pearson Education India, 2009.
[16] H. Wang, “A memetic algorithm with adaptive hill climbing strategy for dynamic
optimization problems,” vol. 1, no. 1, p. 2, 2008.
[18] M. Dorigo, M. Birattari, C. Blum, M. Clerc, T. Stützle, and A. Winfield, Ant Colony
Optimization and Swarm Intelligence: 6th International Conference, ANTS 2008,
Brussels, Belgium, September 22-24, 2008, Proceedings. Springer, 2008, vol. 5217.
[19] D. Karaboga and B. Basturk, “A powerful and efficient algorithm for numerical func-
tion optimization: artificial bee colony (abc) algorithm,” Journal of global optimization,
vol. 39, no. 3, pp. 459–471, 2007.