Modelagem, Análise e Decisão em Sistemas de Transporte Ferroviário Fernando Gomide UNICAMP - FEEC...

Preview:

Citation preview

Modelagem, Análise e Decisãoem

Sistemas de Transporte Ferroviário

Fernando GomideUNICAMP - FEEC - DCA

Visão Geral

1.Introdução

2.Modelo de Linha e de Despacho

3. Modelo Proposto

4. Modelagem Orientada a Objetos

5. Sistema Computacional

6. Exemplos de Aplicação

7. Conclusões

1. Introdução• Descrição do Problema

– Modelos de linha:

• Simulação, análise de operações, otimização e controle de circulação, expansão da capacidade;

• 1a fase: matemática, computação clássica, etc.

• 2a fase: métodos heurísticos, int. computacional, etc.

Pátio

Linha

• Motivação

– Carência de tecnologia nacional

– Ausência de ferramentas para suporte à decisão

• Objetivos:

– Pesquisa, e desenvolvimento de modelos de linha;

– Definição e formalização de um modelo estruturado;

– Implementação computacional e testes;

– Aplicações:análise e otimização de circulação• análise e otimização de circulação

• estratégias de despacho

• suporte a tomada de decisões e logística

• expansão de capacidade

2.Modelo de Linha e de Despacho

• Modelos de Linha:

– Analisam os movimentos dos trens e as atividades de despacho

– Estimam o atraso de cada trem causado por interferências relacionadas com estratégias de despacho, distribuição do tráfego, topología física da linha, atividades nos pátios, etc.

– Exemplo: modelo de Petersen e Taylor, permite: calcular a performance de cada tipo de trem sobre uma linha; avaliar a capacidade de linhas e sistema; determinar a performance de linhas em função do tráfego; analisar a performance em função da linha e parâmetros de operação; avaliar estratégias de atualização física da linha; avaliar estratégias de despacho; analisar performance de sistemas de ferrovia– terminais–pátios.

• Modelos de despacho

– Auxiliam a operação

– Ajudam a diminuir o consumo de combustível, incrementar a capacidade da linha e a confiabilidade do serviço.

– Primeiros modelos baseados em programação matemática convencional e teorias de otimização

– Incorporação de ferramentas de inteligência computacional: maior flexibilidade e melhor expressão do conhecimento prático.

3. Modelo Desenvolvido

3.1. Elementos do Modelo

A. Malha Ferroviária• Segmentos

• Via ou trecho

• Locação

• ConexõesSegm ento 1

Segm ento 3

1 1 1

Segm ento 2 Segm ento 4

1

22

3

4

5

M2

k2

M1

k2

k1k1

B. Modelos de Percursos

• Rotas dos trens

• Relação de segmentos que compõem a rota de um trem

C. Modelos de Escalas• Trens operam em pátios

intermediários ou terminais

• Descritos pelo número de paradas e pelos dados das paradas.

• Parada: linha, segmento, duração, desvio

D. Modelos de Trens• Características comuns dos trens

• Descrito por: comprimento, vagões, locomotivas e tempos de percurso nos segmentos.

• Dependência entre trens: fator de ajuste, modelo de trem do qual depende

E. Trens Despachados• Modelo de percurso

• Modelo de escalas: inbound e outbound

• Modelo de trem: inbound e outbound

• Horário de partida, desvio, sentido de viagem.

• Dependência entre trens: intervalo de tempo após o qual parte, trem do qual depende.

F. Atividades de Manutenção• Descritas por: locação, hora de início,

desvio, duração e desvío.

E. Trens Imaginários• Criados por manutenção/interrupção

• Criados por razões de segurança

F. Perturbações nos Trens• Descritas por: trem, hora de início, desvío

desta hora, duração e desvío da duração

3.2. Lógica do Modelo

Despachador

Obter trensconcorrentes

H

Reservarlocacões

Obter locacõesdisponíveis

Escolher um alocacão KHAT

Verificar bloqueiona linha

LocationList

[KHAT existe ]

[linha b loqueiada]

DispatchProcessS im ulationController

Escolher opróxim o evento

RealTrainList

Verificar atividades dem anutenção

RealTrain[atual]

Despachar trematual

A trasar o trem

Deslocar o tremRecolher inform acão

[KHAT não existe ]

Criar tremim aginário

A tualizar estado dosistem a

Inicializar oS istem a

H[não acontece evento]

