algoritmo de distribuição e alocação vagões em tempo real

92
Universidade Estadual de Campinas Faculdade de Engenharia Elétrica e de Computação Algoritmo de Distribuição e Alocação Vagões em Tempo Real Autor: Joelma Cristina Costa Orientador: Prof. Dr. Fernando Antônio Campos Gomide Co-Orientador: Dr. Rodrigo Almeida Gonçalves Dissertação de Mestrado apresentada à Faculdade de Engenharia Elétrica e de Computação como parte dos requisitos para obtenção do título de Mestre em Engenharia Elétrica. Área de concentração: Engen- haria de Computação. Banca Examinadora Fernando Antônio Campos Gomide, Ph.D. ........... DCA/FEEC/Unicamp Rodrigo Almeida Gonçalves, Dr . ......................... CFlex/Campinas Akebo Yamakami, Dr . ................................ DT/FEEC/Unicamp Sérgio Martins de Souza, Ph.D. .......................... DEX/UFLA-MG Campinas, SP Janeiro/2010

Upload: trandieu

Post on 07-Jan-2017

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Universidade Estadual de Campinas

Faculdade de Engenharia Elétrica e de Computação

Algoritmo de Distribuição e AlocaçãoVagões em Tempo Real

Autor: Joelma Cristina CostaOrientador: Prof. Dr. Fernando Antônio Campos Gomide

Co-Orientador: Dr. Rodrigo Almeida Gonçalves

Dissertação de Mestrado apresentada à Faculdadede Engenharia Elétrica e de Computação como partedos requisitos para obtenção do título de Mestre emEngenharia Elétrica. Área de concentração: Engen-haria de Computação.

Banca Examinadora

Fernando Antônio Campos Gomide, Ph.D. . . . . . . . . . . . DCA/FEEC/UnicampRodrigo Almeida Gonçalves, Dr. . . . . . . . . . . . . . . . . . . . . . . . . . CFlex/CampinasAkebo Yamakami, Dr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DT/FEEC/UnicampSérgio Martins de Souza, Ph.D. . . . . . . . . . . . . . . . . . . . . . . . . . . DEX/UFLA-MG

Campinas, SP

Janeiro/2010

Page 2: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

FICHA CATALOGRÁFICA ELABORADA PELABIBLIOTECA DA ÁREA DE ENGENHARIA - BAE - UNICAMP

Costa, Joelma CristinaF149u Algoritmo de Distribuição e Alocação

Vagões em Tempo RealJoelma Cristina Costa. – Campinas, SP:[s.n.], 2010.

Orientador: Antônio Fernando Campos Gomide.Dissertação (mestrado) - Universidade Estadual de Campinas,

Faculdade de Engenharia Elétrica e de Computação.

1. Distribuição de Vagões Vazios. 2. Alocação de Vagões.3. Planejamento de Operações em Tempo Real.I. Costa, Joelma C. II. Universidade Estadual de Campinas.Faculdade de Engenharia Elétrica e de Computação. III.Título

ii

Page 3: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Resumo

O processo de distribuição e alocação de vagões vazios nas companhias ferroviárias é dinâmicoe envolve mecanismos complexos de planejamento. Formalmente, o processo de distribuição e alo-cação de vagões vazios pode ser formulado como um problema de alocação de recursos cuja solução éuma alocação vagão-demanda. Além disso, a decisão de distribuição e alocação exige do tomador dedecisão uma resposta rápida, visto que frequentemente surgem novas demandas de transporte, outrassão canceladas ou modificadas, fazendo com que o planejamento de alocação seja constantementerevisto durante a operação. Este trabalho propõe um algoritmo para resolver o problema de decisãono planejamento de distribuição e alocação de vagões em tempo real. O algoritmo baseia-se em ummodelo de fluxo em redes que utiliza o conhecimento do programa horário, das rotas dos trens e daoperação ferroviária. Resultados experimentais mostram que o modelo proposto fornece soluções dedistribuição e alocação mais realistas e eficientes, sob o ponto de vista da qualidade da solução edesempenho computacional, do que métodos alternativos.

Palavras-chave: Distribuição de Vagões Vazios, Alocação de Vagões, Planejamento de Oper-ações em Tempo Real.

Abstract

The empty car distribution and allocation process of railroads is dynamic and involves complexmechanisms of planning. Formally, the empty car distribution and allocation process can be for-mulated as a resource allocation problem whose solution is a car-demand allocation. The decisionmaking on distribution and allocation requires that the decision-maker responds quickly to answertransportation requests that could be created, canceled or modified. Empty car distribution and allo-cation planning is constantly reviewed during railroad operation. This paper suggests an algorithm tosolve real time planning of empty car distribution and allocation problems. The algorithm is based ina combination of a network flow model with the train schedule, train routes and operation knowledge.Experimental results show that the proposed model provides more realistic and efficient solutions forthe distribution and allocation than alternative methods when considering the quality of solution andcomputational performance.

Keywords: Empty Car Distribution, Car Assignment, Real Time Planning.

iii

Page 4: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

iv

Page 5: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Aos meus pais, irmãos e namorado.

v

Page 6: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

vi

Page 7: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Agradecimentos

Ao meu namorado, Rafael, pelo carinho e amor.

A minha família pelo apoio durante esta jornada.

Ao meu orientador, Fernando, pela orientação e paciência.

Ao Rodrigo pelo apoio ao longo desta jornada.

À CAPES, pelo apoio financeiro através de bolsa de mestrado.

vii

Page 8: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

viii

Page 9: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Sumário

Lista de Figuras xi

Lista de Tabelas xiii

Glossário xv

Lista de Símbolos xvii

Trabalhos Publicados Pelo Autor xix

1 Introdução 11.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Contextualização e Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Distribuição e Alocação de Vagões 52.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Descrição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Revisão Bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Modelo Matemático Clássico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Algoritmo de Distribuição de Vagões 133.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Descrição do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.4 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Algoritmo de Distribuição de Vagões Nebuloso 234.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Descrição do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.4 Experimentos Computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4.1 Experimento 1: Confiabilidade dos clientes . . . . . . . . . . . . . . . . . . 34

ix

Page 10: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

x SUMÁRIO

4.4.2 Experimento 2: Previsibilidade no horizonte de tempo . . . . . . . . . . . . 374.4.3 Experimento 3: Instância inspirada em uma grade real . . . . . . . . . . . . 39

4.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5 Algoritmo de Alocação de Vagões 435.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2 Descrição do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.4 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6 Experimentos Computacionais 536.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.2 Descrição dos Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.3 Experimento 1: Variação do número de trens por dia . . . . . . . . . . . . . . . . . 556.4 Experimento 2: Variação do número de tipos de vagões . . . . . . . . . . . . . . . . 586.5 Experimento 3: Variação do horizonte de tempo . . . . . . . . . . . . . . . . . . . . 606.6 Resultados Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.7 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

7 Conclusões 69

Referências bibliográficas 71

Page 11: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Lista de Figuras

2.1 Contextualização do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Problema de distribuição e alocação de vagões em uma ferrovia . . . . . . . . . . . 72.3 Modelo de fluxo em redes tempo-espaço multicomodidade(Joborn et al., 2004). . . . 11

3.1 Rede de distribuição de vagões vazios . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 Visão Geral do Algoritmo de Distribuição e Alocação de Vagões . . . . . . . . . . . 19

4.1 Algoritmo de Distribuição de Vagões Nebuloso . . . . . . . . . . . . . . . . . . . . 244.2 Funções de pertinência para as demandas do problema 2.2 . . . . . . . . . . . . . . 314.3 Função de pertinência para a função objetivo do problema 2.2 . . . . . . . . . . . . 314.4 Representação das funções de pertinência das demandas dos problemas 4-1 e 4-2 . . 354.5 Problema 4-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.6 Problema 4-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.7 Representação das funções de pertinência das demandas dos problemas 4-1 . . . . . 384.8 Funções de pertinência para demanda de 12 vagões com diferentes valores de f . . . 40

5.1 Representação gráfica da rota r1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6.1 Eficiência para intâncias do grupo 1-1 . . . . . . . . . . . . . . . . . . . . . . . . . 566.2 Tempos de processamento para as instâncias do grupo 1-1 . . . . . . . . . . . . . . 576.3 Tempos de processamento para as instâncias dos 6 grupos . . . . . . . . . . . . . . . 576.4 Eficiência para intâncias do grupo 2-1 . . . . . . . . . . . . . . . . . . . . . . . . . 596.5 CPU para intâncias do grupo 2-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.6 CPU para intâncias do grupo 2-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.7 Tempo de processamento para intâncias do grupo 2-2 . . . . . . . . . . . . . . . . . 616.8 Eficiência para intâncias do experimento 3 . . . . . . . . . . . . . . . . . . . . . . . 616.9 Tempo de processamento para intâncias do experimento 3 . . . . . . . . . . . . . . . 626.10 GAP para intâncias do experimento 3 . . . . . . . . . . . . . . . . . . . . . . . . . 636.11 Tempo de processamento em minutos para todas intâncias . . . . . . . . . . . . . . 636.12 GAP para todas instâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.13 CPU para todas intâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.14 Eficiência para todas instâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

xi

Page 12: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

xii LISTA DE FIGURAS

Page 13: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Lista de Tabelas

4.1 Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuiçãonebuloso para o problema 4-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuiçãonebuloso para o problema 4-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.3 Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuiçãonebuloso para o problema 4-1 com demanda 7 ZAP no dia 18 . . . . . . . . . . . . . 39

4.4 Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuiçãonebuloso para o problema 4-1 com demanda 7 ZAP no dia 25 . . . . . . . . . . . . . 39

4.5 Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuiçãonebuloso para o problema do experimento 3 com diferentes valores de f . . . . . . . 41

5.1 Algoritmo de alocação de vagões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.2 Resultados do algoritmo de distribuição para o exemplo da figura 5.2 . . . . . . . . 525.3 Lista de SMV (LSMV ) resultante do exemplo da figura 5.2 ordenada por número de

rotas e prazo das demandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.1 Definição dos grupos de instâncias do experimento 1 . . . . . . . . . . . . . . . . . 566.2 Definição dos grupos de instâncias do experimento 2 . . . . . . . . . . . . . . . . . 586.3 Tempos de processamento do algoritmo multicomodidade considerando todas as in-

stâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.4 Resultados GAP para todas as instâncias . . . . . . . . . . . . . . . . . . . . . . . . 656.5 Resultados CPU para todas as instâncias . . . . . . . . . . . . . . . . . . . . . . . . 656.6 Resultados eficiência para todas as instâncias . . . . . . . . . . . . . . . . . . . . . 66

xiii

Page 14: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

xiv LISTA DE TABELAS

Page 15: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Glossário

ALL - América Latina Logística

ANTF - Associação Nacional dos Transportadores Ferroviários

SMV - solicitação de movimentação de vagões

TKU - toneladas por quilometro útil

VLSN - very large-scale neighborhood search

xv

Page 16: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

xvi GLOSSÁRIO

Page 17: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Lista de Símbolos

Mjj - Número de ramos de diversidaderi - Envoltória do i-ésimo ramori - Valor rms de riρi - Envoltória do i-ésimo ramo, normalizada em relação a rip(x) - Função densidade de probabilidade da variável aleatória xP (x) - Função distribuição de probabilidade da variável aleatória xmi - Parâmetro de Nakagami-m do i-ésimo ramoE(·) - Média de uma variável aleatóriaVar(·) - Variância de uma variável aleatóriaki - Parâmetro de Rice do i-ésimo ramori - Derivada temporal de riρi - Derivada temporal de ρip(x, y) - Função densidade de probabilidade conjunta das variáveis aleatórias x e y

xvii

Page 18: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

xviii LISTA DE SÍMBOLOS

Page 19: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Trabalhos Publicados Pelo Autor

1. A.S. Pinto, L.F. Faina, E. Cardozo. “A TINA-Based Distributed Environment for Mobile Multimedia

Applications”. Third International Conference on Management of Multimedia Networks and Services

(MMNS’2000), Fortaleza, Ceará, Brasil, pg. 163-175, Setembro 2000.

2. L.F. Faina, E.J. Oliveira, R.C.M. Prado, E. Cardozo. “Qualidade de Serviço em Sistemas Multimídia

Distribuídos sobre Redes Heterogêneas”. XVII Simpósio Brasileiro de Telecomunicações (SBT’99),

Vila Velha, Espírito Santo, Brasil, pg. 742-747, Setembro 1999.

3. L.F. Faina, E.J. Oliveira, R.C.M. Prado, E.Cardozo. “Developing Multimedia Applications with the

OMG Streaming Framework”. Miniconference on Multimedia Applications, Services & Technologies’99

(MAST’99) in ICC’99 (International Conference on Communications’99 - Wireless and Multimedia),

Vancouver, Canada, Junho 1999.

4. E.J. Oliveira, L.F. Faina, E. Cardozo. “Sessões de Acesso e Serviço TINA baseadas em Web”. 17º

Simpósio Brasileiro de Redes de Computadores (SBRC’99), Salvador, Bahia, Brasil, pg. 157-172, Maio

1999.

5. A.S. Pinto, E.J. Oliveira, L.F. Faina, E. Cardozo. “A TINA-based Environment for Mobile Multimedia

Services”. 1999 Telecommunications Information Network Architecture Conference (TINA’99), Oahu,

Hawaii, EUA, pg. 54-65, Abril 1999.

6. R.C.M. Prado, L.A. Guedes, L.F. Faina, E. Cardozo. “ODP Channel: an Open Mechanism for Sup-

porting Media Flows in Distributed Environments”. XXIV Conferência Latinoamericana de Informática

(CLEI’98), Quito, Equador, pg. 111-122, Outubro 1998.

7. L.A. Guedes, P.C. Oliveira, L.F. Faina, E. Cardozo. “An Agent-based Approach for Supporting Quality

of Service in Distributed Multimedia Systems”. Computer Communications Journal, Vol. 21 No. 14,

pg. 1269-1278, Setembro 1998.

8. L.A. Guedes, P.C. Oliveira, L.F. Faina, E. Cardozo. “QoS Agency: An Agent-based Architecture for

Supporting Quality of Service in Distributed Multimedia Systems”. IEEE Conference on Protocols

for Multimedia Systems - Multimedia Networking (PROMSMmNet’97), Santiago, Chile, pg. 204-212,

Novembro 1997.

xix

Page 20: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

xx

Page 21: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 1

Introdução

1.1 Introdução

Este capítulo faz uma breve definição do problema e uma revisão das principais propostas ex-istentes na literatura para distribuição de vagões vazios. Este problema é geralmente tratado comoproblemas de otimização linear modelado com fluxo em redes. Este capitulo contém também a de-scrição do problema e os modelos que vêm sendo propostos para resolver o problema.

1.2 Contextualização e Motivação

As ferrovias possuem capacidade de carga e velocidade de transporte que, se exploradas conve-nientemente, facilitam a logística e beneficiam as empresas utilizam este tipo de transporte.

No Brasil a produção ferroviária no ano de 2008 foi de 267,7 bilhões de toneladas por quilometroútil (TKU) e as projeções para o ano de 2009 são de 309,9 bilhões de TKU, segundo Associação Na-cional dos Transportadores Ferroviários - ANTF (2009). O volume transportado pela ALL (AméricaLatina Logística), maior operadora logística com base ferroviária da América Latina, cresceu 10,4 porcento no primeiro trimestre de 2009 contra igual período do ano passado, passando de 7.028 milhõesde TKU para 7.759 milhões de TKU (ANTF, 2009).

O transporte ferroviário inclui uma série de oportunidades de otimização no planejamento tático,estratégico e operacional. Dentre as oportunidades destaca-se o planejamento da distribuição e alo-cação de vagões vazios. O problema da alocação de vagões vazios consiste basicamente na definiçãodos pares vagão-demanda com o objetivo de atender a demanda por vagões vazios e minimizar oscustos de movimentação.

A maioria dos problemas de alocação são resolvidos com técnicas de tradicionais de otimização,principalmente a programação linear (Beurrier et al., 1990). Entretanto, a modelagem com estas téc-

1

Page 22: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

2 Introdução

