Você está na página 1de 49

Universidade Federal de Juiz de Fora

Faculdade de Engenharia
Engenharia Elétrica – Habilitação em Robótica e Automação Industrial

Níckolas Moreira Provarelo Borges

Otimização de Operação de Pátios Ferroviários baseada em Algoritmos


Evolutivos

Juiz de Fora
2018
Níckolas Moreira Provarelo Borges

Otimização de Operação de Pátios Ferroviários baseada em Algoritmos


Evolutivos

Trabalho de Conclusão de Curso apresentado


à Faculdade de Engenharia da Universidade
Federal de Juiz de Fora, como requisito para
obtenção do grau de Engenheiro Eletricista.

Orientador: Exuperry Barros Costa

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.

Orientador: Exuperry Barros Costa


Trabalho de Conclusão de Curso – Universidade Federal de Juiz de Fora,
Faculdade de Engenharia. Engenharia Elétrica – Habilitação em Robótica
e Automação Industrial, 2018.

1. Palavra-chave. 2. Palavra-chave. 3. Palavra-chave. I. Sobrenome,


Nome do orientador, orient. II. Título.
Níckolas Moreira Provarelo Borges

Otimização de Operação de Pátios Ferroviários baseada em Algoritmos


Evolutivos

Trabalho de Conclusão de Curso apresentado


à Faculdade de Engenharia da Universidade
Federal de Juiz de Fora, como requisito para
obtenção do grau de Engenheiro Eletricista.

Aprovado em:

BANCA EXAMINADORA

Prof. Exuperry Barros Costa - Orientador


Universidade Federal de Juiz de Fora

Wolmar Araújo Neto


Universidade Federal de Juiz de Fora

Thales Augusto Dos Santos


MRS LOGÍSTICA
AGRADECIMENTOS

Primeiramente agradeço a Deus pelas oportunidades que tive ao longo da vida e


pela força de vontade necessária para superar todas as dificuldades.
Agradeço a toda minha família, especialmente aos meus pais, Marcelo e Verônica,
e meu irmão, Leonardo, que sempre estiveram ao meu lado nos momentos mais difíceis.
Também gostaria de agradecer aos meus amigos, de dentro e fora da faculdade,
que proporcionaram momentos de descontração e ajuda quando necessário.
A todos os companheiros da MRS, que sem eles este trabalho não poderia ter sido
realizado, e a meu orientador Exuperry, que me ajudou quando eu mais precisava.
“Ideias e somente ideias podem iluminar a escuridão”
VON MISES, L.
RESUMO

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.

Palavras-chave: Algoritmo Genético. Sistemas de Eventos Discretos. Pátio ferroviário.


ABSTRACT

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.

Keywords: Genetic Algorithm. Discrete Event Systems. Rail yard.


LISTA DE ILUSTRAÇÕES

Figura 1 – Matriz de transporte de cargas do Brasil, em 2016 [5] . . . . . . . . . . 13


Figura 2 – Layout do Pátio P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 3 – Exemplos de modelos de trem . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 4 – Esquema Pátio P, clientes de destino e exemplo de modelo de trem . . 15
Figura 5 – Pátio discretizado com exemplo de estado inicical . . . . . . . . . . . . 15
Figura 6 – Início de manobra para posicionamento de lotes no pátio P (esquerda)
e Fim de manobra para posicionamento de lotes no pátio P (direita) . . 16
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) . . . . . . . . 16
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) . . . . . . . . 16
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) . . . . . . . . 17
Figura 10 – Etapas para construção de um modelo de simulação [10] . . . . . . . . 22
Figura 11 – Processo de seleção natural realizado pelo algoritmo genético [13] . . . 25
Figura 12 – Implementação da lógica de posicionamento dos lotes no Arena . . . . 30
Figura 13 – Implementação da lógica de formação de trens no Arena . . . . . . . . 31
Figura 14 – Exemplo de posicionamento com dois lotes sendo levados numa única
volta de manobra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figura 15 – Exemplo de lote bloqueando o posicionamento . . . . . . . . . . . . . . 32
Figura 16 – Exemplo de lotes de um mesmo cliente sendo levados simultaneamente
para linha de formação . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 17 – Exemplo de lotes bloqueando a formação de trem . . . . . . . . . . . . 33
Figura 18 – Esquema da comunicação entre MATLAB e Arena . . . . . . . . . . . 34
Figura 19 – Exemplo de representação do indivíduo no algoritmo genético . . . . . 35
Figura 20 – Priorização do algoritmo genético para posicionar em linhas com lotes
do mesmo cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 21 – Priorização do algoritmo genético para levar lotes consecutivos simulta-
neamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 22 – Tendência do algoritmo genético de posicionar lotes à direita do pátio . 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 . . . . . . . . . . . . . . . . . . . . 39
Figura 24 – Ocorrência de tempos de manobra em horas para amostras do algoritmo
genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 25 – Posicionamento otimizado pelo algoritmo genético com maior tempo de
manobra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figura 26 – Posicionamento otimizado pelo algoritmo genético com menor tempo
de manobra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
LISTA DE TABELAS