[evento de um trem continuando comsua viagem ]

Atualizar estadodo trem

[evento de um trem im aginário, finalizandoviagem ou perturbação de um trem ]

[linha não b loqueiada]

Elementos do Modelo de Petersen e Taylor

– Linha Ferroviária

– Conexões Físicas

– Trens

– Trens Imaginários

– Atividades de Manutenção

– Tempos

Elementos do Modelo Proposto

– Malha Ferroviária

– Conexões Físicas

– Modelos de Trens

– Modelos de Percursos

– Modelos de Escalas

– Trens

– Trens Imaginários

– Atividades de Manutenção

– Perturbações dos trens

3.3. Funções de Otimização de Despacho

– Objetivo: otimizar a circulação de trens– Otimização: métodos convencionais ou métodos

de inteligência computacional– Linguagem que permite definir funções baseadas

na lógica nebulosa e na matemática convencional.

double big;

double dum;

big = 0.0;

RealTrain AUX_TRAIN;

Atraso = (Pequeno,Medio,Alto);

Prioridade = (Baixa,Media,Alta);

Atraso.Universe = [780,0,1560];

Prioridade.Universe = [50,0,100];

Atraso.Pequeno = trapese(0,0,240,480);

Atraso.Medio = triang(360,720,1080);

Atraso.Alto = trapese(960,1200,1560,1560);

Prioridade.Baixa = trapese(0,0,20,40);

Prioridade.Media = triang(30,50,70);

Prioridade.Alta = trapese(60,80,100,100);

if X is Atraso.Pequeno then Z is Prioridade.Baixaif X is Atraso.Medio then Z is Prioridade.Mediaif X is Atraso.Alto then Z is Prioridade.Alta

size = TRAINS.SIZE;

for i =1:size {

AUX_TRAIN = TRAINS[i];X = AUX_TRAIN.DELAY;dum = run(0,2);if(dum >= big){

big = dum;SELECTED_TRAIN = AUX_TRAIN;

}}

Exemplo

3.4. Prevenção de Bloqueio na Linha

• Segmento Livre segmento final da linha, levando-se em consideração o sentido de

viagem do TREM;

contém pelo menos um trecho livre e pelo menos um trecho ocupado por um trem viajando no mesmo sentido do TREM;

contém mais de um trecho livre.

A CB

t1

t2 t3

t4

D

S e g m e n to 1 S e g m e n to 2 S e g m e n to 3

E

S e g m e n to 4

Algoritmo para encontrar Segmento Livre1. Seja (Y’, Z’) a posição inicial do trem TREM:

(Y’, Z’); Y’, Z’ V

2. Construir o conjunto de caminhos a serem analisados:

CP = {i | i = (Z’, I), I V and i P(G) }

3. Verificar o seguinte:

3.1 Se num(CP) = 0 então um segmento livre foi encontrado; terminar.

3.2. Se [ i,j | w(i) = 1 e w(j) = 0, i,j CP] então um segmento livre foi encontrado; terminar.

3.3. Se [ i,j | w(i) = 0 e w(j) = 0, i,j CP ] então um segmento livre foi encontrado; terminar.

3.4 Se [ i | w(i) = 0 ou w(i) = 1, i CP ] então:

3.4.1 Seja Z tal que i CP com i = (J,Z) e w(i) {0,1}

3.4.2 Construir um novo conjunto de caminhos a serem analisados:

CP = {i | i = (Z,I), i P(G) and I V }

3.4.3. continuar (ir a 3.)

3.5. Caso contrário um segmento livre não foi encontrado; terminar

Aplicar A lgoritm o para encontrar segm ento livrepara o trem analisado

foiencontradosegm ento

livreterm inou no

passo 3.2

Sim

NãoPossível b loqueio nalinha

SimD eslocar trem

analisado

Aplicar a lgoritm o para encontrarsegm ento livre

para o trem oposto

Não

fo iencontradosegm ento

livre

Sim

Não

Encontrar conjunto de trechos accesíveis a partirda posição in ic ia l do trem

existesegm ento

livre

Sim

constru ir novo conjunto detrechos d isponíveis, a partir de

um trecho vazío ou trechoocupado por um trem via jando

no m esm o sentido

Não

Term inar

existe trecho livre ou ocupado portrem via jando no m esm o sentido

Não

S im

4. Modelagem Orientada a Objetos

Despachador<<usuário>>