nicas tradicionais é complexa e frequentemente o tempo de processamento dos modelos não atendemrequisitos de tempo real.

Lévine e Pomerol (1990) consideram que o problema da alocação de vagões vazios envolvemuito mais o conhecimento estratégico do que o conhecimento puramente formalizável em modelosmatemáticos. Em geral, o processo de alocação combina o conhecimento e a experiência operacionalcom modelos formais para encontrar soluções ótimas para o sistema real.

Considerando-se estes aspectos, este trabalho sugere um algoritmo para a distribuição e alocaçãode vagões em tempo real utilizando o conhecimento operacional, o programa horário, as rotas detrens, juntamente com um modelo de fluxo em redes.

Neste trabalho foi feita uma extensão do algoritmo de Narissety et al. (2008) com o objetivo deresolver o problema de alocação de vagões em ferrovias baseadas na grade de trens. Originalmente, oalgoritmo de Narissety, não considera os trens da grade para fazer alocação vagão-demanda pois tem-se o pressuposto que sempre existe um trem para movimentar os vagões entre qualquer par origem-destino(O-D), o que é irrealista na prática.

Este trabalho propõe um modelo de alocação vagão-demanda que considere a grade de trens. Aidéia é a de tornar as alocações vagão-demanda operacionalmente viáveis, ou seja, as alocações feitaspelo algoritmo proposto consideram a existência de trens e rotas dos trens, permitindo que o resultadoseja facilmente aplicável ao sistema real.

O problema de distribuição e alocação de vagões consiste basicamente no planejamento da movi-mentação dos vagões vazios na ferrovia de modo a atender à demanda de transporte da ferrovia eminimizar os custos associados a movimentação dos vagões.

A modelagem de problemas de otimização em modelos de fluxo em redes com apenas uma co-

Page 23: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

1.3 Objetivo 3

modidade permite a utilização de algoritmos especializados para a sua solução ao invés do uso dealgoritmos tradicionais de programação linear como Simplex e Dual Simplex. Estes algoritmos seaproveitam da estrutura de nós e arcos dos modelos para obter soluções com tempos de processa-mento menores que os algoritmos convencionais de programação linear.

Apesar da possibilidade de modelos de fluxo em redes multicommodity serem tratados comomodelos de programação linear ou programação linear inteira, problemas reais possuem dimensõesem números de variáveis e restrições que tornam proibitivo o uso de técnicas de otimização conven-cionais como o branch and bound puro para o caso de programação linear inteira.

As estruturas desses problemas sugerem que modelos de decomposição sejam utilizados, ex-istindo diferentes abordagens como price derivative e resource derivative. Dentre os modelos deprice derivative se destacam a Relaxação Lagrangeana e a Decomposicão de Dantzig-Wolfe.

Devido à sua ampla utilização na solução de modelos multicommodity de programação lineare programação linear inteira (juntamente com o algoritmo de branch-and-bound em uma estratégiachamada de branch-and-price (Ziaratti et al., 1997)) a decomposição de Dantzig-Wolfe foi escolhidacomo primeira estratégia de decomposição a ser implementada.

1.3 Objetivo

Algoritmo para a distribuição e alocação de vagões em tempo real:

• conhecimento operacional

• programa horário

Page 24: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4 Introdução

• rotas de trens

• modelo de fluxo em redes

1.4 Resumo

Após esta introdução, a próxima seção apresenta uma breve descrição das principais abordagensdiscutidas na literatura sobre o problema de distribuição e alocação. A seção 3 formula o problemae detalha o modelo de fluxo em redes. A seção seguinte apresenta o algoritmo de distribuição ealocação. Resultados experimentais são apresentados na seção 5. A conclusão resume as principaiscontribuições e tópicos para trabalhos futuros.

Page 25: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 2

Distribuição e Alocação de Vagões

2.1 Introdução

Esse capítulo tem o propósito de detalhar e formalizar o problema de distribuição e alocação devagões vazios. Inicialmente é feita uma breve descrição do problema e uma revisão dos trabalhosrelacionados ao problema de distribuição e alocação de vagões vazios. Por fim é apresentada a mode-lagem clássica da literatura para este problema, o modelo matemático multicomodidade. Tal modelofoi utilizado na comparação e análise dos resultados obtidos pela proposta deste trabalho.

2.2 Descrição do Problema

O problema de distribuição e alocação de vagões surge da necessidade de atender a demanda detransporte de uma ferrovia. Este problema geralmente é resolvido em duas etapas. Primeiramente, érealizado o processo de distribuição de vagões definindo as origens e destinos de cada vagão com oobjetivo de atender a demanda de transporte. Em seguida, o processo de alocação de vagões definequais trens levarão os vagões entre os pares origem-destino definidos na primeira etapa com o objetivode atender as necessidades de movimentação de vagões.

Veja na figura abaixo a contextualização destes dois problemas em uma ferrovia.

Praticamente, todas as ferrovias tem um sistema de planejamento semelhante a este. Como vistona figura, as principais informações necessárias para a tomada de decisão são:

• demandas de transporte;

• grade de trens;

• posição dos vagões na malha;

5

Page 26: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6 Distribuição e Alocação de Vagões

Fig. 2.1: Contextualização do Problema

A demanda é definida em toneladas úteis de cada produto que deverá ser transportado de umadeterminada origem a um destino. A demanda define também os tipos de vagões que podem trans-portar o seu produto. A partir da definição das que todo o processo de planejamento de distribuição ealocação de vagões se inicia.

Um outro aspecto que deve ser considerado no problema é a grade de trens (programação horáriade trens). A grade de trens, ou programa horário, é uma programação de todos os trens de carga geralque circulam na ferrovia. As ferrovias brasileiras, em sua maioria, utilizam uma grade de trens.

A posição dos vagões na malha e sua disponibilidade completam as informações necessárias paraque o plano de distribuição e alocação de vagões se inicie.

O problema de distribuição e alocação de vagões vazios consiste basicamente em atender a de-manda de transporte com o objetivo de minimizar os custos de movimentação de vagões, sujeito àsrestrições de capacidade dos trens da grade.

O plano de distribuição de vagões tem o objetivo de maximizar o atendimento a demanda detransporte. Ao final da etapa de distribuição são criadas as solicitações de movimentação de vagões.Uma solicitação de movimetação de vagão consiste basicamente em definir a quantidade de vagões decada tipo que deve ser movida entre uma origem e um determinado destino onde exista uma demandade transporte.

A distribuição dos vagões é executada separando a frota considerando os diferentes tipos devagões. Esta separação tem o objetivo de facilitar e agilizar o processo de distribuição e alocaçãodos vagões na ferrovia, visto que diferentes tipos de vagão devem atender a diferentes clientes (pro-dutos agrícolas, siderúrgicos, contêineres e granéis), terminais de carregamento e rotas. Cada tipopossui peculiaridades e restrições de operação diferenciados, mas o fluxo da informação para resolver

Page 27: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

2.2 Descrição do Problema 7

o problema é essencialmente o mesmo em todos os casos.

As solicitações de movimentação de vagões criadas pelo plano de distribuição são uma das en-tradas para o planejamento de alocação de vagões. O objetivo desta etapa é encontrar algum trem dagrade para levar os vagões de seu lugar de origem para o destino solicitado.

Os trens existentes na grade de trens são utilizados para fazer a movimentação os vagões. Estestrens podem movimentar diferentes tipos de vagões ao mesmo tempo e tem as manobras de pátiosnecessárias previstas nas listas de atividades. O plano de alocação deve levar em conta as atividadesprevistas na grade de trens, ou seja, não são permitidas atividades de anexação e desanexação devagões que não tenham sido previamente definidas na grade de trens.

Outro ponto importante da etapa de alocação é planejar o posicionamento dos vagões de forma aevitar congestionamentos onde o tráfego é mais intenso, posicionando os vagões nos pátios de modoestratégico, buscando evitar atrasos e aumentar a disponibilização de vagões.

Um outro aspecto importante deste problema é que existem vários eventos imprevisíveis, mu-danças no cenário operacional e na demanda. Estes eventos interferem diretamente o plano de dis-tribuição e alocação, pois muitas vezes ocorrem pouco tempo antes da da movimentação de trens,configurando um ambiente extremamente dinâmico. Além destes eventos podem surgir também atra-sos dos trens devido a demora nos terminais de carga e descarga e pátios manobra. É costumeiro, porexemplo, vagões estarem disponíveis, mas aguardando a chegada do produto.

As decisões de distribuição e alocação de vagões são feitas diariamente devido ao caráter dinâmicoe aos diversos imprevistos que podem ocorrer. Além disto, o plano de distribuição e alocação feitopara o dia anterior muitas vezes não ocorre como planejado. Considerando estes aspectos, o plano dedistribuição e alocação deve ser ajustado diariamente.

Fig. 2.2: Problema de distribuição e alocação de vagões em uma ferrovia

Page 28: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

8 Distribuição e Alocação de Vagões

A figura 2.2 representa um exemplo do problema em uma ferrovia com 6 pátios em um horizontede 3 dias (dia 16 ao dia 18).

2.3 Revisão Bibliográfica

Nesta seção, será feita uma breve descrição dos trabalhos e artigos publicados relacionados aoproblema da distribuição de vagões vazios. A maioria das abordagens da literatura utilizam modelode fluxo em redes multicomodidade para resolver este problema.

O trabalho de Assad (1980) foi um dos pioneiros da área. Em seu trabalho Assad reporta osmodelos de transporte ferroviário existentes na literatura. Estes modelos foram categorizados comuma ênfase particular em otimização.

Uma das primeiras abordagens para distribuição e alocação de vagões foi desenvolvida por Men-didratta e Turnquist (1982). Neste trabalho o problema foi visto como um problema de coordenaçãoentre decisões globais de planejamento da ferrovia e as decisões locais feitas nos terminais individu-ais. O modelo incorporou a rede e modelos locais que representavam as atividades realizadas pelosdois níveis do sistema ferroviário e dos terminais. O objetivo do modelo era maximizar o lucro op-eracional da ferrovia, sujeito às restrições de oferta e demanda de vagões vazios. O modelo pode serutilizado como uma ferramenta de avaliação pelo gerenciamento central ferroviário e uma ferramentaoperacional para a distribuição diária de vagões vazios nos terminais. Testes do modelo utilizandodados em coperação com uma ferrovia indicaram que as decisões de distribuição de vagões reduziramas milhas viajadas pelos vagões vazios.

Uma metodologia para modelos de simulação para a otimização da movimentação de vagõesvazios foi proposta por Ratcliffe, Vinod e Sparrow (1984). A rede de vagões foi modelada paradeterminar a movimentação ótima através do reposicionamento dos vagões vazios nos vários nós(terminais) da rede. O modelo de simulação obteve bons resultados fornecendo os dados requeridospelo modelo de movimentação. O modelo se mostrou versátil e com dados reais poderia mostrar-seuma valiosa ferramenta para gerentes e engenheiros ferroviários.

Em 1987, Dejax e Crainic apresentam um visão geral da área e propõem uma taxonomia paramodelos e problemas de fluxo de vagões vazios. Além disto, as principais pesquisas e perspectivas daárea foram identificadas e as vantagens de uma abordagem integrada para o gerenciamento simultâneoda frota de veículos vazios e carregados foram apresentadas.

Uma formulação e solução que combina roteamento, formação de trens e alocação de vagõesvazios foi proposta por Haghani (1989). Esta formulação resultou em um problema de programaçãointeira mista com função objetivo não linear e restrições lineares. Uma técnica heurística de decom-posição foi desenvolvida para resolver o modelo.

Page 29: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

2.3 Revisão Bibliográfica 9

A distribuição e alocação de vagões na French National Railway Company (SNCF) foi tratadacomo um problema tradicional de alocação de recursos por Beurrier et al. (1990). A distribuição ealocação de vagões foi resolvida utilizando o conhecimento de alocadores de vagões e um sistemaespecialista ao invés de um modelo de otimização. O sistema proposto busca reproduzir a tomada dedecisão dos alocadores, enfatizando as características estratégicas da operação ferroviária.

Técnicas de decomposição foram estudadas e comparadas para formulações como problemas defluxo em redes multicomodidade na alocação de vagões vazios na French National Railway Com-pany (SNCF) por Morin (1993). Cada comodidade correspondia a uma área geográfica e restriçõesgarantindo que as restrições de conservação de fluxo fossem mantidas em áreas adjacentes. Duasformulações para resolver o problema pelo método do subgradiente foram introduzidas: uma decom-posição dual que relaxa as restrições dependentes e um esquema de decomposição primal que tratada introdução de variáveis de folga. Mahey (1986) utiliza uma técnica de decomposição inteira mistacombinando a diretiva-preço e diretiva-recurso na alocação e apresenta um algoritmo especializadoque explora a separação do problema. Experimentos realizados com dados da SNCF indicaram queo terceiro método foi superior.

Em 1995, Spieckermann e Voβ fizeram um estudo de caso na Europa. O objetivo foi fornecerum algoritmo de suporte a decisão para o problema da distribuição e alocação. Para tal foi feita umacomparação entre uma abordagem heurística e um modelo de fluxo em rede tradicional.

Uma rede de representação tempo-espaço foi usada para representar a movimentação de vagõesnas possíveis sequências vagão-bloco e alocação bloco-trem por Kwon, Martland e Sussman (1997).O problema foi formulado através de um modelo de fluxo em rede multicomodidade e utilizou atéctina de geração de colunas para resolver o modelo. Em seu trabalho várias maneiras de melhorara programação de vagões são identificadas. O roteamento dinâmico de vagões em um modelo deotimização sensível ao mercado foi descrito.

Cordeau, Toth e Vigo (1998) apresentam um resumo dos principais modelos de otimização usadosem problemas de transporte ferroviário, propondo uma classificação dos modelos e descrevendo ascaracterísticas mais importantes, com foco na estrutura do modelo e aspectos dos algoritmos. Um dosproblemas tratados é o gerenciamento de frota de vagões.

Um modelo de otimização que inclui restrições de capacidade dos trens e considera explicitamenteo tempo de partida e chegada dos trens foi proposto por Holmberg et al.(1998). O modelo propostoé um modelo de fluxo em rede multicomodidade para prover um plano de alocação que satisfaça ademanda e reduza o custo de capital.

Um algoritmo nebuloso para resolver problemas de transporte com ofertas e demandas impre-cisas foi proposto por Chanas e Kuchta (1998). O algoritmo retorna resultados exatos e computa-cionalmente eficiente. Números nebulosos foram utilizados para definir a imprecisão nas ofertas e

Page 30: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

10 Distribuição e Alocação de Vagões

demandas.

Cheng e Lin (2004) utilizaram teoria dos jogos para propor um esquema de alocação e movi-mentação de vagões vazios que considera explicitamente o nível de participação e contribuição decada agente. Uma ferramenta integrada de suporte à decisão para criar uma programação de trensconsistente com a demanda de transporte e demais recursos operacionais foi proposta por Ireland etal. (2004).

Um modelo de fluxo em rede tempo-espaço também foi utilizado por Jobor et al.(2004) para de-screver as movimentações de vagões em um problema de alocação de vagões vazios. Este modelofoi resolvido utilizando busca tabu. Foram considerados neste trabalho uma ferrovia que utiliza umprograma horário de trens (grade de trens), o custo de reposicionamento de vagões vazios, um fatorproporcional ao número de vagões movimentado entre um par origem-destino, e o custo relativo àsoperações de manobras nos pátios, o que depende do número de grupos de vagões a serem manobra-dos. O propósito deste modelo de otimização foi considerar explicitamente a economia de escala.

Ahuja, Jha e Liu (2007) desenvolveram um modelo e algoritmo para resolver o problema de iden-tificação de blocos em tempo real. Para resolver o modelo utilizou-se busca local com vizinhanças degrande porte (VLSN-very large-scale neighborhood search). A solução é aproximada e sua obtençãorequer horas de processamento em um microcomputador padrão.

Um modelo de otimização para a alocação de vagões vazios em tempo real foi proposto porNarisetty et al.(2008). O modelo reduz os custos de transporte, penaliza vagões entregues muitocedo/tarde aos pontos de carregamento e maximiza o atendedimento a demanda. Esta abordagem nãoconsidera um programa horário de trens.