Tabela 1 – Extensão da malha ferroviária de países continentais [4] . . . . . . . . . 12


Tabela 2 – Relação entre termos de GA e linguagem natural [13] . . . . . . . . . . 26
Tabela 3 – Parâmetros de input para o modelo no Arena . . . . . . . . . . . . . . 29
LISTA DE ABREVIATURAS E SIGLAS

ABNT Associação Brasileira de Normas Técnicas

UFJF Universidade Federal de Juiz de Fora

IBGE Instituto Brasileiro de Geografia e Estatística

AMV Aparelho de Mudança de Via

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

2 REVISÃO BIBLIOGRÁFICA E FUNDAMENTAÇÃO TEÓ-


RICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1 SISTEMAS DE EVENTOS DISCRETOS . . . . . . . . . . . . . . . . . 19
2.2 CAPACIDADE PRODUTIVA . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 FILAS, RECURSOS E LEADTIME . . . . . . . . . . . . . . . . . . . . 19
2.4 MODELO DE SIMULAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 OTIMIZAÇÃO E EURÍSTICA . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 ALGORITMO GENÉTICO . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7 FUNCIONAMENTO DO ALGORITMO GENÉTICO . . . . . . . . . . 24
2.8 OUTROS MÉTODOS DE OTIMIZAÇÃO BIO-INSPIRADOS . . . . . 26

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

5 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . 43


5.1 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . 44

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
12

1 INTRODUÇÃO

1.1 CONTEXTUALIZAÇÃO

O desenvolvimento de um modal ferroviário é de extrema importância para o


crescimento socioeconômico de um país. Comparado a outras formas de transporte, esse
modal possui baixo custo por volume transportado, oferece maior segurança para a carga
e para terceiros, além de emitir uma quantidade consideravelmente menor de poluentes
[1]. Em contrapartida, o custo de implantação de uma ferrovia, somada a burocratização
excessiva que existe no setor, muitas vezes inviabiliza o surgimento de novas linhas férreas
pelo país [2] [3].
O Brasil, por ser um país de extensões continentais, tem enorme potencial para
aproveitar os benefícios do transporte ferroviário. Mas comparado a outros países com
dimensões similares, nota-se o quanto a malha ferroviária brasileira é pequena em extensão,
analisando-se os dados da Tabela 1. Sempre se priorizou o investimento em outros modais
de transporte que não são os mais eficientes dada a natureza do país. Para aproveitar esse
potencial é necessário que as ferrovias se tornem cada vez produtivas, investindo em novas
tecnologias para solucionar os problemas existentes.

Tabela 1 – Extensão da malha ferroviária de países continentais [4]

País Ferrovias (km) Área (km2 )


Estados Unidos 293,564 9,833,517
China 124,000 9,596,960
Rússia 87,157 17,098,242
Canadá 77,932 9,984,670
Índia 68,525 3,287,263
Brasil 29,850 8,515,770

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

Figura 1 – Matriz de transporte de cargas do Brasil, em 2016 [5]

1.2 PÁTIOS FERROVIÁRIOS E TRENS DE CARGA GERAL

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.

1.3 DESCRIÇÃO DO PROBLEMA

Um pátio ferroviário fictício denominado P tem a função de receber trens de carga


geral, sempre pelo mesmo sentido, e decompô-lo em trens menores com destino a diferentes
14

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:

Figura 2 – Layout do Pátio P

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:

Figura 3 – Exemplos de modelos de trem

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

posicionados e levados para a linha de formação. Se lotes de outros clientes estiverem no


caminho para a linha de formação, mais voltas de manobras terão que ser realizadas. Da
mesma forma o trem do cliente 2 será formado, e por último o trem do cliente 3. As linhas
pontilhadas representam o restante do percurso em linha singela para os clientes.

Figura 4 – Esquema Pátio P, clientes de destino e exemplo de modelo de trem

De forma a simplificar a maneira que os lotes são posicionados no pátio, as linhas


foram discretizadas em espaços pré-definidos que comportam um lote inteiro. Assim
cada lote do trem que chega no pátio possuiu em espaço bem definido onde pode ser
posicionado. No total o pátio P terá 21 posições para lotes. Os lotes que já estavam no
pátio previamente também serão representados nessas posições discretizadas e a forma
como eles estão distribuídas nessas posições será chamada de estado inical do pátio.
Um exemplo pode ser observado na figura abaixo.

Figura 5 – Pátio discretizado com exemplo de estado inicical

