modelagem, análise e decisão em sistemas de transporte ferroviário fernando gomide unicamp - feec...
TRANSCRIPT
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.