Nesta seção foram vistas as principais abordagens que vem sido utilizadas para resolver o prob-lema. Na próxima seção será feita a descrição da abordagem clássica para o problema.

2.4 Modelo Matemático Clássico

Nesta seção será feita a descrição do modelo matemático clássico utilizado para o problema dedistribuição e alocação de vagões. Este modelo é uma rede tempo-espaço e tem a estrutura de umgrafo. A figura 2.3 apresenta a representação deste modelo.

Nesta representação, para cada pátio da ferrovia e em cada período do horizonte de tempo doplanejamento é criado um nó na rede. Os trens da grade são representados pelos arcos, neste caso,para cada trecho do percurso do trem é criado um arco ligando os pátios origem-destino do trecho emquestão. A capacidade do arco é igual a capacidade máxima do trem. Nesta rede são criados arcosentre os pátios para representar o que é mantido no pátio de um período do planejamento para outro.

Considere uma ferrovia imaginária com n pátios, num horizonte de tempo igual a t. Seja P o

Page 31: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

2.4 Modelo Matemático Clássico 11

Fig. 2.3: Modelo de fluxo em redes tempo-espaço multicomodidade(Joborn et al., 2004).

conjunto dos trens da grade de trens que circularam no horizonte de tempo t. Seja D o conjunto dedemandas por vagões vazios. Temos

P : conjunto de todos os arcos da rede

N : conjunto de todos os nós

K: tipos de comodidades

POn , P

Dn : conjunto de arcos que começam e terminam no nó n, ∀n ∈ N

mp : número máximo de vagões no arco p, ∀p ∈ P . Se o arco p foi gerado a partir de um pátio,mp é igual a capacidade do pátio. Se p foi gerado a partir de um trem, mp é igual a capacidade dotrem.

cp : custo do arco p, ∀p ∈ P

bkn: oferta ou demanda no nó n da comodidade k, ∀k ∈ K e ∀n ∈ N . Tal que bkn > 0 se existeoferta de vagões vazios e bkn < 0 para demanda por vagões.

A partir da notação acima as variáveis de decisão para o PDAVV são:

xkp: número de vagões do tipo k no arco p, p ∈ P e k ∈ K.

O objetivo do problema é minimizar o custo de transporte dos vagões vazios, respeitando asrestrições de capacidade dos pátios e dos trens e atendendo os pedidos dos clientes. O modelo finalpara o problema pode ser proposto como abaixo.

min∑p∈P

∑k∈K

cpxkp (2.1)

∑p∈PDn

xkp −∑p∈POn

xkp = bkn,∀k ∈ K, ∀n ∈ N (2.2)

Page 32: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

12 Distribuição e Alocação de Vagões

∑k∈K

xkp 6 mp, ∀p ∈ P (2.3)

xkp ≥ 0, ∀k ∈ K, ∀p ∈ P (2.4)

Existem várias abordagens na literatura para resolver modelos deste tipo. Como neste trabalhoeste modelo foi utilizado apenas como comparação e análise dos resultados, este modelo foi imple-mentado em um programa freeware chamado LpSolve.

O LpSolve é um programa para resolução de problemas de programação linear (otimização deproblemas lineares), e pode resolver problemas com variáveis inteiras.

2.5 Resumo

Este capítulo apresentou a abordagem clássica para o problema de distribuição e alocação devagões com suas principais restrições e objetivos. Foi feita também uma revisão dos principais trabal-hos existentes na literatura para o problema. Por fim, foi apresentado o modelo matemático clássicopara o problema. Este modelo será utilizado nas comparações e análises dos resultados obtidos nestetrabalho.

A partir do que foi visto neste capítulo, conclui-se que os algoritmos de distribuição e alocaçãotem uma forte integração e que o contexto em que se inserem tornam dados que são essenciais aoproblema altamente imprecisos. Uma das informações que tem uma grande imprecisão são os valoresdas demandas de transporte. Uma outra importante consideração é que um algoritmo de distribuiçãoe alocação para tempo real tem que retornar um resultado em alguns segundos visto que os resultadosde tal modelo interferem diretamente na circulação dos trens.

O próximo capítulo apresenta o algoritmo de distribuição de vagões.

Page 33: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 3

Algoritmo de Distribuição de Vagões

visto que, a distribuição e alocação de vagões está envolvida diretamente com a circulação dostrens na ferrovia. Os trens que circulam tem seus horários de partida e chegada em cada estaçãopreviamente definidos, isto requer que o planejamento de distribuição e alocação de vagões estejadefinido o mais rápido possivel, atrasos

3.1 Introdução

Esse capítulo tem o propósito de apresentar o algoritmo de distribuição de vagões vazios e umavisão geral de sua utilização em um sistema ferroviário. Este algoritmo define os destinos dos vagõesdisponíveis com o objetivo de atender as demandas de transporte. Uma importante contribuição doalgoritmo proposto é que, além de considerar ferovias que utilizam grade de trens, também considerarestrições operacionais e resolve o problema no nível operacional. Os resultados do algoritmo dedistribuição são as entradas para o algoritmo de alocação de vagões.

3.2 Descrição do Algoritmo

Centros de distribuição de vagões planejam a movimentação de vagões nas ferrovias. Neste planoos distribuidores decidem o destino dos vagões que estão disponíveis levando em consideração aprioridade das demandas de transporte e os trens que estão disponíveis para transportar os vagões.

Algoritmos que auxiliem o planejamento e à tomada de decisão, como os descritos no capítuloanterior, precisam utilizar critérios que expressem a realidade do processo operacional ferroviáriopara produzir planejamentos de distribuição que atendam da melhor forma possível os objetivos daferrovia.

13

Page 34: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

14 Algoritmo de Distribuição de Vagões

Conforme explicado no capítulo anterior, obter uma solução para o problema de distribuição devagões consiste em determinar os destinos de todos os vagões vazios da ferrovia de maneira que asrestrições e prioridades das demandas sejam respeitadas e o custo de movimentação seja mínimo.

A principal decisão envolvida nesse processo é a de determinar qual demanda o vagão deveráatender, isto é, qual demanda deverá receber um ou mais vagões levando-se em consideração quenormalmente existem várias demandas que necessitam de vagões semelhantes no mesmo periodo detempo.

As decisões de planejamento de distribuição determinam a qualidade de uma solução. Uma es-tratégia para auxiliar a tomada de decisão de distribuição deve prover resultados rapidamente, poiseste é um critério fundamental para o planejamento em tempo real.

Na prática, o planejamento envolve objetivos conflitantes como minimizar os custos da movimen-tação de vagões e maximizar o atendimento a demanda. Objetivos conflitantes significam que deveexistir um compromisso entre eles para definir a qualidade do planejamento.

Um objetivo importante para avaliar um planejamento é custo de movimentação de vagões. Custoé uma grandeza de grande importância prática e impacta diretamente os lucros. Custos com a movi-mentação de vagões representam um dos maiores gastos de uma ferrovia.

O algoritmo proposto neste capítulo é decorrente da formulação de um problema de transporteclássico para fazer o plano de distribuição de vagões em tempo real. O algoritmo fornece o destinodos vagões que estão disponíveis na ferrovia tendo em vista a demanda de tranporte.

O algoritmo considera que, para que um vagão seja enviado para atender uma determinada de-manda, deva existir uma rota entre o pátio em que o vagão se encontra e o pátio para onde o vagãoserá destinado. Para isto são considerados as rotas de todos os trens que constam na grade de trens,ao contrário de Narisetty et al.(2008), que não leva em consideração a programação horária dos trens.

Um plano de distribuição que não considera a grade de trens pode ser inaplicável em um sistemaferroviário real, pois as decisões de movimentar um vagão entre um pátio e outro é inviável devidoa inexistência de trens. Para que os resultados de um algoritmo de distribuição sejam úteis deve-seconsiderar a viabilidade e existência de rotas entre as origens e destinos dos vagões vazios.

O algoritmo considera também os prazos das demandas de transporte. O prazo de uma demandade transporte pd é o intervalo de tempo em que o vagão deve ser enviado para a demanda d. Autilização deste intervalo é muito útil em situações reais, pois muitas vezes o pátio de determinadademanda pode estar muito cheio o que impossibilita que os vagões sejam entregues muito antes doprazo, ou em outras situações, a demanda tem um prazo máximo para que o vagão seja carregado, casocontrário, não precisa mais do mesmo. Este intervalo é definido por um instante de tempo mínimo emáximo em que o vagão pode ser entregue a demanda. A equação e figura abaixo representam estesvalores ao longo do tempo. Para isto, considere:

Page 35: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

3.2 Descrição do Algoritmo 15

tdmin : instante mínimo de tempo para que os vagões possam ser entregues a demanda dtdmax : instante máximo de tempo para que os vagões possam ser entregues a demanda dO prazo para que um vagão possa ser entregue para a demanda d é dado por

tdmin ≤ pd ≤ tdmax (3.1)

Um outro aspecto importante do algoritmo é a consideração de tipos de vagões preferenciais paraatender uma determinada demanda de transporte. Em geral, uma demanda pode ser atendida pordiferentes tipos de vagões, mas preferencialmente por um tipo particular. No modelo, o mecanismode escolha do tipo de vagão para atender a uma demanda, considera a proximidade da data do iníciodo planejamento com o prazo da demanda de transporte.

Por exemplo, se existe uma demanda que precisa de vagões para hoje, eu posso atendê-la comqualquer tipo de vagão que seja compatível com o tipo de produto a ser transportado. Caso a demandaseja para amanhã ou uma data posterior, deverá ser atendida pelo tipo de vagão preferencial.

Esta restrição é importante, visto que, as demandas cujo prazo está para terminar precisam seratendidas prontamente e pode-se não ter a liberdade de escolha do tipo de vagão, pois muitas vezesnão existe o vagão preferencial disponível, mas existe outro tipo apropriado para transportar o pro-duto.

A partir destas considerações pode-se formular o problema de distribuição como um problema detransporte clássico e assim obter um plano de distribuição de vagões em tempo real.

Os principais passos do algoritmo para a solução do problema são os seguintes:

• criação de nós de oferta : nós oferta são criados levando-se em consideração o instante em queo vagão ficou disponível, o tipo do vagão e o local. O conjunto de nós de oferta é denotado porO.

• criação de nós de demanda : nós demanda são criados levando-se em consideração o pedido decada cliente. Para cada pedido cria-se um nó de demanda. O conjunto de nós de demanda édenotado por D.

• criação de nós artificiais: considerando que os recursos (vagões) para atender as demandas de

Page 36: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

16 Algoritmo de Distribuição de Vagões

transporte são em geral limitados e que na maioria das vezes não são suficientes para atendertoda a demanda, o primeiro passo do algoritmo cria nós artificiais. Dois nós artificias sãocriados, um referente à oferta e outro referente à demanda de vagões. Estes nós garantemque para toda demanda existe uma oferta, mesmo que artificial. De maneira equivalente, paratoda oferta existe uma demanda. A criação de nós artificiais garante que o modelo pode serresolvido, ou seja, sempre fornece uma solução factível.

• criação de arcos: este passo considera as restrições descritas anteriormente, isto é, para todoo ∈ O cria-se um arco conectando-o a um nó d ∈ D, se e apenas se:

– os vagões de o se adequam aos critérios de escolha do tipo preferencial da demanda d;

– existe uma rota que possa levar os vagões entre o pátio de origem o e o pátio de destinod. Neste caso utiliza-se a programação horária dos trens para verificar se existe uma rotaentre o e d;

– os vagões em o podem alcançar o destino d dentro do prazo previsto pd, pd ∈ [tdmin, tdmax].

O custo de cada arco é proporcional à distância entre a origem o e o destino d. Este custo é ocusto de movimentação de um vagão através do arco correspondente.

O modelo matemático para o problema de distribuição pode ser visto como um modelo de fluxoem redes tempo-espaço (Ahuja et al.,1993). O modelo tem a estrutura de um grafo, com vantagenssignificantes em relação aos modelos de programação linear tradicionais, pois possui algoritmos es-pecializados e rápidos. A figura 3.1 mostra o grafo do modelo.

Fig. 3.1: Rede de distribuição de vagões vazios

Page 37: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

3.2 Descrição do Algoritmo 17

Considerando um horizonte de planejamento de T dias, cria-se nós para representar cada pátio emcada dia. Para cada trecho do percurso de um trem cria-se um arco, cada um deles tem uma capacidadecorrespondente à capacidade máxima do trem. Arcos também são criados para representar a demandaque fica de um dia para o outro no mesmo pátio. Os arcos da rede são criados de acordo com os trensda grade e a demanda retida em um pátio de um dia para o outro. A Figura 3.1 mostra o graforesultante. Mais especificamente, o modelo matemático é o seguinte.

Parâmetros

O : conjunto de nós oferta(∀origem, tipo, instante)no : número de vagões disponíveis em o, ∀o ∈ O.

to : tipo de vagão disponível em o, ∀o ∈ O.

io : instante em que os vagões do grupo o estão disponíveis, ∀o ∈ O.

D : conjunto de nós demanda(∀destino, tipo, instante)nd : número de vagões necessários para atender a demanda d, ∀d ∈ D.

pd : prazo para atender a demanda d, ∀d ∈ Dtd : tipo de vagão preferencial da demanda d, ∀d ∈ D.

ad : conjunto de tipos de vagões alternativos para atender a demanda d, ∀d ∈ D.

tod : tempo necessário para movimentar os vagões da origem o para o destino d, ∀o ∈ O, ∀d ∈ D.

iinicial : instante inicial do horizonte de planejamento de distribuição.

ifinal : instante final do horizonte de planejamento de distribuição.

tdmin : instante de tempo mínimo para que um vagão possa atender uma demanda d, ∀d ∈ D.

tdmax : instante de tempo máximo para que um vagão possa atender uma demanda d, ∀d ∈ D.

Custo

ζod : custo de transporte por vagão para movimentar vagões da origem o para o destino d, ∀o ∈ O,∀d ∈ D.

Variáveis de Decisão

xod : número de vagões de o para d, ∀o ∈ O, ∀d ∈ Dyd : demanda não atendida, ∀d ∈ Dzo : oferta não alocada, ∀o ∈ O

Para definir as restrições do modelo, considere o seguinte.

Od : {o ∈ O | [io+ tod ≤ tdmax] ∧ [io+ tod ≥ tdmin] ∧ [(tdmax− iinicial ≤ 24 ∧ to = td)

Page 38: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

18 Algoritmo de Distribuição de Vagões

∨ (tdmax − iinicial > 24 ∧ to ∈ ad)], ∀d ∈ D}.

Este é o conjunto de todas as ofertas o ∈ O que podem atender a demanda d. Se existir um arcode o para d, então o ∈ Od. Neste caso, o pode atender a demanda d, consideradas todas as restriçõesde tipo preferencial, instante de tempo mínimo e máximo para entrega do vagão e existência de rotas.Duas situações são possíveis: ou a demanda d é atendida pelos vagões em o ∈ Od, ou a demanda dpermanece não atendida.

Considere agora

Do : {d ∈ D | [io+ tod ≤ tdmax] ∧ [io+ tod ≥ tdmin] ∧ [(tdmax− iinicial ≤ 24 ∧ to = td)

∨ (tdmax − iinicial > 24 ∧ to ∈ ad)], ∀o ∈ O}.

Este é o conjunto de todas as demandas d ∈ D que podem ser atendidas pela oferta de vagões emo. Se existir um arco de o para d, então d ∈ Do. Neste caso, d pode ser atendido por o, consideradastodas as restrições. Assim, ou a oferta de vagões em o atende a demanda d ∈ Do, ou permanece nãoutilizada.

A partir destas considerações as restrições do modelo podem ser escritas como:

Restrições

∑o∈Od

xod + yd = nd ∀d ∈ D

∑d∈Do

xod + zo = no ∀o ∈ O

xod ≥ 0 ∀o ∈ O, ∀d ∈ D

yd ≥ 0 ∀d ∈ D

zo ≥ 0 ∀o ∈ O

Função ObjetivoO objetivo é minimizar o custo de transporte, isto é:

∑o∈O

∑d∈D

ζodxod

A figura 3.2 mostra as principais entradas e saídas do algoritmo de distribuição de vagões.

Page 39: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

3.3 Exemplo 19

Fig. 3.2: Visão Geral do Algoritmo de Distribuição e Alocação de Vagões

3.3 Exemplo

Esta seção apresenta um exemplo simples para ilustrar a utilização do modelo e do algoritmo dedistribuição de vagões vazios na resolução do problema proposto no capítulo 2, seção 2.2, figura2.2.

O problema resolvido nesta seção espelha uma situação similar às encontradas em ferrovias queutilizam grade de trens. Para comparamos os resultados obtidos pelo algoritmo de distribuição tam-bém utilizamos o algoritmo de distribuição proposto por Narisetty et al. (2008).

O problema considerado para este pequeno estudo representa uma ferrovia com seis estações. Emtodas estações podem ser realizadas atividades de anexação e desanexação de vagões. Os detalhes doproblema como demandas de transporte, oferta de vagões e grade de trens podem ser vistos na figura2.2.

O modelo de Narisetty et al. (2008) não considera a grade de trens, diferente do modelo propostoneste capítulo.

O modelo de distribuição de vagões vazios para o problema 2.2 é o seguinte:

/* Função Objetivo */

min: +10 X(2,5) +8 X(2,6) +8.35 X(1,7) +7.15 X(3,7)

+1e+09 Y(5) +1e+09 Y(6) +1e+09 Y(7)

+1e+09 Z(1) +1e+09 Z(2) +1e+09 Z(3) +1e+09 Z(4)

/* Restrições */

-X(1,7) -Z(1) = -30

-X(2,5) -X(2,6) -Z(2) = -20

-X(3,7) -Z(3) = -30

-Z(4) = -20

+X(2,5) +Y(5) = 10

Page 40: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

20 Algoritmo de Distribuição de Vagões

+X(2,6) +Y(6) = 7

+X(1,7) +X(3,7) +Y(7) = 15

-Y(5) -Y(6) -Y(7) -Artificial = -32

+Z(1) +Z(2) +Z(3) +Z(4) +Artificial = 100

/* Notação */

X(i,j): quantidade de vagões da origem i para o destino j

Y(j) : quantidade de vagões que faltaram para atender o destino j

Z(i) : quantidade de vagões que sobraram na origem i

/* Representação */

Indice Estação Quantidade Tipo

1 TOM -30 1

2 TOM -20 2

3 ZPT -30 1

4 ZPT -20 2

5 ZAR 10 2

6 ZAP 7 2

7 ZZX 15 1

O modelo de Narisetty et al. (2008) para o mesmo problema utilizando a mesma representação enotação é:

/* Função Objetivo */

min: +10 X(2,5) +8.8 X(4,5) +8 X(2,6)

+6.8 X(4,6) +8.35 X(1,7) +7.15 X(3,7)

+1e+09 Y(5) +1e+09 Y(6) +1e+09 Y(7)

+1e+09 Z(1) +1e+09 Z(2) +1e+09 Z(3) +1e+09 Z(4)

/* Restrições */

-X(1,7) -Z(1) = -30

-X(2,5) -X(2,6) -Z(2) = -20

-X(3,7) -Z(3) = -30

-X(4,5) -X(4,6) -Z(4) = -20

+X(2,5) +X(4,5) +Y(5) = 10

+X(2,6) +X(4,6) +Y(6) = 7

Page 41: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

3.3 Exemplo 21

+X(1,7) +X(3,7) +Y(7) = 15

-Y(5) -Y(6) -Y(7) -Artificial = -32

+Z(1) +Z(2) +Z(3) +Z(4) +Artificial = 100

A diferença entre estes dois modelos está na inexistência dos arcos X(4, 5) e X(4, 6) no primeiromodelo. Estes arcos foram excluídos devido a inexistência de rotas entre as estações ZPT-ZAR eZPT-ZAP.

Para verificar a existência ou não de rotas entre duas estações um grafo auxiliar foi criado. Estagrafo é similar ao grafo gerado pela rede tempo-espaço do modelo multicomodidade descrito nocapítulo 2, seção 2.4, figura 2.3.

O grafo representa as rotas dos trens da grade de trens. Após a criação desta grafo utiliza-se umalgoritmo para verificar a existência de rotas entre todas as estações com oferta e demanda de vagõesvazios. O modelo de distribuição de vagões utiliza esta informação para decidir se existe ou não umarco conectando o nó de oferta ao nó de destino.

Os modelos descritos anteriormente foram resolvidos e solução encontrada para o problema emquestão pelo modelo de Narisetty et al. (2008) tem um custo de 242. A solução obtida foi a seguinte:

• Par O-D: ZPT-ZAR, Vagão do tipo: 2 , Quantidade: 10

• Par O-D: ZPT-ZZX, Vagão do tipo: 1 , Quantidade: 15

• Par O-D: ZPT-ZAP, Vagão do tipo: 2 , Quantidade: 7

Para o mesmo exemplo, o modelo proposto neste trabalho obteve, com custo 263, a seguintesolução:

• Par O-D: TOM-ZAR, Vagão do tipo: 2 , Quantidade: 10

• Par O-D: ZPT-ZZX, Vagão do tipo: 1 , Quantidade: 15

• Par O-D: TOM-ZAP, Vagão do tipo: 2 , Quantidade: 7

Apesar solução encontrada por Narisetty ter um custo menor (pois o custo de transporte de vagõesentre o par ZPT-ZAR e ZPT-ZAP é menor que o custo de transporte entre o par TOM-ZAR e TOM-ZAP), pode-se notar que esta solução não é viável operacionalmente, visto que não existem rotas paramovimentar vagões vazios disponíveis em ZPT e atender a demanda em ZAR e em ZAP.

A solução obtida pelo modelo proposto utiliza um algoritmo de busca que permite somente amovimentação de vagões entre pares oferta-demanda se existirem rotas para a movimentação devagões vazios de seus pátios de origem aos pátios onde existem demandas correspondentes.

Page 42: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

22 Algoritmo de Distribuição de Vagões

A partir dos resultados obtidos neste pequeno exemplo pode-se notar a relevância de se consideraras rotas no planejamento de distribuição de uma ferrovia que utiliza a grade de trens, um plano quenão considera as rotas possíveis de distribuição se torna impraticável operacionalmente.

3.4 Resumo

Neste capítulo foi apresentado um modelo e um algoritmo para distribuição de vagões vazios. Oresultado do algoritmo é a determinação da quantidade e tipos de vagões que são movidos entre ospares origem-destino da ferrovia. O objetivo foi obter uma solução com menor custo de transporte. Omodelo considerou várias restrições práticas. O plano obtido pelo modelo é factível, pois consideraas rotas dos trens da grade de trens.

O capítulo 4 propõe um algoritmo de distribuição que considera a imprecisão na quantidade devagões da demanda de transporte. A lógica nebulosa foi utilizada para modelar esta imprecisão.

Page 43: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 4

Algoritmo de Distribuição de VagõesNebuloso

Esse capítulo apresenta o algoritmo de distribuição de vagões nebuloso. Este algoritmo utilizanúmeros nebulosos para modelar a imprecisão da quantidade de vagões requerida por determinadademanda de transporte. Por fim, um exemplo ilustrativo é apresentado.

4.1 Introdução

Ferramentas de planejamento e auxílio à tomada de decisão, como o algoritmo de distribuiçãoapresentado no capítulo anterior, precisam utilizar critérios que expressem de maneira condizente arealidade do processo operacional ferroviário para produzir planejamentos de distribuição que aten-dam da melhor forma possível os objetivos da ferrovia.

Como foi explicado no capítulo anterior, obter uma solução para o problema de distribuição devagões consiste em determinar os destinos para todos os vagões disponíveis. A solução deve consid-erar que as demandas de transporte devem ser atendidas dentro do prazo, os tipos de vagões requeridossejam respeitados, a quantidade de vagões necessários para a demanda sejam atendidos ao máximo,além disto, os custos referentes a movimentação dos vagões devem ser mínimos.

O algoritmo de distribuição proposto no capítulo anterior considera várias informações estratég-icas para obter uma solução de qualidade. Dentre estas informações as principais são: prioridade dedemandas, lista de vagões preferencias, grade de trens, custos de transporte. Apesar deste algoritmoobter uma solução de grande relevância prática, existem alguns eventos que não foram consideradosno algoritmo. Frequentemente, as demandas de transporte que estavam previstas são alteradas ouaté mesmo canceladas por diferentes motivos como: liberação de nota fiscal, quebra de máquinase equipamentos de carregamento e descarregamento, diminuição de vendas previstas. Estes acon-

23

Page 44: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

24 Algoritmo de Distribuição de Vagões Nebuloso

Fig. 4.1: Algoritmo de Distribuição de Vagões Nebuloso

tecimentos influenciam diretamente as decisões diárias do planejamento de distribuição e não forammodelados no algoritmo anterior.

Neste capítulo é apresentado um algoritmo de distribuição de vagões que utiliza a teoria dos con-juntos nebulosos para modelar e tratar da incerteza na quantidade de vagões requerida pelas demandasde transporte da ferrovia. As entradas e saídas do algoritmo de distribuição nebuloso são as mesmasdo algoritmo de distribuição proposto no capítulo anterior. O objetivo deste algoritmo é obter umasolução mais próxima do real, considerando todos os eventos inesperados que podem acontecer naferrovia e que tornam as demandas de transporte tão incertas.

A figura 4.1 apresenta uma visão geral das entradas e saídas do algoritmo de distribuição neb-ubuloso no ambiente ferroviário. Como pode ser notado, as entradas e saídas deste algoritmo dedistribuição nebuloso são as mesmas do algoritmo de distribuição proposto no capítulo anterior. Oalgoritmo pode ser dividido em 3 etapas principais, veja na figura 4.1.

A próxima seção descreve detalhadamente o modelo e o algoritmo de distribuição de vagõesvazios nebuloso.

4.2 Descrição do Algoritmo

O algoritmo de distribuição de vagões nebuloso é bem similar ao proposto no capítulo anterior. Adiferença é que o algoritmo nebuloso considera a imprecisão na demanda de transporte. A teoria dosconjuntos nebulosos foi utilizada para modelar esta imprecisão.

A formulação do algoritmo de distribuição de vagões nebuloso foi inspirada no trabalho de Chanase Kuchta (1998). Chanas e Kuchta (1998) utilizam números nebulosos do tipo L-R para modelarofertas e demandas em problemas de transporte de maneira geral. Segundo Dubois e Prade (1978),um número nebulodo A do tipo L-R é denotado por A = (a, a, αA, βA)L−R e tem a seguinte funçãode pertinência:

Page 45: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.2 Descrição do Algoritmo 25

µA(t) =

L(a−tαA

)se t ≤ a

1 se t ∈ [a, a]

R(t−aβA

)se t > a

(4.1)

onde a, a, αA, βA são números reais e não negativos e L, R são funções de pertinência.F é uma função de pertinência que satisfaz as seguintes condições:

• F é uma função contínua no intervalo [0,∞);

• F (0) = 1;

• F diminui no domínio dos números positivos.

As definições acima foram utilizadas como inspiração para modelarmos a função de pertinênciaque representa a demanda no problema em questão.

O problema de distribuição nebuloso tem a mesma formulação do capítulo anterior, porém arestrição de conservação de fluxo para os nós de demanda foi alterada. No problema do capítuloanterior nd é o número de vagões necessários para atender a demanda d, ∀d ∈ D. Neste capítulotemos o número nebuloso nd para representar a imprecisão que existe no número de vagões requeridopela demanda d. As variáveis de decisão yd não existem neste problema, visto que, a formulação dasdemandas como números nebulosos consideram a possível falta de vagões da demanda na própriamodelagem. A restrição é então reescrita como se segue:

min∑o∈O

∑d∈D

ζodxod (4.2)

∑o∈Od

xod ∼= nd ∀d ∈ D

∑d∈Do

xod + zo = no ∀o ∈ O

xod ≥ 0 ∀o ∈ O ∀d ∈ D

zo ≥ 0 ∀o ∈ O

onde o número nebuloso nd é um número triangular e têm a seguinte função de pertinência:

µnd(t) =

1−

(nd−tαnd

)se t < nd

1−(t−ndβnd

)se t > nd

0 caso contrário.

Page 46: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

26 Algoritmo de Distribuição de Vagões Nebuloso

considerando

αnd = max

{0, nd ∗ f ∗

pd − iinicialifinal − iinicial

}

βnd = max

{0, nd ∗ f ∗

(1− pd − iinicial

ifinal − iinicial

)}o paramêtro f representa a imprecisão que existe com relação a demanda, f ∈ [0, 1]. Caso f = 1,

significa que µnd(t) 6= 0 no intervalo [0, 2nd], neste caso o cenário é altamente impreciso. Casof = 0, significa que µnd(t) = 1, se t = nd e µnd(t) = 0, caso contrário, neste caso o modelo dedistribuição de vagões nebuloso é equivalente ao modelo de distribuição clássico.

A definição da função de pertinência µnd(t) descrita acima considera que as chances de acon-tecerem imprevistos para demandas de transporte com prazos para acabar são menores, portanto, achance desta demanda precisar de menos vagões que o requerido é muito pequena. Neste caso, afunção de pertinência tem um limite mínimo de vagões muito próximo a quantidade real requerida.Por outro lado, as demandas de transporte que estão com prazos para um horizonte de tempo distantetêm enormes chances de serem alteradas, neste caso, a imprecisão em torno da quantidade é bemgrande e a função de pertinência leva em consideração que esta quantidade pode ser bem menor quea requerida originalmente.

Este modelo considera os custos de tranporte ζod, ∀o ∈ O, ∀d ∈ D e o número de vagões de ofertano, ∀o ∈ O, continuam sendo números clássicos.

O símbolo x é o vetor solução. Os elementos de x corresondem as variáveis de decisão, x = [xod],∀o ∈ O, ∀d ∈ D.

A formulação nebulosa da demanda de transporte implica que o objetivo também é expresso comoum número nebuloso. O número nebuloso G que representa a função objetivo é denotado por:

G = (−∞, c0, 0, βG)LG−RG

e tem a seguinte função de pertinência

µG(t) =

1 se t 6 c0

1−(t−c0βG

)se c0 < t < c0 + βG

0 caso contrário.

onde

c0 =∑o∈O

∑d∈D

ζodxod

Page 47: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.2 Descrição do Algoritmo 27

βG = c0 ∗ f.

A definição abaixo mostra como satisfazer as restrições e a função objetivo do problema nebulosoproposto.

Definição 1: Seja x uma solução arbitrária.

(a) O valor

µC(x) = µnd(x)

(∑o∈O

xod,∀d ∈ D)

é chamado de grau de satisfação das restrições do problema nebuloso para x.

(b) O valor

µG(x) = µG(c(x)) = µG

(∑o∈O

∑d∈D

ζodxod

)é chamado de grau de satisfação da função objetivo do problema nebuloso para x.

De acordo com Bellmann e Zadeh (1970) a solução ótima para o problema é também chamada desolução de maximização. Esta solução atende simultaneamente com grau máximo as restrições e oobjetivo do problema.

Definição 2: A solução de maximização x é tal que a função de pertinência µD(x) = min{µC(x), µG(x)}atinge valor máximo. Se o valor máximo é zero, diz-se que o problema é infactível.

De acordo com a Definição 2, resolver o problema nebuloso é equivalente a resolver o seguinteproblema:

min{µC(x), µG(x)} → max

Resolver este problema é equivalente a resolver o seguinte:

λ→ max (4.3)

µG(c(x)) ≥ λ

µnd(x)

(∑o∈O

xod

)≥ λ ∀d ∈ D

∑d∈Do

xod + zo = no ∀o ∈ O

xod > 0 ∀o ∈ O, ∀d ∈ D

Page 48: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

28 Algoritmo de Distribuição de Vagões Nebuloso

zo ≥ 0 ∀o ∈ O

λ > 0.

Assim temos a seguinte definição:

Definição 3: Considere o número nebuloso A. O λ-corte de A, é denotado por Aλ, é o conjunto