Além disso foi estabelecido que a locomotiva de manobra atenderia as linhas


somente pelo lado dos dos clientes (lado direito do pátio na figura). Um exemplo de como
16

um modelo do trem seria manobrado no pátio P com determinado estado inicial está
ilustrado nas Figuras 6 a 9:

Figura 6 – Início de manobra para posicionamento de lotes no pátio P (esquerda) e Fim de


manobra para posicionamento de lotes no pátio P (direita)

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)

A forma como os lotes serão posicionados influenciará diretamente o tempo total de


manobra, então é de suma importância que o posicionamento seja feito de forma correta
para que pátio tenha um tempo de giro rápido e, consequentemente, maior capacidade de
atendimento.

1.4 OBJETIVO

Esse trabalho tem como objetivo elaborar um método de otimização da operação


de pátios ferroviários baseado em algoritmos evolutivos.
Para tanto, foi construído um modelo do pátio ferroviário P, que consiga retornar
o tempo de manobra de decomposição e formação de trens para determinado modelo trem
que chega no pátio, com determinado estado inicial.
Isso permite comparar as diferentes formas de posicionamento no pátio de forma a
otimizar a manobra para uma dada combinação de modelo de trem e estado inicial do
pátio. A otimização deve retornar a forma de posicionamento que tem o menor de tempo
de manobra possível ou que seja próximo do menor. Realizando uma manobra mais rápida
é possível que o pátio ganhe em capacidade produtiva ou tenha uma necessidade menor de
recursos.

1.5 METODOLOGIA

Para simular o funcionamento do pátio de forma a se obter o tempo correspondente


de cada manobra, será utilizado o software de simulação Arena. Por meio do software
é possível fornecer inputs importantes como o estado inicial do pátio, modelo de trem
utilizado e posicionamento dos lotes, e colher o tempo de manobra para cado caso.
Em seguida será implementado um Algoritmo Genético (Genetic Algorithm – GA)
no software MATLAB, que usará o tempo de manobra obtido pelo Arena como função
objetivo para otimizar o posicionamento de vagões no pátio. O tempo de manobra
18

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.

1 não há garantias de encontrar um ótimo global


19

2 REVISÃO BIBLIOGRÁFICA E FUNDAMENTAÇÃO TEÓRICA

Neste Capítulo serão abordados conceitos importantes para o entendimento de


simulações de eventos discretos, que abrangem o processo de criação do modelo do pátio,
e de algoritmos genéticos, que irão fundamentar a metodologia de otimização dos tempos
de manobra. Também serão discutidas as principais frentes de estudo que abordam os
temas discutidos nesse trabalho atualmente.

2.1 SISTEMAS DE EVENTOS DISCRETOS

Sistemas podem ser definidos como conjuntos de elementos materiais ou imateriais,


inseridos em relações entre os mesmos que formam uma estrutura organizada [6].
Em um sistema de eventos discretos, o estado do sistema – como se encontram
todos os elementos do sistema num determinado instante de tempo – muda somente
quando um evento ocorrer. Um evento é resultado de alguma ação, intencional ou não,
que pode ocorrer no sistema. O estado do sistema sempre permanecerá inalterado até que
algum evento ocorra [6].

2.2 CAPACIDADE PRODUTIVA

Um sistema de produção é aquele cujos elementos são ordenados de forma a produzir


bens econômicos. Ele vai receber inputs, que podem ser bens materiais (matéria-prima) ou
bens intangíveis, e processá-los por meio dos recursos do sistema, resultando no produto
final. O sistema de produção terá como referência uma demanda de bens que terão que
ser produzidos num determinado período de tempo. Se essa demanda poderá ou não ser
realizada dependerá dos recursos envolvidos no processo, e por consequência da capacidade
produtiva do sistema.
A capacidade produtiva é o volume máximo de atividades que agregam valor e
que podem ser realizadas numa unidade do sistema produtivo sob condições normais
de operação [7]. É uma das informações mais importantes a se obter de um sistema de
produção. Ela direciona o nível de demanda que pode ser atendida e indica a necessidade
de melhorias no sistema. Para se ter uma estimativa mais precisa da capacidade de um
sistema muitas vezes é necessário o uso da simulação computacional.

2.3 FILAS, RECURSOS E LEADTIME

Outro conceito importante para o estudo de sistemas discretos é o conceito de


fila. Uma fila surge quando a capacidade de atendimento de um sistema é atingida
momentaneamente, de forma que os objetos a serem atendidos no sistema fiquem em
20

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.

2.4 MODELO DE SIMULAÇÃO

Uma forma de avaliar a capacidade produtiva de um sistema, o leadtime e os