ReportarInform ação

Atualizar Dadosde S im ulação

DespacharTrens

AtualizarFunções deOtim ização

Atualizar Dados

Despachador

Abrir arqu ivo dedados

Salvar Arquivo dedados

<<abstract>>Atualizar dados não

dependentes

<<abstract>>Atualizar dados

dependentes

Despachador

Atua lizar dados dosmodelos de

percurso

Atua lizar a tividadesde manutenção

Atua lizar dados deperturbações que

podem sofrer os trens

Atua lizar temposmédios de percurso

Atua lizar dados deconexões físicas na

malha ferroviária

<< uses>>

<< uses>>

<< uses>>

<< uses>>

<< uses>>

<< uses>>

Atua lizar dados dosmodelos de esca las

Atua lizar dados dosmodelos de trens

dependentes

<< uses>>

<< uses>>

Atualizar dados damalha ferroviária

Atualizar dados dosmodelos de trensnão dependentes

<<abstract>>Atualizar dados não

dependentes

Despachador

<< uses>><< uses>>

Dados DependentesDados Não Dependentes

Package Sistema S istem a

DataDom ain

ReportInform ation

GUI

Interpreter

<<controller>>System Controller

Package GUI

GUI

BasicsReport Insert

Sim ulation Optim ization

Diagrama de Classes: Package Data

TrainPatternJourneyPattern

*

RailLine

Location

re lacionado com

ConexionList

Conexion

contém

out_conexions in_conexions

relaciona

2

1*

LocationTim e

contro la

*contro la

Config

RealTrain

M aintenanceListM aintenancecontém

StopPattern

Station

contro la

segue um

Com parable

Com parable

Com parable

TrainDisruption

Com parable

re lacionado comdepende

depende

0..1

0..1

RealTrainListLocation

Segm ent

LocationList

TrainDisruptionList

RealTrain1

contém

*

*

*

re lacioanado com

para no

é uma tipo de

contém

contém

contro la

contro la

Com parable

Location

{ordenados}

in_pattern out_pattern out_pattern in_pattern

**

«controller»DataController

**

*

RealTrain RealTrainList

Train

Phantom Train

TrainList

contem

Segm ent

Location

TrainsInSegm ent

DispatchProcess

trabalha com

atualiza

atual

seguin tesubseguinte

atualiza

trens na linha

esta a locado em

constru i

trabalha com

*

concorrentes reservadores

reservadas

despachatrens a despachar

despacha

trem atual

access

constru i

b loqueio

procura uma

procura locação para

LocationList

uses

disponíve is

«controller»Sim ulationController«controller»

DataController

«controller»ReportDataController

manda procurar uma

Classes do Domínio do Problema

Diagrama de Colaboração: Simulação

in itProcess()

Contro ller:Sim ulationContro ller

T RAINS:RealT rainL ist

ET A:T rainList

1.*[aux_tra in != null] : aux_tra in := getTra inToDepart(XL):RealTrain

2.*[aux_tra in != null] : add(aux_tra in)3. : sort()4. : aux_tra in := get(0) : T rain8.1. [phantom] : remove(aux_tra in)

train_seg:T rainsInSegm ent

8.2.[phantom] : remove(aux_tra in.getSegment(),aux_tra in)11.1.[flag] : remove(TRAIN.getSegment(),TRAIN)

T RAIN:RealT rain

9. : set(aux_tra in)11. : flag := endO fTravel():boolean11.1. : [flag] updatetoContinue()17.2. : isStop(true)

REPO RT :ReportDataContro ller

10. : setEvent(nevent, TRAIN)16.1. : setEventInformation(nevent, KHAT,XL)17.1. : setEventInformation(nevent,XL)19. [XL >= Config .S imulationT ime] : saveInformation(TRAINS.getTrainEventT imes())19.1. END20. G O TO 1

disp:DispatchProcess

{new }

12. : create(TRAIN)13. : KHAT := in itProcess():Location14. : treserving:=getT ra insReserving()

7. [d isruption != null] : dodisruption(disruption)7.1[d isruption != null] : G O TO 18.3.[phantom] : G O TO 111.2.[flag] : G O TO 1.11.3. [not flag] : updateD ispatchState(TRAIN)12. : doMaintenance()16. [KHAT != null] : tra inProceeds()17. [KHAT == null] : de layTrain()18. [XL< Config .S imulationT ime] : G O TO 1