dos números reais, tal que o valor da função de pertinência de A é tal que a função de pertinência

de A não é menor que λ,

Aλ = {t ∈ < | µA(t) ≥ λ}.

É fácil notar que a partir das definições dos números nebulosos nd, ∀d ∈ D, dos λ-cortes nλd temosos seguintes intervalos:

nλd = [a− L−1(λ)αnd , a+R−1(λ)βnd ].

O λ-corte da função objetivo G é o conjunto

Gλ = (−∞, c0 +R−1G (λ)βG].

Assim podemos reescrever o problema da seguinte forma:

λ→ max (4.4)

c(x) ∈ Gλ∑o∈O

xod ∈ nλd ∀d ∈ D

∑d∈Do

xod + zo = no ∀o ∈ O

xod ≥ 0 ∀o ∈ O, ∀d ∈ D

zo ≥ 0 ∀o ∈ O

λ > 0.

O problema acima não é um problema de transporte clássico, por isto não é possível utilizar osmétodos tradicionais de resolução de problemas de transporte. Por isto, este problema é convertido emum problema auxiliar para poder ser resolvido pelos métodos tradicionais. Este problema auxiliar éum problema de transporte intervalar e pode ser facilmente convertido em um problema de transporte

Page 49: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.2 Descrição do Algoritmo 29

clássico para ser resolvido utilizando os métodos tradicionais.

A solução do problema auxiliar permite encontrar a solução para o problema nebuloso original.Tendo definido um λ ∈ (0, 1] fixo, o problema auxiliar tem a seguinte forma:

c(x)→ min (4.5)∑o∈O

xod ∈ nλd ∀d ∈ D

∑d∈Do

xod + zo = no ∀o ∈ O

xod ≥ 0 ∀o ∈ O, ∀d ∈ D

zo ≥ 0 ∀o ∈ O.

Resolver este problema para um λ fixo nos permite encontrar a solução para o problema nebulosooriginal e saber se o problema é factível para este valor de λ. Para checar se o problema 4.5 é factívelé necessário verificar se o valor da função objetivo deste problema satisfaz a primeira restrição doproblema 4.4. É necessário descobrir o valor máximo de λ para o qual o problema 4.4 é factível e asolução correspondente para este problema.

Os limites dos intervalos de nλd , ∀d ∈ D, do problema 4.5 podem não ser números inteiros.Isto significa que a transição da solução para um problema de transporte clássico com demandas nãointeiras não garante a obtenção de uma solução inteira. Entretanto, pode-se substituir o problema 4.5por um outro problema equivalente, tendo como limites dos intervalos apenas números inteiros, semalterar a factibilidade e a solução ótima. Na definição deste problema será utilizado a Definição 4.

Definição 4: Considere A um intervalo arbitrário. O símbolo [λ] denota o maior intervalo

possível com limites inteiros e contido em A, [A] = [a, b], onde:

a = min{t | t ∈ A, t inteiro},

b = max{t | t ∈ A, t inteiro}.

O problema abaixo pode então substituir o problema 4.5 da seguinte forma:

c(x)→ min (4.6)∑o∈O

xod ∈ [nλd ] ∀d ∈ D

Page 50: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

30 Algoritmo de Distribuição de Vagões Nebuloso

∑d∈Do

xod + zo = no ∀o ∈ O

xod ≥ 0 ∀o ∈ O, ∀d ∈ D

zo ≥ 0 ∀o ∈ O.

Os conjuntos de soluções factíveis e ótimas para os problemas 4.5 e 4.6 são idênticos, devidoas condições de integralidade impostas a x. Para algum λ fixo pode-se resolver o problema 4.4convertendo-o em um problema de transporte clássico com valores de ofertas e demandas inteiros.

Resolvendo o problema 4.6 como um problema de transporte paramétrico com o parâmetro λ,pode-se resolver o problema original 4.2 também. Entretanto, os coeficientes do problema dependemdo parâmetro λ que é não-linear, o que aumenta a complexidade do problema.

Para resolver o problema de transporte paramétrico descrito acima, utiliza-se o método propostopor Chanas e Kuchta (1998). Este algoritmo considera a cada passo um intervalo [λ1, λ2], tal que oproblema 4.4 é factível para λ = λ1 e infactível para λ = λ2. Caso está consição não seja verdadeira,dividi-se este intervalo, quando o problema 4.6 para λ = λ1 for uma extensão mínima para oproblema 4.6 para λ = λ2 o algoritmo termina.

Definição 5: O problema 4.6 para λ = λ1 é uma extensão mínima do problema 4.6 para

λ = λ2 quando o problema 4.6 para λ = λ1 é idêntico ao problema 4.6 para λ = λ∗ onde:

λ∗ = maxd∈D, t/∈nλd µnd(t)

e t é um número inteiro.

Na próxima seção mostramos um exemplo da utilização do algoritmo de distribuição de vagõesnebuloso.

4.3 Exemplo

Esta seção apresenta um exemplo simples para ilustrar a utilização do modelo e do algoritmo dedistribuição de vagões vazios nebuloso na resolução do problema do capítulo 2, seção 2.2, figura2.2.

Para este problema as funções de pertinência para as demandas e função objetivo são mostradasnas figuras abaixo.

O problema nebuloso para o exemplo dado é o seguinte:

/* Função Objetivo */

Page 51: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.3 Exemplo 31

Fig. 4.2: Funções de pertinência para as demandas do problema 2.2

Fig. 4.3: Função de pertinência para a função objetivo do problema 2.2

Page 52: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

32 Algoritmo de Distribuição de Vagões Nebuloso

min: +10 X(2,5) +8 X(2,6) +8.35 X(1,7) +7.15 X(3,7)

/* Restrições */

-X(1,7) = -30

-X(2,5) -X(2,6) = -20

-X(3,7) = -30

+X(2,5) = (10, 10, 1.25, 3.75)L-L

+X(2,6) = ( 7, 7, 1.75, 1.75)L-L

+X(1,7) +X(3,7) = (15, 15, 3.75, 7.75)L-L

/* Notação */

X(i,j): quantidade de vagões da origem i para o destino j

/* Representação */

Indice Estação Quantidade Tipo

1 TOM -30 1

2 TOM -20 2

3 ZPT -30 1

4 ZPT -20 2

5 ZAR 10 2

6 ZAP 7 2

7 ZZX 15 1

O objetivo é G = (0, 215.25, 0, 107.62)L−L onde L é uma função linear.

Os α-cortes das demandas nebulosas e da função objetivo utilizados nestes exemplo foram:

10λ2 = [max(0, 11.25(λ− 1)), max(0, 13.75(1− λ))]

7λ2 = [max(0, 8.75(λ− 1)), max(0, 8.75(1− λ))]

15λ1 = [max(0, 18.75(λ− 1)), max(0, 18.75(1− λ))]

Gλ = [0, max(0, 322.87(1− λ))].

A diferença entre estes dois modelos está na inexistência dos arcos X(4, 5) e X(4, 6) no primeiromodelo. Estes arcos foram excluídos devido a inexistência de rotas entre as estações ZPT-ZAR eZPT-ZAP.

O modelos descrito foi resolvidos e a solução encontrada para o problema tem um custo de 208.A solução obtida foi a seguinte:

• Par O-D: TOM-ZAR, Vagão do tipo: 2 , Quantidade: 13

Page 53: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.4 Experimentos Computacionais 33

• Par O-D: ZPT-ZZX, Vagão do tipo: 1 , Quantidade: 13

• Par O-D: TOM-ZAP, Vagão do tipo: 2 , Quantidade: 6

A solução obtida pelo modelo proposto reflete a imprecisão que existe nas demandas. Pelosresultados fica fácil notar que as demandas que estão para um horizonte de tempo mais distantereceberam uma quantidade menor de vagões do que a demanda de transporte que é tem prazo paraum dia próximo ao atual. Este resultado é importante, pois a necessidade de vagões para um tempomais distante sofre maiores variações, por isto, é razoável distribuir um pouco menos de vagões doque o necessário. Além disto, estas demandas, caso sejam confirmadas podem receber vagões paraser atendidas mais próximas ao prazo solicitado.

A partir dos resultados obtidos neste pequeno exemplo pode-se notar a relevância de se consideraras rotas no planejamento de distribuição de uma ferrovia que utiliza a grade de trens, um plano quenão considera as rotas possíveis de distribuição se torna impraticável operacionalmente.

Um importante aspecto do algoritmo de distribuição nebuloso em relação ao clássico é que eleobteve uma solução com custo de movimentação menor. Isto se deve, ao fato do algortmo nebulosoatravés da modelagem feita para definição da demanda de transporte evitar movimentar vagões queestão com prazos longos, isto pode evitar que movimentações desnecessárias ocorram. Por exemplo,uma demanda para daqui 7 dias, você distribui os vagões, mas existe grandes possibilidade de ocor-rerem imprevistos e ela ser cancelada, decorrendo em gastos com a movimentação desnecessários.

Na próxima seção são mostrados alguns experimentos realizados para validar a utilização doalgoritmo nebuloso de distribuição de vagões.

4.4 Experimentos Computacionais

Esta seção apresenta e discute os resultados obtidos pelo algoritmo de distribuição de vagõesnebuloso. Os resultados obtidos são comparados algoritmo de distribuição de vagões do capítulo 3.

As instâncias utilizadas neste experimento foram inspiradas em situações reais que acontecem naferrovia. Com o intuito de analisar o algoritmo nebuloso foram feitos 3 experimentos. Cada exper-imento realizado tem o objetivo de avaliar o comportamento do algoritmo com relação a diferentessituações. Os experimentos realizados foram:

• Experimento 1: Confiabilidade dos clientes

• Experimento 2: Previsibilidade no horizonte de tempo

• Experimento 3: Instância inspirada em uma grade real

Os detalhes de cada experimento realizado são descritos nas próximas subseções.

Page 54: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

34 Algoritmo de Distribuição de Vagões Nebuloso

4.4.1 Experimento 1: Confiabilidade dos clientes

Este experimento foi realizado com o objetivo de ilustrar a aplicação do algoritmo de distribuiçãonebulosa em situações em que a demanda de transporte tem uma confiabilidade incerta. No ex-perimento foram considerados que os pedidos são classificados de acordo com o confiabilidade dademanda como pouco confiável ou muito confiável.

Na prática, existe muita imprecisão nas demandas de uma ferrovia. Geralmente, existem clientesque fazem o pedido de uma quantidade de vagões superior ao que realmente necessitam, isto é feito,para manter uma reserva de vagões em seus terminais de carregamento e evitar que em períodos emque a disponibilidade de vagões é menor que a demanda, o escoamento sua produção seja prejudi-cada. Os distribuidores de vagões conhecem as particularidades de cada cliente e consideram estasinformações para fazer a distribuição.

Este experimento mostra como utilizar o algoritmo de distribuição nebuloso para resolver o prob-lema considerando a confiabilidade dos clientes, para isto, é necessário apenas que se utilizem asfunções de pertinência conforme descritas abaixo.

A função de pertinência da demanda d considerada pouco confiável é dada pela equação 4.1,onde a = nd · 0.7, a = nd, αA = nd · 0.2, βA = nd · 0.1 é

µPOUCOCONFIAV EL(t) =

L(nd·0.7−tnd·0.2

)se t ≤ nd · 0.7

1 se t ∈ [nd · 0.7, nd]R(t−ndnd·0.1

)se t > nd

A função de pertinência da demanda d considerada muito confiável é dada pela equação 4.1, ondea = nd, a = nd, αA = nd · 0.2, βA = nd · 0.2 é

µMUITOCONFIAV EL(t) =

L(nd−tnd·0.2

)se t ≤ nd

1 se t ∈ [nd, nd]

R(t−ndnd·0.2

)se t > nd

Neste experimento foram resolvidos dois problemas que são mostrados nas figuras 4.5 (Problema4-1) e 4.6 (Problema 4-2). As funções de pertinência para as demandas dos dois problemas são asmesmas e estão ilustradas na figura 4.4.

Os resultados obtidos pelo algoritmo de distribuição nebuloso são comparados com os resultadosdo algoritmo de distribuição proposto no capítulo 3.

A partir da análise dos resultados da tabela 4.1 pode-se verificar que o algoritmo de distribuiçãonebuloso obteve uma solução de menor custo. Este resultado foi possível, pois o algoritmo considera

Page 55: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.4 Experimentos Computacionais 35

Fig. 4.4: Representação das funções de pertinência das demandas dos problemas 4-1 e 4-2

Fig. 4.5: Problema 4-1

a confiabilidade das demandas.

No problema 4-1 as demandas 10 ZAR e 15 ZZX são pouco confiáveis, neste caso o algoritmonebuloso encontrou uma solução de compromisso considerando a confiabilidade destas demandas eo custo de distribuição enviando menos vagões e obtendo assim um menor custo de distribuição.

A solução obtida pelo algoritmo nebuloso tem uma qualidade muito superior a do algoritmo de

Page 56: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

36 Algoritmo de Distribuição de Vagões Nebuloso

Resultados para o Problema 4-1Distribuição Distribuição Nebuloso

Custo 128.2 118.0Tempo(ms) 4 26

SMV’s geradasTOM-ZAR 10 7TOM-ZAP 7 7ZPT-ZZX 15 10

Tab. 4.1: Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuição nebulosopara o problema 4-1

distribuição clássico considerando que os vagões que deixaram de ser distribuidos não seriam utiliza-dos e iriam gerar um custo maior.

Fig. 4.6: Problema 4-2

A partir da análise dos resultados da tabela 4.3 pode-se verificar que o algoritmo de distribuiçãonebuloso obteve uma solução de maior custo. Apesar da solução do algoritmo nebuloso ter um customaior, esta solução geraria maior lucro para a ferrovia.

Analisando que haviam apenas 10 vagões disponíveis no pátio TOM que poderiam atender asdemandas 10 ZAR e 7 ZAP, ou seja, de qualquer forma uma das demandas não seria atendida. Nestecaso o algoritmo de distribuição clássico optou por atender totalmente a demanda 10 ZAR e deixar a

Page 57: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.4 Experimentos Computacionais 37

Resultados para o Problema 4-2Distribuição Distribuição Nebuloso

Custo 33.0 84.8Tempo(ms) 1 51

SMV’s geradasTOM-ZAR 10 5TOM-ZAP 0 5ZPT-ZZX 15 8

Tab. 4.2: Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuição nebulosopara o problema 4-2

demanda 7 ZAP sem receber nenhum vagão. Esta solução considerou apenas o custo de transporte,pois para mandar os vagões de TOM para ZAR é mais barato que mandar vagões TOM para ZAP.

O algoritmo nebuloso neste problema optou por distribuir 5 vagões para a demanda 10 ZAR eos outros 5 vagões para a demanda 7 ZAP. Esta resultado representa uma solução de compromisso,considerando que a demanda 10 ZAR é pouco confiável e poderia não utilizar todos os 10 vagões queforam pedidos e a demanda 7 ZAP é muito confiável e provavelmente utilizaria todos os vagões quepediu.

Neste caso o algoritmo não distribuiu considerando apenas o custo de transporte, mas a soluçãogerada apesar de ter um custo maior traz maiores ganhos pois maximizou a utilização dos vagõesconsiderando a confiabilidade das demandas.

A partir deste experimento pode-se notar que a solução obtida pelo algoritmo nebuloso tem umaqualidade muito superior a do algoritmo de distribuição clássico pois considera informações estratég-icas que o algoritmo clássico não pode tratar. Apesar do algoritmo nebuloso ser um pouco mais lento,ele ainda tem um tempo de processamento muito baixo devido as características do modelo.

4.4.2 Experimento 2: Previsibilidade no horizonte de tempo

Este experimento foi realizado com o objetivo de analisar a aplicação do algoritmo de distribuiçãonebulosa em relação aos diversos imprevistos que acontecem no dia a dia de uma ferrovia. Diaria-mente ocorrem nas ferrovias várias situações e imprevistos que impedem que o planejamento sejarealizado conforme previsto. Este experimento foi realizado para mostrar a utilização do algoritmonebuloso para tratar estas situações que não são consideradas no algoritmo de distribuição clássico.