tempos de fila associados aos recursos envolvidos, é construindo um modelo de simulação
computacional que consiga levar em conta todos os tempos de atividade dos processos e
organizar as atividades de forma ordenada. Para a construção de um modelo é necessário
um grau de conhecimento elevado do sistema em questão. O projetista deve ter um bom
domínio do sistema e dos elementos que o compõe, de forma que consiga abstrair fielmente
tudo que deve ficar dentro e fora do modelo.
O processo de construção de um modelo de simulação pode ser divido nas seguintes
etapas [10] :

• Formulação do Problema: o projetista deve elaborar uma definição clara para o


problema, que tanto ele como os usuários do sistema compreendam e concordem. Os
aspectos que ficarem dentro e fora do modelo devem ser muito bem definidos.

• Definição de objetivos e planos do projeto: etapa para definir as respostas


que serão obtidas pela simulação e as questões que ela responderá. Um plano de
projeto que envolve um cronograma de atividades e uma relação de custos e recursos
envolvidos também deve ser realizado

• Elaboração de Modelo Conceitual: antes de pensar no modelo como produto


final, o projetista deve começar com um modelo simples, pensando em questões como
a interação com o usuário, para então aumentar a complexidade gradativamente.
21

Um modelo conceitualmente bem feito diminui a chance de retrabalho e aumenta a


qualidade do produto final.

• Coleta de Dados: a coleta de dados para a construção do modelo depende inte-


gralmente do escopo definido para o projeto. Quanto mais complexo o sistema a ser
modelado mais informações serão necessárias. Por esse motivo essa etapa deve ser
realizada o mais cedo possível.

• Codificação: é necessário que uma grande quantidade de informações seja arma-


zenada e processada para modelos de sistemas reais. Por esse motivo o projetista
deve decidir se irá utilizar pacotes de simulação ou se irá desenvolver um programa
específico para realizar a modelagem. Geralmente o desenvolvimento de um pro-
grama específico leva consideravelmente mais tempo do que a utilização de pacotes
de simulação.

• Verificação do Modelo Computacional: para o avaliar se o programa desen-


volvido executa a simulação de forma correta e fornece resultados coerentes com a
realidade, o projetista deve homologar o programa, se possível junto com o usuário,
para que o modelo desenvolvido tenha um alto grau de confiabilidade.

• Validação: Depois que é verificado que o modelo desenvolvido executa as simulações


de forma correta, é preciso averiguar se os resultados correspondem minimamente
com o sistema real. Caso não sejam, o modelo deve ser calibrado até que as distorções
entre a simulação e a realidade sejam corrigidas.

• Projeto Experimental: determinação de alternativas que serão simuladas, em


função do número de execuções que serão analisadas. O projetista também deve
saber identificar o tempo total de simulação e o número de replicações de forma que
o modelo comporte conforme a realidade.

• Simulação e Análise: execução da simulação e análise dos resultados por meio de


diversas técnicas disponíveis ao usuário.

• Simulações Adicionais: Caso os resultados obtidos anteriormente não sejam satis-


fatórios para a análise, novas alternativas podem ser executadas para complementá-la.

• Documentação e Relatórios de Resultados: Para fins de registro e controle, os


programas e resultados obtidos devem se documentados corretamente. Essa etapa
é importante para o entendimento de usuários futuros e projetistas que precisem
alterar parâmetros no modelo computacional

• Implementação: a implementação é última etapa do processo, que depende da


execução correta das etapas anteriores. A credibilidade do modelo aplicado depende
22

diretamente do grau de comprometimento do projetista com a realidade e com a


participação do usuário final.

Estas etapas são apresentadas esquematicamente na Figura 10.

Figura 10 – Etapas para construção de um modelo de simulação [10]


23

2.5 OTIMIZAÇÃO E EURÍSTICA

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.

2.6 ALGORITMO GENÉTICO

Dentro da família das heurísticas encontramos diversos métodos para soluções


de problemas inspirados em processos naturais do mundo real. Um deles é o Algoritmo
Genético (GA), que pode ser definido como uma técnica de busca baseada numa metáfora
do processo biológico de seleção natural [13].
As primeiras versões do algoritmo genético foram desenvolvidas por John Holland
e seus alunos nas décadas de 1960 e 1970, que depois teve suas ideias publicadas no
livro Adaptation in Natural and Artificial Systems [14]. Ele buscava entender como o
fenômeno da adaptação das espécies ocorria na natureza para transcrevê-lo em mecanismos
de adaptação natural para sistemas de computação. Grande parte de sua pesquisa se
fundamentava nos princípios de "sobrevivência do mais forte"propostos por Charles Darwin.
Os algoritmos genéticos são mais úteis e eficientes em determinadas condições [15].
Eles devem ser utilizados quando:

1. O problema a ser resolvido tem um grau de complexidade elevado ou tem conceitos


vagos, já que funciona por regras internas próprias.