aux_train:T rain

5. : depart_time := getNextEvent():double8. : phantom := isPhantom():boolean

disruptions:T rainDisruptionList

6. : d isruption:= getD isruption(depart_time):TrainD isruption

5. Sistema Computacional

Manipulação de arquivos

Despachar trens

Exemplos de Resultados

Diagrama Espaço Tempo

Diagrama de Atrasos dos Trens

Edição de Funções de Otimização

6. Exemplos de Aplicação

A. Primeiro exemplo Atraso total sofrido em dois dias de simulação, variando o

número de pátios de cruzamento e o número de trens despachados

0:00:00

48:00:00

96:00:00

144:00:00

192:00:00

240:00:00

288:00:00

336:00:00

384:00:00

2 4 6 8 10 12

No. de Trens

Atr

aso

To

tal

1 pátio

3 pátios

5 pátios

7 pátios

Exemplos de Linhas

JBU

01343

SEG1 JPY73.591

74.13

SEG2 JLB132.306 133.261

JGO198.06 199.006

SEG4SEG3 JVA

292.953 293.998

JDR369.379 370.749

SEG6432.221

SEG5 JGI432.854

L inha com 5 pá tios de cruzam ento

JAI

41.915 42.404

SEG2 JGN

95.82898.828

SEG3 JPM

153.321154.3

JGO

198.06 199.006

SEG5SEG4 JGR

257.192257.872

JMP

323.378 324.307

SEG7

389.268

SEG6 JAS

389.965

JBU

0 1343

SEG1 SEG8

432.221

JGI

432.854

L inha com 7 pá tios de cruzam ento

JGN

95.82896.86

SEG2 JGO

198.06 199.006

SEG3 JMP

324.307

SEG4JBU

0 1343

SEG1

432.219

JGI

432.854323.376

L inha com 3 pá tios de cruzam ento

L inha com 1 pá tio de cruzam ento

JBU

0 1343

SEG1 JGO198.06 199.006

SEG2432.221

JGI432.854

B. Segundo exemplo

Atraso total sofrido em dois dias de simulação, variando o número de trens despachados e o fator de ajuste do tempo

de percurso dos trens.

0:00:00

48:00:00

96:00:00

144:00:00

192:00:00

2 4 6 8 10 12

No. de Trens

Atr

aso

To

tal

0.25

0.5

0.75

1

1.25

C. Terceiro exemplo

Atraso total sofrido despachando-se 4 trens em diferentes intervalos de tempo

0:00:00

4:48:00

9:36:00

14:24:00

19:12:00

24:00:00

4 horas 8 horas 12 horas 16 horas

Intervalos

Atr

as

o T

ota

l

D. Quarto Exemplo

Atraso total sofrido despachando-se trens em diferentes intervalos de tempo e realizando manutenção de um

segmento em diferentes horários

12:00:00

13:12:00

14:24:00

15:36:00

16:48:00

18:00:00

2:00 6:00 10:00 14:00 18:00

Hora de Manutenção

Atr

aso

To

tal 4

8

12

16

E. Quinto Exemplo

Atraso total sofrido variando-se o número de trens e a função de otimização

0:00:00

48:00:00

96:00:00

144:00:00

192:00:00

240:00:00

2 4 6 8 10 12

No. de Trens

Atr

as

o T

ota

l

prioridade

atraso

fuzzy

7. Conclusões

• Um modelo estruturado de linha foi desenvolvido:– Extensão do modelo de Petersen e Taylor

– Algoritmo de prevenção de bloqueio

• O modelo contempla os elementos essenciais para definir a circulação de trens em uma malha ferroviária;

• O modelo computacional usa orientação a objetos;

• Sistema computacional implementado a partir do modelo;

• O sistema permite inserir e alterar dados relacionados com o modelo, simular a circulação de trens na malha ferroviária e observar os resultados da simulação

• O sistema inclui uma ferramenta para definir estratégias de despacho convencionais e/ou baseadas na lógica nebulosa.

• Trabalhos futuros

– avaliar o uso de diferentes técnicas de otimização de despacho, fazendo uso da linguagem criada ou, se for necessário, expandindo esta linguagem para permitir a definição de outro tipo de funções;

– expandir o sistema para permitir a análise automática de resultados de diferentes cenários de utilização;

– suporte em sistemas distribuídos de controle;

– aplicações reais em decisão e logística.

Recommended