No experimento as demandas tem uma função de pertinência que varia de acordo com seus prazosno horizonte de tempo.

A função de pertinência da demanda d é dada pela equação 4.1, onde a = nd, a = nd, αA =

Page 58: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

38 Algoritmo de Distribuição de Vagões Nebuloso

nd · 0.1 · dia , βA = nd · 0.1 · dia é

µPREV ISIBILIDADE(t) =

L(

nd−tnd·0.1·dia

)se t ≤ nd

1 se t ∈ [nd, nd]

R(

t−ndnd·0.1·dia

)se t > nd

onde dia é o dia da demanda no horizonte de tempo. Por exemplo, se o dia início do planejamentoé 12 e o prazo da demanda termina no dia 14 então dia = 14− 12 = 2.

Neste experimento o problema da figura 4.5 (Problema 4-1) foi resolvido desconsiderando aconfiabilidade da demanda e utilizando a função de pertinência mostrada acima. Este problema foiresolvido duas vezes. Uma exatamente como proposto na figura 4.5 (Problema 4-1) outra alterando-se apenas o prazo da demanda 7 ZAP do dia 18 para o dia 25. As funções de pertinência para asdemandas deste problema são mostradas na figura 4.7.

Fig. 4.7: Representação das funções de pertinência das demandas dos problemas 4-1

Os resultados obtidos pelo algoritmo de distribuição nebuloso e pelo algoritmo de distribuiçãoclássico são mostrados para o Problema 4-1 com a demanda 7 ZAP do dia 18 e com a mesma demandacom a data alterada para o dia 25 são mostrados nas tabelas.

A partir da análise dos resultados das tabelas 4.3 e 4.4 pode-se verificar que o algoritmo de dis-tribuição nebuloso obteve uma solução de menor custo. Este resultado foi possível, pois o algoritmoconsidera a imprevisibilidade das demandas no horizonte de tempo.

O algoritmo nebuloso com a função de pertinência de previsibilidade busca evitar movimentaçõesdesnecessárias, visto que demandas que tem prazos muitos dias a frente da data atual podem temgrandes chances de serem alteradas ou canceladas, porém o algoritmo equilibra isto, a medida que

Page 59: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.4 Experimentos Computacionais 39

Resultados para o Problema 4-1 com demanda 7 ZAP no dia 18Distribuição Distribuição Nebuloso

Custo 128.2 110.4Tempo(ms) 4 77

SMV’s geradasTOM-ZAR 10 9TOM-ZAP 7 6ZPT-ZZX 15 12

Tab. 4.3: Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuição nebulosopara o problema 4-1 com demanda 7 ZAP no dia 18

Resultados para o Problema 4-1 com demanda 7 ZAP no dia 25Distribuição Distribuição Nebuloso

Custo 128.2 42.4Tempo(ms) 4 84

SMV’s geradasTOM-ZAR 10 9TOM-ZAP 7 1ZPT-ZZX 15 12

Tab. 4.4: Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuição nebulosopara o problema 4-1 com demanda 7 ZAP no dia 25

as demandas estão com os prazos próximos elas são atendidas. Esta solução é muito importante erelevante do ponto de vista estratégico pois ao mesmo tempo que busca minimizar movimentaçõesdesnecessárias evitando movimentar vagões para demandas com prazo longo, busca maximizar oatendimento a demanda a medida que os prazos estão mais próximos do fim.

4.4.3 Experimento 3: Instância inspirada em uma grade real

Este experimento foi realizado com o objetivo de analisar a aplicação do algoritmo de distribuiçãonebulosa em relação problemas similares a instâncias reais. Neste experimentos utilizou-se umafunção de pertinência genérica parametrizada por um fator de imprecisão f .

A função de pertinência da demanda d é dada pela equação 4.1, onde a = nd, a = nd, αA = nd ·f, βA = nd · f é

Page 60: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

40 Algoritmo de Distribuição de Vagões Nebuloso

µGENERICA(t) =

L(nd−tnd·f

)se t ≤ nd

1 se t ∈ [nd, nd]

R(t−ndnd·f

)se t > nd

onde f é um número no intervalo [0, 1]. Se f = 0 significa que não existe imprecisão e o resultadodo algoritmo nebuloso é equivalente ao resultado do algoritmo de distribuição clássico, se f = 1

significa que existe um grau máximo de imprecisão. A figura 4.8 mostra as funções de pertinênciapara uma demanda de 12 vagões com diferentes valores para f .

Fig. 4.8: Funções de pertinência para demanda de 12 vagões com diferentes valores de f

Neste experimento foi gerado um problema baseado em uma grade de trens real, o problema tem30 trens, 30 tipos de vagões e horizonte de tempo de 1 dia. O mesmo problema foi resolvido paradiferentes valores de f o tempo de processamento e custo das soluções obtidas são mostrados natabela abaixo.

A partir dos resultado pode-se observar que o algoritmo de distribuição clássico é um caso partic-ular do algoritmo nebuloso, para isto, é necessário utilizar a função de pertinência genérica com fatorf = 0. Além disto, o algoritmo nebuloso resolve o problema para situações onde existe imprecisãona demanda de transporte.

Analisando os resultados da tabela 4.5 pode-se verificar que caso a imprecisão seja muito grandeo algoritmo optou por não movimentar vagões, para evitar gastos com movimentações desnecessárias.Considerando-se o tempo de processamento pode-se verificar que o algoritmo nebuloso é muito maislento que o algoritmo clássico, porém o tempo sempre se manteve na ordem de menos de 1 segundo.

Page 61: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

4.5 Resumo 41

DistribuiçãoCusto Tempo (milisegundos)7472.8 13

Distribuição Nebulosof Custo Tempo (milisegundos)0 7472.8 552

0.25 6436.6 5420.5 3758.2 5530.75 1369.5 633

1 0 654

Tab. 4.5: Resultados do algoritmo de distribuição(capítulo 3) e do algoritmo de distribuição nebulosopara o problema do experimento 3 com diferentes valores de f

4.5 Resumo

Neste capítulo foi apresentado um modelo e um algoritmo para distribuição de vagões vaziosnebuloso. O resultado do algoritmo é a determinação da quantidade e tipos de vagões que são movidosentre os pares origem-destino da ferrovia para demandas imprecisas. O objetivo foi obter uma soluçãocom menor custo de transporte. O modelo considerou a imprecisão na demanda além de todas asrestrições do modelo de distribuição proposto no capítulo anterior.

O capítulo 5 propõe um algoritmo de alocação de vagões. Este algoritmo considera a grade detrens da ferrovia e aloca os vagões que foram distríbuidos peloa algoritmo de distribuição clássico oupelo nebuloso. Este algoritmo considera a capacidade de transporte dos trens. imprecisão.

Page 62: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

42 Algoritmo de Distribuição de Vagões Nebuloso

Page 63: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 5

Algoritmo de Alocação de Vagões

5.1 Introdução

Esse capítulo tem o propósito de apresentar o algoritmo de alocação de vagões vazios. Estealgoritmo é uma heurística e aloca os vagões distribuídos pelo algoritmo de distribuição aos trens dagrade de trens. O algoritmo considera as restrições de capacidade dos trens e respeita o planejamentode distribuição gerado pelo algoritmo do capítulo 3. Ao final do capítulo um exemplo da utilizaçãodeste algoritmo é apresentado.

5.2 Descrição do Algoritmo

Heurísticas são denominações para o algoritmo que fornece soluções sem um limite formal dequalidade, tipicamente avaliado empiricamente em termos de complexidade (média) e qualidade dassoluções.

As heurísticas geralmente se enquadram dentro dos seguintes grupos:

• heurísticas de construção, tais como o método guloso, que são aquelas onde uma ou maissoluções são construídas elemento a elemento, seguindo algum critério heurístico de otimiza-ção, até que se tenha uma solução viável;

• heurísticas de busca em vizinhança, como a busca local, as quais necessariamente partem deuma solução inicial viável (em alguns casos podendo ser somente uma solução possível qual-quer), tentando melhorar esta solução através de operações de troca, remoção ou inserção, atéque não seja mais possível a melhoria ou algum outro critério de parada seja satisfeito;

• heurísticas sistemáticas, tais como a Busca com Discrepância Limitada ou Backtracking Con-trolado, onde a árvore de espaço de soluções é percorrida utilizando critérios de ramificação e

43

Page 64: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

44 Algoritmo de Alocação de Vagões

corte da árvore;

• heurísticas híbridas, resultantes da combinação de duas ou mais heurísticas com estratégiasdiferentes;

• metaheurísticas, que são heurísticas genéricas mais sofisticadas, onde uma heurística mais sim-ples é gerenciada por um procedimento que visa explorar inteligentemente a instância do prob-lema e o seu espaço de soluções.

O algoritmo de alocação de vagões proposto neste capítulo é uma heurística de construção. Parafacilitar o entendimento do algoritmo serão feitas algumas definições.

Em uma ferrovia, a partir dos resultados do plano de distribuição de vagões são geradas as solici-tações de movimentação de vagões(SMV). Uma SMV pode ser definida pelos seguintes parâmetros:

• oSMV : oferta

• dSMV : demanda

• tSMV : tipo de vagão

• nSMV : número de vagões

ou seja, o plano de distribuição determina para toda demanda quais são as ofertas que a atenderam.A partir deste resultado, é possível gerar as SMV’s descritas acima. O problema da alocação devagões, se inicia a partir da geração das SMV’s. Neste caso, os vagões das SMV’s devem ser alocadosa algum trem da grade de trens para que cheguem aos seus destinos finais, que são os pátios dosclientes.

A partir dos resultados do algoritmo de distribuição pode-se gerar uma lista de SMV ′s que édenotada por LSMV . A lista LSMV é uma das entradas do algoritmo de alocação de vagões.

Uma outra entrada do algoritmo de alocação é a grade de trens. Para facilitar a descrição doalgoritmo de alocação considere uma grade de trens G. Cada trem t ∈ G, tem os seguintes atributos:

• ct : capacidade do trem t em número de vagões

• Pt : lista de pátios que estão no percurso do trem t

Seja nT iA,B o número total de vagões alocados ao trem Ti do pátio A ao pátio B, sendo A,B ∈ Pt.Considere a rota r1 representada na figura 5.1, seja cr1 a capacidade disponível da rota r1. A

capacidade disponível de uma rota determina o número de vagões que a rota pode transportar, levandoem consideração vagões que já estão sendo transportados na rota e a capacidade dos trens que compõea rota. Para a rota r1 da figura 5.1 a capacidade disponível é dada por

Page 65: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

5.2 Descrição do Algoritmo 45

Fig. 5.1: Representação gráfica da rota r1

cr1 = min

{(cT1 − nT1

TOM,ZRV

),(cT1 − nT1

ZRV,ZAR

),(cT3 − nT3

ZAR,ZAP

),(cT4 − nT4

ZAP,ZZX

)}.

O algoritmo de alocação tem como entradas também o o conjunto de todas as demandas D e oconjunto de todas as ofertas O.

Considerando as definições feitas anteriormente, a idéia básica do algoritmo de alocação é en-contrar para toda SMV ∈ LSMV uma rota r onde cr > 0 e custo mínimo. Desta forma a solução éconstruída elemento a elemento caracterizando assim o algoritmo como uma heurística de construção.

A idéia básica do algoritmo é relativamente simples, porém foram introduzidos alguns detalhesna implementação da idéia básica para garantir a obtenção de de soluções de melhor qualidade.

A tabela 5.1 mostra o pseudocódigo do algoritmo de alocação.

Os métodos utilizados no pseudocódigo do algoritmo são descritos abaixo:

• ordenarPorNumeroDeRotasEPrioridade(Lista SMV ): ordena a lista de SMV’s primeiro pelanúmero de rotas existentes entre a oferta oSMV e a demanda dSMV e depois pelo prazo final dademanda dSMV . Ao final da ordenação, as demandas que tiverem uma única rota disponívelestarão no início da lista LSMV , ou seja, terão seus vagões alocados antes das demanda que temmais de uma rota disponível. O outro critério existe para o caso das demandas terem a mesma

Page 66: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

46 Algoritmo de Alocação de Vagões

quantidade de rotas disponíveis, neste caso as demandas que que estão com o prazo final maispróximos serão atendidas primeiro, este critério é muito importante, pois as demandas queestão com o prazo para acabar, tem menos chances de serem canceladas e menos chances dereceberem vagões que possam vir a ser disponibilidados por outras demandas canceladas.

• buscarRota(Oferta o, Demanda d): retorna a rota r de menor custo dentre as rotas existentesentre a oferta o e a demanda d onde cr > 0. Caso não exista nenhuma rota r com cr > 0 retorna∅.

• atualizarAlocacaoVagoesTrem(Rota r, Inteiro q): atualiza os valores de nT iA,B somando a quan-tidade q para todos os trens que fazem parte da rota r.

• atualizarVariaveis(Inteiro q): atualiza o número de vagões da demanda que foram atendidos, onúmero de vagões disponíveis na oferta e o número de vagões atendidos da SMV.

• ordenarPorNumeroDeRotasEPrioridade(Lista Demanda): ordena as demandas da lista uti-lizando os mesmos critérios do método ordenarPorNumeroDeRotasEPrioridade(Lista SMV ).

• encontraOferta(Demanda d): considerando todas as ofertas o onde do > 0 e o ∈ O, retorna aoferta o tem a rota r entre o e d com cr > 0 e menor custo. Caso não exista nenhuma oferta ocom cr > 0 retorna ∅.

• realocarDemandasAtendidas(d): busca realocar uma das demandas previamente atendidas uti-lizando a mesma lógica do método realocarSMVAtendida(SMV smvAtual), busca realocaruma das demandas previamente atendidas, o método retorna a quantidade de vagões que foirealocada. Este método faz busca encontrar todas as ofertas que podem atender a demandad, caso todas as ofertas não estejam disponíveis procura as demandas que são atendidas porestas ofertas e podem ser atendidas por uma oferta alternativa, caso encontre esta situação, re-aloca a demanda a outra oferta, disponibilizando os vagões desta oferta para a demanda d. Estemétodo atualiza a quantidade de demanda que ainda não foi atendida, a quantidade de vagõesdisponíveis e a alocação vagões trens.

• removerDemandaDeF(Demanda d): retira a demanda d da lista de demandas ainda não atendi-das, este método é chamado para remover a demanda da lista mesmo em casos onde fd > 0.Existem casos onde nem todas as demandas podem ser realmente atendidas. Estes casos exis-tem por dois motivos: a capacidade dos trens não é suficiente para transportar todos os vagõesde seus pátios de oferta a seus patíos de demanda; o número de vagões que estão disponíveisnão são suficientes para atender todas as demandas.

Page 67: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

5.3 Exemplo 47

A partir do pseudocódigo do algoritmo pode-se notar que basicamente o algoritmo cria o plane-jamento de alocação primeiro buscando atender todas as SMV ′s geradas a partir do plano de dis-tribuição mantendo um compromisso com este plano. Posteriormente, busca atender as demandasainda não atendidas pelo plano de distribuição, neste caso estas demandas não foram atendidas dev-ido a capacidade de algum trem que chegou ao seu limite. Em ambos casos, a alocação é feita dasdemandas mais restritas as menos restritas, no caso, as que tem apenas uma rota são sempre atendidasprimeiro, visto que não existe outra opção para atender tais demandas.

Na próxima seção um exemplo da utilização do algoritmo de alocação de vagões.

5.3 Exemplo

Esta seção apresenta um exemplo para ilustrar a utilização do algoritmo de alocação de vagões.

Fig. 5.2: Exemplo

O exemplo da figura 5.2 foi resolvido pelo algoritmo de distribuição de vagões e as solicitaçõesde movimentação de vagões geradas a partir dos resultados são mostradas na tabela abaixo:

O exemplo foi resolvido pelo algoritmo de alocação. Os detalhes da aplicação do algoritmo aoproblema da figura 5.2 são mostrados abaixo.

Page 68: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

48 Algoritmo de Alocação de Vagões

Execução do algoritmo de alocação de vagões para o exemplo da figura 5.2

Passo 1: Lista de SMV (LSMV ) ordenada por número de rotas e prazo da demanda(tabela 5.3)