2. O tamanho do espaço de busca pode impossibilitar uma verificação exaustiva.

3. O espaço de busca não é bem conhecido.

4. Uma análise matemática é difícil ou inviável.

5. Mecanismos de busca tradicionais falham.

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

1. O GA pode convergir e ficar preso em um ótimo local, ao invés de continuar buscando


pelo ótimo global, quando a função objetivo não é definida adequadamente.

2. O tamanho do espaço de busca impossibilita uma verificação exaustiva.

3. Dificuldade em otimizar problemas cujos dados são dinâmicos.

4. Um tempo maior de execução em comparação com algoritmos de otimização mais


simples para determinados problemas, ou resultados piores quando mantido a mesma
quantidade de tempo computacional.

2.7 FUNCIONAMENTO DO ALGORITMO GENÉTICO

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

os melhores indivíduos prevalecerão, mas não necessariamente será o encontrado o melhor


indivíduo possível para o problema.
A Figura 11 apresenta um fluxograma que representa todo o processo realizado
durante um algoritmo genético:

Figura 11 – Processo de seleção natural realizado pelo algoritmo genético [13]

Uma relação entre os nomes usualmente utilizados em algoritmos genéticos e seus


conceitos correspondentes no processo evolutivo se encontra na Tabela 2:
26

Tabela 2 – Relação entre termos de GA e linguagem natural [13]

Linguagem Natural GA
Cromossomo Indivíduo, String
Gene Característica
Alelo Valor
Locus Posição
Genótipo Estrutura
Fenótipo Conjunto de parâmetros

2.8 OUTROS MÉTODOS DE OTIMIZAÇÃO BIO-INSPIRADOS

O algoritmo genético, como descrito anteriormente, é um método de otimização


bio-inspirado, pertencente a família dos algoritmos evolutivos. Esses algoritmos são
desenvolvidos a partir da metáfora de algum processo natural e geralmente são utilizados
para resolver sistemas de complexidade elevada.
Além da família dos algoritmos evolutivos, há uma família de algoritmos que
são inspirados no comportamento social de um coletivo de organismos, denominada
inteligência de enxame. Dentro desse grupo, existem diversas tentativas de adaptar algum
comportamento social de uma espécie animal.
Uma delas resultou no Particle swarm optimization (PSO) [17]. Criado por
Kennedy and Eberhart em 1995, o PSO foi inspirado na forma que um bando de pássaros
se comporta durante a busca por alimento. O método consiste na criação de diversas
partículas (pássaros) que tentam se deslocar para mais perto de um ponto objetivo (comida).
Cada partícula irá se descolar numa velocidade (módulo,direção e sentido) com base na
sua melhor posição e na melhor posição de seus vizinhos, até que alguma partícula chegue
suficientemente próxima do objetivo ou um limite de iterações seja alcançado.
O PSO possui algumas vantagens em relação ao algoritmo genético, como:

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.

2. A implementação de um algoritmo genético tende a ser mais difícil e com mais


parâmetros a serem ajustados.

3. A capacidade de memória do PSO é maior que do algoritmo genético.

Outros tipos de algoritmos bio-inspirados da família de inteligência de enxame


também são utilizados:
27

• Otimização por colônia de formigas [18];

• Algoritmo de colônia artificial de abelhas [19];

• Algoritmo de cardume de peixes [20].

Recentemente uma nova família de algoritmos vem surgindo, baseada no funciona-


mento de ecossistemas. Os métodos de otimização dentro dessa família podem dispor de
como os organismos vivos interagem com o ambiente, como as relações entre os organismos
se dão intra e entre espécies, se essas relações são competitivas ou cooperativas, entre
outros comportamentos da natureza que podem ser representados. Alguns exemplos de
algoritmos dessa família são:

• PS20 [21];

• Otimização baseada em colônia de erva daninha (IWO) [22].


28

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.

3.1 CONSTRUÇÃO DE MODELO E OBTENÇÃO DE PREMISSAS

O primeiro passo para a realização do trabalho foi a criação de um modelo baseado


em eventos discretos para o pátio P. Escolhido para a implementação, o Arena é o software
capaz de simular sistemas baseados em eventos discretos mais utilizado no mundo1 . É uma
ferramenta eficiente para análise de cenários e realizar simulações de processos, fazendo
representações de filas, recursos, tempos de atividades, etc.
Para a criação de um modelo no Arena é preciso conhecer os parâmetros do sistema
real que serão representados no modelo. Cabe ao projetista abstrair as informações mais
importantes do sistema real para incluir no modelo, ao mesmo que tempo que desconsidera
fatores que pouco influenciam no funcionamento do sistema. Por esse motivo todo modelo
é uma simplificação da realidade.
Como o sistema a ser estudado é um pátio ferroviário fictício, algumas informações
são dadas pelo próprio projetista. Porém é preciso ter cuidado para que o modelo não
seja uma versão muito simplificada e pouco realista. Por exemplo, a velocidade que as
locomotivas de manobra transportam os lotes de vagões ao longo do pátio deve corresponder
minimamente com o que ocorre em pátios ferroviários reais, ou então todo esse estudo não
terá nenhuma aplicação na realidade.
As principais informações imputadas ao modelo são apresentadas na Tabela 3:

1 segundo http://www.paragon.com.br/softwares/arena/
29

Tabela 3 – Parâmetros de input para o modelo no Arena

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

As características físicas de um pátio real também devem ser respeitadas. Por


exemplo, os lotes movimentados não podem “atropelar” os lotes parados no pátio, a
locomotiva de manobra ficar presa entre os vagões durante a manobra, etc.
Algumas informações a princípio foram desconsideradas para a construção do
modelo por não oferecerem uma mudança significativa nos resultados. Elas são:

• Tempo para realização de chaves (também pode ser entendido como um pátio que
possui todas as chaves automáticas);

• Tempo para anexação de vagões;

• Tempo para preparação dos freios dos vagões;

3.2 EXPLICAÇÃO DAS LÓGICAS DO MODELO

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 12 – Implementação da lógica de posicionamento dos lotes no Arena


31

Figura 13 – Implementação da lógica de formação de trens no Arena

A lógica de posicionamento de vagões recebe o trem no pátio pela linha de circulação,


checa a posição de destino de cada lote e realiza o posicionamento dos lotes corretamente.
Caso haja uma sequência de lotes no trem com a mesma linha de destino e as posições de
destino desses lotes estejam na mesma ordem que estão dispostos no trem, a sequência
inteira de lotes será levada de uma só vez para a linha de destino, como mostrado na
32

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).

Figura 15 – Exemplo de lote bloqueando o posicionamento

A segunda sub-lógica realiza a formação dos trens dos clientes 1, 2 e 3, respectiva-


mente. Para isso ela varre uma a uma as linhas do pátio para tentar encontrar lotes para
o trem que está sendo formado no momento. Se dois ou mais lotes de um mesmo cliente
33

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).

Figura 17 – Exemplo de lotes bloqueando a formação de trem

As duas lógicas citadas anteriormente estão interligadas no modelo. Sempre que a


primeira acaba de operar, a segunda já é chamada e o tempo de manobra para aquela
forma de posicionamento é registrado. Os tempos de manobra para cada posicionamento,
34

que corresponde a um indivíduo do algoritmo genético, serão armazenados numa matriz


que por sua vez será enviado ao MATLAB para servir de base como fitness de cada
indivíduo daquela geração.
Uma terceira lógica no modelo é dedicada para a comunicação do Arena com o
MATLAB durante a execução do algoritmo genético. Ela receberá todos os indivíduos de
uma geração e irá armazená-los numa matriz l × m, sendo l o número de lotes do trem
de carga geral padrão e m o número de indivíduos da geração avaliada. Depois que a
“lógica operacional” do modelo acabar de avaliar o tempo de manobra de cada indivíduo
da geração, esse lógica será ativada novamente para enviar a matriz com os tempos dos
posicionamentos para o MATLAB.
Toda essa comunicação entre o Arena e o MATLAB será feita através de uma
interface do Excel, que será responsável por armazenar as matrizes dos indivíduos e dos
fitness de cada geração. O acesso a essa matriz será controlado por um arquivo .txt, que
será criado pelo MATLAB quando os cálculos do algoritmo genético forem concluídos e
deletado pelo Arena quando este acabar a escrita dos valores de fitness no Excel. Dessa
forma as duas aplicações ficam bem sincronizadas e interface do Excel nunca será acessada
pelo Arena e pelo MATLAB ao mesmo tempo. A Figura 18 apresenta um diagrama da
sincronização da comunicação Arena/MATLAB.

Figura 18 – Esquema da comunicação entre MATLAB e Arena


35

3.3 IMPLEMENTAÇÃO DO ALGORITMO GENÉTICO

A representação de uma forma possível de posicionamento no pátio (ou seja, as


posições em que os lotes trazidos do trem serão deixados no pátio para depois serem
incorporados nos trens unitários de cada cliente) – que servirá como indivíduo para
o algoritmo genético – é feita por meio de um vetor de cinco valores diferentes, cada
valor representando uma posição discretizada do pátio. A ordem das posições no vetor
corresponde a ordem dos lotes no trem que chega no pátio. As posições do pátio foram
numeradas de 1 a 21 e cada indivíduo será sempre limitado a buscar posições dentro
dessa faixa. A Figura 19 exemplifica o posicionamento de um lote, dadas as posições
representadas pelos parâmetros do indivíduo:

Figura 19 – Exemplo de representação do indivíduo no algoritmo genético

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

comunicação entre o Arena e o MATLAB não fosse realizada a todo momento.


Para realizar as operações de crossing over de obtenção dos indivíduos de cada
geração foi utlizado o toolbox de algoritmo genético do MATLAB, com adequações para
a utilização com o Arena. Originalmente o toolbox calcula o valor da função objetivo a
medida que obtém cada indivíduo da geração. Como o cálculo da função objetivo nesse
problema é feito pelo Arena, a comunicação MATLAB-ARENA seria feita indivíduo a
indivíduo e o tempo de execução do algoritmo genético aumentaria consideravelmente.
Deste modo, o código foi alterado para calcular o fitness de cada indivíduo somente
quando a geração completa for obtida pelo algoritmo genético, de forma que a comunicação
MATLAB-Arena seja feita uma única vez por geração.
Na primeira rodada do algoritmo genético não há nenhum valor de fitness para ser
usado como parâmetro pelo GA, portanto o MATLAB deve gerar valores aleatórios para
os indivíduos da primeira geração. Essa geração será enviada então para o Arena para se
obter o valor do fitness de cada indivíduo, porém alguns cuidados devem ser tomados:

• 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

4.1 RESULTADOS DA OTIMIZAÇÃO

Postas as premissas, foram executados 232 cenários do algoritmo genético, com


modelo de trem e estado inicial do pátio variando aleatoriamente. Analisando os resultados
desses cenários, é possível ver que as melhores formas de posicionamento ocorreram
conforme o esperado, isto é, demonstrando algum comportamento lógico no posicionamento.
Nas Figuras mostrados a seguir, os lotes com contorno em vermelhos são aqueles que
foram trazidos pelo trem. Os que têm contorno preto já estavam no pátio antes do início
da manobra.
Na maior parte dos cenários, os lotes foram posicionados nas linhas onde já havia
algum lote do mesmo cliente. Dessa forma, a locomotiva usada para formação dos trens
consegue levar os lotes para a linha de formação com um número reduzido de voltas de
manobra. Consequentemente o tempo de formação dos trens para cada cliente é menor,
como por exemplo no resultado mostrado na Figura 20.

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

Figura 21 – Priorização do algoritmo genético para levar lotes consecutivos simultaneamente

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 22 – Tendência do algoritmo genético de posicionar lotes à direita do pátio

Figura 23 – Tendência do algoritmo genético de posicionar lotes dos clientes 1,2 e 3 na ordem de
formação dos clientes

4.2 TEMPOS DE MANOBRA

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

Figura 24 – Ocorrência de tempos de manobra em horas para amostras do algoritmo genético

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 CONCLUSÕES E TRABALHOS FUTUROS

5.1 CONCLUSÕES

Um pátio ferroviária fictício, no qual são realizadas manobras de formação e


decomposição de trens, foi idealizado de forma a representar minimamente uma operação
real de trens de carga geral em uma ferrovia.
Para simular o funcionamento do pátio e medir os tempos de manobra dos trens
que circulam por ele, foi criado um modelo de sistemas discretos no software de simulação
Arena. Dentro do modelo foram construídas lógicas para representar o posicionamento de
lotes com destino a clientes diferentes e formação de trens unitários de lotes para o mesmo
cliente.
O modelo criado foi capaz de avaliar diversas formas de posicionamento dos lotes
nas linhas do pátio quanto ao tempo total de manobra para decomposição do trem de
carga geral e formação dos trens unitários.
Para encontrar uma forma de posicionamento que fizesse com que o tempo total
de manobra fosse pequeno foi utilizado um algoritmo genético capaz de criar diversas
combinações de modelos de trens operando no pátio com determinado estado inicial,
comparar todas as combinações por meio de uma função objetivo e selecionar as que são
melhores.
O algoritmo genético, que foi implementado no software MATLAB, se mostrou
bastante eficiente para encontrar boas soluções para o posicionamento dos lotes. Os
resultados apresentaram um comportamento lógico, mesmo tendo sido gerados por um
processo que simula a evolução natural, e não um processo clássico de otimização.
Contudo, o tempo de simulação é grande (em torno de 20 minutos para cada GA).
Para cada execução do algoritmo genético, o processo de comunicação entre o Arena e
o MATLAB era efetuado diversas vezes, o que gerava um atraso maior para o término
do algoritmo. Mesmo com tempo computacional relativamente grande, a alternativa
de se utilizar algoritmo genético para otimização de pátios ferroviários pode ser viável,
dependendo dos tempos reais envolvidos.
Também há uma limitação do tamanho do trem e do número de espaços ocupados,
por questões de simplificação da modelagem. Outros aspectos de um pátio real também
foram deixados de lado durante a modelagem, como o tempo para operação de AMVs e a
mobilidade da locomotiva entre os lados do pátio. Esses aspectos podem ser modelados,
porém aumentam a complexidade da modelagem do pátio.
Apesar do algoritmo genético ter se mostrado uma boa solução, um método mais
simples de otimização poderia ter sido mais útil para esse problema, já que o modelo
44