Passo 2: Procura atender cada smv ∈ LSMV

1ªsmv = 10(ZAR)− 15(ZRV ) : 10

r = buscarRota()

∃r = true

numAlocados = min{cr, nSMV } = min{5, 10} = 5

atualizarAlocacaoV agoesTrem(r, 5)

atualizarV ariaveis(5)

nSMV = 10 e aSMV = 5 entao aSMV < nSMV = true

ofertaDisponivel = encontraOferta(15(ZRV )) = 10(TOM)

∃ofertaDisponivel = true

r = buscarRota()

∃r = true

numAlocados = min{cr, f15(ZRV )} = min{20, 5} = 5

atualizarAlocacaoV agoesTrem(r, 5)

atualizarV ariaveis(5)

nSMV = 10 e aSMV = 10 entao aSMV < nSMV = false

2ªsmv = 10(TOM)− 15(ZRV ) : 5

r = buscarRota()

∃r = true

numAlocados = min{cr, nSMV } = min{15, 5} = 5

atualizarAlocacaoV agoesTrem(r, 5)

atualizarV ariaveis(5)

nSMV = 5 e aSMV = 5 entao aSMV < nSMV = false

3ªsmv = 10(ZPT )− 10(ZAP ) : 6

r = buscarRota()

∃r = true

numAlocados = min{cr, nSMV } = min{20, 6} = 6

atualizarAlocacaoV agoesTrem(r, 6)

atualizarV ariaveis(6)

nSMV = 6 e aSMV = 6 entao aSMV < nSMV = false

4ªsmv = 10(ZZX)− 10(ZAP ) : 4

r = buscarRota()

∃r = true

Page 69: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

5.3 Exemplo 49

numAlocados = min{cr, nSMV } = min{20, 4} = 4

atualizarAlocacaoV agoesTrem(r, 4)

atualizarV ariaveis(4)

nSMV = 4 e aSMV = 4 entao aSMV < nSMV = false

5ªsmv = 10(ZPT )− 9(ZRV ) : 4

r = buscarRota()

∃r = true

numAlocados = min{cr, nSMV } = min{20, 4} = 4

atualizarAlocacaoV agoesTrem(r, 4)

atualizarV ariaveis(4)

nSMV = 4 e aSMV = 4 entao aSMV < nSMV = false

6ªsmv = 10(TOM)− 9(ZRV ) : 5

r = buscarRota()

∃r = false

nSMV = 5 e aSMV = 0 entao aSMV < nSMV = true

totalRealocado = realocarDemandaAtendida(9(ZRV )) = 5

Detalhes: o método realocarDemandaAtendida(9(ZRV )) encontra a oferta

alternativa 10(ZZX) para a demanda 10(ZAP ) com 6 vagões disponíveis.

Assim como f9(ZRV ) = 5, então 5 vagões são alocados da oferta 10(ZZX)

para a demanda 10(ZAP ) disponibilizando na oferta 10(ZPT ), 5 vagões que

já estavam alocados. Estes vagões são realocados para a demanda 9(ZRV ).

totalRealocado > 0 = true

atualizarV ariaveis(5)

Passo 3: ∃d ∈ F = false

Fim Execução

A descrição passo a passo da execução do algoritmo de alocação de vagões para o exemplo dafigura 5.2 ilustra bem os principais passos do algoritmo e sua função na busca de uma solução dequalidade. A heurística de alocação de vagões busca soluções seguindo o critério de otimização comum baixo custo, pois o método buscarRota() retorna a rota com custo mínimo entre a oferta e ademanda.

A heurística considera a capacidade dos trens da grade de trens e os resultados do algoritmo dedistribuição de vagões para contruir uma solução viável. No capítulo 6 são feitos experimentos paraavaliar a qualidade das soluções geradas por este algoritmo em situações similares as encontradas nas

Page 70: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

50 Algoritmo de Alocação de Vagões

ferrovias brasileiras e a viabiliadade da aplicação do algoritmo em resolver o problema em temporeal.

5.4 Resumo

Este capítulo apresentou um algoritmo heurístico para alocação de vagões. Este algoritmo con-sidera o plano de distribuição de vagões, a grade de trens e as capacidades dos trens da grade de trensconstruindo soluções de baixo custo considerando o custo de movimentação dos vagões.

No próximo capítulo são mostrados os experimentos computacionais realizados para avaliar aqualidade das soluções do geradas pelo algoritmo de distribuição e alocação de vagões. Os experi-mentos mostram a viabilidade de aplicar estes algoritmos para resolver problemas em tempo real.

Page 71: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

5.4 Resumo 51

Algoritmo de alocação de vagõesEntradas: LSMV , G, D e OSaída: vagões alocados aos trensVariáveis:do: número total de vagões da oferta o que estão disponíveis para utilização, ∀o ∈ Ofd: número total de vagões que ainda falta para atender a demanda d, ∀d ∈ DaSMV : número total de vagões da SMV que foram atendidos, ∀SMV ∈ LSMV

F : lista de demandas ainda não atendidasPasso 1: ordenarPorNumeroDeRotasEPrioridade(LSMV )Passo 2: Para toda SMV ∈ LSMV

Passo 2.1: Rota r = buscarRota(oSMV , dSMV )Passo 2.2: Se(∃ r)

Inteiro numAlocados = min { cr, nSMV }atualizarAlocacaoVagoesTrem(r, numAlocados)atualizarVariaveis(numAlocados)Se(aSMV < nSMV )

Oferta ofertaDisponivel = encontraOferta(dSMV )Se(∃ ofertaDisponivel)

Rota r = buscarRota(ofertaDisponivel, d)Se(∃ r)

Inteiro numAlocados = min { cr, fd }atualizarAlocacaoVagoesTrem(r, numAlocados)atualizarVariaveis(numAlocados)

Passo 2.3: Se(aSMV < nSMV )Inteiro totalRealocado = realocarDemandaAtendida(dSMV )Se(totalRealocado > 0)

atualizarVariaveis(numAlocados)Passo 3: Enquanto existir alguma demanda em F executar:Passo 3.1: ordenarPorNumeroDeRotasEPrioridade(F )Passo 3.2: Para toda d ∈ F

Oferta ofertaDisponivel = encontraOferta(d)Se(∃ ofertaDisponivel)

Rota r = buscarRota(ofertaDisponivel, d)Se(∃r)

Inteiro numAlocados = min { cr, fd }atualizarAlocacaoVagoesTrem(r, numAlocados)atualizarVariaveis(numAlocados)

SenãoInteiro totalRealocado = realocarDemandasAtendidas(d)Se(totalRealocado > 0)

atualizarVariaveis(numAlocados)removerDemandaDeF(d)

Tab. 5.1: Algoritmo de alocação de vagões

Page 72: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

52 Algoritmo de Alocação de Vagões

Solicitações de Movimentação de VagõesOferta Demanda Tipo Vagão Quantidade

10(TOM) 15(ZRV) 1 510(ZAR) 15(ZRV) 1 1010(ZZX) 10(ZAP) 1 410(ZPT) 10(ZAP) 1 610(TOM) 9(ZRV) 1 510(ZPT) 9(ZRV) 1 4

Tab. 5.2: Resultados do algoritmo de distribuição para o exemplo da figura 5.2

Lista de SMV ordenadadaOferta Demanda Tipo Vagão Quantidade Número Rotas Prazo(dia)

10(ZAR) 15(ZRV) 1 10 2 1610(TOM) 15(ZRV) 1 5 2 1610(ZPT) 10(ZAP) 1 6 2 1810(ZZX) 10(ZAP) 1 4 2 1810(ZPT) 9(ZRV) 1 4 3 1710(TOM) 9(ZRV) 1 5 3 17

Tab. 5.3: Lista de SMV (LSMV ) resultante do exemplo da figura 5.2 ordenada por número de rotas eprazo das demandas

Page 73: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 6

Experimentos Computacionais

6.1 Introdução

Este capítulo apresenta e discute os resultados obtidos pelo modelo e algoritmo de distribuiçãoe alocação de vagões propostos nos capítulos 3 e 5. Os resultados obtidos são comparados com omodelo multicomodidade clássico existente na literatura. As instâncias utilizadas neste experimentoforam geradas a partir de uma grade de trens obtida com dados de uma ferrovia brasileira. Paraanalisar os resultados do algoritmo foram geradas 147 instâncias a partir de variações dos princi-pais parâmetros do problema. Os principais parâmetros do problema são: número de trens por dia,horizonte de tempo e número de tipos de vagões. Ao final deste capítulo é feito um resumo dosresultados.

6.2 Descrição dos Experimentos

Os testes do algoritmo consideram diferentes instâncias variando os principais parâmetros doproblema. Estas instâncias são solucionadas pelo algoritmo de distribuição e alocação de vagões eos resultados são comparados com os resultados do modelo multicomodidade. A utilização do mod-elo multicomodidade não é viável para instâncias de grande porte devido as limitações de tempoimpostas. O algoritmo multicomodidade tem tempo de processamento que cresce exponencialmentecom aumento das instâncias, uma instância de grande porte não seria resolvida em tempo hábil. Alémdisto, planejamento em tempo real requer que o tempo de processamento do algoritmo seja da ordemde segundos. Considerando estes aspectos, os testes utilizaram apenas instâncias de pequeno portepara que a análise das soluções geradas pode-se ser feita devido a limitação do tempo de processa-mento do algoritmo multicomodidade.

Os testes do algoritmo proposto foram divididos em 3 experimentos. Cada experimento realizado

53

Page 74: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

54 Experimentos Computacionais

tem o objetivo de avaliar o desempenho do algoritmo proposto em relação a variação de um dosparâmetros do sistema. Os experimentos realizados foram:

• Experimento 1: Variação do número de trens por dia

• Experimento 2: Variação do número de tipos de vagões

• Experimento 3: Variação do horizonte de tempo

Os detalhes de cada experimento realizado são descritos nas próximas seções.Os algoritmos foram implementados com a linguagem de programação Java e os resultados foram

obtidos em um computador Intel Core2Duo 1.66GHz com 2048KB de memória RAM.A análise e comparação dos resultados dos algoritmos propostos neste trabalho foi realizada com

o objetivo de avaliar a qualidade das soluções geradas e a viabilidade de sua utilização para resolverproblemas em tempo real. Alguns dos critérios que foram utilizados para avaliar a qualidade dasolução estão descritos abaixo.

A qualidade da solução foi avaliada considerando-se 2 critérios. O primeiro critério mede a qual-idade da solução em relação ao atendimento dos pedidos dos clientes, ou seja, mede a eficiência doplanejamento gerado em relação a quantidade de vagões da demanda que foram atendidos. A equaçãoque define a eficiência do algoritmo é

Eficiencia =aproposto

amulticomodidade

onde aproposto e amulticomodidade é a quantidade total de vagões atendidos pelo plano de distribuiçãoe alocação de vagões proposto neste trabalho e pelo plano multicomodidade, respectivamente.

Por exemplo, considere um problema em que o planejamento gerado pelo modelo multicomo-didade atendeu 240 vagões e o planejamento gerado pelo modelo proposto atendeu 230 vagões aeficiência do algoritmo proposto para este problema foi de

Eficiencia =230

240= 0, 9583 = 95, 83%.

O segundo critério mede a qualidade da solução em relação ao custo do planejamento gerado(GAP de otimalidade), ou seja, mede o custo de tranporte do planejamento gerado pelo modelo pro-posto em relação ao custo de transporte da solução do modelo multicomodidade. A equação paravalia a diferença do custo de transporte do planejamento resultante do modelo proposto do custo . Aequação que define o GAP de otimalidade é

GAP =cproposto − cmulticomodidade

cmulticomodidade

Page 75: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.3 Experimento 1: Variação do número de trens por dia 55

onde cproposto e cmulticomodidade é o custo de tranporte da solução obtida pelo modelo de distribuiçãoe alocação de vagões proposto e pelo modelo multicomodidade, respectivamente.

Por exemplo, considere que o custo total de transporte do planejamento gerado é de 3764 e 4000,para o modelo multicomodidade e para o modelo proposto, respectivamente. Neste caso, o GAP parao problema é obtido abaixo

GAP =4000− 3764

3764= 0, 0627 = 6, 27%

isto significa que a solução obtida pelo planejamento do algoritmo proposto teve um custo detransporte 6, 27% maior que o custo do planejamento gerado pelo modelo multicomodidade.

A viabilidade da solução do algoritmo em resolver problemas em tempo real foi avaliada considerando-se como critério o tempo de processamento(CPU). Neste trabalho, consideramos que o problema deveser resolvido na ordem de segundos, a equação faz uma relação entre o tempo de processamento doalgoritmo proposto e o algoritmo multicomodidade. A equação que define o tempo de processamentodo algoritmo é

CPU =tmulticomodidade

tproposto

onde tproposto e tmulticomodidade é o tempo de processamento do algoritmo de distribuição e alocaçãode vagões proposto neste trabalho e do algoritmo multicomodidade, respectivamente.

Por exemplo, considere que o tempo total de processamento do algoritmo proposto para resolverum problema é de 6240 e 3120 milisegundos(ms), para o modelo multicomodidade e para o modeloproposto, respectivamente. Neste caso, o valor da CPU para este exemplo é obtido abaixo

CPU =6240

3120= 2

isto significa que a solução obtida pelo planejamento do algoritmo multicomodidade teve umtempo de processamento 2 vezes maior que o tempo de processamento do algoritmo proposto.

Nas próximas seções são descritos os experimentos realizados e no fim é feita uma análise e umresumos dos resultados.

6.3 Experimento 1: Variação do número de trens por dia

O experimento 1 é composto por 114 instâncias divididas em 6 grupos de instâncias. Todas asinstâncias do experimento 1 tiveram um horizonte de tempo fixo = 1 dia. Cada grupo é composto por

Page 76: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

56 Experimentos Computacionais

Fig. 6.1: Eficiência para intâncias do grupo 1-1

19 instâncias. Para cada grupo foi fixado um número de tipos de vagões diferentes. Conforme tabelaabaixo:

Grupo Vagões1-1 50 tipos1-2 60 tipos1-3 70 tipos1-4 80 tipos1-5 90 tipos1-6 100 tipos

Tab. 6.1: Definição dos grupos de instâncias do experimento 1

Estas instâncias começam com um número de 10 trens por dia, aumentanado de 5 em 5 trens aquantidade de trens até chegar em 100 trens por dia, completando assim as 19 instâncias de cadagrupo. Alguns resultados estão nas figuras 6.1, 6.2 e 6.3.

A partir dos resultados da figura 6.1 pode-se verificar que a qualidade do planejamento geradopelo algoritmo proposto considerando-se a eficiência do atendimento a demanda para o grupo 1 foino pior caso de 99, 77%, o que leva a concluir que o algoritmo tem uma solução de ótima qualidadeconsiderando este critério.

A partir da análise da figura 6.3 pode-se perceber que o algoritmo multimocomodidade teve umtempo de processamento crescente a cada grupo, visto que o número de tipos de vagões cresce a cadagrupo. Nesta mesma situação, o tempo de processamento do algoritmo proposto foi inversamenteproporcional ao aumento do número de tipos de vagões, está situação é possivel, pois o algoritmo

Page 77: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.3 Experimento 1: Variação do número de trens por dia 57

Fig. 6.2: Tempos de processamento para as instâncias do grupo 1-1

Fig. 6.3: Tempos de processamento para as instâncias dos 6 grupos

Page 78: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

58 Experimentos Computacionais

proposto é uma heurística e o aumento do número de tipos de vagões diminui as possibilidades decombinação de ofertas e demandas, diminuindo o universo de busca do algoritmo durante a execuçãodo algoritmo de alocação de vagões.

Além disto, os resultados da figura 6.3 mostram que para todas as 114 instâncias do experimento1, o tempo de processamento do algoritmo proposto foi sempre da ordem de segundos atingindono pior caso 1.35 segundos. Por outro lado, o algoritmo multicomodidade teve um tempo muitosuperior ao algoritmo proposto, atingindo no pior caso 51.81 minutos. Apenas estas informações jásão suficientes para mostrar a inviabilidade da aplicação do algoritmo multicomodidade para resolverproblemas em tempo real.