do pátio utilizado até o momento é razoavelmente simples. Mas com o aumento da


complexidade do modelo, o algoritmo genético tende a se mostrar cada vez mais útil e
vantajoso em relação a técnicas de otimização clássicas.

5.2 TRABALHOS FUTUROS

• Construir um modelo mais completo e fiel a operação de um pátio real, no qual


o tamanho dos lotes não seja tão rígido e que os vagões tenham mais liberdade
para locomoção dentro do pátio, em que as operações mais simples sejam melhor
representadas e que possibilite a simulação de mais de um trem simultaneamente.
Tendo em vista uma programação diária de trens que irão circular ou manobrar no
pátio, utilizar um algoritmo genético para obter uma boa forma de posicionamento,
que leve em conta os outros trens que também necessitarão dos recursos do pátio.
Como o leadtime dos processos envolvidos em uma ferrovia geralmente é elevado, o
otimizador desenvolvido poderia ser utilizado para todo trem que opere no pátio,
sem comprometer a programação de trens.

• 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.

• Utilizar outros mecanismos de otimização para comparar o desempenho, como


Particle Swarm Optimization, Colônia de Formigas e de Morcegos. Métodos de
otimização que resultem num tempo computacional menor podem possibilitar a
otimização de modelos mais complexos.
45

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.

[2] C. L. Paradela, “Desestatização da rede ferroviária federal s/a: impactos sobre os


recursos humanos da administração geral,” Ph.D. dissertation, 1998.

[3] T. e Economia, “O sistema ferroviário brasileiro.” CNT, Tech. Rep., 2013.

[4] C. I. Agency, “The world factbook – country comparison: Railroads,” online,


(acessado em 04/12/2018). [Online]. Available: https://www.cia.gov/library/
publications/the-world-factbook/rankorder/2121rank.html

[5] A. Lobo, “Transporte de cargas e a encruzilhada do brasil para o futuro,”


online, (acessado em 04/12/2018). [Online]. Available: http://www.ilos.com.br/web/
transporte-de-cargas-e-a-encruzilhada-do-brasil-para-o-futuro/

[6] E. M. M. COSTA, Introdução aos sistemas a eventos discretos e a teoria de controle


supervisório. Editora: ALTA BOOKS, 2009.

[7] H. L. Corrêa and C. A. Corrêa, Administração de Produção e Operações - O Essencial.


Atlas, 2017.

[8] L. CHRISTOPHER and L. WRIGHT, Serviços: marketing e gestão. São Paulo:


Saraiva, 2001.

[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.

[11] A. Z. Cordenonsi, F. M. Muller, and F. d. P. de Bastos, “O ensino de heurísticas e


metaheurísticas na área de pesquisa operacional sob a ótica da educação dialógica
problematizadora,” RENOTE, vol. 3, no. 1, 2005.

[12] A. Diaz, Optimizacion Heuristica y Redes Neuronales. Paraninfo, 2000.

[13] R. Linden, Algoritmos genéticos (2a ediçao). Brasport, 2008.

[14] J. H. Holland, Adaptation in natural and artificial systems: an introductory analysis


with applications to biology, control, and artificial intelligence. MIT press, 1992.

[15] S. Binitha, S. S. Sathya et al., “A survey of bio inspired optimization algorithms,”


International Journal of Soft Computing and Engineering, vol. 2, no. 2, pp. 137–151,
2012.
46

[16] H. Wang, “A memetic algorithm with adaptive hill climbing strategy for dynamic
optimization problems,” vol. 1, no. 1, p. 2, 2008.

[17] J. Kennedy, “Particle swarm optimization,” in Encyclopedia of machine learning.


Springer, 2011, pp. 760–766.

[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.

[20] M. Neshat, G. Sepidnam, M. Sargolzaei, and A. N. Toosi, “Artificial fish swarm


algorithm: a survey of the state-of-the-art, hybridization, combinatorial and indicative
applications,” Artificial intelligence review, vol. 42, no. 4, pp. 965–997, 2014.

[21] H. Chen and Y. Zhu, “Optimization based on symbiotic multi-species coevolution,”


Applied Mathematics and Computation, vol. 205, no. 1, pp. 47–60, 2008.

[22] A. R. Mehrabian and C. Lucas, “A novel numerical optimization algorithm inspired


from weed colonization,” Ecological informatics, vol. 1, no. 4, pp. 355–366, 2006.

Você também pode gostar