6.4 Experimento 2: Variação do número de tipos de vagões

No experimento 2 foram geradas 26 instâncias divididas em 2 grupos de instâncias. Todas asinstâncias tiveram um horizonte de tempo fixo = 1 dia. Para cada grupo foi fixado um número detrens por dia diferentes. Os grupos também tiveram uma variação do número de tipos de vagõesdiferente. Veja na tabela abaixo a descrição dos detalhes de cada grupo de instâncias:

Grupo Número trens por dia Tipos de vagões2-1 50 30 até 100 aumentando de 5 em 52-2 75 50 até 150 aumentando de 10 em 10

Tab. 6.2: Definição dos grupos de instâncias do experimento 2

Alguns resultados obtidos do experimento 2 podem ser vistos nas figuras 6.4, 6.5, 6.7, 6.7.Assim como no experimento 1, pela análise dos resultados da figura 6.4 pode-se notar que o

algoritmo também obteve um desempenho muito bom considerando-se a eficiência em atender ademanda de transporte ficando no pior caso a menos de 1.5% da solução ótima.

Na figura 6.5 os resultados do tempo de CPU mostram a grande diferença entre o tempo deprocessamento do algoritmo multicomodidade em relação ao algoritmo proposto em alguns casoso tempo de processamento do algoritmo multicomodidade chegou a ser 9529, 43 vezes o tempo deprocessamento do algoritmo proposto. O pior caso para o grupo de instâncias 2-1 o valor de proces-samento do algoritmo multicomodidade foi 166, 88 vezes o tempo de processamento do algoritmoproposto.

Pela análise da figura 6.6 também pode-se notar a grande diferença do tempo de processsamentodos algoritmos. Neste caso o algoritmo multicomodidade obteve para o grupo 2-2 o tempo de proces-samento 19475, 47 vezes maior que o algoritmo proposto. No pior caso, o algoritmo multicomodidadeainda teve o tempo 323, 18 vezes maior que o algoritmo proposto.

Page 79: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.4 Experimento 2: Variação do número de tipos de vagões 59

Fig. 6.4: Eficiência para intâncias do grupo 2-1

Fig. 6.5: CPU para intâncias do grupo 2-1

Page 80: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

60 Experimentos Computacionais

Fig. 6.6: CPU para intâncias do grupo 2-2

A figura 6.7 mostra o tempo de processamento do algoritmo multicomodidade e do algoritmoproposto. A partir da análise dos resultados é possivel verificar que o algoritmo multicomodidaderesolveu o problema em menos de 10 minutos em apenas 1 caso das 11 instâncias do grupo 2-2.

Um outro ponto que pode ser notado é que o algoritmo proposto tem um ótimo desempenho noscasos em que existe um número maior de tipos de vagões e menos possibilidades de distribuição entreas ofertas e demandas.

6.5 Experimento 3: Variação do horizonte de tempo

O experimento 3 é composto por 7 instâncias. Todas as instâncias do experimento 3 tiveram umnúmero de 30 trens por dia e um número de 50 tipos de vagões. O experimento 3 tem um horizontede tempo que varia de 1 até 7 dias.

A figura 6.8 permite verificar a qualidade do algoritmo proposto considerando-se a eficiênciaem atender a demanda de transporte. Atendendo a demanda com uma qualidade muito próxima aoalgoritmo multicomodidade, confirmando os resultados experimentos anteriores.

A figura 6.9 permite verificar que para um número de 30 trens por dia, e 50 tipos de vagões otempo de processamento no pior caso para este conjunto de instâncias é de 99, 75 minutos para oalgoritmo multicomodidade e 16, 56 segundos para o algoritmo proposto.

A circulação de 30 trens por dia é pequena se considerarmos que em algumas ferrovias brasileiraso número médio de trens por dia é 75 e em algumas ferrovias este número chega a 250 trens por dia. Oalgoritmo multicomodidade teve o tempo de processamento muito alto neste conjunto de instâncias

Page 81: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.5 Experimento 3: Variação do horizonte de tempo 61

Fig. 6.7: Tempo de processamento para intâncias do grupo 2-2

Fig. 6.8: Eficiência para intâncias do experimento 3

Page 82: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

62 Experimentos Computacionais

Fig. 6.9: Tempo de processamento para intâncias do experimento 3

que tem um número de trens que chega a ser mais de 8 vezes menor que casos reais. Um outroponto importante é que o tempo de processamento do algoritmo multicomodidade tem crescimentoexponencial. Estes resultados mostram a inviabilidade da utilização do algoritmo multicomodidadeno planejamento de distribuição e alocação de vagões em tempo real.

Uma outra medida que avalia a qualidade do algoritmo é o GAP, figura 6.10 mostra que o GAP nopior caso para o conjunto de instâncias do experimeto 3 foi de 4%. Considerando que em instânciasreais o algoritmo multicomodidade não poderia ser utilizado, pois um planejamento levaria horas paraser realizado, o algoritmo proposto obtem uma boa qualidade também neste critério.

6.6 Resultados Gerais

Este trabalho introduziu uma nova abordagem para resolver o problema de distribuição e alocaçãode vagões em tempo real, além de considerar informações estratégicas que ainda não haviam sidoconsideradas até a literatura atual em outras propostas.

Nesta seção os resultados obtidos nos experimentos 1, 2 e 3 são mostrados de uma forma geral.

A figura 6.11 mostra que o tempo de processamento do algoritmo multicomodidade foi na maioriadas vezes da ordem de minutos e teve um crescimeto exponencial para a variação dos paramêtrosem cada experimento e realizado. Por outro lado, fica evidente o ótimo desempenho do algoritmoproposto considerando o tempo de processamento. O algoritmo proposto no pior caso atingiu umtempo de processamento de apenas 16, 56 segundos.

A tabela abaixo mostra que em 89, 11% do total de intâncias o algoritmo multicomodidade de-

Page 83: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.6 Resultados Gerais 63

Fig. 6.10: GAP para intâncias do experimento 3

Fig. 6.11: Tempo de processamento em minutos para todas intâncias

Page 84: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

64 Experimentos Computacionais

Fig. 6.12: GAP para todas instâncias

morou mais que 1 minuto. Neste caso, o algoritmo proposto não teve superior a 1 minuto em nenhumadas 147 instâncias testadas.

Tempo Processamento(Minutos) Porcentagem Instâncias Número Instâncias> 30 12, 24 18> 20 24, 48 36> 10 41, 49 61> 5 65, 30 96> 1 89, 11 131

Tab. 6.3: Tempos de processamento do algoritmo multicomodidade considerando todas as instâncias

A partir dos resultados do tempo de processamento do algoritmo multicomodidade, considere queo tomador de decisão tenha apenas 10 minutos para fazer o plano de distribuição e alocação de vagões,neste caso, conforme apresentado na tabela, verificou-se que em 41, 49% dos cenários (instâncias)testados, o planejamento não seria gerado neste tempo, não atendendo os requisitos. Além disto,é importante ressaltar que os testes experimentais realizados foram todos de cenários (instâncias)de pequeno porte em casos reais, problemas de maiores dimensões este tempo de processamentoatingiria valores muito superiores.

Um outro critério importante utilizado para medir a qualidade das soluções obtidas foi o GAP. Apartir da análise dos resultados obtidos para este critério pode-se observar que o pior resultado obtidonos experimentos realizados o GAP foi de 7% e em 88, 43% das instâncias o GAP foi de menos de 1%

mostrando assim resultados muito próximos do algoritmo multicomodidade, resultados estes obtidoscom apenas alguns segundos de processamento.

Page 85: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.6 Resultados Gerais 65

Resultados Gerais para o GAPGAP % Porcentagem Instâncias Número Instâncias≤ 1 88, 43 130(1, 5] 10, 20 15(5, 10] 1, 36 2> 10 0 0

Tab. 6.4: Resultados GAP para todas as instâncias

Fig. 6.13: CPU para todas intâncias

Resultados Gerais para CPUCPU Porcentagem Instâncias Número Instâncias< 1000 17, 68 26

(1000, 5000] 59, 18 87> 5000 23, 12 34

Tab. 6.5: Resultados CPU para todas as instâncias

A figura 6.13 mostra que em alguns casos o algoritmo proposto chegou a ser 19.475, 47 vezesmais rápido que o algoritmo multicomodidade e em 23, 12% dos casos este tempo foi superior a 5000

vezes mais rápido.

Considerando o critério eficiência o algoritmo também mostrou ótimos resultados, atingindo em89, 11% dos casos uma eficiência maior que 99% e no pior caso atingiu 97, 46% valor ainda muitopróximo do ótimo.

Page 86: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

66 Experimentos Computacionais

Fig. 6.14: Eficiência para todas instâncias

Resultados Gerais para EficiênciaEficiência % Porcentagem Instâncias Número Instâncias

> 99 89, 11 131(98, 99] 10, 20 15< 98 0, 68 1

Tab. 6.6: Resultados eficiência para todas as instâncias

6.7 Resumo

Neste capítulo foi feito um estudo comparativo entres o algoritmo de distribuição e alocação devagões apresentado neste trabalho e o algoritmo multicomodidade.

Foram considerados 147 tipos de instâncias, todas geradas a partir de umam grade de trens obtidacom dados reais de uma grande ferrovia brasileira.

Os resultados para as instâncias mostram que o algoritmo de distribuição e alocação de vagõescumpre com o seu objetivo de gerar um planejamento em tempo real, pois em todos os casos, obtevesoluções em apenas alguns segundos.

Considerando a qualidade do atendimento a demanda, o algoritmo proposto se mostrou bastanteapropriado na obtenção de soluções com qualidade muito próxima a do algoritmo multicomodidade.A grande vantagem destes algoritmos é que conseguem soluções, mesmo para o caso complexo, emtempos menores que 30 segundos.

Um outro ponto importante, é o custo da solução que ficou no pior caso a apenas 7% da soluçãoótima e em quase 90% dos casos a menos de 1% do ótimo.

Page 87: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

6.7 Resumo 67

O próximo capítulo conclui esta dissertação e sugere trabalhos futuros.

Page 88: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

68 Experimentos Computacionais

Page 89: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Capítulo 7

Conclusões

Este trabalho apresentou um modelo para a distribuição e alocação de vagões vazios em ferroviasutilizando o conhecimento da grade de trens, do estado da circulação e demais restrições operacionaisencontradas no processo de decisão na distribuição e alocação de vagões. O algoritmo é rápido eeficiente, o que sugere a sua utilização como ferramenta de apoio a tomada de decisão em tempo realpor alocadores de vagões.

Similarmente às propostas da literatura, o algoritmo desenvolvido fornece a movimentação devagões entre pátios com oferta de vagões e pátios com demanda de vagões, explicitando os corre-spondentes tipos e quantidades. Esta movimentação é de custo mínimo. Contudo, ao contrário dosalgoritmos apresentados na literatura, o algoritmo proposto fornece soluções que são de custo mínimoe operacionalmente factíveis, pois atribui a cada movimentação uma ou mais rotas que estão previstasna grade de trens, além de considerar a restrição de capacidade de cada trem ao longo de cada rota.

Apesar de promissor, o algoritmo ainda necessita de mecanismos para considerar casos ondetanto a oferta quanto a demanda são imprecisas, pois estas, exceto para o curto prazo, raramente sãoconhecidas com exatidão na prática. A extensão da abordagem e do algoritmo para tratar imprecisõesna oferta e demanda são temas para trabalhos futuros.

LATEX utiliza um arquivo em separado para as referências bibliográficas. Este arquivo deve possuiro mesmo nome do arquivo mestre com a extensão bib. Arquivos bib possuem os seguintes estilos dereferência:

• artigos em revistas (Eliane G. Guimarães, Antonio T. Maffeis, James L. Pereira, Bruno G.Russo, Eleri Cardozo, Marcel Bergerman, Mauricio F. Magalhães, 2003);

• artigos em anais de simpósios (Luis F. Faina, Rossano P. Pinto, Eliane G. Guimarães, EleriCardozo, 2001);

• artigos em coletâneas de artigos (Alexandre S. Pinto, Luis F. Faina, Eleri Cardozo, 2000);

• capítulos de livros (Euripedes P. Santos, Fernando J. Von-Zuben, 2000);

69

Page 90: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

70 Conclusões

• anais de simpósios (Luci Pirmez, Luis Fernando Carmo, Raimundo José Macêdo, 2002);

• livros (Witold Pedrycz, Fernando A. C. Gomide, 1998);

• teses de doutorado (Luis F. Faina, 2000);

• teses de mestrado (José C. S. Santos-Filho, 2003);

• relatórios técnicos (Object Management Group, 2000);

• manuais técnicos (IONA Technologies, 1999);

• trabalhos não publicados (Jaime S. Sichman, 2002);

• páginas na Internet (Alexander Larsson, 2003) (utilizar como data a data do último acesso àpágina);

• miscelânea (Renato Cruz, 2003).

Page 91: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

Referências Bibliográficas

Alexander Larsson. Dia’s Homepage. Página na internet, Lysator, The Academic Computer Society,Agosto 2003. http://www.lysator.liu.se/~alla/dia/dia.html.

Alexandre S. Pinto, Luis F. Faina, Eleri Cardozo. A TINA-based Distributed Environment for MobileMultimedia Applications. In Raouf Boutaba José Neuman de Souza, editor, Managing QoS in

Multimedia Networks, Services, pages 163–175. Kluwer Academic Publishers, 2000.

Eliane G. Guimarães, Antonio T. Maffeis, James L. Pereira, Bruno G. Russo, Eleri Cardozo, MarcelBergerman, Mauricio F. Magalhães. REAL: A Virtual Laboratory for Mobile Robot Experiment.IEEE Transactions on Education, 46(1):37–42, Fevereiro 2003.

Euripedes P. Santos, Fernando J. Von-Zuben. Recurrent Neural Networks: Design, Applications,volume 13th of International Series on Computational Intelligence, chapter Efficient Second-OrderLearning Algorithms for Discrete-Time Recurrent Neural Networks, pages 47–75. CRC Press,2000.

IONA Technologies. Orbix Programming Reference. IONA Technologies PLC, Dublin, Ireland,Outubro 1999.

Jaime S. Sichman. Sobre Agentes Móveis e Fixos. Comunicação pessoal por e-mail, Março 2002.

José C. S. Santos-Filho. Combinação por Ganho Igual em Ambiente com Desvanecimento Arbitrário.Tese de mestrado, Faculdade de Engenharia Elétrica e de Computação, UNICAMP, Agosto 2003.

Luci Pirmez, Luis Fernando Carmo, Raimundo José Macêdo, editor. XX Simpósio Brasileiro de

Redes de Computadores, volume I, Maio 2002. Sociedade Brasileira de Computação, Núcleo deComputação Eletrônica da UFRJ.

Luis F. Faina. Uma Arquitetura para Suporte à Ubiqüidade dos Serviços de TelecomunicaçõesBaseada na Arquitetura TINA e em Agentes Móveis. Tese de doutorado, Faculdade de Engen-haria Elétrica e de Computação, UNICAMP, Dezembro 2000.

71

Page 92: Algoritmo de Distribuição e Alocação Vagões em Tempo Real

72 REFERÊNCIAS BIBLIOGRÁFICAS

Luis F. Faina, Rossano P. Pinto, Eliane G. Guimarães, Eleri Cardozo. Mobile Agents for SupportingUbiquity in Telecommunication Services. In J. Nogueira A. Loureiro, editor, Second Latin Ameri-

can Network Operation, Management Symposium (LANOMS), pages 50–61, Belo Horizonte, MG,Agosto 2001.

Object Management Group. Audio/Video Streams, Version 1.0. OMG Specification formal/2000-01-03, Object Management Group, January 2000. http://www.omg.org/.

Renato Cruz. Padrão Brasileiro de TV Enfrenta Oposição. Jornal O Estado de São Paulo, 02 deFevereiro 2003. Opinião do Prof. Max Costa.

Witold Pedrycz, Fernando A. C. Gomide. An Introduction to Fuzzy Sets: Analysis and Design (Com-

plex Adaptive Systems). MIT Press, 1998.