tese-final - instituto militar de...

222
MÉTODO DE ALOCAÇÃO DE FLUXO NO PLANEJAMENTO DE TRANSPORTES EM SITUAÇÕES DE EMERGÊNCIA : DEFINIÇÃO DE ROTAS DISJUNTAS Vânia Barcellos Gouvêa Campos TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA OBTENÇÃO DO GRAU DE DOUTOR EM CIÊNCIAS EM ENGENHARIA DE PRODUÇÃO. Aprovada por: ________________________________________________ Prof. Paulo Oswaldo Boaventura Netto, D.Ing. (Presidente) _________________________________________ Prof. Paulo Afonso Lopes da Silva, Ph.D. _______________________________________________ Prof. a Maria Cristina Fogliatti de Sinay, Ph.D. ________________________________________________ Prof. Amaranto Lopes Pereira, D.Ing. ________________________________________________ Prof. Licínio da Silva Portugal D.Sc. RIO DE JANEIRO, RJ-BRASIL MARÇO DE 1997

Upload: duongminh

Post on 10-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

MÉTODO DE ALOCAÇÃO DE FLUXO NO PLANEJAMENTO DE TRANSPORTES

EM SITUAÇÕES DE EMERGÊNCIA : DEFINIÇÃO DE ROTAS DISJUNTAS

Vânia Barcellos Gouvêa Campos

TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS

PROGRAMAS DE PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE

FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS

NECESSÁRIOS PARA OBTENÇÃO DO GRAU DE DOUTOR EM CIÊNCIAS EM

ENGENHARIA DE PRODUÇÃO.

Aprovada por:

________________________________________________

Prof. Paulo Oswaldo Boaventura Netto, D.Ing. (Presidente)

_________________________________________

Prof. Paulo Afonso Lopes da Silva, Ph.D. _______________________________________________ Prof.a Maria Cristina Fogliatti de Sinay, Ph.D. ________________________________________________ Prof. Amaranto Lopes Pereira, D.Ing. ________________________________________________ Prof. Licínio da Silva Portugal D.Sc.

RIO DE JANEIRO, RJ-BRASIL MARÇO DE 1997

Page 2: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

CAMPOS, VÂNIA BARCELLOS GOUVÊA

Método de Alocação de Fluxo no

Planejamento de Transportes em Situações de

Emergência : Definição de Rotas Disjuntas

[Rio de Janeiro] 1997

IX,195 p.29,7 cm (COPPE/UFRJ,D.Sc.,

Engenharia de Produção, 1997)

Tese - Universidade Federal do Rio de

Janeiro, COPPE

1. Alocação de Fluxo em Rotas Independentes

I. COPPE/UFRJ II. TÍTULO (série)

Page 3: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Resumo da Tese apresentada `a COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Doutor em Ciências (D.Sc.) MÉTODO DE ALOCAÇÃO DE FLUXO NO PLANEJAMENTO DE TRANSPORTES

EM SITUAÇÕES DE EMERGÊNCIA: DEFINIÇÃO DE ROTAS DISJUNTAS

Vânia Barcellos Gouvêa Campos

Março / 1997

Orientadores: Paulo Afonso Lopes da Silva

Paulo Oswaldo Boaventura Netto

Programa : Engenharia de Produção

Neste trabalho propõe-se um algoritmo para definição de k-caminhos ótimos

independentes para alocação de fluxos de veículos no planejamento de transportes em

situações de emergência. O algoritmo tem como objetivo identificar tais conjuntos de

rotas de tal forma que uma quantidade maior de fluxo de veículos possa ser enviada no

menor tempo possível, para fora de uma região (urbana) ameaçada por alguma

catástrofe. Como ferramenta de auxílio desenvolveu-se um programa de computador em

linguagem Turbo Pascal, que compreende as etapas do algoritmo proposto e um

processo de alocação de fluxos.

Page 4: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Abstract of Thesis presented to COPPE/ UFRJ as partial fulfillment of the requirements

for the degree of Doctor of Sciences (D.Sc.)

METHOD FOR ALLOCATION FLOW IN EMERGENCY TRANSPORTATION

PLANNING: DEFINITION OF DISJOINT ROUTES

Vania Barcellos Gouvêa Campos

March / 1997

Advisors: Paulo Afonso Lopes da Silva

Paulo Oswaldo Boaventura Netto

Department: Production Engineering

This work develops an algorithm which builds k-optimal independent paths for

vehicle flow allocation in emergency transportation planning. The algorithm identifies

such paths sets in a way that a greater numbers of vehicles can be sent in the least

possible time outside a region under menace of some catastrophic event. As a tool, it

was developed a basic Turbo Pascal computer program for running the algorithm and a

flow allocation process.

Page 5: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Índice

Assunto pag. Capítulo 1 - Introdução 1.1 Considerações Iniciais 1

1.2 Objetivo da Tese 2

1.3 Posicionamento do Trabalho 3

1.4 Características do Problema Estudado 4

1.5 Importância do trabalho 7

1.6 Estrutura da Tese Capítulo 2 - Um Estudo sobre Modelos de Planejamento de

Transportes para Situação de Emergência

8

2.1 Considerações Iniciais 9

2.2 Modelos de Planejamento de Transporte para Situação de Emergência

9

2.3 Considerações Finais Capítulo 3 - Algoritmos para Otimização de Rotas

14

3.1 Considerações Iniciais 16

3.2 Definição e Conceitos Básicos sobre Grafos 16

3.2.1 Classificação 17

3.2.2 Elementos de Grafos 17

3.2.3 Características Estruturais 19

3.3 Algoritmos de Caminho Mínimo 19

3.3.1 Caminho Mínimo entre dois Vértices 21

3.3.2 Caminho Mínimo entre Todos os Pares de Vértices de uma Rede 22

3.3.3 Algoritmos de k-caminhos mínimos 23

Page 6: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.4 Algoritmos de Fluxo Máximo 25

3.5 Algoritmos de Custo Mínimo 28

3.6 Considerações sobre os Algoritmos 31

Capítulo 4 - Métodos de Distribuição de Fluxo em Redes de

Transporte

4.1 Considerações Iniciais 32

4.2 Características do Fluxo de Tráfego 34

4.3 As Primeiras Técnicas de Distribuição de Fluxo 35

4.4 Técnica das Curvas de Dispersão 36

4.5 Técnicas de Alocação com Restrição de Capacidade 37

4.6 Técnicas de Alocação Incremental de Tráfego 40

4.7 Técnicas de Alocação em Múltiplos Caminhos 41

4.8 Modelos de Equilíbrio Estático 42

4.9 Modelos Dinâmicos de Alocação 43

4.10 Considerações Finais 44

Capítulo 5 - Discussão e Formulação do Problema de

Alocação de Fluxo

5.1 Considerações Iniciais 46

5.2 Discussão sobre a utilização de um algoritmo de Custo Mínimo 47

5.3 Caracterização de Caminhos Disjuntos 49

5.4 Formulação do Problema de Alocação de Fluxo em Caminhos Independentes

51

5.5 Método para Determinação do número de Caminhos Disjuntos numa Rede

54

5.5.1 Conceito de Redes em Níveis 55

5.5.2 Etapas do Método 57

5.5.3 Etapas para Implementação 59

5.5.4 Exemplo de Aplicação 60

5.5.5 Considerações sobre o Método 63

Page 7: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 6 - Algoritmo de Alocação Ótima de Fluxo em k-caminhos Independentes

6.1 Considerações Iniciais 64

6.2 Construção do Algoritmo 65

6.2.1 Procedimento para Retirada de Nós e Arcos da Rede 67

6.2.2 Critério que Define uma Boa Solução do Algoritmo 69

6.3 Critérios de Parada do Algoritmo 70

6.4 Estrutura do Algoritmo 72

6.5 Síntese do Algoritmo 76

6.6 Exemplo de Aplicação do Algoritmo 77

6.7 Dados Necessários para Utilização do Algoritmo 85

6.8 Alocação do Fluxo nas Rotas e Cálculo do Tempo Total de Evacuação

86

6.9 Ferramentas Computacionais Desenvolvidas 90

Capítulo 7 - Aplicações do Algoritmo

7.1 Considerações Iniciais 93

7.2 Características Rede Bangu 93

7.3 Identificação das Melhores Rotas Independentes 96

7.4 Resultado da Aplicação na Rede Bangu 103

7.5 Exemplo de Aplicação numa Rede Não Orientada 104

7.6 Testes Realizados: Resultados e Conclusões 106

Capítulo 8 - Conclusão e Recomendações

8.1 Conclusão 110

8.2 Recomendações 111

Bibliografia

113

Anexo A - Manual de Utilização do Programa CHAMA

120

Anexo B - Listagem do Programa CHAMA 127

Page 8: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 1

Introdução

1.1 Considerações Iniciais

O Planejamento de Transportes é uma área de estudo que tem por objetivo propor e

avaliar medidas que visem melhorar a movimentação de pessoas e bens. No caso das

pessoas, esta movimentação ou deslocamento é gerada pela necessidade dos indivíduos

de participar nas diversas atividades econômicas e sociais desenvolvidas numa

determinada região. Considera-se, então, que a demanda por transporte é uma demanda

derivada, ou seja, depende de alguma atividade que torne necessário o deslocamento

dos indivíduos.

Desta forma, para planejar transportes faz-se necessário um conhecimento profundo da

região de estudo, compreendendo as diversas atividades desenvolvidas e a distribuição

espacial das mesmas, além das características da população.

Com base neste conhecimento, pode-se sugerir a implantação de novos sistemas de

transporte coletivo, a construção de novas vias, túneis, sistemas adequados de

sinalização e outras medidas que possam a curto, médio ou longo prazo melhorar a

mobilidade da população.

A relação transporte/ uso do solo tem forte influência neste planejamento pois, assim

como o transporte induz o desenvolvimento de uma região, algumas atividades, quando

implantadas em áreas densamente ocupadas, geram uma demanda que nem sempre é

absorvida adequadamente pelo sistema de transporte existente, trazendo como

conseqüência os constantes engarrafamentos, o aumento dos níveis de poluição sonora e

do ar, e também das horas perdidas no transporte, fatores estes que influem

negativamente na qualidade de vida da população. Cabe, então ao planejador de

Page 9: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

transportes adequar o sistema à situação, através da previsão contínua e correta dos

deslocamentos necessários da população.

Pode-se dizer que o planejamento de transportes visa definir a demanda por transporte,

avaliar como esta demanda vai se distribuir nos sistemas atuais e adequar estes a ela, ou

propor a implantação de novos sistemas para absorver esta demanda.

O planejamento de transportes numa situação de emergência tem um objetivo mais

restritivo: tem em vista um deslocamento gerado pela necessidade de evacuar a

população de uma área que apresenta riscos de vida e a partir de uma demanda de

transporte, definir no sistema existente, que vias (rotas) devem ser utilizadas para que as

pessoas se desloquem com segurança e saiam das áreas de risco no menor tempo

possível. Diante disto, cabe ao planejador estudar as melhores opções de rotas para o

escoamento rápido e seguro dessa população; dentro deste contexto é que se pretende

que o desenvolvimento deste estudo se situa .

1.2 Objetivo da Tese

Este trabalho tem por objetivo o desenvolvimento de um método de alocação de fluxo e

de definição de rotas a serem utilizadas na distribuição de veículos, numa rede

rodoviária urbana, para evacuação de uma população em risco, no menor tempo

possível, em uma situação de emergência . Esta distribuição será feita em rotas

disjuntas (sem pontos comuns) por se entender que, desta forma, evitar-se-ão conflitos e

acidentes que podem ocorrer quando dois fluxos de veículos convergem numa mesma

interseção, principalmente numa situação de emergência.

O método visa auxiliar o planejamento prévio para um sistema de emergência e, para a

sua aplicação eficiente, é fundamental que cada habitante da área de risco conheça,

antecipadamente, a sua via de deslocamento. Ele foi desenvolvido utilizando-se técnicas

de alocação de fluxos em grafos aliadas a conceitos de planejamento de transportes.

Page 10: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Em resumo, a contribuição essencial deste trabalho é a proposta de um método para a

identificação de caminhos disjuntos em relação aos vértices (ou nós) numa rede

capacitada.

Para melhor entendimento do método apresentam-se algumas aplicações, para as quais

se desenvolveu um programa computacional.

1.3 Posicionamento do Trabalho

O tratamento de uma situação de emergência envolve basicamente três estratégias de

ação (Perry et al., 1981) quais sejam: (1) o controle do desastre, quando possível; (2) a

evacuação da população em risco; e (3) medidas mitigadoras pós-desastre.

Dentro deste contexto, este trabalho trata do segundo item, ou seja, aquele referente ao

planejamento da evacuação da população em risco. O desenvolvimento de planos com

essa finalidade visa o estabelecimento de procedimentos a serem seguidos a partir de

uma situação de calamidade, visando áreas propensas a acidentes de grande porte,

naturais ou não: locais próximos a usinas nucleares, localidades sujeitas a grandes

enchentes, terremotos, furacões, ou para situações que implicam em bloqueio de ruas ou

paralisação de sistemas de transporte para os quais deveriam ser tomadas providências

que permitissem a movimentação da população. Quando os acidentes ocorrem, as

providências podem ser mais fácil e agilmente tomadas se existir um plano pré-

estabelecido.

A elaboração de um plano envolve um estudo prévio das características e condições

específicas da região de estudo, incluindo, entre outros, a rede viária, a demanda por

transporte, o fluxo de veículos gerado e a rede de transporte existente. Além disso, é

necessário que se disponha de um método de alocação de fluxo que permita a escolha

das rotas a serem utilizadas, procurando eliminar interferências no interior da área de

modo a assegurar o escoamento dos veículos.

Page 11: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A necessidade de um planejamento para estas situações se tornou evidente desde a

década passada, em vista de grandes desastres como os ocorridos nas usinas nucleares

de Three Mile Island (USA- 1979) e Chernobyl (União Soviética - 1986), onde se fez

necessário dispor de planos que dessem apoio para evacuação da população envolvida

no acidente, com maior segurança e rapidez, bem como se mostrou importante

instrumento de análise de outras situações de emergência, como o terremoto ocorrido no

México em 1985.

1.4-Características do Problema Estudado

A evacuação da população é a parte mais importante de um plano de emergência. Em

áreas em torno de usinas nucleares, por exemplo, quando ocorre um acidente, o risco de

intoxicações ou envenenamento por nuvens radioativas e outras conseqüências exige

que se evacue a população próxima o mais rápido possível.

Alguns estudos mencionados em Perry et al. (1981) concluíram que o processo de

evacuação pode ser mais efetivamente cumprido quando as pessoas envolvidas têm

conhecimento prévio de uma rota de saída e de um destino seguro, pois isto auxilia a

minimizar as dificuldades de coordenação dos fluxos e evitar que pessoas se desloquem

para locais não apropriados. Este trabalho discute também um ponto importante e

evidente que é a maior lentidão das pessoas em agir quando não estão informadas sobre

um plano de evacuação. Recomenda-se, então, que a definição de rotas e de abrigos

seguros devam fazer parte de um plano de emergência para a comunidade e que o

mesmo deva ser ampla e constantemente divulgado para que a evacuação da população

seja feita com maior eficiência..

Para se chegar à definição destas rotas, algumas etapas devem ser executadas dentro de

um procedimento básico, visando o objetivo final, que é a distribuição do fluxo na rede

Page 12: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

e o cálculo do tempo total de evacuação através de métodos de alocação e distribuição

de fluxo.

A primeira etapa corresponde à criação de um banco de dados que deve conter

informações as mais abrangentes possíveis sobre a população e a região em estudo. No

caso de usinas nucleares, dependendo da dimensão da mesma, é estabelecido um raio de

abrangência como limite da área de estudo. No caso de acidentes naturais, a região de

estudo deve englobar as áreas mais propícias a estes acidentes e as regiões vizinhas às

mesmas. Ou seja, de acordo com a natureza do risco de acidente e de sua localização,

faz-se necessário a delimitação da região e, quando for o caso, a sua divisão em

microregiões para estabelecer os locais de abrigo e a rede viária correspondente.

Do ponto de vista do planejamento de transportes, segundo Boeri (1987) , devem

constar do banco de dados as seguintes informações:

• características da comunidade, rural ou urbana;

• densidade populacional, classificada por idade e tipo de residência;

• situação da população em termos de propriedade ou disponibilidade de veículos

particulares;

• localização de abrigos ou áreas seguras;

• geometria e características da rede: comprimento e largura das vias, velocidade e

volume médio diário de tráfego nas vias e capacidade das mesmas.

A segunda etapa compreende um processo de determinação da demanda de fluxo de

tráfego com base nos dados sobre população, densidade populacional e na propriedade

de veículos. Também em estudos realizados por Perry et al. (1981), constatou-se que a

maioria da população utiliza veículos particulares ( próprios, de vizinhos ou parentes)

durante a evacuação. Isto, porém, não inviabiliza o caso em que haja necessidade de

utilização do transporte coletivo por ônibus para auxiliar na evacuação.

A terceira etapa compreende a definição das rotas e a distribuição do fluxo nas mesmas,

fazendo-se uso de um método de alocação de fluxos.

Page 13: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A quarta etapa do procedimento, com base nos resultados do método de alocação, define

o tempo total de evacuação da população.

Para testar opções, pode-se fazer uma simulação das características da rede .

A figura 1.1 ilustra as etapas do processo.

Fig.1.1 - Etapas de um Plano de Evacuação

De uma forma resumida, pode-se dizer que no planejamento da evacuação, os seguintes

fatores devem ser analisados para tornar o plano mais eficiente e bem sucedido

(Carrilllo 1986, Van den Damme,1986):

1.Coleta de Dados sobre a região de

estudo

2.Geração de Fluxos

Simulação das características da rede e de distribuição do fluxo

4.Cálculo doTempo médio total de

Evacuação

3.Identificação das Rotas de evacuação e

a Distribuição do Fluxo nas mesmas

Identificação dos gargalos da rede

Page 14: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

• o tamanho da população em risco que deve ser evacuada;

• o volume de tráfego gerado;

• as condições da rede viária e rotas possíveis de serem utilizadas para determinação

das rotas em potencial, e

• a identificação de pontos de estrangulamento em potencial ao longo das rotas de

evacuação.

Considerando-se que, numa situação de emergência, podem ocorrer episódios de

tumulto e pânico, as rotas a serem utilizadas devem ser tais que evitem conflitos de

tráfego, especificamente nas interseções. Além disso, elas devem ser predefinidas e a

população previamente informada de quais usar ao ocorrerem emergências.

1.5 Importância do trabalho

Na área de Planejamento de Transportes, este trabalho, além de contribuir para o

planejamento de situações de emergência, tem a possibilidade de ser utilizado na

Engenharia de Tráfego no sentido de identificar corredores para escoamento do fluxo

nas horas de pico ou na ocorrência de grandes eventos, com uma grande concentração

de veículos durante um determinado período. Na vigência de suas premissas básicas, ele

pode ser aplicado tanto no contexto urbano para transporte de passageiros, como em

termos regionais para o transporte de carga, seja no sistema rodoviário ou mesmo no

ferroviário.

Para a Pesquisa Operacional, considera-se que o algoritmo desenvolvido contribui para

a otimização, numa rede ou num grafo qualquer, de um conjunto de caminhos disjuntos

pelo vértice pelos quais se possa passar uma quantidade máxima de fluxo no menor

tempo possível. Dentro deste aspecto, podem ser estudadas, dentre outras, redes de

comunicaçãoe redes para distribuição de fluxos diferenciados.

Page 15: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Deve-se ressaltar também, como contribuição, o procedimento desenvolvido no capítulo

5, para determinação do número de caminhos disjuntos entre dois nós específicos numa

rede orientada.

1.6 Estrutura da Tese

Este trabalho é desenvolvido em oito capítulos e um anexo.

No capítulo 1, apresentou-se o objetivo da tese e algumas considerações gerais sobre

planejamento de transportes e o problema estudado.

No capítulo 2, apresentam-se alguns modelos e métodos utilizados para planejamento de

transportes em situações de emergência.

Nos capítulos 3 e 4, o estado da arte a respeito dos algoritmos clássicos para otimização

de rede e modelos para planejamento de transporte.

No capítulo 5, discute-se o método de alocação a ser utilizado, faz-se uma abordagem

sobre caminhos disjuntos e formula-se o problema em estudo.

No capítulo 6 propõe-se um algoritmo para resolução do problema formulado e, no

capítulo 7 apresentam-se exemplos de aplicações do mesmo.

No capítulo 8 apresentam-se a conclusão sobre o trabalho desenvolvido e algumas

recomendações para o prosseguimento do mesmo.

No anexo A apresenta-se um manual para utilização do programa desenvolvido para

resolver os passos do algoritmo proposto.

Capítulo 2

Page 16: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Um Estudo sobre Modelos de Planejamento de

Transportes Para Situação de Emergência

2.1- Considerações Iniciais

Com o objetivo de definir o método de alocação de fluxos em redes a ser utilizado ou

adaptado ao problema, fez-se inicialmente uma pesquisa bibliográfica sobre os métodos

utilizados em situações de emergência em estudos já realizados no Brasil e no exterior.

2.2 - Modelos de Planejamento de Transportes para Situação

de Emergência

Os modelos a seguir apresentados se aplicam basicamente aos locais específicos para os

quais foram desenvolvidos e se preocupam principalmente em analisar a fluidez do

tráfego, fazendo uso simulações, considerando em alguns casos a situações de pânico

para avaliar o comportamento da rede. Alguns modelos, como o IEMIS (Jaske,1986) e o

TEDSS (Hobeika et al.,1986) apresentam módulos que formam um sistema não

somente de avaliação do comportamento da rede, mas levando também em conta

informações sobre a região estudada, com uma constante atualização desses dados que

possibilitam avaliar vários cenários para um melhor planejamento. O modelo

desenvolvido no Instituto Militar de Engeharia-IME (Vieira et al., 1989), envolvendo

um estudo inicial do problema, que motivou este trabalho, está direcionado para as

características da rede de Angra dos Reis e procura principalmente estabelecer o número

de veículos necessários para realizar a evacuação e a distribuição desse fluxo nas

principais vias e sistemas de transporte de saída da cidade, sem se preocupar com a

definição de rotas ótimas.

Page 17: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Os modelos que usam simulação procuram avaliar de que modo o fluxo gerado se

distribui na rede após um aviso de evacuação, procurando identificar os maiores

problemas na rede e planejar melhor o transporte. Porém, cabe ressaltar que os modelos

apresentados, com exceção do TEDSS (Hobeika, 1986) e o do IME, são considerados

“caixas pretas”, tendo-se poucas informações sobre as técnicas de alocação utilizadas

por eles.

Em geral, os modelos tomam como base a malha rodoviária e suas características e

conceitos de Engenharia de Tráfego. Os dados de entrada variam segundo o nível da

simulação e servem para montar a rede. Como resultado, fornecem o tempo de

evacuação, as rotas e os prováveis gargalos na rede.

A seguir apresenta-se uma breve descrição de alguns modelos pesquisados.

Modelo NETVAC1

O modelo NETVAC1(in Hobeika,1985) foi desenvolvido com o objetivo de estimar o

tempo de evacuação para áreas próximas a instalações nucleares e tem sido aplicado

somente neste contexto. Este modelo foi idealizado por Yoseff Sheffi, Mahras Sani e

Warren B. Powell do Massachusetts Institute of Technology (MIT). Trata-se de um

modelo de simulação macroscópica da rede de transporte, sensível à topologia da rede,

aos tipos de interseção e de controle e a uma grande variedade de estratégias de

gerenciamento de evacuação. Apresenta-se o modelo como adequado a grandes redes e

com um modesto custo computacional .

Suas características principais são a seleção dinâmica de rotas, o tratamento prioritário

de fluxos nas interseções sinalizadas e uma análise de capacidade das vias.

Modelo NESSY - 4 (Hobeika et al., 1985)

Este modelo analisa a eficiência das medidas de prevenção ao comportamento de pânico

causado pela evacuação em massa da área do centro comercial de uma cidade no Japão,

Page 18: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

após o aviso de um terremoto. Compreende um simulador iterativo de fluxo em rede

desenvolvido no Centro Computacional da Universidade de Nagoya no Japão.

Como estudo de caso, ele foi aplicado para análise de evacuação em massa na localidade

de Sakae, em Nagoya, após o aviso de um terremoto, obtendo-se várias informações

úteis para prevenir situações de pânico. Pode ser considerado uma ferramenta eficiente

para simular e avaliar a rede numa situação de evacuação em massa, contudo não foi

suficientemente avaliado e testado fora do Japão.

Modelo IEMIS ( Integrate Emergency Management Information Systems) (Jaskes,

1986)

Combina recursos de bancos de dados, um conjunto de modelos de simulação, técnicas

de comunicação e de recursos gráficos que permitem avaliar estratégias para uma

decisão mais precisa. Todos os estudos de cenários de acidentes ou desastres envolvem

uma combinação desses elementos.

A tomada de decisão é baseada num sistema que simula a difusão da contaminação do

ar e da água e o tempo de evacuação da população atingida. Os sistemas de difusão e de

evacuação estão integrados para avaliar vários cenários.

O I-Dynev ( Interactive Dynamic Evacuation) é o modelo de simulação utilizado no

IEMIS para evacuação e compreende uma série de submodelos num sistema integrado.

O principal destes é o TRAFLO que compreende os seguintes programas:

1. NETFLOW, para simulação macroscópica da rede urbana.

2. FREEFLOW, modelo macroscópico para “freeways”, representando o tráfego em

função da taxa de fluxo, da densidade e velocidade média em trechos de “freeways”.

3. TRAFFIC, modelo de alocação de fluxo.

O IEMIS teve sua origem no “Radiological Emergency Preparedness Program” da

FEMA - Federal Emergency Management Agency, onde é utilizado como um meio de

Page 19: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

avaliar planos e testar diversos cenários de acidentes em torno de instalações nucleares e

ainda está sendo expandido para ser utilizado em planos de evacuação no caso de

furacões.

Modelo TEDSS (Transportation Evacuation Decision Suppport System )

(Hobeika et al., 1986)

Trata-se do modelo de planejamento de transporte em situação de emergência

desenvolvido pela Virginia University; compreende uma série de módulos, dentre os

quais um banco de dados constantemente atualizado, um modelo de simulação ( que

inclui um método de alocação de fluxo por caminhos múltiplos) e uma interface gráfica.

Foi desenvolvido visando situações de emergência decorrentes de acidentes naturais,

como enchentes e terremotos.

O sistema auxilia o usuário na preparação de um plano detalhado para evacuação

durante a fase de planejamento, sob diferentes cenários de emergência, incluindo tempo

de evacuação e a alocação da população ameaçada em diferentes abrigos. Uma de suas

vantagens é permitir mudanças durante a operação de evacuação, possibilitando ao

usuário avaliar as decisões a serem tomadas.

O TEDSS baseia-se num sistema de conhecimentos básicos obtidos a partir da

experiência de especialistas em emergência e outras informações relacionadas a

desastres. Compreende os seguintes módulos:

1. controle do sistema;

2. banco de dados;

3. modelo de simulação;

4. interface gráfica.

Neste sistema utiliza-se um modelo analítico para estimar o tempo de evacuação sob

condições de desastre. Este tempo é então usado pelo modelo para simular a alocação do

tráfego numa malha rodoviária. Os resultados do modelo possibilitam uma estimativa

do tempo apropriado para uma evacuação ordenada, a adoção de estratégias de

Page 20: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

planejamento de transportes para aliviar os gargalos, a alocação do pessoal responsável

e a distribuição de recursos.

Ele foi aplicado na cidade de Virginia Beach, (VA), para o desenvolvimento de um

plano de evacuação em caso de enchente ou furacão, possibilitando a avaliação de

algumas estratégias de operação de tráfego para reduzir o tempo de evacuação, como a

utilização de acostamento de “freeways”, inversão de mão em algumas vias, mudança

no tempo de sinais nas interseções e outras. O plano de evacuação incluindo todas estas

informações foi então armazenado no módulo de conhecimento básico do TEDSS para

futuras aplicações.

Modelo do Instituto Militar de Engenharia (Vieira e Lopes, 1989)

Trata-se de um plano desenvolvido no IME para o caso de Angra dos Reis (RJ),

constituindo uma proposta de plano de evacuação em caso de acidente na usina

nuclear. Para efeito desse trabalho foram considerados acidentes que pudessem por em

risco as populações vizinhas à usina, em especial no caso de vazamento de uma nuvem

radioativa. O desenvolvimento de um plano de evacuação para esta região objetiva obter

respostas mais eficazes por parte da gerência encarregada de administrar a emergência

que, no caso de Angra dos Reis, foi delegada ao Exército.

O estudo prevê a evacuação da população num raio de 15 km ao redor das usinas em um

prazo de 24 horas, apresentando os seguintes contornos:

a) população a ser evacuada ;

b) tempo previsto para evacuação;

c) premissas do plano de evacuação:

⇒ utilização máxima do potencial dos subsistemas de transporte

disponíveis, entre eles o rodoviário e o ferroviário;

⇒ uso de uma provável ponte aérea entre Angra dos Reis e o Rio de

Janeiro, reservada às equipes médicas e de apoio à emergência;

Page 21: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

⇒ uso de uma hidrovia entre Angra dos Reis e o Porto de Sepetiba.

A técnica utilizada foi a Programação Linear, onde a função objetivo é minimizar o

somatório dos momentos de transporte ( produto da distância pelo fluxo de passageiros

entre nós da rota). As variáveis de decisão estão sujeitas a dois grupos de restrições,

sendo que o primeiro tenta compatibilizar o fluxo de passageiros com a capacidade das

vias, e o segundo, os fluxos de passageiros dentro de cada nó.

O modelo foi implantado em microcomputador e chegou-se a uma solução que

apresenta o menor tempo de evacuação: 7 horas. Esta solução permitiu determinar o

fluxo ótimo de passageiros em cada ligação da malha, fornecendo elementos para que os

responsáveis pela evacuação possam gerir o controle de tráfego e requisitar o número de

veículos rodoviários e ferroviários necessários a operação.

Cabe ressaltar que o modelo acima não leva em consideração a distribuição do fluxo no

interior da malha urbana, porque considera apenas como vias de evacuação os principais

corredores de transporte viário e ferroviário de saída da cidade.

2.3 - Considerações Finais

Conforme se pode observar, entre os modelos pesquisados há aqueles do tipo “caixa

preta”, nos quais não se pode identificar o método de alocação utilizado, e aqueles que

embora apresentando os métodos usados, têm no entanto, como principal objetivo a

verificação da distribuição do fluxo na rede e apenas partir deste ponto, verificar os

problemas que possam ocorrer na mesma, ou seja, não é dada uma prioridade na

identificação das melhores rotas..

O desenvolvimento desse trabalho visa a identificação de rotas que não se interceptam,

para que a avaliação da distribuição do fluxo seja feita sobre as mesmas. Considerando-

se, neste caso, que seja feito um planejamento prévio para evacuação da população, e

Page 22: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

para isto faz-se necessária inicialmente, a determinação das melhores rotas,

possibilitando disciplinar melhor a distribuição do fluxo gerado.

Os modelos apresentados utilizam de uma forma geral um processo de simulação

considerando que a população decide no momento da evacuação que vias utilizar. E o

modelo proposto neste trabalho tem por objetivo definir previamente as melhores rotas,

de modo que a população, tendo conhecimento da mesma, possa melhor se distribuir

quando da evacuação.

Capítulo 3

Algoritmos para Otimização de Rotas

Page 23: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.1 Considerações Iniciais

No presente capítulo são apresentados algoritmos clássicos de caminho mínimo e de

alocação de fluxo em redes, precedidos por alguns conceitos básicos sobre grafos e

redes.

Um maior aprofundamento sobre Teoria dos Grafos deve-se buscar em Boaventura

Netto(1996), Berge (1985) e Harary (1972) entre outros.

3.2 Definição e Conceitos Básicos sobre Grafos Muitas redes físicas, tais como telefone, oleodutos, distribuição de água, transportes e

outras podem ser modeladas por estruturas diagramáticas chamadas de grafos, que

podem ser representados por figuras geométricas, formada de pontos ou nós e de linhas

ou arestas que ligam alguns destes pontos.

Formalmente, um grafo G = (X,A) é uma estrutura composta por um conjunto X = {x1,

x2, ..., xn }de elementos chamados vértices ou nós e um conjunto A = {a1, a2, ..., am },

de pares de elementos, chamados arcos ou arestas. O elemento ak = (xi, xj) é um arco

que possui como extremidades os vértices xi e xj que pertencem ao conjunto X.

3.2.1 - Classificação

a) Quanto à orientação

Os grafos podem ser orientados ou não orientados. São orientados quando seus arcos

têm um sentido definido, ou seja, um nó definido como extremidade inicial (origem)

e o outro nó de extremidade final (destino). Os arcos orientados são representados

Page 24: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

por uma seta indicando o sentido dos mesmos. Nos grafos não orientados não existe

esta noção de sentido único e, nestes casos, os arcos são chamados de arestas.

b) Quanto à escala ou valor

Os grafos podem ter ou não escalas ou como também é dito, podem ser ou não

valorados. Nos grafos valorados os arcos recebem valores ou pesos, positivos ou

negativos. Num caso mais complexo, é possível atribuir valores tanto a arcos quanto

aos nós. Uma rede é um grafo valorado.

c) Quanto à Planaridade

Um grafo planar é aquele em que os arcos somente se tocam sobre um vértice ou nó,

podendo consequentemente, ser projetado sobre um plano sem perder suas

características. Um grafo não-planar, no entanto, quando projetado sobre um plano,

apresenta interseções de arcos não coincidentes com um nó, em virtude de sua

estrutura espacial.

3.2.2 - Elementos de Grafos

a) Laço

É um arco que se inicia num nó e termina nele mesmo.

b) Arco ou nó incidente

Um arco ou nó é incidente a outro nó quando este é destino ou origem do arco. Nos

grafos orientados, diz-se que um arco é incidente interiormente a um nó quando este

é destino deste arco, ou incidente exteriormente quando o mesmo é origem do arco.

c) Grau de um nó

É medido pelo número de arcos incidentes num determinado nó. No caso de grafo

orientado existe a noção de semigrau interior, número de arcos incidentes

interiormente ao nó (chegando à ele), e semigrau exterior que corresponde ao número

de arcos incidentes exteriormente ao nó (saindo dele).

Page 25: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

d) Vértices adjacentes

Dois vértices são considerados adjacentes um ao outro se existe um arco unindo-os.

e) Cadeia

Uma cadeia é uma seqüência de arcos de um grafo (orientado ou não), tal que cada

arco tem uma extremidade em comum com o antecedente (à exceção do primeiro) e

a outra extremidade em comum com o arco subseqüente (à exceção do último). O

conceito de cadeia é de grafo não-orientado e o tamanho de uma cadeia corresponde

ao número de arcos que a compõem.

f) Caminho

Caminho é uma cadeia na qual todos os arcos possuem o mesmo sentido. O conceito

de caminho, é portanto, orientado.

g) Cadeia ou Caminho Simples ou Elementar

Uma cadeia ou um caminho são considerados simples quando não repetem ligações

(arcos). São elementares quando não repetem vértices.

g) Ciclo

Ciclo é uma cadeia simples na qual o nó inicial e o nó final se confundem ( cadeia

fechada).

e) Circuito

Circuito é um caminho simples e fechado em um grafo orientado.

3.2.3 - Características Estruturais

a) Um grafo é conexo (ou fracamente conexo) quando todo par de vértices do grafo

existe é ligado por uma cadeia .

b) Um grafo é fortemente conexo (f-conexo) quando existe um caminho de cada nó para

qualquer outro nó do grafo.

Page 26: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

c) Grafo trivial é aquele representado por um único vértice ou nó.

c) Grafo completo é aquele onde cada nó é adjacente a todos os outros nós do grafo.

d) Uma árvore é um grafo conexo sem ciclos.

e) Um subgrafo é uma parte de um grafo, obtido pela supressão de vértices e dos arcos

adjacentes a estes vértices.

f) Um grafo parcial de um grafo é obtido pela supressão de arcos deste.

3.3 - Algoritmos de Caminho Mínimo

Os algoritmos de caminho mínimo determinam a rota de menor tempo, distância ou

custo entre um par ou vários pares de origem e de destino de uma rede.

Existem diferentes formulações (Steenbrick 1974, Jensen 1987 ) para um problema de

caminho mínimo, que são:

a) de um nó para outro nó;

b) de um nó para todos os outros nós da rede;

c) entre todos os nós da rede, e

d) k-caminhos mínimos entre dois nós.

Os casos (c) e (d) envolvem algoritmos matriciais; os outros usam, em geral, estruturas

de árvore.

Page 27: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Os algoritmos em matriz são habitualmente, de programação mais fácil, e o tempo

computacional é exatamente determinável e independente da estrutura da rede

(Steenbrick 1974).

Quando se deseja o caminho entre todos os pares de nós e quando todos os nós estão

diretamente conectados com todos os outros nós (redes densas), os algoritmos em matriz

são mais eficientes que os algoritmos em árvore. Mas quando os nós estão diretamente

conectados com poucos nós ( no máximo 4 nós - redes esparsas) e quando somente o

caminho entre um subconjunto de nós é desejado, então os algoritmos em árvore são

mais eficientes quanto ao tempo computacional. Em geral os algoritmos em árvore

parecem ser mais úteis que os algoritmos em matriz para redes de transporte (Steenbrick

1974).

Os algoritmos de caminho mínimo, apresentados a seguir, consistem essencialmente de

duas operações (Syslo 1983, Minieka 1990): adição e minimização. Certamente o

tempo destas operações variam com os computadores utilizados; por conveniência,

assume-se que estas duas operações tem equivalentes tempos computacionais.

Apresentam-se a seguir alguns algoritmos que são mais comumente discutidos e

utilizados na bibliografia pesquisada. Para a determinação de caminhos mínimos entre

dois vértices apresentam-se os algoritmos de Dijkstra e Ford/Moore/Bellman, que

possuem estrutura em árvore, e algumas variações dos mesmos que surgiram

posteriormente. Para a determinação de caminhos mínimos entre todos os pares de

vértice de um grafo, apresentam-se os algoritmos matriciais de Floyd, e Dantzig e para

o cálculo de k-caminhos mínimos, apresentam-se os algoritmos “Double Sweep” e de

Yen.

3.3.1 Caminho Mínimo entre Dois Vértices

Existem dois algoritmos básicos, um desenvolvido por Dijkstra(1959) e outro

desenvolvido por Ford(1956), Moore(1957) e Bellman (1958) em épocas diferentes mas

com procedimentos semelhantes, ambos utilizados para a determinação de caminhos

Page 28: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

mínimos entre dois vértices de uma rede e podendo fornecer os caminhos mínimos a

partir de um vértice para todos os outros.

Esses algoritmos (in Steenbrick 1974, Syslo 1983, Jensen 1987, Minieka 1990)

consistem basicamente de um passo inicial (passo zero), um passo iterativo e uma regra

de parada. O passo inicial corresponde à atribuição do valor da distância inicial do nó,

que se definiu como origem, para todos os demais nós da rede. A distância da origem a

ela mesma é zero e para os demais nós define-se como infinita (ou um valor

suficientemente grande). O segundo passo corresponde a uma fórmula de recorrência

utilizada para ir melhorando (diminuindo) o tamanho do caminho entre a origem e os

demais nós a cada iteração. E o terceiro passo corresponde à regra de parada.

A diferença principal entre estes algoritmos é que o de Dijkstra só pode ser utilizado em

redes com arcos com valores positivos, enquanto que o de Ford e outros pode ser

aplicado em redes com arcos de valores negativos, desde que não hajam ciclos negativos

(a soma dos valores dos arcos de algum ciclo é negativa). Ambos os algoritmos

apresentam desempenhos semelhantes para uma mesma rede (Jensen 1987, Minieka

1990).

Dantzig (1960) e Nicholson (1960) desenvolveram o algoritmo de “duas árvores” de

Dijkstra (Dijkstra two-tree algorithm), cuja idéia é construir árvores de caminhos

mínimos de um nó origem S e de um nó de destino T simultaneamente, de modo que ao

se chegar a um nó comum, o caminho mínimo entre S e T tenha sido determinado. Esta

idéia se mostrou interessante do ponto de vista de tempo computacional, conforme foi

constatado posteriormente por Helgason (1988).

Algumas modificações em relação ao algoritmo de Ford foram posteriormente

sugeridas por outros autores como Steenbrink, Esopo e Pape (1980) para melhorar o

desempenho computacional. Essas modificações consistem basicamente de heurísticas

para melhor definir o nó a ser “examinado” a cada iteração e chegar mais rápido à

solução final.

Page 29: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.3.2 Caminho Mínimo entre Todos os Pares de Vértices de uma Rede

Para determinação de caminhos mínimos entre todos os pares de vértices poder-se-ia

utilizar os algoritmos anteriores, tomando-se como origem cada um dos vértices do

grafo, ou seja, repetindo-se n vezes (n sendo o número de arcos) o algoritmo de Dijkstra

ou o de Ford.

Para resolver este problema Floyd (1962) e Dantzig (1967) desenvolveram algoritmos

cuja principal característica é a utilização de matrizes na determinação dos caminhos

mínimos.

No passo inicial desses algoritmos, os vértices do grafo são numerados de 1 até n, e se

define uma matriz n x n, chamada D0 , cujos elementos correspondem aos valores dos

arcos entre pares de vértices, se estes existem . Caso não exista um arco ligando um par

de vértices então o valor é ∞ . A diagonal principal recebe valores nulos.

No algoritmo de Floyd, (in Steenbrick 1974, Minieka 1990, Boaventura 1996) a partir

da matriz inicial (D0 ) é criada, a cada iteração, uma nova matriz utilizando-se uma

fórmula de recorrência. São, então, determinadas n matrizes n x n, cada matriz Dk (k =

1,2, ..., n) é obtida da matriz anterior Dk-1 . A matriz final Dn é a que apresenta os

caminhos mínimos entre todos os nós da rede.

O algoritmo de Dantzig (in Steenbrick 1974, Minieka 1990) apresenta as mesmas

características do algoritmo anterior, embora trabalhe a cada iteração com matrizes de

tamanhos diferentes. Neste algoritmo são também utilizadas n matrizes para se chegar

ao resultado final, porém as matrizes são de tamanhos k x k, onde k representa o passo

iterativo como no algoritmo anterior, e na matriz final Dn , ou seja, para k = n , o i,j-

ésimo elemento representa o tamanho do menor caminho do nó i ao nó j.

Ambos os algoritmos têm o mesmo desempenho computacional (Syslo 1983, Minieka

1990). O de Dantzig, por trabalhar com matrizes menores, requer menos espaço para

armazenar dados.

Page 30: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.3.3 -Algoritmos de k-Caminhos Mínimos

O objetivo deste tipo de algoritmo é definir os k-menores caminhos entre dois vértices (

o 1o menor, o 2o menor ,......, o ko menor ). Este tipo de problema é importante, na

medida em que, por exemplo, deseja-se verificar mais de uma opção de caminho para

um determinado transporte. Existem dois tipos de problemas de k-caminhos mínimos,

um em que não se permite a repetição de vértices nos caminhos e outro em que a

repetição de vértices (formando “loops”) é permitida.

Para o primeiro tipo de problema existem alguns algoritmos propostos por Bock,

Kantner e Haynes (1957), Pollack (1961), Clarke, Krikorian e Rausan (1963),

Sakarovitch (1966) e outros. Uma análise destes algoritmos pode ser vista em Yen

(1971), que faz um estudo comparativo em termos de desempenhos e das

características dos mesmos.

Para o segundo tipo alguns algoritmos foram propostos por Hoffman e Pavley(1959),

Bellman e Kalaba (1960), Sakarovitch (1966) e outros. Shier (1976) apresenta um

estudo sobre este tipo de algoritmo, onde destaca o algoritmo “Double Sweep” em

termos de desempenho para redes densas e o algoritmo LS (Label Setting) para redes

esparsas.

O algoritmo “Double Sweep” trabalha com matrizes e também utiliza as operações de

adição e minimização, porém, efetuadas com conjuntos Rk de vetores representando o

conjunto de tamanho dos k- caminhos entre dois vértices, em ordem crescente de

tamanho.

Assim como nos algoritmos em matriz mostrados anteriormente, inicia-se o processo

com uma matriz D0 e como se trabalha com uma matriz de vetores, define-se d0i j =

{d0ij1, d0

ij2 ,..., d0ijk } ∈ Rk , como o conjunto dos k menores arcos ligando os vértice i

ao vértice j . Se não existirem k arcos os valores adicionais no vetor serão iguais a

infinito (∞).

Page 31: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A partir da matriz D0, utiliza-se uma fórmula de recorrência para ir determinando os

caminhos e formando novas matrizes. Essa operação só deixa de acontecer quando

nenhum decréscimo nos valores do vetor de k-caminhos mínimos é possível. Mais

precisamente, a parada ocorre quando os valores dos vetores encontrados no final da

iteração t+1 coincide com os valores da iteração t (t>0).

Além do “Double-Sweep”, os algoritmos de Floyd e Dantzig generalizados (Minieka,

1992) para k-caminhos mínimos trabalham de forma semelhante em termos de

operações.

O algoritmo “Double-Sweep” ( in Minieka 1992, Shier 1974 ) apresenta como

característica principal a utilização de uma seqüência de iterações alternadas de

“forward”(para frente) e “backward” (para trás).

Para isto, trabalha-se com uma partição da matriz D0 , uma matriz triangular superior

(U) e uma matriz triangular inferior (L). Durante as iterações “forward”, os nós são

examinados na ordem 1,2,...,n , enquanto que nas iterações “backward” os nós são

examinados na seqüência n,..., 2, 1. Quando se examina um nó j durante as iterações

“forward”, somente os arcos i<j são processados; similarmente, somente os arcos (i,j)

com i>j são avaliados durante as iterações “backward”.

O algoritmo de Yen determina os k-menores caminhos sem repetição de nós nos

caminhos, ou seja, sem “loops”. Utiliza para tanto um algoritmo de caminho mínimo

para determinar o menor deles e a partir deste, a cada iteração são obtidos novos

caminhos que são formados a partir de subcaminhos obtidos dos anteriores. Assim, o

segundo caminho é obtido do primeiro, o terceiro a partir do segundo e o k-ésimo a

partir do caminho k-1. Trabalha-se com duas listas: uma contendo os menores caminhos

encontrados até a iteração presente e a outra com os caminhos candidatos.

O desempenho dos algoritmos de k-caminhos mínimos, em termos de tempo

computacional, depende basicamente do k, ou seja quanto maior o valor de k, maior o

tempo de operação do algoritmo (Minieka 1990, Shier 1982) .

Page 32: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.4 - Algoritmos de Fluxo Máximo

Estes algoritmos objetivam verificar a capacidade máxima de fluxo numa rede a partir

de um nó origem (fonte) até um nó destino (sumidouro). Nestes casos, cada arco possui

um valor que indica a capacidade máxima de fluxo que pode passar por ele ( limite

superior ) e, dependendo da rede, ou do objetivo da análise, poderá haver outro valor

que indica o fluxo mínimo (limite inferior) que deve passar pelo arco .

Em termos de redes de transporte, os algoritmos de fluxo máximo são importantes para

uma avaliação da sua capacidade em absorver um determinado fluxo de veículos, ou

seja, podem servir para uma primeira análise das condições da rede, inclusive para

identificar gargalos na mesma.

A idéia básica de um algoritmo de fluxo máximo é encontrar “caminhos de aumento de

fluxo” de uma origem S para um nó de destino T e alocar nestes caminhos a maior

quantidade de fluxo possível, que corresponde a um “fluxo viável”, obedecendoà lei de

conservação de fluxo : “em cada nó, todo fluxo que entra é igual ao fluxo que sai”. Um

fluxo ( fij ) é viável se satisfaz a relação l ij ≤ fij ≤ u ij onde l ij e uij representam

respectivamente, os limites inferior e superior dos arcos.

O primeiro algoritmo se deve a Ford e Fulkerson (1956) e os algoritmos que surgiram

posteriormente visavam melhorar o desempenho computacional deste algoritmo.

Algumas modificações foram também introduzidas na forma de trabalhar a rede, como

foi o caso do algoritmo de Dinic (1970, in Syslo 1983) que introduziu o conceito de

redes em camadas e Mallhotra (1978, in Syslo 1983) que introduziu o conceito de

potencial de um nó.

O algoritmo de Ford Fulkerson (Ford e Fulkerson 1962 ou em Syslo 1983, Jensen 1987,

Kennington 1988, Minieka 1990) aplica um processo de rotulação de nós para definir

rotas com possibilidade de aumento de fluxo. Inicia-se o processo com um fluxo

Page 33: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

qualquer de S para T e procura-se um caminho de aumento de fluxo. Se este caminho é

encontrado, então enviam-se tantas unidades de fluxo quantas forem possíveis por este

caminho. Procura-se então novamente um outro caminho de aumento de fluxo de S para

T, assim sucessivamente até que não haja nenhum outro caminho e neste caso o fluxo

atual é máximo.

Outro algoritmo com características semelhantes ao anterior, chamado algoritmo de

máximo aumento de fluxo (Syslo 1983, Minieka 1990, Bazaraa 1990), segue um

procedimento básico que consiste no desenvolvimento de uma árvore de caminhos (uma

arborescência), ou seja, vários caminhos a partir de uma origem S , ao longo dos quais

os fluxos nos arcos podem ser aumentados. Se o destino T está incluído nesta

arborescência, então o caminho que inclui T será um caminho de aumento de fluxo,

alocando-se nele o máximo de fluxo possível.

Após a alocação do fluxo, é construído, como em outros algoritmos, um grafo de

aumento de fluxo: um grafo auxiliar onde cada arco é substituído por dois arcos, um

arco com a mesma direção porém com capacidade dada pela diferença entre o fluxo e a

capacidade do mesmo e outro com direção inversa e com capacidade igual ao fluxo

corrente no arco, sempre que um desses valores não seja nulo. Uma nova árvore de

caminhos é obtida e, se o nó T não estiver incluído na arborescência, então não existe

possibilidade de aumentar o fluxo de S para T. Neste caso se encerra o processo e o

fluxo corrente é máximo.

O algoritmo de Dinic (in Syslo 1983 ) aplica o conceito de redes em camadas onde não

existem cíclos (rede acíclica). O grafo inicial é dividido em níveis de nós, a partir da

origem S (que pertence ao nível 1) até o último nível camada ao qual pertence o destino

T. A rede estruturada desta forma não apresenta arcos entre os nós de um mesmo nível.

O objetivo é encontrar caminhos com um menor número de arcos e começar enviando

uma quantidade de fluxo de S para T, procurando saturar os arcos até que não mais

existam caminhos de aumento de fluxo até T. Neste ponto a rede é reestruturada,

revertendo-se o sentido dos arcos saturados e definindo-se novamente os níveis dos

nós. Inicia-se novamente o processo de enviar fluxos saturando arcos e assim

Page 34: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

sucessivamente até que não se consiga mais restruturar a rede, ou seja, encontrar um

caminho de S para T .

Posteriormente foi desenvolvido o algoritmo DMKM (Dinic/ Malhotra/Kumar/

Maheshwari ,1978). Trata-se do algoritmo de Dinic ao qual se acrescentou o conceito de

potencial do nó ( in Syslo 1983). Definida a rede em camadas, verifica-se qual nó

possui o menor potencial, ou seja, o menor valor entre a soma da capacidade dos arcos

que saem deste nó e a soma da capacidade dos arcos que incidem sobre ele . O fluxo

referente ao menor potencial é definido então como o fluxo a ser “puxado” da origem S

e o mesmo valor é “empurrado” para o destino T. Este passa a ser o fluxo atual,

eliminando desta forma, pelo menos um arco saturado. A eliminação do arco ocorre na

redefinição da rede em camadas, já que na mesma só aparecem os arcos cuja os sentidos

estão na direção de S para T e quando um arco é totalmente usado (saturado) a seu

sentido muda , conforme descrito anteriormante. Na impossibilidade de se encontrar

caminhos na rede em camadas a mesma é redefinida e reinicia-se o processo.

Nos algoritmos apresentados, pode-se verificar que as modificações introduzidas foram

trazendo uma melhora em termos de desempenho computacional. O algoritmo de

Ford/Fulkerson apresentava a possibilidade de não convergir para uma solução ótima no

pior dos casos. Posteriormente uma modificação introduzida por Edmonds e Karp

(1972) fez com que o algoritmo passasse a ter um desempenho computacional de ordem

O(nm2), onde n é o número de nós e m o número de arcos da rede. Edmonds e Karp

mostraram que se procurarem os caminhos de aumento de fluxo com um número

mínimo de arcos, a convergência é garantida e o desempenho melhorado.

As modificações introduzidas por Dinic fizeram com que o algoritmo original passasse

a ter um desempenho de ordem O(n2m), tornando-o mais simples e mais eficiente,

particularmente quando a rede é densa. Posteriormente, a modificação introduzida por

Malhotra e outros, fez com o algoritmo passasse a ter um desempenho de ordem O(n3)

(Syslo,1983).

Page 35: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.5 - Algoritmos de Custo Mínimo

No item anterior, tratou-se do problema de verificar a quantidade máxima de fluxo que

poderia ser enviada de uma origem S para um destino T, não havendo custo envolvido.

Os algoritmos de custo mínimo tratam do problema de enviar uma quantidade qualquer

de fluxo v de S para T, numa rede de n nós , na qual todos os arcos (i,j) têm uma

capacidade ou limite superior u(i,j) tanto e um custo c(i,j) associado a eles. Este custo

pode representar, por exemplo, tempo, distância, consumo de combustível ou uma

composição destes.

Se o fluxo v que se deseja alocar for menor ou igual ao fluxo máximo F para uma

determinada rede, então podem existir diferentes formas de distribuir este fluxo na rede.

O objetivo dos algoritmos de custo mínimo é, então, encontrar os caminhos de fluxo

que minimizam o custo total, ou seja:

min y = min ( j

n

i

n

c i j f i j==∑∑

11

( , ) ( , ) ) (3.1)

onde c(i,j) representa o custo no arco (i,j) e f(i,j) o fluxo alocado neste arco.

Em termos de Planejamento de Transportes, os algoritmos de fluxo de custo mínimo

podem ser utilizados para definir a melhor distribuição de tráfego considerando-se que

sob o ponto de vista do conjunto de usuários de uma rede, ter-se-ia uma economia média

de algum tipo, uma vantagem se o fluxo fosse distribuído conforme definido pelo

algoritmo. Um exemplo de aplicação deste tipo de algoritmo pode ser visto na tese de

Morales (1993) , na qual se utilizou um algoritmo de custo mínimo para definir as

melhores rotas de distribuição de carga numa rede ferroviária procurando mínimizar um

custo em termos de tempo e investimentos para melhoria da malha ferroviária

Ao se utilizar um algoritmo de custo mínimo para redes de transporte urbanos não se

leva em conta a aleatoriedade da escolha do caminho feita pelo usuário da rede. Ou

seja, as rotas são definidas, a priori, como aquelas que fornecem o menor custo para um

determinado fluxo, procurando-se uma solução ótima de distribuição que leve a um

Page 36: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

custo total médio mínimo mas que nem sempre pode ser percebida pelo usuário da rede

de transporte.

Exemplos de algoritmo para resolver um problema de fluxo a custo mínimo são:

Ford/Fulkerson ,”Out of Kilter” (in Plane 1971, Minieka 1992) e o de Busacker e

Gowen (in Syslo 1983). Dentre estes algoritmos, apresentados a seguir, verificou-se que

o de Busacker e Gowen tem maior facilidade de implementação e bom desempenho

computacional. Ao tratarmos com uma rede que apresente limites inferiores diferentes

de zero para os fluxos nos arcos, o algoritmo “Out of Kilter” parece ser o mais indicado.

O Algoritmo de Ford/ Fulkerson para Custo Mínimo (in Minieka,1990), é uma

generalização do algoritmo de Ford e Fulkerson (1962) para Fluxo Máximo,

considerando o problema da seguinte forma:

Max { pv- j

n

i

n

==∑∑

11

c(i,j) f ( i,j)}, (3.2)

onde p é um número suficientemente grande, maior que o custo que uma unidade de

fluxo pode acrescentar ao custo total. Se p pode ser interpretado como um ganho

(lucro) por cada unidade enviada de S para T , então a expressão anterior pode ser

interpretada como o maior ganho possível na rede com uma redução dos custos. Desta

interpretação segue que qualquer fluxo que maximize esta expressão também minimiza

a função objetivo original(3.1).

Visto desta maneira, o problema consiste, em essência, na solução de uma seqüência de

problemas de fluxo máximo em sub-redes de arcos admissíveis (onde se pode alocar

fluxo). O processo termina quando um total de v unidades forem enviadas de S para T

ou quando não for mais possível enviar fluxos de S para T .

O Algoritmo “Out of Kilter” é um algoritmo bastante eficiente (in Plane 1971, Taaffe

1973, Minieka 1990), composto por um conjunto de regras desenvolvido por Fulkerson

e que apresenta as seguintes características:

Page 37: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

• equivale a um algoritmo primal-dual de programação linear pelo que pode ser

iniciado tanto com uma solução dual viável quanto com uma solução primal viável;

• cada arco possui associado o valor do custo (cij), e os limites superior (uij) e inferior

do fluxo (l ij);

• não se parte, como nos demais algoritmos, de uma origem para um destino

específico; procura-se o equilíbrio da rede a um custo mínimo e, ao final, pode-se

verificar a quantidade de fluxo que pode ser distribuída a partir de S com destino em

T.

• em uma dada iteração cada arco pode estar nas situações: “in kilter” ou “out of

kilter”, de acordo com as condições de equilíbrio do arco. Essas condições

dependem do custo e da quantidade de fluxo em cada arco .

O algoritmo se inicia com um fluxo arbitrário, viável ou não (o que é uma vantagem

inicial). Um procedimento sistemático procura ajustar a distribuição do fluxo na rede

para satisfazer certas propriedades de otimalidade descritas a seguir.

Associa-se a cada arco (i,j) um preço fictício pi no nó i por unidade de fluxo enviada e

um preço pj no nó j pago por unidade de fluxo recebida ( onde os pi e pj são

estimativas das variáveis duais). Assim o custo no arco pode ser definido como c’ij = cij

+ pi - pj . Esta expressão representa o custo total para transportar uma unidade de fluxo

do nó i para o nó j. Desta forma, se um arco tem c’ij > 0, não é interessante enviar

fluxo por este arco; caso contrário (c’ij < 0), é interessante (lucrativo) enviar fluxo por

este arco e quando c’ij = 0 pode-se alocar ou não fluxo ( é indiferente).

Define-se um “número kilter” em função do custo do arco e do fluxo que pode ser

alocado ou retirado do mesmo para melhorar a solução em relação a estes custos, então

de acordo com o custo no arco e a quantidade de fluxo que pode ser alocada no mesmo,

os arcos são considerados “in kilter” ou “out of Kilter”. O processo termina quando

todos os arcos estão na situação “in kilter” . Um arco está “in kilter” quando seu

“número kilter” é nulo.

Page 38: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

No algoritmo de Busacker e Gowen ( in Syslo 1983) determina-se, a cada iteração, o

caminho de menor custo entre o nó de origem e o nó de destino sobre o grafo de

aumento de fluxo. Encontrado este caminho, aloca-se ao mesmo o máximo de fluxo

possível, respeitando-se as restrições de capacidade de cada arco. Após a alocação

deste fluxo, utiliza-se um procedimento de modificação da rede e procura-se um novo

caminho mínimo ao qual será novamente alocada a maior quantidade de fluxo máximo

possível e assim sucessivas vezes, até que se tenha atingido o fluxo desejado ou caso

não se encontre mais caminho para alocar o fluxo restante. Neste último caso,

considera-se que se atingiu o fluxo máximo da rede.

3.6- Considerações sobre os algoritmos

A evolução dos algoritmos foi ocorrendo com pequenas modificações introduzidas no

procedimento básico com o objetivo de melhorar o desempenho computacional.

Verifica-se que os princípios básicos dos processos de busca de caminho mínimo e de

alocação de fluxo desenvolvidos na década de 50 são, guardadas algumas diferenças e

de acordo com seus objetivos, utilizados em todos os algoritmos descritos neste

trabalho. Desta forma, considera-se que os mesmos sejam a base para o

desenvolvimento de qualquer outro algoritmo que envolva busca de caminho mínimo e

alocação de fluxo, como é o caso do método de alocação de fluxo proposto no

desenvolvimento deste trabalho.

Page 39: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 3

Algoritmos para Otimização de Rotas

3.1 Considerações Iniciais

No presente capítulo são apresentados algoritmos clássicos de caminho mínimo e de

alocação de fluxo em redes, precedidos por alguns conceitos básicos sobre grafos e

redes.

Um maior aprofundamento sobre Teoria dos Grafos deve-se buscar em Boaventura

Netto(1996), Berge (1985) e Harary (1972) entre outros.

3.2 Definição e Conceitos Básicos sobre Grafos Muitas redes físicas, tais como telefone, oleodutos, distribuição de água, transportes e

outras podem ser modeladas por estruturas diagramáticas chamadas de grafos, que

podem ser representados por figuras geométricas, formada de pontos ou nós e de linhas

ou arestas que ligam alguns destes pontos.

Formalmente, um grafo G = (X,A) é uma estrutura composta por um conjunto X = {x1,

x2, ..., xn }de elementos chamados vértices ou nós e um conjunto A = {a1, a2, ..., am },

de pares de elementos, chamados arcos ou arestas. O elemento ak = (xi, xj) é um arco

que possui como extremidades os vértices xi e xj que pertencem ao conjunto X.

3.2.1 - Classificação

Page 40: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

a) Quanto à orientação

Os grafos podem ser orientados ou não orientados. São orientados quando seus arcos

têm um sentido definido, ou seja, um nó definido como extremidade inicial (origem)

e o outro nó de extremidade final (destino). Os arcos orientados são representados

por uma seta indicando o sentido dos mesmos. Nos grafos não orientados não existe

esta noção de sentido único e, nestes casos, os arcos são chamados de arestas.

b) Quanto à escala ou valor

Os grafos podem ter ou não escalas ou como também é dito, podem ser ou não

valorados. Nos grafos valorados os arcos recebem valores ou pesos, positivos ou

negativos. Num caso mais complexo, é possível atribuir valores tanto a arcos quanto

aos nós. Uma rede é um grafo valorado.

c) Quanto à Planaridade

Um grafo planar é aquele em que os arcos somente se tocam sobre um vértice ou nó,

podendo consequentemente, ser projetado sobre um plano sem perder suas

características. Um grafo não-planar, no entanto, quando projetado sobre um plano,

apresenta interseções de arcos não coincidentes com um nó, em virtude de sua

estrutura espacial.

3.2.2 - Elementos de Grafos

a) Laço

É um arco que se inicia num nó e termina nele mesmo.

b) Arco ou nó incidente

Um arco ou nó é incidente a outro nó quando este é destino ou origem do arco. Nos

grafos orientados, diz-se que um arco é incidente interiormente a um nó quando este

é destino deste arco, ou incidente exteriormente quando o mesmo é origem do arco.

c) Grau de um nó

Page 41: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

É medido pelo número de arcos incidentes num determinado nó. No caso de grafo

orientado existe a noção de semigrau interior, número de arcos incidentes

interiormente ao nó (chegando à ele), e semigrau exterior que corresponde ao número

de arcos incidentes exteriormente ao nó (saindo dele).

d) Vértices adjacentes

Dois vértices são considerados adjacentes um ao outro se existe um arco unindo-os.

e) Cadeia

Uma cadeia é uma seqüência de arcos de um grafo (orientado ou não), tal que cada

arco tem uma extremidade em comum com o antecedente (à exceção do primeiro) e

a outra extremidade em comum com o arco subseqüente (à exceção do último). O

conceito de cadeia é de grafo não-orientado e o tamanho de uma cadeia corresponde

ao número de arcos que a compõem.

f) Caminho

Caminho é uma cadeia na qual todos os arcos possuem o mesmo sentido. O conceito

de caminho, é portanto, orientado.

g) Cadeia ou Caminho Simples ou Elementar

Uma cadeia ou um caminho são considerados simples quando não repetem ligações

(arcos). São elementares quando não repetem vértices.

g) Ciclo

Ciclo é uma cadeia simples na qual o nó inicial e o nó final se confundem ( cadeia

fechada).

e) Circuito

Circuito é um caminho simples e fechado em um grafo orientado.

3.2.3 - Características Estruturais

Page 42: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

a) Um grafo é conexo (ou fracamente conexo) quando todo par de vértices do grafo

existe é ligado por uma cadeia .

b) Um grafo é fortemente conexo (f-conexo) quando existe um caminho de cada nó para

qualquer outro nó do grafo.

c) Grafo trivial é aquele representado por um único vértice ou nó.

c) Grafo completo é aquele onde cada nó é adjacente a todos os outros nós do grafo.

d) Uma árvore é um grafo conexo sem ciclos.

e) Um subgrafo é uma parte de um grafo, obtido pela supressão de vértices e dos arcos

adjacentes a estes vértices.

f) Um grafo parcial de um grafo é obtido pela supressão de arcos deste.

3.3 - Algoritmos de Caminho Mínimo

Os algoritmos de caminho mínimo determinam a rota de menor tempo, distância ou

custo entre um par ou vários pares de origem e de destino de uma rede.

Existem diferentes formulações (Steenbrick 1974, Jensen 1987 ) para um problema de

caminho mínimo, que são:

a) de um nó para outro nó;

b) de um nó para todos os outros nós da rede;

c) entre todos os nós da rede, e

d) k-caminhos mínimos entre dois nós.

Page 43: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Os casos (c) e (d) envolvem algoritmos matriciais; os outros usam, em geral, estruturas

de árvore.

Os algoritmos em matriz são habitualmente, de programação mais fácil, e o tempo

computacional é exatamente determinável e independente da estrutura da rede

(Steenbrick 1974).

Quando se deseja o caminho entre todos os pares de nós e quando todos os nós estão

diretamente conectados com todos os outros nós (redes densas), os algoritmos em matriz

são mais eficientes que os algoritmos em árvore. Mas quando os nós estão diretamente

conectados com poucos nós ( no máximo 4 nós - redes esparsas) e quando somente o

caminho entre um subconjunto de nós é desejado, então os algoritmos em árvore são

mais eficientes quanto ao tempo computacional. Em geral os algoritmos em árvore

parecem ser mais úteis que os algoritmos em matriz para redes de transporte (Steenbrick

1974).

Os algoritmos de caminho mínimo, apresentados a seguir, consistem essencialmente de

duas operações (Syslo 1983, Minieka 1990): adição e minimização. Certamente o

tempo destas operações variam com os computadores utilizados; por conveniência,

assume-se que estas duas operações tem equivalentes tempos computacionais.

Apresentam-se a seguir alguns algoritmos que são mais comumente discutidos e

utilizados na bibliografia pesquisada. Para a determinação de caminhos mínimos entre

dois vértices apresentam-se os algoritmos de Dijkstra e Ford/Moore/Bellman, que

possuem estrutura em árvore, e algumas variações dos mesmos que surgiram

posteriormente. Para a determinação de caminhos mínimos entre todos os pares de

vértice de um grafo, apresentam-se os algoritmos matriciais de Floyd, e Dantzig e para

o cálculo de k-caminhos mínimos, apresentam-se os algoritmos “Double Sweep” e de

Yen.

3.3.1 Caminho Mínimo entre Dois Vértices

Page 44: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Existem dois algoritmos básicos, um desenvolvido por Dijkstra(1959) e outro

desenvolvido por Ford(1956), Moore(1957) e Bellman (1958) em épocas diferentes mas

com procedimentos semelhantes, ambos utilizados para a determinação de caminhos

mínimos entre dois vértices de uma rede e podendo fornecer os caminhos mínimos a

partir de um vértice para todos os outros.

Esses algoritmos (in Steenbrick 1974, Syslo 1983, Jensen 1987, Minieka 1990)

consistem basicamente de um passo inicial (passo zero), um passo iterativo e uma regra

de parada. O passo inicial corresponde à atribuição do valor da distância inicial do nó,

que se definiu como origem, para todos os demais nós da rede. A distância da origem a

ela mesma é zero e para os demais nós define-se como infinita (ou um valor

suficientemente grande). O segundo passo corresponde a uma fórmula de recorrência

utilizada para ir melhorando (diminuindo) o tamanho do caminho entre a origem e os

demais nós a cada iteração. E o terceiro passo corresponde à regra de parada.

A diferença principal entre estes algoritmos é que o de Dijkstra só pode ser utilizado em

redes com arcos com valores positivos, enquanto que o de Ford e outros pode ser

aplicado em redes com arcos de valores negativos, desde que não hajam ciclos negativos

(a soma dos valores dos arcos de algum ciclo é negativa). Ambos os algoritmos

apresentam desempenhos semelhantes para uma mesma rede (Jensen 1987, Minieka

1990).

Dantzig (1960) e Nicholson (1960) desenvolveram o algoritmo de “duas árvores” de

Dijkstra (Dijkstra two-tree algorithm), cuja idéia é construir árvores de caminhos

mínimos de um nó origem S e de um nó de destino T simultaneamente, de modo que ao

se chegar a um nó comum, o caminho mínimo entre S e T tenha sido determinado. Esta

idéia se mostrou interessante do ponto de vista de tempo computacional, conforme foi

constatado posteriormente por Helgason (1988).

Algumas modificações em relação ao algoritmo de Ford foram posteriormente

sugeridas por outros autores como Steenbrink, Esopo e Pape (1980) para melhorar o

desempenho computacional. Essas modificações consistem basicamente de heurísticas

Page 45: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

para melhor definir o nó a ser “examinado” a cada iteração e chegar mais rápido à

solução final.

3.3.2 Caminho Mínimo entre Todos os Pares de Vértices de uma Rede

Para determinação de caminhos mínimos entre todos os pares de vértices poder-se-ia

utilizar os algoritmos anteriores, tomando-se como origem cada um dos vértices do

grafo, ou seja, repetindo-se n vezes (n sendo o número de arcos) o algoritmo de Dijkstra

ou o de Ford.

Para resolver este problema Floyd (1962) e Dantzig (1967) desenvolveram algoritmos

cuja principal característica é a utilização de matrizes na determinação dos caminhos

mínimos.

No passo inicial desses algoritmos, os vértices do grafo são numerados de 1 até n, e se

define uma matriz n x n, chamada D0 , cujos elementos correspondem aos valores dos

arcos entre pares de vértices, se estes existem . Caso não exista um arco ligando um par

de vértices então o valor é ∞ . A diagonal principal recebe valores nulos.

No algoritmo de Floyd, (in Steenbrick 1974, Minieka 1990, Boaventura 1996) a partir

da matriz inicial (D0 ) é criada, a cada iteração, uma nova matriz utilizando-se uma

fórmula de recorrência. São, então, determinadas n matrizes n x n, cada matriz Dk (k =

1,2, ..., n) é obtida da matriz anterior Dk-1 . A matriz final Dn é a que apresenta os

caminhos mínimos entre todos os nós da rede.

O algoritmo de Dantzig (in Steenbrick 1974, Minieka 1990) apresenta as mesmas

características do algoritmo anterior, embora trabalhe a cada iteração com matrizes de

tamanhos diferentes. Neste algoritmo são também utilizadas n matrizes para se chegar

ao resultado final, porém as matrizes são de tamanhos k x k, onde k representa o passo

iterativo como no algoritmo anterior, e na matriz final Dn , ou seja, para k = n , o i,j-

ésimo elemento representa o tamanho do menor caminho do nó i ao nó j.

Page 46: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Ambos os algoritmos têm o mesmo desempenho computacional (Syslo 1983, Minieka

1990). O de Dantzig, por trabalhar com matrizes menores, requer menos espaço para

armazenar dados.

3.3.3 -Algoritmos de k-Caminhos Mínimos

O objetivo deste tipo de algoritmo é definir os k-menores caminhos entre dois vértices (

o 1o menor, o 2o menor ,......, o ko menor ). Este tipo de problema é importante, na

medida em que, por exemplo, deseja-se verificar mais de uma opção de caminho para

um determinado transporte. Existem dois tipos de problemas de k-caminhos mínimos,

um em que não se permite a repetição de vértices nos caminhos e outro em que a

repetição de vértices (formando “loops”) é permitida.

Para o primeiro tipo de problema existem alguns algoritmos propostos por Bock,

Kantner e Haynes (1957), Pollack (1961), Clarke, Krikorian e Rausan (1963),

Sakarovitch (1966) e outros. Uma análise destes algoritmos pode ser vista em Yen

(1971), que faz um estudo comparativo em termos de desempenhos e das

características dos mesmos.

Para o segundo tipo alguns algoritmos foram propostos por Hoffman e Pavley(1959),

Bellman e Kalaba (1960), Sakarovitch (1966) e outros. Shier (1976) apresenta um

estudo sobre este tipo de algoritmo, onde destaca o algoritmo “Double Sweep” em

termos de desempenho para redes densas e o algoritmo LS (Label Setting) para redes

esparsas.

O algoritmo “Double Sweep” trabalha com matrizes e também utiliza as operações de

adição e minimização, porém, efetuadas com conjuntos Rk de vetores representando o

conjunto de tamanho dos k- caminhos entre dois vértices, em ordem crescente de

tamanho.

Assim como nos algoritmos em matriz mostrados anteriormente, inicia-se o processo

com uma matriz D0 e como se trabalha com uma matriz de vetores, define-se d0i j =

{d0ij1, d0

ij2 ,..., d0ijk } ∈ Rk , como o conjunto dos k menores arcos ligando os vértice i

Page 47: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

ao vértice j . Se não existirem k arcos os valores adicionais no vetor serão iguais a

infinito (∞).

A partir da matriz D0, utiliza-se uma fórmula de recorrência para ir determinando os

caminhos e formando novas matrizes. Essa operação só deixa de acontecer quando

nenhum decréscimo nos valores do vetor de k-caminhos mínimos é possível. Mais

precisamente, a parada ocorre quando os valores dos vetores encontrados no final da

iteração t+1 coincide com os valores da iteração t (t>0).

Além do “Double-Sweep”, os algoritmos de Floyd e Dantzig generalizados (Minieka,

1992) para k-caminhos mínimos trabalham de forma semelhante em termos de

operações.

O algoritmo “Double-Sweep” ( in Minieka 1992, Shier 1974 ) apresenta como

característica principal a utilização de uma seqüência de iterações alternadas de

“forward”(para frente) e “backward” (para trás).

Para isto, trabalha-se com uma partição da matriz D0 , uma matriz triangular superior

(U) e uma matriz triangular inferior (L). Durante as iterações “forward”, os nós são

examinados na ordem 1,2,...,n , enquanto que nas iterações “backward” os nós são

examinados na seqüência n,..., 2, 1. Quando se examina um nó j durante as iterações

“forward”, somente os arcos i<j são processados; similarmente, somente os arcos (i,j)

com i>j são avaliados durante as iterações “backward”.

O algoritmo de Yen determina os k-menores caminhos sem repetição de nós nos

caminhos, ou seja, sem “loops”. Utiliza para tanto um algoritmo de caminho mínimo

para determinar o menor deles e a partir deste, a cada iteração são obtidos novos

caminhos que são formados a partir de subcaminhos obtidos dos anteriores. Assim, o

segundo caminho é obtido do primeiro, o terceiro a partir do segundo e o k-ésimo a

partir do caminho k-1. Trabalha-se com duas listas: uma contendo os menores caminhos

encontrados até a iteração presente e a outra com os caminhos candidatos.

Page 48: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

O desempenho dos algoritmos de k-caminhos mínimos, em termos de tempo

computacional, depende basicamente do k, ou seja quanto maior o valor de k, maior o

tempo de operação do algoritmo (Minieka 1990, Shier 1982) .

3.4 - Algoritmos de Fluxo Máximo

Estes algoritmos objetivam verificar a capacidade máxima de fluxo numa rede a partir

de um nó origem (fonte) até um nó destino (sumidouro). Nestes casos, cada arco possui

um valor que indica a capacidade máxima de fluxo que pode passar por ele ( limite

superior ) e, dependendo da rede, ou do objetivo da análise, poderá haver outro valor

que indica o fluxo mínimo (limite inferior) que deve passar pelo arco .

Em termos de redes de transporte, os algoritmos de fluxo máximo são importantes para

uma avaliação da sua capacidade em absorver um determinado fluxo de veículos, ou

seja, podem servir para uma primeira análise das condições da rede, inclusive para

identificar gargalos na mesma.

A idéia básica de um algoritmo de fluxo máximo é encontrar “caminhos de aumento de

fluxo” de uma origem S para um nó de destino T e alocar nestes caminhos a maior

quantidade de fluxo possível, que corresponde a um “fluxo viável”, obedecendoà lei de

conservação de fluxo : “em cada nó, todo fluxo que entra é igual ao fluxo que sai”. Um

fluxo ( fij ) é viável se satisfaz a relação l ij ≤ fij ≤ u ij onde l ij e uij representam

respectivamente, os limites inferior e superior dos arcos.

O primeiro algoritmo se deve a Ford e Fulkerson (1956) e os algoritmos que surgiram

posteriormente visavam melhorar o desempenho computacional deste algoritmo.

Algumas modificações foram também introduzidas na forma de trabalhar a rede, como

foi o caso do algoritmo de Dinic (1970, in Syslo 1983) que introduziu o conceito de

redes em camadas e Mallhotra (1978, in Syslo 1983) que introduziu o conceito de

potencial de um nó.

Page 49: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

O algoritmo de Ford Fulkerson (Ford e Fulkerson 1962 ou em Syslo 1983, Jensen 1987,

Kennington 1988, Minieka 1990) aplica um processo de rotulação de nós para definir

rotas com possibilidade de aumento de fluxo. Inicia-se o processo com um fluxo

qualquer de S para T e procura-se um caminho de aumento de fluxo. Se este caminho é

encontrado, então enviam-se tantas unidades de fluxo quantas forem possíveis por este

caminho. Procura-se então novamente um outro caminho de aumento de fluxo de S para

T, assim sucessivamente até que não haja nenhum outro caminho e neste caso o fluxo

atual é máximo.

Outro algoritmo com características semelhantes ao anterior, chamado algoritmo de

máximo aumento de fluxo (Syslo 1983, Minieka 1990, Bazaraa 1990), segue um

procedimento básico que consiste no desenvolvimento de uma árvore de caminhos (uma

arborescência), ou seja, vários caminhos a partir de uma origem S , ao longo dos quais

os fluxos nos arcos podem ser aumentados. Se o destino T está incluído nesta

arborescência, então o caminho que inclui T será um caminho de aumento de fluxo,

alocando-se nele o máximo de fluxo possível.

Após a alocação do fluxo, é construído, como em outros algoritmos, um grafo de

aumento de fluxo: um grafo auxiliar onde cada arco é substituído por dois arcos, um

arco com a mesma direção porém com capacidade dada pela diferença entre o fluxo e a

capacidade do mesmo e outro com direção inversa e com capacidade igual ao fluxo

corrente no arco, sempre que um desses valores não seja nulo. Uma nova árvore de

caminhos é obtida e, se o nó T não estiver incluído na arborescência, então não existe

possibilidade de aumentar o fluxo de S para T. Neste caso se encerra o processo e o

fluxo corrente é máximo.

O algoritmo de Dinic (in Syslo 1983 ) aplica o conceito de redes em camadas onde não

existem cíclos (rede acíclica). O grafo inicial é dividido em níveis de nós, a partir da

origem S (que pertence ao nível 1) até o último nível camada ao qual pertence o destino

T. A rede estruturada desta forma não apresenta arcos entre os nós de um mesmo nível.

O objetivo é encontrar caminhos com um menor número de arcos e começar enviando

uma quantidade de fluxo de S para T, procurando saturar os arcos até que não mais

Page 50: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

existam caminhos de aumento de fluxo até T. Neste ponto a rede é reestruturada,

revertendo-se o sentido dos arcos saturados e definindo-se novamente os níveis dos

nós. Inicia-se novamente o processo de enviar fluxos saturando arcos e assim

sucessivamente até que não se consiga mais restruturar a rede, ou seja, encontrar um

caminho de S para T .

Posteriormente foi desenvolvido o algoritmo DMKM (Dinic/ Malhotra/Kumar/

Maheshwari ,1978). Trata-se do algoritmo de Dinic ao qual se acrescentou o conceito de

potencial do nó ( in Syslo 1983). Definida a rede em camadas, verifica-se qual nó

possui o menor potencial, ou seja, o menor valor entre a soma da capacidade dos arcos

que saem deste nó e a soma da capacidade dos arcos que incidem sobre ele . O fluxo

referente ao menor potencial é definido então como o fluxo a ser “puxado” da origem S

e o mesmo valor é “empurrado” para o destino T. Este passa a ser o fluxo atual,

eliminando desta forma, pelo menos um arco saturado. A eliminação do arco ocorre na

redefinição da rede em camadas, já que na mesma só aparecem os arcos cuja os sentidos

estão na direção de S para T e quando um arco é totalmente usado (saturado) a seu

sentido muda , conforme descrito anteriormante. Na impossibilidade de se encontrar

caminhos na rede em camadas a mesma é redefinida e reinicia-se o processo.

Nos algoritmos apresentados, pode-se verificar que as modificações introduzidas foram

trazendo uma melhora em termos de desempenho computacional. O algoritmo de

Ford/Fulkerson apresentava a possibilidade de não convergir para uma solução ótima no

pior dos casos. Posteriormente uma modificação introduzida por Edmonds e Karp

(1972) fez com que o algoritmo passasse a ter um desempenho computacional de ordem

O(nm2), onde n é o número de nós e m o número de arcos da rede. Edmonds e Karp

mostraram que se procurarem os caminhos de aumento de fluxo com um número

mínimo de arcos, a convergência é garantida e o desempenho melhorado.

As modificações introduzidas por Dinic fizeram com que o algoritmo original passasse

a ter um desempenho de ordem O(n2m), tornando-o mais simples e mais eficiente,

particularmente quando a rede é densa. Posteriormente, a modificação introduzida por

Malhotra e outros, fez com o algoritmo passasse a ter um desempenho de ordem O(n3)

(Syslo,1983).

Page 51: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

3.5 - Algoritmos de Custo Mínimo

No item anterior, tratou-se do problema de verificar a quantidade máxima de fluxo que

poderia ser enviada de uma origem S para um destino T, não havendo custo envolvido.

Os algoritmos de custo mínimo tratam do problema de enviar uma quantidade qualquer

de fluxo v de S para T, numa rede de n nós , na qual todos os arcos (i,j) têm uma

capacidade ou limite superior u(i,j) tanto e um custo c(i,j) associado a eles. Este custo

pode representar, por exemplo, tempo, distância, consumo de combustível ou uma

composição destes.

Se o fluxo v que se deseja alocar for menor ou igual ao fluxo máximo F para uma

determinada rede, então podem existir diferentes formas de distribuir este fluxo na rede.

O objetivo dos algoritmos de custo mínimo é, então, encontrar os caminhos de fluxo

que minimizam o custo total, ou seja:

min y = min ( j

n

i

n

c i j f i j==∑∑

11

( , ) ( , ) ) (3.1)

onde c(i,j) representa o custo no arco (i,j) e f(i,j) o fluxo alocado neste arco.

Em termos de Planejamento de Transportes, os algoritmos de fluxo de custo mínimo

podem ser utilizados para definir a melhor distribuição de tráfego considerando-se que

sob o ponto de vista do conjunto de usuários de uma rede, ter-se-ia uma economia média

de algum tipo, uma vantagem se o fluxo fosse distribuído conforme definido pelo

algoritmo. Um exemplo de aplicação deste tipo de algoritmo pode ser visto na tese de

Morales (1993) , na qual se utilizou um algoritmo de custo mínimo para definir as

melhores rotas de distribuição de carga numa rede ferroviária procurando mínimizar um

custo em termos de tempo e investimentos para melhoria da malha ferroviária

Ao se utilizar um algoritmo de custo mínimo para redes de transporte urbanos não se

leva em conta a aleatoriedade da escolha do caminho feita pelo usuário da rede. Ou

Page 52: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

seja, as rotas são definidas, a priori, como aquelas que fornecem o menor custo para um

determinado fluxo, procurando-se uma solução ótima de distribuição que leve a um

custo total médio mínimo mas que nem sempre pode ser percebida pelo usuário da rede

de transporte.

Exemplos de algoritmo para resolver um problema de fluxo a custo mínimo são:

Ford/Fulkerson ,”Out of Kilter” (in Plane 1971, Minieka 1992) e o de Busacker e

Gowen (in Syslo 1983). Dentre estes algoritmos, apresentados a seguir, verificou-se que

o de Busacker e Gowen tem maior facilidade de implementação e bom desempenho

computacional. Ao tratarmos com uma rede que apresente limites inferiores diferentes

de zero para os fluxos nos arcos, o algoritmo “Out of Kilter” parece ser o mais indicado.

O Algoritmo de Ford/ Fulkerson para Custo Mínimo (in Minieka,1990), é uma

generalização do algoritmo de Ford e Fulkerson (1962) para Fluxo Máximo,

considerando o problema da seguinte forma:

Max { pv- j

n

i

n

==∑∑

11

c(i,j) f ( i,j)}, (3.2)

onde p é um número suficientemente grande, maior que o custo que uma unidade de

fluxo pode acrescentar ao custo total. Se p pode ser interpretado como um ganho

(lucro) por cada unidade enviada de S para T , então a expressão anterior pode ser

interpretada como o maior ganho possível na rede com uma redução dos custos. Desta

interpretação segue que qualquer fluxo que maximize esta expressão também minimiza

a função objetivo original(3.1).

Visto desta maneira, o problema consiste, em essência, na solução de uma seqüência de

problemas de fluxo máximo em sub-redes de arcos admissíveis (onde se pode alocar

fluxo). O processo termina quando um total de v unidades forem enviadas de S para T

ou quando não for mais possível enviar fluxos de S para T .

Page 53: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

O Algoritmo “Out of Kilter” é um algoritmo bastante eficiente (in Plane 1971, Taaffe

1973, Minieka 1990), composto por um conjunto de regras desenvolvido por Fulkerson

e que apresenta as seguintes características:

• equivale a um algoritmo primal-dual de programação linear pelo que pode ser

iniciado tanto com uma solução dual viável quanto com uma solução primal viável;

• cada arco possui associado o valor do custo (cij), e os limites superior (uij) e inferior

do fluxo (l ij);

• não se parte, como nos demais algoritmos, de uma origem para um destino

específico; procura-se o equilíbrio da rede a um custo mínimo e, ao final, pode-se

verificar a quantidade de fluxo que pode ser distribuída a partir de S com destino em

T.

• em uma dada iteração cada arco pode estar nas situações: “in kilter” ou “out of

kilter”, de acordo com as condições de equilíbrio do arco. Essas condições

dependem do custo e da quantidade de fluxo em cada arco .

O algoritmo se inicia com um fluxo arbitrário, viável ou não (o que é uma vantagem

inicial). Um procedimento sistemático procura ajustar a distribuição do fluxo na rede

para satisfazer certas propriedades de otimalidade descritas a seguir.

Associa-se a cada arco (i,j) um preço fictício pi no nó i por unidade de fluxo enviada e

um preço pj no nó j pago por unidade de fluxo recebida ( onde os pi e pj são

estimativas das variáveis duais). Assim o custo no arco pode ser definido como c’ij = cij

+ pi - pj . Esta expressão representa o custo total para transportar uma unidade de fluxo

do nó i para o nó j. Desta forma, se um arco tem c’ij > 0, não é interessante enviar

fluxo por este arco; caso contrário (c’ij < 0), é interessante (lucrativo) enviar fluxo por

este arco e quando c’ij = 0 pode-se alocar ou não fluxo ( é indiferente).

Define-se um “número kilter” em função do custo do arco e do fluxo que pode ser

alocado ou retirado do mesmo para melhorar a solução em relação a estes custos, então

Page 54: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

de acordo com o custo no arco e a quantidade de fluxo que pode ser alocada no mesmo,

os arcos são considerados “in kilter” ou “out of Kilter”. O processo termina quando

todos os arcos estão na situação “in kilter” . Um arco está “in kilter” quando seu

“número kilter” é nulo.

No algoritmo de Busacker e Gowen ( in Syslo 1983) determina-se, a cada iteração, o

caminho de menor custo entre o nó de origem e o nó de destino sobre o grafo de

aumento de fluxo. Encontrado este caminho, aloca-se ao mesmo o máximo de fluxo

possível, respeitando-se as restrições de capacidade de cada arco. Após a alocação

deste fluxo, utiliza-se um procedimento de modificação da rede e procura-se um novo

caminho mínimo ao qual será novamente alocada a maior quantidade de fluxo máximo

possível e assim sucessivas vezes, até que se tenha atingido o fluxo desejado ou caso

não se encontre mais caminho para alocar o fluxo restante. Neste último caso,

considera-se que se atingiu o fluxo máximo da rede.

3.6- Considerações sobre os algoritmos

A evolução dos algoritmos foi ocorrendo com pequenas modificações introduzidas no

procedimento básico com o objetivo de melhorar o desempenho computacional.

Verifica-se que os princípios básicos dos processos de busca de caminho mínimo e de

alocação de fluxo desenvolvidos na década de 50 são, guardadas algumas diferenças e

de acordo com seus objetivos, utilizados em todos os algoritmos descritos neste

trabalho. Desta forma, considera-se que os mesmos sejam a base para o

desenvolvimento de qualquer outro algoritmo que envolva busca de caminho mínimo e

alocação de fluxo, como é o caso do método de alocação de fluxo proposto no

desenvolvimento deste trabalho.

Capítulo 4

Page 55: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Métodos de Distribuição de Fluxos em Redes de

Transporte

4.1 - Considerações Iniciais

Os métodos apresentados a seguir são métodos clássicos utilizados em planejamento de

transportes urbanos e têm por objetivo avaliar a distribuição do fluxo numa rede, a partir

do cálculo da demanda de tráfego entre as várias origens (O) e destinos (D) desta rede,

tomando-se como base os caminho mínimos entre estas O/Ds. Assim, o problema de

alocação de fluxos em redes de transporte divide-se basicamente num problema de

escolha de rotas e num problema de distribuição de fluxos nas rotas escolhidas a partir

de uma matriz de fluxos entre diversas O/Ds, considerando-se o ponto de vista do

usuário que tenta minimizar seu tempo de viagem.

A evolução dos modelos levou ao desenvolvimento de técnicas que avaliam a rede a

nível microscópico (tratamento de interseções sinalizadas), permitindo identificar

problemas de congestionamento e filas nas interseções e proporcionando uma

distribuição “equilibrada” de fluxo na rede em relação à capacidade da mesma.

Estas técnicas servem como uma base para um planejamento viário na medida em que a

partir desta distribuição pode-se verificar, por exemplo, quais as vias que precisam ser

ampliadas para maior fluidez do tráfego e quais os corredores mais sobrecarregados de

demanda. Alguns modelos permitem verificar os pontos onde podem ocorrer

engarrafamentos e, com a ajuda da simulação, podem ser testadas medidas operacionais

tais como mudança de direção de vias, variação dos ciclos de sinais, faixas exclusivas

para ônibus e outros.

Page 56: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Os métodos específicos para identificação de rotas e alocação de fluxos em redes de

transportes procuram seguir basicamente os critérios definidos por Wardrop(1952),

também chamados de princípios extremos, que são:

(i) os tempos de viagem nas rotas utilizadas são iguais ou menores que aqueles que

poderiam ser experimentados por um único veículo em qualquer outro caminho não

usual, e

(ii) o tempo médio global de viagem de todos os motoristas é mínimo.

A aplicação destes princípios envolve dois importantes problemas de alocação de fluxos

em rede:

a) a determinação da rota de menor custo (tempo) na rede, e

b) a minimização do custo total na rede .

4.2 - Características do Fluxo de Tráfego

O fluxo (f) de tráfego ao longo de um trecho de uma ligação viária, em caso de regime

permanente, está relacionado a duas outras variáveis fundamentais que são a

concentração de veículos ou densidade (d) e a velocidade (v) dos veículos (Wardrop

1952, Potts 1972, Hutchinson 1979, Papacostes 1987).

O fluxo (ou volume) é definido pelo número de veículos que passa por um determinada

seção (ou faixa) de uma via por unidade de tempo de observação, sendo usualmente

expresso em veículos por hora.

Page 57: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A concentração ou densidade é definida pelo número de veículos numa seção (ou

faixa) de comprimento unitário de uma rodovia num instante de tempo t, normalmente

expressa em veículos por quilômetro.

A velocidade cinemática de uma corrente de tráfego em regime permanente é definida

pela relação entre a distância percorrida pelos veículos na unidade de tempo, ou seja, em

km/h.

Entre estas variáveis existe uma relação fundamental, a nível macroscópico, assim

definida:

f = v x d (4.1)

Da relação acima são identificadas diversas propriedades relacionadas ao fluxo. A

premissa básica dos modelos de tráfego é que a velocidade é uma função decrescente em

relação a densidade. Se a densidade aumenta, o espaço entre os veículos diminui e os

motoristas reagem, diminuindo a velocidade.

A capacidade de uma ligação é normalmente definida como o fluxo máximo que pode

passar nesta ligação. Em alguns estudos, encontramos expressões chamadas de

“Funções de Desempenho” que definem os tempos nas ligações em função do fluxo

alocado e da capacidade desta ligação.

4.3 -As Primeiras Técnicas de Distribuição de Fluxos

As técnicas de distribuição de fluxo em redes de transporte começaram a surgir a partir

da década de 50, quando estudos se fizeram necessários para o planejamento de

transporte nas grandes cidades, em vista do crescimento das mesmas, do conseqüente

Page 58: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

aumento de veículos em circulação e da implantação de vias expressas, para as quais se

fazia necessária uma análise que determinasse sua viabilidade econômica .

Esses estudos visavam avaliar a distribuição do fluxo de tráfego nas vias presentes e em

projetos futuros para definir medidas operacionais ou físicas que pudessem melhorar a

circulação viária. Surgiram então os princípios de Wardrop, mencionados anteriormente,

que se tornaram um apoio a conceituação destes métodos.

A primeira técnica foi chamada de Técnica de Alocação “Tudo ou Nada” (Potts 1972,

Hutchinson 1979, Papacostas 1987). Ela se baseia no conceito de que, definida a melhor

rota (caminho mínimo) entre uma origem e um destino, todo fluxo passaria por esta

rota, independentemente da capacidade da mesma. Este conceito seria razoável para

redes com poucas opções de rotas, tendo ligações com alta capacidade e que os custos

nestas rotas fossem bastante diferentes.

Esta técnica, portanto, servia apenas para dar uma visão macro da distribuição do

tráfego, principalmente quando se avaliava esta distribuição incluindo várias O/Ds numa

mesma região. Não é, no entanto, eficiente para uma análise econômica e operacional de

alternativas viáveis de transporte. Por este motivo outras técnicas foram surgindo ,

algumas inclusive, utilizando um procedimento “tudo ou nada” num primeiro passo,

conforme apresenta-se em 4.4.

4.4 - Técnica das Curvas de Dispersão

Com a constante necessidade de se planejar e consequentemente implantar novas vias,

uma das primeiras técnicas a surgir foi a Técnica das Curvas de Dispersão

(Moskowitz,1956 [ em Papacostas, 1987 ] e Hutchinson 1979) na qual o volume de

tráfego entre uma origem e um destino é dividido entre duas rotas que “aparentemente”

Page 59: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

(não comprovadamente) são concorrentes, sendo uma com características de

“expressway” e a outra composta por vias arteriais ou secundárias.

Esta técnica se baseia em curvas de distribuição de fluxo a partir de dados observados

em uma região com características semelhantes às daquela na qual se está planejando.

As curvas são definidas em função de parâmetros que servem para comparar a rota

composta por vias expressas e outra que utiliza vias secundárias. Essas curvas

relacionam o fluxo com o tempo ganho (ou economizado) ao se utilizar uma via

expressa, ou a razão de tempo ou distância entre uma “expressway” e uma outra

alternativa de caminho mínimo. Em alguns casos, as curvas são desenvolvidas

relacionando-se os diferentes custos para o usuário entre uma via expressa e outra opção

de rota.

Esta técnica serve principalmente para avaliar a viabilidade ou não de implantação de

uma via expressa.

4.5 -Técnicas de Alocação com Restrição de Capacidade

Estas técnicas surgiram em meados da década de 60 e nelas o conceito de capacidade da

via foi introduzido, considerando que o tempo de viagem em cada ligação da rede é

variável em função do volume de tráfego alocado à mesma. Surgiram assim as “curvas

ou funções de desempenho” que relacionam o volume alocado com o tempo na via em

função da capacidade da mesma. Os primeiros trabalhos desenvolvidos dentro deste

conceito foram:

a)Técnica de Alocação do Estudo de Chicago (1960)

A técnica de alocação do estudo de Chicago (Manheim,1965 e Hutchison 1979) tem

como base uma matriz de origem e destino dos fluxos entre várias zonas de tráfego em

que se dividiu a zona de estudo. Com base nesta matriz se faz a escolha aleatória de

uma zona de tráfego como origem e, a partir daí, constrói-se a árvore de caminhos

Page 60: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

mínimos para as outras zonas de tráfego da rede. O fluxo entre esta origem e as demais

zonas é então alocado nestes caminhos e uma reavaliação dos tempos nos mesmos é

feita, utilizando-se também uma função de desempenho definida no estudo. Na segunda

iteração, outra origem é escolhida aleatoriamente e se obtém novamente a árvore de

caminhos mínimos, considerando-se os fluxos já alocados anteriormente, e assim

sucessivamente até que todas as zonas tenham sido escolhidas, ou seja que todos os

fluxos tenham sido alocados.

b)Técnica da Traffic Research Corporation - TRC (1961)

Trata-se de uma técnica que trabalha conjuntamente as fases de distribuição e alocação

de fluxo (in Manheim,1965). São utilizadas árvores de caminhos mínimos

considerando-se os tempos nas ligações para uma velocidade de fluxo livre (poucos

veículos na via). Essas árvores são então carregadas com o fluxo resultante da

distribuição dada pelo modelo gravitacional (Papacostes,1987) de distribuição de

viagens através de uma alocação “tudo ou nada”. O modelo gravitacional para

transportes faz a distribuição do fluxo com base na matriz de demandas de fluxo entre

origens e destinos. Como fator de impedância (resistência ao movimento) consideram-

se inicialmente os tempos de viagem para velocidades em fluxo livre.

Posteriormente, como nos métodos anteriores, os tempos nas ligações são recalculados

em função de uma relação entre o tempo e o fluxo alocado a elas. Uma nova árvore de

caminhos mínimos é obtida e uma nova distribuição de fluxo é feita, na qual os fluxos

são alocados aos caminhos mínimos da árvore inicial e aos caminhos da árvore

reavaliada, em proporções equivalentes aos tempos de viagem nas duas árvores. Este

procedimento é repetido até se obter no máximo quatro rotas possíveis entre cada O/D.

Page 61: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

c)Técnica da Wayne State University - WSU (1962)

Nesta técnica (in Manheim,1965, Papacostes,1987), a primeira alocação é feita,

utilizando-se a técnica “tudo ou nada” numa árvore de caminhos mínimos,

considerando-se os tempos de viagem para velocidades típicas. Após a primeira

iteração, o fluxo em cada ligação é definido como uma percentagem da capacidade do

mesmo e utilizado para avaliar o tempo de viagem através da seguinte expressão:

Vi = e(Ri - 1 ) Vo (4.2)

onde:

Vo= tempo original baseado na velocidade típica.

V i = tempo de viagem em cada via na i-ésima iteração

Ri = razão entre a média dos volumes alocados nas iterações anteriores e a capacidade

da ligação;

A segunda iteração de alocação consiste no cálculo de novas árvores de caminho

mínimo. Utilizando os tempos revisados, aloca-se o fluxo sobre os novos caminhos e

calcula-se a média dos volumes alocados nos arcos nesta e na iteração anterior. Este

processo é repetido até que os volumes médios em cada ligação e o tempo de viagem

calculado permaneçam aproximadamente constantes de uma iteração para outra. O valor

final dos volumes em cada ligação seria tomado como a demanda média obtida para a

mesma durante cada iteração.

A diferença entre esta técnica e a TRC (item b) é que esta última utiliza os tempos de

viagem para velocidades, inicialmente, de fluxo livre.

d)Técnica de Alocação do Bureau of Public Road - BPR (1968)

Essa técnica (Sheffi,1985) compreende inicialmente uma alocação do fluxo tipo “tudo

ou nada”, ou seja todo o fluxo é alocado na rota de menor tempo. Após essa primeira

Page 62: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

alocação os tempos nas vias são reavaliados utilizando-se a seguinte função de

desempenho:

t tf

fmax= +

* ,1 1154

(4.3)

onde:

t - é o tempo de viagem na ligação com fluxo f

t*- é o tempo de viagem para fluxo livre;

f - é o fluxo atual na ligação;

fmax - é a capacidade da ligação.

A alocação é então repetida utilizando-se a rota de menor tempo, considerando-se as

modificações de tempo nas ligações já utilizadas. O procedimento é repetido até que os

tempos obtidos sejam semelhantes aos da iteração anterior; neste caso, considera-se que

foi encontrada uma distribuição equilibrada do fluxo.

4.6 - Técnicas de Alocação Incremental de tráfego

Surgiram em meados da década de 60 e são técnicas (in Manheim,1965 ,Sheffi,1985)

que procuram reproduzir a decisão do motorista na escolha da sua rota . Dentro do

conceito geral dos modelos de alocação, assume-se que o motorista escolhe a rota que

lhe fornece o menor tempo de viagem, porém o sistema é dinâmico; assim, dependendo

da hora e do volume nas vias, pode existir mais de uma rota com um tempo mínimo de

viagem. Partindo-se deste princípio, os motoristas mudariam suas rotas em função do

estado do sistema até que uma situação de “equilíbrio” fosse alcançada.

Page 63: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

De uma forma geral, as técnicas de alocação incremental consistem das seguintes fases:

1- seleção aleatória de um par de zonas de tráfego;

2- determinação de um caminho mínimo entre o par de zonas;

3- utilização de uma taxa específica de geração de viagens para determinar o volume

potencial a ser alocado entre este par de zonas;

4- alocação de um pequeno percentual do volume potencial no caminho mínimo;

5- uso de uma função de desempenho da ligação para atualizar os tempos dos mesmos

na rota, dado o aumento de fluxo.

Estas fases são repetidas continuamente até que, para cada par de zonas (O/Ds), o fluxo

alocado seja igual ao volume potencial entre estas zonas.

4.7- Técnica de Alocação em Múltiplos Caminhos

A técnica de alocação por caminhos múltiplos se baseia numa distribuição de fluxo em

dois ou mais caminhos entre pares de origem e destino.

O modelo desenvolvido por Dial (1971) foi o primeiro a introduzir o conceito de

probabilidade de uso de uma rota. Trata-se de um algoritmo que inicia a alocação do

fluxo sobre um conjunto de caminhos mínimos, considerando a situação “tudo ou nada”

com a diferença que o fluxo é distribuído segundo a probabilidade de uso destes

caminhos. Esta probabilidade de uso é dependente do tempo de viagem em cada rota

sendo que o caminho de menor tempo de viagem tem uma maior probabilidade de uso.

Este algoritmo foi utilizado no modelo de evacuação desenvolvido no TEDSS (ver item

2.1.4).

Page 64: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Posteriormente, Robillard (1974) desenvolveu um modelo que representa uma evolução

do modelo probabilístico de Dial, apresentando algumas modificações para ser utilizado

com fluxos dinâmicos e avaliar o efeito de congestionamentos.

4.8 - Modelos de Equilíbrio Estático

Em meados da década de 70, começaram a surgir os primeiros modelos de alocação de

fluxo com base em programação matemática, melhor definidos como modelos de

equilíbrio.

Considera-se de uma maneira geral que os modelos de equilíbrio são aqueles nos quais

o custo de viagem em cada ligação da rede de transporte pode depender tanto do fluxo

na ligação quanto do fluxo em outras ligações da rede.

A diferença fundamental entre os modelos de equilíbrio e os modelos anteriores

(sistema otimizado) é que, nestes últimos, na distribuição do fluxo, alguns usuários da

rede podem ter desnecessariamente um alto custo, permitindo que outros usuários

tenham uma maior redução nos seus custos. Em termos de transporte urbano isto não

acontece, porque cada usuário da rede procura seu próprio caminho de modo a

minimizar seu tempo de viagem. Os modelos de equilíbrio procuram definir um padrão

de distribuição fluxo que espelhe exatamente a competição entre vários usuários da

rede, que procuram se distribuir de forma a chegar a um equilíbrio, isto é, a um conjunto

de fluxos que satisfazem às seguintes condições:

(i) se duas ou mais rotas entre os nós de origem e destino são utilizadas, então

o custo dos usuários deve ser o mesmo em qualquer destas rotas.

(ii) inexiste uma alternativa de rota não utilizada cujo custo seja inferior ao

custo das rotas utilizadas.

Page 65: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Dentro destes conceitos foram desenvolvidos os algoritmos de Nguyen (1974) e Leblanc

(1975) cujo objetivo era fazer uma alocação de fluxo equilibrada, considerando custos

não-lineares e avaliando o efeito de congestionamento. Algumas modificações, como

considerar o limite de capacidade de cada ligação, foram introduzidas mais tarde por

Dazango (1977).

Posteriormente a esses métodos surgiram os modelos estocásticos, que possibilitavam

uma análise a nível microscópica de uma rede na qual se avaliavam principalmente os

problemas de congestionamento nas interseções (nós). Com este objetivo alguns

modelos estocásticos de equilíbrio foram desenvolvidos por Dafermos(1980) e Sheffi

(1977).

4.9 - Modelos Dinâmicos de Alocação

Os modelos dinâmicos surgiram como um aprimoramento dos modelos estáticos,

considerando-se agora a dinâmica do fluxo, ou seja, o fato que a demanda não é

constante todo o tempo. Os modelos de equilíbrio estático consideram que o fluxo é

uniformemente distribuído para um determinado intervalo de tempo ( como por

exemplo durante a “hora de pico”), e falhando na avaliação do efeito de

congestionamento.

Os modelos dinâmicos são bastante utilizados para avaliação do efeito de modificações

de redes urbanas na análise de planos de transporte e da eficácia de alternativas

operacionais de tráfego durante uma emergência ou eventos especiais. Também podem

ser utilizados para avaliar congestionamentos de tráfego e os impactos com eles

relacionados, tais como consumo de combustível e poluição, bem como medidas para

diminuir estes e outros impactos. Estes modelos ainda não foram bem desenvolvidos

Page 66: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

tendo a sua maioria utilizado mais a técnica de simulação do que métodos de

otimização por programação matemática.

Os dois primeiros trabalhos produzidos em programação matemática se devem a

Robillard (1974) e Yagar (1976), embora estes modelos fossem bastante limitados na

sua formulação. Merhant e Nemhauser (1978a) formularam uma versão otimizada por

programação não-linear, não-convexa, no qual se pode ter várias origens porém um

único destino. Trata-se de um modelo macro com o objetivo de minimizar o custo total

a partir de uma alocação dinâmica. Merchant e Nemhauser(1978b) e Ho(1980)

exploraram várias formas de resolver o problema de otimalidade, porém a solução

global ótima se mostrou difícil de ser obtida. Carey (1987) apresenta uma formulação

alternativa para o modelo de Merchant e Nemhauser também para um único destino;

esta função é convexa e pode ser linearizada por partes.

Outros modelos analíticos foram desenvolvidos por Hendrickson e Kocur (1981),

Mahmassani e Herman (1984) e Ben-Akiva (1986) para avaliar os efeitos de

congestionamento e atrasos em função da variação dos horários de início das jornadas

de trabalho num centro urbano. Apesar destas formulações terem melhorado o

entendimento de como uma demanda dinâmica afeta o fluxo de tráfego e as impedâncias

em rotas alternativas, estes modelos estão limitados a configurações restritas de redes.

Leonard (1982) e Van Vliet (1982) descrevem modelos de simulação utilizados

posteriormente nos pacotes computacionais de simulação de tráfego conhecidos como

CONTRAM e SATURN respectivamente, para modelar uma sub-área de tráfego em

grande detalhe, incluindo movimentos nas interseções, filas de atraso e fluxos variando

com o tempo. Conforme revisto por Van Aredde (1987), ambos os modelos não podem

ser utilizados para grandes redes ( cerca de 10000 nós e arcos).

Janson (1991) apresentou uma formulação matemática de um modelo de alocação

dinâmica equilibrada para determinar o volume de tráfego em cada ligação da rede, em

cada intervalo de tempo, que pode ser utilizado para grandes redes com múltiplas

origens e destinos, gerando soluções aproximadas.

Page 67: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Outros modelos surgiram apresentando algumas modificações ao de Janson; um

exemplo é o de Drissi-Kaitouni (1992) que se baseia na suposição de que o tempo gasto

por um veículo na ligação pode ser decomposto num tempo fixo de viagem mais o

tempo de espera na fila numa interseção.

Smith (1993) apresenta um novo modelo dinâmico para alocação de fluxos em redes

urbanas congestionadas e com restrição de capacidade. Utilizando a disciplina de fila

FIFO (first in, first out) e a capacidade de saída da ligação, o modelo determina o custo

(variável com o tempo) para se atravessar as várias rotas quando o fluxo de entrada é

especificado.

4.10 - Considerações Finais

Os métodos apresentados se baseiam principalmente na escolha de caminhos mínimos

para distribuição do tráfego, pois consideram que esta é a premissa básica do motorista

ao escolher uma rota. Porém com a crescente demanda de tráfego ficou evidente que

algumas modificações deveriam ser introduzidas para melhor representar a distribuição

do volume de tráfego. Foram então surgindo os métodos que consideram o efeito do

decréscimo de velocidade em função da quantidade de veículos e consequentemente no

tempo de viagem, relações estas que se traduzem através das funções de desempenho

(tempo x fluxo).

Além destas considerações, alguns modelos buscam analisar o efeito de concentração de

fluxo em dados momentos, o que leva a congestionamentos, principalmente em grandes

centros urbanos, procurando definir soluções dentro da engenharia de tráfego que

possam dar maior fluidez ao tráfego, como por exemplo o dimensionamento de ciclos

de sinais. Nestes casos, a técnica de simulação é de grande auxílio na avaliação de

estratégias operacionais de trânsito.

Page 68: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Deve-se observar que na bibliografia pesquisada não se verificou a existência de um

método que fizesse a distribuição de fluxo em rotas que não se interceptam. Mesmo

aqueles que utilizam múltiplas rotas entre uma mesma O/D definem estas rotas pelo

menores tempos de viagem, que podem ser ou independentes (disjuntas).

Page 69: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 5

Discussão e Formulação do Problema de

Alocação de Fluxo

5.1 - Considerações iniciais Tendo como base os métodos apresentados nos capítulos anteriores, apresenta-se neste

capítulo uma formulação do problema em estudo para definir um método de alocação

de fluxo para planejamento de uma situação de emergência, visando a determinação de

rotas independentes que minimizem o tempo de viagem e maximizem a capacidade de

fluxo. O problema, desta forma, se resume em definir a partir do nó de origem (local do

acidente ou em torno dele) que rotas devem ser usadas para evacuar a população até um

local ou locais seguros.

Inicialmente, discute-se a utilização de um algoritmo de custo mínimo como uma forma

de resolver o problema de distribuição do fluxo minimizando o tempo total de

escoamento (custo).

Conforme se poderá observar no decorrer deste capítulo, para o desenvolvimento do

método de alocação de fluxo fez-se necessário um estudo sobre caminhos disjuntos

(independentes) e algoritmos existentes para definir estes caminhos. Finalmente a

proposição de um método para definir o número de caminhos disjuntos entre pares de

nós de uma rede.

Page 70: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

5.2 - Discussão sobre a Utilização de um Algoritmo de Custo

Mínimo

Por se tratar, principalmente, de um problema de minimizar tempo na distribuição de

uma demanda de fluxo, considerou-se inicialmente que o problema poderia ser resolvido

utilizando um algoritmo de custo mínimo, porque neste caso as rotas seriam definidas

objetivando-se a distribuição de fluxo, de tal forma que o somatório do produto do fluxo

pelo tempo nos arcos fosse minimizado.

Verificou-se, porém, que a utilização de um algoritmo de custo mínimo não se aplicaria

ao problema estudado na medida em que os caminhos resultantes apresentam muitas

vezes rotas que se interceptam, ou seja, possuem nós ou arcos de convergência de fluxos

que em situações de emergência, seriam pontos de conflito causando atrasos e acidentes,

além do que, torna-se difícil estabelecer quais veículos devem seguir uma determinada

via ao chegar numa interseção que representa um nó de divergência de fluxos .

Para exemplificar, aplicou-se o algoritmo de Custo Mínimo de Busacker e Gowen

(Syslo, 1982) apresentado no capitulo 2, na rede da figura 5.1, sobre a qual se deseja

alocar um fluxo de 12 unidades com origem no nó 1 e destino no 9 e, cujo custo neste

caso é representado pelo tempo em cada arco.

[2,6] [3,7]

[4,8] [1,4] [3,8] [2,6]

[2,6] [1,7]

[3,7] [4,8] [4,5] [2,7]

[3,6]

[2,9] [3,8]

Fig. 5.1 - Rede de transporte (os valores sobre os arcos [t,c] definem, respectivamente, o

tempo e a capacidade do arco).

2 1 3

4 6

7 8 9

5

Page 71: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A aplicação do algoritmo resultou na distribuição de fluxo da figura 5.2. Verifica-se, a

existência de nós de conflito (2, 5 e 6), onde ocorrem divergência e/ou convergência de

fluxos ( através de dois ou mais arcos).

6

6 4 2

6 5

5

7

Fig.5.2 - Resultado de Aplicação do algoritmo de custo mínimo de Busacker e Gowen.

Para evitar esses problemas, partiu-se para determinação de rotas independentes

(caminhos disjuntos em relação aos vértices) procurando maximizar o fluxo alocado

num tempo mínimo. Deve-se observar, porém, que cada região de estudo merece um

estudo detalhado de sua rede, pois pode acontecer que, de acordo com as condições

físicas da mesma algumas interseções, possam ser organizadas de forma que os fluxos

de cruzamento (ou convergentes) sejam escoam separadamente. Neste caso, na

montagem da rede, algumas interseções podem ser traduzidas por dois pontos distintos,

desde que operacionalmente os fluxos na mesmas possam ser separados. Como, por

exemplo, na rede da figura 5.1, se o nó 5 fosse uma interseção que pudesse ser traduzida

por dois nós (5A e 5B) poder-se-ia ter rotas disjuntas passando pelo mesmo nó. Note

porém que, se esta possibilidade existir, a mesma já deve ser definida na montagem da

rede de estudo. Um procedimento deste pode-se justificar, por exemplo, quando uma

rede apresenta poucas possibilidades de caminhos disjuntos.

Caminhos de nós distintos são utilizados em redes de comunicação para maior

confiabilidade nas ligações entre uma fonte e um sumidouro e portanto são mais

confiáveis em termos de segurança para uma evacuação de emergência.

5.3 - Caracterização de Caminhos Disjuntos

4 5 6

7 8 9

1 2

Page 72: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Alguns aspectos teóricos devem ser considerados para um melhor entendimento sobre

caminhos disjuntos. O número de caminhos disjuntos num grafo está diretamente

relacionado a conectividade do grafo e a cardinalidade do subconjunto de articulação

minimal (SCAM) do mesmo.

Define-se a conectividade (Berge, 1985,Boaventura,1996) k(G) de um grafo conexo G

como sendo o número mínimo de vértices que, se removidos do grafo desconecta G

(separando-o em componentes conexas) ou reduz G a um único vértice.

Em grafos, G = (X,U) ,não completos verifica-se que k(G) ≤ min d(x) sendo, d(x) = grau

do nó x ( x∈ X).

Um subconjunto y ⊂ X de vértices que se excluídos do grafo o desconecta é chamado de

um conjunto ou subconjunto de articulação (SCA).O menor desses subconjuntos é

chamado de SCAM.

Em 1927 Menger (Harary,1969, Bollobás,1978, Berge,1985) mostrou que a

conectividade de um grafo está relacionada ao número de caminhos disjuntos unindo

pontos distintos num grafo. Muitas variações e extensões do teorema de Menger

apareceram posteriormente.

Consideremos x e y dois pontos (vértices) distintos de um grafo conexo G. Dois

caminhos são chamados disjuntos ( algumas vezes chamados de ponto-disjuntos) se não

existirem pontos além de x e y ( e consequentemente não existirem arcos) em comum;

são chamados arco-disjuntos se não existirem arcos em comum. Um conjunto S de

pontos, arcos, ou pontos e arcos, separa x e y se x e y estão em diferentes componentes

de G - S. Claramente, nenhum conjunto de pontos separa dois pontos adjacentes. O

teorema de Menger foi originariamente definido em termos de “pontos” dado pelo

teorema 1.

Teorema 1: O número mínimo de pontos que separa dois pontos não adjacentes s e t

corresponde ao número máximo de caminhos s - t disjuntos.

Page 73: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Dos conceitos, acima conclui-se que o número de caminhos disjuntos entre dois vértice

não adjacentes de um grafo é, no máximo, igual à conectividade do grafo e à

cardinalidade do SCAM deste grafo.

Suurballe64 desenvolveu um algoritmo envolvendo k iterações de caminhos mínimos

com o objetivo de encontrar um número destes caminhos composto de nós distintos, e

com um comprimento total mínimo. Este algoritmo utiliza processos de rotulação e

algoritmos de caminhos mínimos existentes na literatura corrente.

Frish (1967) e posteriormente Steiglitz e Bruno (1971) desenvolveram algoritmos para

definir o número máximo de caminhos disjuntos. O algoritmo de Frisch aplica-se a um

grafo orientado para determinar o menor número de vértice , cuja remoção, interrompe

todos os caminhos de s para t. O algoritmo de Steiglitz e Bruno tem uma versão nova e

conceitualmente mais simples que o de Frisch, porém sua utilização é limitada a grafos

orientados sem circuitos. Estes algoritmos, porém, são trabalhosos e ineficientes para

grandes redes (Da Silva, 1980).

Takamori (1969) tratou o problema de encontrar dois caminhos arco-disjuntos com

capacidade máxima.

Hovelaque et al. (1996) desenvolveram um algoritmo primal-dual para encontrar o

número máximo de caminhos disjuntos de menor custo num grafo orientado. Para isto

utilizam um grafo auxiliar, transformando cada vértice (exceto origem e destino) num

arco de capacidade 1 e atribuindo custo 1 a todos os arcos. Com base neste grafo e

utilizando um algoritmo de caminho mínimo identifica os caminhos de menores custos

para um fluxo máximo. Os caminhos são mínimos em função do número de arcos que o

compõem.

5.4 - Formulação do Problema de Alocação de Fluxos em

Caminhos Independentes

Page 74: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Uma rede viária de transporte pode ser representada por um grafo orientado constituído

por um conjunto de arcos representando as vias de circulação e um conjunto de nós

representando as interseções das vias . À cada arco podem ser associados valores como

o tempo médio de circulação de um fluxo de veículos e sua capacidade de fluxo. A

capacidade associada a cada arco é definida a partir das condições físicas e operacionais

do mesmo e o tempo relaciona-se à velocidade de circulação e à densidade de tráfego.

O fluxo a ser alocado na rede, neste estudo, é representado pelo número de veículos

utilizados na evacuação da população em risco. Este fluxo tem sua origem em um ou

mais nós da rede que representam locais próximos à área de risco e seu destino num nó

(ou mais nós) que representa, no caso, um refúgio para a população ameaçada.

Definido o problema, a necessidade passa a ser a determinação dos caminhos a serem

utilizados para a distribuição do fluxo gerado, de modo que a evacuação da população

seja feita no menor tempo possível. Para isso, são convenientes as rotas que apresentem

maiores capacidades de fluxos e menores tempos de percurso.

Para a representação do problema, considera-se uma formulação generalizada do

mesmo.

A rede é representada por um grafo G = ( X, A) com nós x ∈∈∈∈ X e arcos a ∈∈∈∈ A. Cada

arco a ∈∈∈∈ A é caracterizado por um par (ta ,ca), onde ta é o tempo de viagem no arco e ca

é a capacidade máxima de fluxo no mesmo. O tempo de viagem, numa primeira análise,

pode ser considerado fixo para uma velocidade média predefinida e de acordo com a

capacidade do arco. Entretanto, ele pode variar em função da quantidade de fluxo

alocado no arco, conforme mencionado no capítulo 3 deste trabalho.

A capacidade Cp de um caminho p, entre um nó de origem e um nó de destino de uma

rede, é definida pela capacidade do arco de menor capacidade deste caminho, e o tempo

total neste caminho, Tp , é obtido pelo somatório dos tempos de cada arco do caminho .

Assim, ao alocar-se um fluxo de veículos num caminho, este é inferior ou no máximo

igual à capacidade deste caminho e o tempo que ele precisa para se deslocar de uma

Page 75: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

origem a o seu destino é o tempo necessário para se percorrer a rota ou caminho

definido.

Pode-se então estabelecer uma relação entre a capacidade do caminho e o tempo no

mesmo, ou seja, cada caminho p é definido por um índice Cp/Tp .

Dentro do objetivo do problema, esse índice se justifica pelo fato de que os maiores

índices, numa análise comparativa, podem representar caminhos ótimos, na medida em

que, em relação a outros caminhos, apresentam maior capacidade ou menor tempo, ou

ambos. Assim o nosso problema consiste na determinação de rotas independentes

(caminhos disjuntos), que apresentem os maiores índices Cp/Tp, para se atingir o

objetivo de escoar a maior quantidade possível de fluxo no menor tempo possível. Este

problema denomina-se problema de fluxo máximo em k caminhos independentes.

O problema pode ser formulado da seguinte forma:

- numa rede representada pelo grafo G= (X,A,c,t), determinar k caminhos

independentes, com origem em O e destino no nó D , de forma a maximizar a relação

Cp Tpp

k

/=∑

1

, ou seja,

Max Cp Tpp

k

/=∑

1

(5.1)

sujeito às seguintes restrições:

(1) Para todo arco (i , j) em G,

0 ≤ fi,j ≤ ci,j (5.2)

onde: i e j são nós extremidades do arco a, fi,j é o fluxo no arco e ci,j a capacidade do

arco.

Page 76: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

(2) No nó de origem O tem-se :

i∑ fOi -

i∑ fiO = Cp

p

k

=∑

1

(5.3)

(3) No nó de destino D tem-se:

i∑ fDi -

i∑ fiD = - Cp

p

k

=∑

1

(5.4)

(4) Para qualquer nó intermediário tem-se:

i∑ fji -

i∑ fij = 0 (5.5)

(5) Para que os caminhos sejam disjuntos tem-se

xlp

p

k

=∑

1

= 1 (5.6)

onde :

xlp = 1 se xl pertence ao caminho p

xlp = 0 caso contrário.

e sendo l o subconjunto de nós xl do conjunto X da rede que compõem os k-caminhos

mínimos.

Para resolução do problema acima, desenvolveu-se o algoritmo heurístico proposto no

capítulo 6. O desenvolvimento deste algoritmo se justifica porque não se encontrou na

bibliografia pesquisada um procedimento que resolvesse o problema acima formulado.

Este algoritmo é a contribuição original desta tese.

Como se trata de definir k-caminhos independentes, faz-se necessário, inicialmente,

utilizar um método para definir o número máximo possível de caminhos disjuntos entre

o nó de origem e o nó de destino na rede e para tanto desenvolveu-se o procedimento

apresentado em 5.5.

Page 77: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

5.5 - Método para Determinação do Número de Caminhos

Disjuntos Numa Rede

Propõe-se, neste item, um método para determinação do número de caminhos vértice-

disjuntos entre dois vértices específicos (fonte e sumidouro) numa rede orientada ou

entre pares de vértices quaisquer numa rede não orientada. Este procedimento é

importante dentro do problema estudado, porque a partir da definição do número

máximo possível de caminhos disjuntos numa rede, parte-se para identificação dos

melhores, utilizando-se o algoritmo desenvolvido no capitulo 6.

O princípio básico para determinação do número de caminhos disjuntos é a

transformação da rede inicial em uma rede em níveis (Dinic, em Syslo, 1983), onde no

nível inicial está o nó fonte (na rede orientada) ou um dos nós de um par de vértices

quaisquer, não adjacentes ( na rede não orientada).

Numa rede não orientada, o número de caminhos disjuntos entre dois vértices

predefinidos corresponde ao menor Subconjunto de Articulação Minimal (SCAM) entre

estes vértices.

Numa rede orientada, porém, nem sempre o número de caminhos disjuntos pode

corresponder ao subconjunto de articulação minimal entre a fonte e o sumidouro desta

rede. Pode existir algum nó desta rede que não pertence a nenhum caminho entre esses

dois nós, mas que esteja incluído numa cadeia entre os mesmos e, neste caso, ele é um

nó que pode pertencer a um SCAM que separa o nó fonte e o nó sumidouro.

Assim, se numa rede orientada forem ignoradas os sentidos dos arcos, o método

proposto permite definir subconjuntos de articulação minimal e, neste caso, a

cardinalidade do menor conjunto representa um limite superior para o número de

caminhos disjuntos.

Page 78: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Outro objetivo do método proposto é definir a cardinalidade do conjunto de nós que se

retirado da rede desconectam-na ou impede a passagem de fluxo entre dois nós, de tal

forma que um nó definido como origem pertença a uma das partes desconectadas e o nó

de destino a outra parte. Visto desta forma, identifica-se o número de caminhos

disjuntos pela cardinalidade do menor destes conjuntos.

5.5.1 - Conceito de Redes em Níveis

Uma rede em níveis é uma rede parcial que não apresenta as ligações entre nós de uma

mesma camada. O vértice considerado como origem pertence à camada inicial e os nós

sucessores imediatos deste, à segunda camada, e os sucessores destes, à terceira camada,

exceto aqueles que já pertencem a camadas anteriores. Assim, cada vértice pertencente

a uma mesma camada é um ponto de ligação com a camada seguinte, se o(s) nó(s)

sucessor (ou sucessores) estiver na camada seguinte.

A estrutura de uma rede em níveis se assemelha a uma árvore formada a partir de um nó

de origem (raiz) que se encontra no nível 1 desta rede e os arcos e nós adjacentes a este

nó/raiz pertencem ao nível 2.

Para um melhor entendimento considere por exemplo a rede da figura 5.3. A rede em

camadas obtida desta rede está na figura 5. 4 .

Page 79: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Fig. 5. 3 - Rede exemplo

C1 C2 C3 C4

Fig. 5.4 -Rede em camadas obtida da rede anterior (fig.5.3).

Assim, se os nós que compõem uma mesma camada forem retirados do grafo, impedir-

se -á qualquer passagem de fluxo entre a fonte (s) e o sumidouro (t) numa rede orientada

ou desconectar-se-á uma rede não orientada . Pelo método desenvolvido, pode-se

identificar os nós que pertencem a cada uma das camadas do grafo; a partir daí, definir

conjuntos de nós que podem representar conjuntos de articulação e determinar pelo

menor destes conjuntos o número possível de caminhos disjuntos entre dois vértices

(fonte e sumidouro numa rede orientada).

5.5.2- Etapas do Método

s 1

2

3

4

5

t

6

s

1

2

3

4

5

t

6

Page 80: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Dada uma rede qualquer para uma origem e um destino pré-definidos, os seguintes

passos devem ser efetuados:

Passo 1 - Atribuir valor 1 para todos os arcos da rede.

Passo 2 - Utilizando um algoritmo de caminho mínimo, encontrar os caminhos mínimos

do nó de origem para todos os nós da rede. Feito isto, identificar a camada a

que pertence cada um dos nós pelo comprimento do caminho entre o nó de

origem e o nó examinado.

Passo 3 - Identificados os nós pertencentes a cada nível, as seguintes verificações devem

ser feitas, para identificação de subconjuntos de articulação :

1) Para cada camada, verifica-se se cada um dos nós que estão no mesmo

nível possuem caminhos até o nó de destino. Neste caso, duas situações

podem ocorrer:

a) não existe caminho entre algum destes nós e o destino; neste caso, o

nó que não possui caminho não faz parte de um subconjunto de

articulação minimal.

b) existe caminho entre o nó (ou nós) do conjunto e o destino, neste

caso verifica-se se algum dos sucessores de cada um destes nós estão

na camada seguinte; se não, o nó não pertence a um subconjunto de

articulação minimal; se sim, ele faz parte de um SCAM.

2) Para os subconjuntos de nós que estão em camadas superiores ou igual ao

destino, deve-se observar que:

Page 81: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

a) os subconjuntos de articulação minimal aos quais estes nós

pertencem terão um número de elementos equivalentes à última

camada antes do nó de destino;

b) assim, os conjuntos formados pelas camadas que pertencem ao

destino (Cd ), ou após esta, serão definidos substituindo-se estes nós

pelos seus respectivos antecessores pertencentes a última camada

antes do nó de destino.

Passo 4 - Verificar os Subconjuntos de Articulação Minimal

Formados os conjuntos no passo anterior, outra verificação deve ser feita no sentido de

ratificar a cardinalidade dos menores subconjuntos, qual seja:

a) dado um conjunto, verificar, para cada um dos nós, se os mesmos

estão conectados a dois ou mais nós na camada seguinte. Caso psitivo,

verificar se nenhum outro nó desta camada se liga a estes mesmos nós

ou a um destes. Caso contrário, substituir este nó pelos seus sucessores

na camada seguinte, formando um novo subconjunto.

b) dado um conjunto, verificar se dois ou mais nós têm o mesmo

sucessor único, na camada seguinte. Substituir, então, neste conjunto

estes nós pelo nó sucessor .

Passo 5 - Identificar o menor subconjunto de articulação dos conjuntos anteriores da

rede e definir, pela cardinalidade deste, o número de caminhos disjuntos nesta

rede entre a fonte e o sumidouro.

No procedimento proposto pode-se utilizar no passo 2, qualquer algoritmo de caminho

mínimo existente, porém, os algoritmos em matriz como os de Floyd e Dantzig, têm

como resultado final as respostas necessárias para os passos 2 e 3 do procedimento, já

que nos fornece o tamanho dos caminhos entre todos os pares de vértices da rede.

Page 82: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

5.5.3 - Etapas para Implementação

Dada uma rede orientada S-T define-se o número de caminhos disjuntos entre estes nós

da seguinte forma:

1o) Para os dados da rede, atribui-se valor 1 a todos os arcos. Assim, se existe o arco

a(i,j) então v(i,j)= 1. Para cada nó, criam-se vetores contendo os nós sucessores e

antecessores dos mesmos ou uma lista de adjacências .

2o) Aplica-se à rede definida em (1o) o algoritmo de Floyd .

Na matriz final do algoritmo de Floyd, na linha correspondente ao nó de origem

verifica-se:

a) os nós cujos caminhos possuem valores ∞ (infinito), significando então, não

haver caminho entre a origem e estes nós.

b) se existe caminho do nó de origem ao nó de destino.

c) o tamanho dos caminhos do nó de origem a cada um dos nós; o caminho de

maior valor a partir da origem identifica a última camada (Cf ) do grafo. Assim

agrupam-se os nós, cujos valores dos caminhos são iguais, em conjuntos Ci ( i =

1 ... f ), identificados pelo tamanho do caminho.

3o) Considere Cd a camada onde se encontra o nó de destino t ; para todo conjunto Ci

onde i< d verifica-se (também na matriz final), para cada um deste conjuntos, se os

nós que o compõem têm caminhos até o nó de destino;caso existam, verifica-se se

algum dos sucessores de cada um destes nós está na camada seguinte; o nó que não

tiver sucessor na camada seguinte é retirado do conjunto inicial.

Page 83: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Para os nós que fazem parte do conjunto Cd , exceto o nó de destino t, verificam-se

quais aqueles que possuem caminhos até o destino e destes quais os que têm como

antecessores nós do conjunto Cd-1 . Substituem-se, então, estes nós no conjunto Cd-1,

para formar um novo subconjunto de articulação. Este processo continua até a

última camada da rede, ou seja, para todo Ci ≥ d ≤ f .

4o) Concluídas as etapas anteriores são identificados alguns subconjuntos de nós; deve-

se então fazer a verificação definida no passo 4 do método proposto, utilizando-se

os vetores que fornecem os sucessores de cada nó em cada subconjunto.

5.5.4 - Exemplo de Aplicação

Seja a rede da figura 5.5 para identificar o número de caminhos disjuntos entre o nó 1 e

o nó 20.

Fig. 5.5 - Rede para aplicação do método.

1 3 4 5

2

8 6

7

16

17 9

10

11 13 14 15

18

19

20

12

Page 84: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 1 : Atribuem-se valores Vij =1 para todos os arcos e aplica-se um algoritmo (no

caso o de Floyd ) para determinar o comprimento dos caminhos para cada

um dos nós.

Valor dos caminhos mínimos para cada um dos nós:

para o nó 2 = 1 11 = 3

3 = 1 12 = 4

4 = 2 13 = 4

5 = 3 14 = 5

6 = 4 15 = 6

7 = 3 16 = 4

8 = 2 17 = 5

9 = 3 18 = ∞

10 = 2 19 = ∞

20 = 6

Passo 2 : Identificam-se os nós que pertencem a cada uma das camadas pelo tamanho

dos caminhos, obtendo-se os seguinte subconjuntos de nós por níveis.

c1 = {3, 2}

c2 = {10, 4, 8}

c3 = {11, 5, 7, 9}

c4 = {12,13,16,6}

c5 = {14, 17}

c6 = {20, 15 }

Passo 3 : Verifica-se se cada um dos nós que compõem os conjuntos definidos no

passo 2 possui caminho até o destino . Caso positivo, verifica-se se algum

dos seus sucessores estão na camada seguinte. Caso contrário o nó é retirado

do conjunto.

Page 85: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Após esta avaliação os seguintes subconjuntos de articulação são formados:

{ 3, 2}

{10,4,8}

{11, 5, 9} ( o nó 7 foi descartado porque não possui sucessores no

subconjunto seguinte C4)

{13,16, 6} ( o nó 12 foi descartado pois não faz parte decaminho até o

destino)

{14, 17 }

{15, 17} (como o nó 15 está na mesma camada que o nó de destino, o

subconjunto ao qual ele pertence é formado substituindo-se o

seu antecessor no subconjunto anterior, que no caso é o nó 14)

Passo 4 : Verificar a cardinalidade dos conjuntos

Substituindo-se alguns nós cujas características correspondem aos itens a e b

deste passo não se encontrou conjuntos menores que os já existentes.

Passo 5 : Os menores conjuntos são: {2,3}, {14,17} e {15,17}.

Fim do procedimento.

Pelo resultado acima pode-se concluir que, nesta rede, há a possibilidade de encontrar

dois caminhos disjuntos em relação aos vértices.

5.5.5 - Considerações sobre o método

Page 86: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Deve-se observar que, quando se trabalha com uma rede orientada, pode acontecer de

haver nós inacessíveis a partir de um nó fonte não só pelo sentido de seus arcos como

também terem, neste caso aspectos de fonte ou de sumidouro. Caso ocorra (como na

rede do exemplo 5.5.4), não se pode afirmar que todos os subconjuntos de nós formados

pelo método sejam SCAMs, a não ser que sejam eliminados da rede os nós com estas

características, como é o caso dos nós 12 e 18 da rede da figura 5.5. Quando isto

acontece, só se pode afirmar pelo resultado do método, que o número de caminhos

disjuntos é definido pelo subconjunto de menor cardinalidade dentre aqueles definidos

no passo 4. Quando existem caminhos passando por todos os nós intermediários da rede

entre a origem e o destino, então os subconjuntos formados são SCAMs desta rede.

Se a rede é não orientada, os subconjuntos formados pelo procedimento proposto são

SCAMs entre dois nós específicos.

Deve-se observar que a proposição deste método deve-se apenas a sua facilidade de

utilização e implementação, porque, conforme descrito no item 5.3, encontra-se nas

bibliografia mencionada determinados algoritmos que definem o número de caminhos

disjuntos numa rede.

Page 87: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capitulo 6

Algoritmo de Alocação Ótima de Fluxo em

K-Caminhos Independentes

6.1 Considerações Iniciais

Neste capítulo apresenta-se um algoritmo heurístico desenvolvido para resolução do

problema formulado no capítulo 5, com o objetivo de definir k rotas independentes, ou

seja, sem nós coincidentes, a menos, e eventualmente, da origem e do destino, e que

permitam alocar o máximo de fluxo possível num tempo mínimo.

Como se trata de encontrar rotas que minimizem o tempo e maximizem o fluxo, a idéia

básica do algoritmo proposto é usar iterativamente um algoritmo de k-caminhos

mínimos para identificar k menores caminhos, associando-lhe um índice C/T

(capacidade/tempo) que possibilitará avaliar comparativamente cada caminho com um

outro. Os caminhos encontrados a cada iteração podem, porém, apresentar nós

coincidentes, que serão retirados, verificando-se em outra iteração a existência de outros

caminhos não coincidentes. O objetivo é, então, identificar k-caminhos para escoar o

fluxo de tráfego fazendo uma análise comparativa entre a capacidade e o tempo em cada

um. A análise foi feita considerando-se invariável o tempo de viagem nos arcos.

Para se chegar a uma solução, pode-se retirar arcos, considerados gargalos, ou retirar

nós coincidentes. A retirada de arcos gargalos é feita para se procurar obter uma

melhora na capacidade do caminho e a retirada dos nós coincidentes serve para

encontrar caminhos independentes. Através de várias iterações, são encontrados

diferentes caminhos com seus índices C/T. No final do processo, são escolhidos k-

caminhos independentes.

Page 88: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

6.2 - Construção do algoritmo

O algoritmo proposto compreende um processo iterativo em que se utiliza um algoritmo

de k-caminhos mínimos e se faz a retirada de nós e arcos da rede em estudo.

Inicialmente, faz-se necessário definir o número de caminhos que se deve procurar; isto

porque, na medida em que se aumenta o número de caminhos procurados, aumenta-se o

tempo de processamento do algoritmo em função do número de caminhos a examinar

em cada iteração. Assim, definir um limite máximo para k significa otimizar o tempo de

processamento .

O valor de k pode ser definido de três formas: a primeira, mais simplificada, define k=

min {semigrau exterior da origem O, semigrau exterior do destino D}; a segunda

compreende a utilização de um algoritmo e define k = cardinalidade do menor SCAM

da rede entre a origem e o destino (Da Silva ,1980); a terceira, mais precisa, compreende

a utilização do método proposto em 5.5, considerando-se k o número de caminhos

disjuntos entre a origem e o destino da rede estudada. As duas primeiras formas

fornecem limites superiores, sendo que a segunda se aproxima mais do número de

caminhos disjuntos possíveis.

Para encontrar k- caminhos, utiliza-se um algoritmo de k-caminhos mínimos. Existe na

literatura diversos algoritmos, conforme mencionado no capítulo 2, que apresentam

desempenhos semelhantes. As peculiaridades do problema estudado indicam a

utilização daqueles cujos resultados não apresentem caminhos com “loops” como é o

caso do algoritmo de Yen. O algoritmo “Double Sweep”, por apresentar caminhos deste

tipo (com “loops”), só deve ser utilizado quando a rede não apresentar circuitos, o que

impediria a existência de tais caminhos.

Os caminhos, quando encontrados, podem apresentar nós coincidentes, que devem ser

eliminados da rede em estudo.

Como o objetivo é encontrar caminhos que sejam independentes e apresentem os

melhores índices C/T, outra análise deve ser feita para avaliar a variação em termos de

Page 89: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

capacidade em relação aos k-caminhos encontrados. Esta análise consiste em suprimir

da rede os arcos-gargalos (arcos de capacidade mínima em um caminho) nos caminhos

resultantes. Pode-se, assim, encontrar caminhos que apresentem nós ou arcos

coincidentes com os anteriores, mas abre-se a possibilidade de encontrar um caminho

com maior capacidade e, possivelmente, com um melhor índice C/T. O porquê desta

análise pode ser melhor entendido no exemplo 6.1.

Exemplo 6.1: Suponha-se que parte de uma rede apresente a estrutura definida pela

tabela 6.1 e representada na figura 6.1.

Tabela 6.1- Dados relativos a rede da figura 6.1

arcos tempo

(min)

capacid. arcos tempo

(min)

capacid.

(S,b) 3 150 (b,d) 2 180

(S,a) 2 170 (c,b) 4 170

(S,c) 5 180 (c,d) 2 160

(a,b) 2 100 (d,T) 3 150

(a,c) 2 150 (b,T) 3 110

Fig.6.1 - Representação de parte de uma rede.

Neste exemplo para k=2, apresentam-se os dois menores caminhos : S-b-T e S-a-b-T,

com os gargalos, respectivamente, nos arcos (b,t) e (a,b). Com o objetivo de se verificar

a existência de caminhos com maiores capacidades, mantidos os mesmos nós, estes

arcos são retirados da rede.

S

a

b T

c

d

Page 90: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

O caminho S-a-b-T possui um tempo total de 7 minutos e capacidade de 100 unidades,

correspondente à capacidade do arco gargalo (a,b), desta forma, C/T é igual a 14,28. O

caminho S-b-T; possui um tempo total de 6 minutos, capacidade de 110 unidades e seu

índice C/T é igual a 18,33. Ao retirarmos os arcos (b,t) e (a,b) para efeito de avaliação,

aparece o caminho s-b-d-t , com uma capacidade de 150 unidades, tempo total de 8

minutos e conseqüentemente C/T igual a 18,75. De forma semelhante o caminho S-a-c-

d-T possui tempo total de 9 minutos e índice C/T igual a 16,67. Nesses casos,

encontraram-se caminhos que apresentam nós coincidentes com os anteriores mas que,

embora com um tempo superior, apresentam maior capacidade e um melhor índice C/T.

Alternando-se com a retirada de arcos, é feita a retirada de nós, com o que se procura

eliminar os nós coincidentes dos caminhos encontrados, já que as rotas devem ser não

coincidentes. Porém os nós e os arcos são retirados de duas redes distintas, obtidas da

rede inicial. Numa rede, são retirados apenas os arcos-gargalos e, na outra, apenas os

nós coincidentes. Este procedimento se justifica porque, a princípio, o que se deseja é

que os caminhos sejam não coincidentes (por isso são retirados os nós coincidentes).

Pode acontecer, porém, que a retirada de um nó e, conseqüentemente dos arcos

adjacentes ao mesmo, impossibilite o aparecimento de um caminho coincidente mas

com uma capacidade superior aos já encontrados, e que forneça um melhor índice C/T,

conforme se pode observar no exemplo 6.1.

6.2.1 - Procedimento para Retirada de Nós e Arcos da Rede

A retirada de arcos e de nós da rede é feita em redes distintas, ou seja, a rede inicial é

trabalhada separadamente; apenas os resultados são avaliados em conjunto para decidir

que arcos ou que nós serão retirados na próxima iteração. Assim, para a retirada de

arcos, avaliam-se os arcos gargalos dos caminhos nas duas iterações anteriores, e para a

retirada dos nós são avaliados todos os resultados (caminhos) obtidos até o momento.

Ou seja, numa rede obtida da rede inicial, a qual chama-se de RG, são retirados todos os

arcos gargalos dos caminhos mínimos. Em outra rede, chamada rede RN, também

obtida da rede inicial, retiram-se os nós coincidentes dos caminhos mínimos

Page 91: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

encontrados. Após uma iteração em que são retirados nós, a iteração seguinte de retirada

de arcos é feita sobre a rede RG. Observe-se que os resultados de ambas são avaliados

em conjunto para definir que arcos ou nós vão ser retirados da rede a cada iteração.

Por exemplo, em relação à rede da figura anterior (fig.6.1), a rede RG correspondente a

retirada dos arcos gargalos dos caminhos anteriormente encontrados (S-b-T e S-a-b-T)

teria a seguinte estrutura:

Fig. 6.2 - Rede RG resultante da retirada do arcos-garalos: (a,b) e (b,t).

A rede RN, em relação também à rede anterior, corresponderia, com a retirada do nó b

(coincidente nos dois caminhos), à seguinte rede:

Fig. 6.3 - Rede RN resultante da retirada do nó coincidente b

Este processo se encerra quando não existe mais possibilidade de se encontrar caminhos

ou, conforme um procedimento de parada definido no item 6.3, quando já existem k-

caminhos independentes.

6.2.2 - Critério que Define uma Boa Solução do Algoritmo

s

a

b t

c

s

a

t

c

d

d

Page 92: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A cada iteração são encontrados novos caminhos do nó de origem ao nó de destino e

seu índice C/T. Ao final do processo estes índices serão utilizados para decidir os

caminhos que deverão ser escolhidos. O critério utilizado para essa escolha decide pelo

conjunto de k-caminhos que apresenta a maior soma de valores C/T e não apresente nós

coincidentes.

O procedimento que define o algoritmo visa trabalhar próximo a uma situação ótima,

considerando-se que:

1. O primeiro critério de escolha baseia-se no caminho ou nos caminhos mínimos, o

segundo critério é o da capacidade: ou seja, de acordo com o índice C/T, para uma

mesma capacidade quanto menor o tempo melhor o índice e, para um mesmo tempo,

quanto maior a capacidade melhor o índice.

2. Ao se excluírem o nó ou nós coincidentes, os caminhos remanescentes terão tempos

superiores aos da iteração anterior; estes caminhos, para serem escolhidos, deverão

ter uma relação C/T superior aos caminhos das iterações anteriores e necessariamente

possuirem capacidade superior a estes caminhos. Assim estaremos sempre

procurando um caminho com maior capacidade que os anteriores.

Por (1) e (2) verifica-se que um novo caminho só será escolhido se o acréscimo

marginal de capacidade (diferença entre as capacidades / capacidade) for maior que o

acréscimo marginal de tempo: de fato, sejam Pa e Pb dois caminhos já identificados

com tempos totais Ta e Tb e capacidades Ca e Cb respectivamente. Desta forma tem-

se:

Ia = Ca/Ta (6.1)

Ib = Cb/Tb (6.2)

Supondo-se que Ta< Tb , para que o caminho Pb seja escolhido, deve-se ter Ib > Ia ,

o que implica em:

Page 93: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Cb/Tb >Ca/Ta ⇒ Cb/Ca >Tb /Ta ⇒ (Cb - Ca)/Ca > (Tb - Ta)/Ta (6.3)

6.3 Critérios de Parada do Algoritmo

A condição de parada do processo refere-se à impossibilidade de se encontrar caminhos

nas redes RG e RN, porém, para grandes redes, faz-se necessário estabelecer critérios

que garantam um número finito de iterações .

Para o algoritmo proposto, desenvolveu-se (teoricamente) um procedimento que torna

possível, numa dada iteração (quando já existem k-caminhos independentes) avaliar,

pelos resultados atuais, se ainda existe possibilidade de encontrar caminhos com

melhores índices C/T. Sabe-se que, a cada iteração, os caminhos encontrados

apresentam sempre tempos maiores que os anteriores para uma mesma rede, (porque de

uma iteração para outra são retirados arcos ou nós); assim, a possibilidade de melhoria

dos índices depende de serem encontrados caminhos com maior capacidade. Como esta

possibilidade depende dos valores de capacidade dos arcos da rede, desenvolveu-se o

seguinte procedimento:

1- Determinar o potencial máximo interno da rede, definido a partir dos valores das

capacidades dos arcos de entrada ou de saída de cada nó ( exceto origem e destino).

Para tanto examinam-se, inicialmente, os arcos incidentes interiormente

(exteriormente) em cada nó x e escolhe-se o de maior capacidade como sendo o

potencial interior PI(x) do nó (exterior PE(x) do nó ).

Em seguida se define o potencial do nó PN(x) = min {PI(x), PE( x)} e o potencial

máximo interno da rede PMI(r) = max { PN(x) | x ∈ X} . No caso de S e T só existem

PE(S) e PI(T) respectivamente ( por coerência define-se PI(S)= PE(T)= ∞ ).

2- Em uma iteração qualquer, quando já existem k-caminhos independentes, compara-se

então o valor PMI(r) com os valores das capacidades dos arcos de saída da origem e

Page 94: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

dos arcos de entrada no destino de cada um dos k-caminhos. Se PMI(r) for inferior a

todos estes toma-se PMI(r) como sendo o potencial máximo da rede PM(r), ou seja,

neste caso PM(r) = PMI( r). Caso contrário, define-se PM(r) = min { PE(S), PI(T)}.

3- Para se fazer a avaliação de parada ou não do processo, calcula-se o “índice C/T

limite” definido como a relação entre o valor potencial máximo da rede PM(r) e o

maior valor de tempo total entre os caminhos obtidos na última iteração da rede

correspondente. Se este for inferior aos índices dos caminhos independentes

encontrados até o momento é porque não existe a possibilidade de se encontrar

caminhos melhores que os já existentes e portanto a solução atual é ótima. Isto se

deve ao fato de que o tempo total dos caminhos tende sempre a aumentar. Conforme

se pode verificar no item 6.2.2, a relação (6.1) não se verifica.

Este procedimento foi desenvolvido com base no conceito de potencial de um nó

utilizado no algoritmo de fluxo máximo DMKM (in Syslo,1983), com a diferença que,

neste algoritmo, o objetivo é identificar, pela soma das capacidades dos arcos que

entram e que saem de cada nó, qual nó apresenta o menor destes valores e desta forma

definir um fluxo viável inicial na rede. No procedimento desenvolvido trata-se

simplesmente de identificar um limite superior de capacidade de fluxo.

Cabe ressaltar que a determinação do potencial máximo da rede PM(r) pode ser feita

com base na estrutura da rede inicial ou sobre a estrutura das redes na iteração corrente,

nesta última este potencial nos dá um limite mais preciso, porém o primeiro tipo de

análise só é feita uma vez ( antes de se iniciar o algoritmo) e portanto é mais simples.

6.4 - Estrutura do Algoritmo

Page 95: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Considerando-se uma rede R com um nó de origem O e um nó de destino D o algoritmo

envolve os seguintes passos:

Passo 1: Definir o número de caminhos mínimos (k) a serem avaliados

Lembrando que, conforme discutido em 6.2, o número k de caminhos a serem

avaliados pode ser definido de três formas: através dos semigraus exterior dos

nós de origem e dos nós de destino, utilizando um algoritmo para determinação

da conectividade local entre a fonte e o sumidouro, ou ainda, pela utilização do

método proposto no item 5.5.

Passo 2: Determinar k-caminhos mínimos

A determinação dos k-caminhos mínimos na rede entre a origem O e o destino D

pré-definidos pode ser realizada com a utilização de um algoritmo de k-

caminhos mínimos, já existente como os de Yen, “Double-Sweep”, entre outros,

conforme comentário feito em 6.2.

Para cada um dos caminhos encontrados obtém-se o tempo total:

Tp = t a pa p

( )∈∑ para p= 1, 2, ...,k (6.4)

onde t(a)p é o tempo em cada um dos arcos que compõe o caminho p.

Se esta é a primeira iteração ir para o passo 3; caso contrário, duas situações

podem ocorrer:

(1) se não existirem caminhos entre o nó de origem e o nó de destino definidos;

neste caso, se na etapa anterior foram retirados arcos (passo 4) ir para o passo 6,

se na etapa anterior forem retirados nós (passo 6), ir para o passo 4. Se por duas

Page 96: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

iterações seguidas não houver possibilidades de se encontrar caminhos , então ir

para o passo 7.

(2) se existem caminhos entre o nós de origem e destino, ir para o passo 3.

Passo 3 : Identificar o arco gargalo dos caminhos encontrados e definir os

índices Cp/Tp

Identificados k-caminhos mínimos, verificar o fluxo máximo que pode ser

alocado em cada caminho, definido pelo conjunto de arcos de menor capacidade

que o compõe (gargalo do caminho, (gp )).

Definir a capacidade Cp= min c(i,j)p e determinar Ip = Cp/Tp (índice

capacidade/tempo) para cada caminho p, p=1,..,k.

Cada passagem pelo passo 2 define uma iteração que finaliza no passo 3. Os

caminhos encontrados e os seus respectivos índices são armazenados numa lista

de rk caminhos , onde r representa o número de iterações. A primeira iteração

(r=1) é aquela em que se trabalha com a rede inicial .

Se a próxima iteração for par, ir para o passo 4 para avaliação da retirada dos

arcos; se a próxima iteração for ímpar , ir para o passo 5 para identificação dos

nós coincidentes.

Passo 4: Modificar a Rede (I)

Modificar a rede, retirando os arcos-gargalo identificados nas duas iterações

anteriores, e voltar ao passo 2. Esta modificação é feita na rede RG para uma

reavaliação dos caminhos quanto à sua capacidade e, conseqüentemente quanto

aos índices Ip.

Page 97: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Seja r a iteração atual. Então RG r-2 é a rede utilizada neste passo na iteração r-

2, da qual foram retirados arcos-gargalos.

Tem-se :

RG r = RGr-2 - { gr-1p , g

r-2p } p = 1,2..k (6.5)

onde gr-1p e gr-2p são, respectivamente, os conjuntos de arcos-gargalos das duas

iterações anteriores.

Com a rede RGr retorna-se então ao passo 2.

Passo 5: Identificar nós coincidentes

Neste passo, verifica-se se existem nós coincidentes nos caminhos encontrados

até o momento. Se existirem, verifica-se aquele ou aqueles que aparecem o

maior número de vezes.

Seja L o número de caminhos encontrados até a presente iteração, e xl um nó

de um caminho l (l =1,2,..L). Define-se | xl | como o número de caminhos em

que o nó xl aparece.

Se | xl | ≤ L-(k-1), então existe a possibilidade de serem achados k-caminhos

independentes. Neste caso vá para o passo 7; caso contrário vá para o passo 6.

Passo 6: Modificar a Rede (II)

Modificar a rede RN retirando dela os nós coincidentes, ou a rede inicial R, se

esta é a primeira passagem por este passo, e voltar ao passo 2.

Os nós a serem retirados são aqueles que aparecem em maior número de

caminhos, dentre todos os encontrados até a presente iteração, conforme

Page 98: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

identificados no passo anterior. Seja XL o conjunto desses nós. Seja RNr-2 a

rede modificada pela retirada de nós na penúltima iteração.

Então faz-se:

RNr = RNr-2 - {X L } (6.6)

e vai-se para o passo 2.

Passo 7: Identificação e Escolha dos k- Caminhos Independentes

Neste passo, a partir de um conjunto L de caminhos encontrados em r iterações,

verifica-se a existência de caminhos independentes e, caso existam, agrupam-se

os mesmos em conjuntos de k-caminhos independentes. Duas situações podem

ocorrer:

a) Se já existem conjuntos de k caminhos, então para cada um deles calcula-se o

somatório I pp

k

=∑

1

( p ∈ L ),. escolhendo-se o conjunto com o maior somatório.

Para se decidir se chegou-se ou não à melhor solução fazem-se as seguintes

análises:

i) Se não existe mais possibilidade de encontrar caminhos em ambas as

redes (RG e RN), então a solução existente é a melhor.

ii) Se existe ainda a possibilidade de se encontrar caminhos e já existirem

k-caminhos independentes, comparam-se os índices dos caminhos do

grupo escolhido com o “índice limite da rede” (item 6.3). Se estes forem

superiores , então esta é a melhor solução. Caso contrário :

iii) Continuam-se as iterações até que (i) ou (ii) aconteçam.

Page 99: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

b) não existem conjuntos com k-elementos. Neste caso, se não existe mais

possibilidade de encontrar caminhos , então a solução encontrada é aquela que

dá o maior somatório de índices entre os conjuntos encontrados. Se existe ainda

possibilidade de encontrar caminhos, vai-se para o passo 6.

Se a solução final apresentar um número de caminhos inferior a k, pode-se

utilizar o seguinte procedimento:

1o) verificar a última iteração em que foi retirado mais de um nó.

2o) voltar a esta iteração retirando-se um nó de cada vez e depois

combinando-os dois a dois, três a três, até n-1 a n-1 , sendo n o

número de nós coincidentes.

Fim do algoritmo.

6.5 - Síntese do algoritmo

Em resumo, o algoritmo apresenta os seguintes passos :

Passo 1 : Definir o número de caminhos ( k) a serem pesquisados.

Passo 2 : Identificar os k-caminhos mínimos na rede atual.

Passo 3 : Calcular os índices Ip=.Cp/Tp dos caminhos encontrados no passo 2 .

Passo 4 : Modificar a rede atual retirando os arcos gargalos.

Passo 5 : Identificar os nós coincidentes nos caminhos encontrados.

Passo 6: Modificar a rede retirando os nós coincidentes.

Page 100: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 7 : Definir os k melhores caminhos.

O fluxograma da figura 6.4 compreende os passos do algoritmo desenvolvido.

Fig.6.4 - Fluxograma do algoritmo desenvolvido

6.6- Exemplo de Aplicação do Algoritmo

Passo2 Determinar os K-caminhos

mínimos

Passo1 Definir K

Passo 5 Identificar os nós

coincidentes

Passo 4 Modifica a rede retirando

arcos

Passo 6 Modificar a rede retirando

nós

Passo 3 Determinar os

índices Ip

Passo 7 Avaliação dos conjuntos de

k-caminhos

Page 101: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Considere a rede da figura 6.5, onde os pares de valores sobre os arcos representam o

tempo e a capacidade respectivas, e na qual se deseja definir as rotas independentes com

origem em 1 e destino em 20 para alocar o máximo de fluxo no menor tempo possível.

Fig.6.5: Rede exemplo para aplicação

1a iteração :

Passo 1: Estabelecer o número de k-caminhos disjuntos

Sendo o semigrau exterior da origem igual a 2 e o semigrau interior do destino igual a 4,

considera-se o menor dos dois; então, k=2.

Aplicando-se o método desenvolvido para identificar o número de caminhos disjuntos

de uma rede ( no capítulo 5), pode-se verificar que, nessa rede, existe a possibilidade de

se encontrar 2 caminhos disjuntos.

1 3 4 5

2

8 6

7

16

17 9

10

11

13 14 15

18

19

20

10,1500 9,2000 11,1100

4,1200

5,1600

6,1500 6,1880 3,1400

8,1000

2,750 6,1580

7,1670 9,1450

11,1870 11,1250 9,1380

9,1100

4,1430

8,1840

6,178

4,1850

10,2000

5,1500

5,1207,157

12

10,900

7,1800

Page 102: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 2: Cálculo dos k-caminhos mínimos

Aplicando-se o algoritmo de k-caminhos mínimos encontram-se os seguintes caminhos

e seus respectivos tempos totais:

caminhos tempo total Ordem do caminho

1 2 8 9 6 17 20 29 1

1 2 3 4 5 6 17 20 41 2

Passo 3: Identificação do arco gargalo do caminho e cálculo da capacidade do caminho

e do seu índice.

Para cada um dos caminhos obteve-se:

caminhos arco gargalo capacidade índice

1 2 8 9 6 17 20 (6,17) 750 25,86

1 2 3 4 5 6 17 20 (6,17) 750 18,29

Como se trata da primeira iteração vai-se diretamente ao passo 4.

Passo 4: Modificar a rede retirando os arcos gargalos.

Neste caso retira-se o arco (6,17), que é o gargalo dos caminhos encontrados até o

momento, e volta-se ao passo 2.

RG1 = R0 - (6,17) (R0 - rede inicial )

2a iteração

Page 103: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 2 : Calcular os k-caminhos na rede modificada, obtendo-se:

caminhos tempo total Ordem do caminho

1 2 3 4 5 16 17 20 45 3

1 3 4 5 16 17 20 46 4

Passo 3 : Identificação do arco gargalo do caminho, e cálculo da capacidade do caminho

e do seu índice.

caminhos arco gargalo capacidade índice

1 2 3 4 5 16 17 20 (4,5) 1100 24,44

1 3 4 5 16 17 20 (4,5) 1100 23,91

Como na iteração anterior foram retirados os arcos gargalos, vai-se para o passo 5

(verificar o número de nós coincidentes).

Passo 5 : Identificar os nós coincidentes

Avaliando-se os caminhos encontrados até o momento verifica-se que o nó 17 , aparece

em todos os caminhos encontrados (L= 4).

Como |xl | > L - (k-1), vai-se ao passo 6.

Passo 6 : Modificação da rede retirando-se os nós coincidentes

Neste caso, retira-se o nó 17, coincidente em todos os caminhos até o momento,

modificando-se a rede anterior, que no caso é a rede inicial (Ro), e volta-se ao passo 2,

com a rede:

Page 104: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

RN1 = R0-{17}

3a iteração

Passo 2 : Cálculo dos caminhos mínimos na rede modificada RN1.

caminhos tempo total Ordem do caminho

1 2 10 11 13 14 15 20 66 5

1 2 8 9 10 11 13 14 15 20 77 6

Passo 3 : Identificação do arco gargalo do caminho e cálculo da capacidade do

caminho e do seu índice.

caminhos arco gargalo capacidade índice

1 2 10 11 13 14 15 20 (2,10) 900 13,64

1 2 8 9 10 11 13 14 15 20 (2,8) 1000 12,99

Como na iteração anterior foram retirados nós vai-se para o passo 4.

Passo 4 : Retiram-se os arcos gargalos das iterações anteriores.

Os arcos a serem retirados serão (4,5), (2,8) e (2,10) e volta-se ao passo 2, com a rede:

RG2 = RG1 - {(4,5), (2,8) (2,10)}

4a iteração:

Passo 2: Calculo dos k-caminhos mínimos da rede modificada RG2.

Page 105: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Caminhos tempo total Ordem do caminho

1 2 3 4 7 8 9 10 11 13 14 15 20 93 7

1 3 4 7 8 9 10 11 13 14 15 20 94 8

Passo 3 : Identificação do arco gargalo do caminho e cálculo da capacidade do

caminho e do seu índice.

Caminhos arco gargalo capacidade índice

1 2 3 4 7 8 9 10 11 13 14 15 20 (1,2) 1200 12,90

1 3 4 7 8 9 10 11 13 14 15 20 (13,14) 1250 13,30

Como nesta iteração foram retirados arcos, vai-se para o passo 5 para verificar os nós

coincidentes .

Passo 5 : Identificar nós coincidentes

Nesta etapa, verifica-se que o nó 2 aparece em 6 dos 8 caminhos até o momento.

Também observa-se que este número é menor que [ L-(k-1) ], o que já caracteriza a

existência de k-caminhos independentes. Vai-se, então ao passo 7 para verificar a

existência desses k-caminhos independentes.

Passo 7: Avaliar os caminhos

Verifica-se a existência de dois grupos de caminhos até o momento que são:

K1 = {4,5} ⇒ I pp=∑

4 5,

= 37,55

K2 = {4,6} ⇒ I pp=∑

4 6,

= 36,90

Page 106: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Como o conjunto K1 tem o maior valor para o somatório, os caminhos 4 e 5 são

escolhidos, e para se saber se esta já é a melhor solução, comparam-se os índices dos

caminhos com o índice limite da rede.

Na rede apresentada, tem-se PN(r) = 1780. Como este valor é superior ao menor dos

maiores valores entre PE(s1)=1500 e PE (s2)= 1200, e PN(t1)= 1430 e PN(t2)=2000,

então faz-se PN(r)= PE(s1). Assim C/T( limite)= 1500/94 = 15,9 e, como o caminho 5

possui um índice (13,64) inferior a este deve-se continuar a busca.

E se volta ao passo 6.

Passo 6 - Modificar a rede II

Conforme analisado anteriormente o nó com maior número de coincidências é o nó 2

assim:

RN2 = RN1 - {2}

Retorna-se ao passo 2.

5a iteração

Passo 2 : Calcular os k-caminhos na rede modificada RN2.

Neste caso encontrou-se apenas um caminho já determinado quando na retiradas de

arcos, retorna-se então ao passo 4.

Passo4 : Modificar a rede I

Retirar os arcos gargalos das iterações anteriores que são (1,2) e (13,14).

RG3 = RG2 - {(1,2), (13,14)}

6a iteração

Page 107: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 2 : Calcular os k-caminhos na rede modificada RG3.

Neste caso não existe mais possibilidade de encontrar caminhos .

Como, na rede RN, não existe possibilidade de encontrar mais caminhos (na última

iteração encontrou-se apenas um caminho), vai-se para o passo 7.

Passo 7: Escolha dos caminhos

Como não foi possível encontrar mais caminhos, então os caminhos escolhidos são

aqueles que fazem parte do conjunto K1 = {4,5}, definidos anteriormente.

A tabela 6.2 apresenta todos os caminhos encontrados hierarquizados do maior para o

menor em relação ao índice Ip de cada um deles (o número entre parênteses corresponde

a ordem em que os caminhos foram aparecendo) e a figura 6.6 os caminhos da solução.

Tab.6.2 - Resultado final do exemplo 1

Caminhos índice

1 2 8 9 6 17 20 (1) 25,86

1 2 3 4 5 16 17 20 (3) 24,44

1 3 4 5 16 17 20 (4) 23,91

1 2 3 4 5 6 17 20 (2) 18,29

1 2 10 11 13 14 15 20 (5) 13,64

1 3 4 7 8 9 10 11 13 14 15 20 (8) 13,30

1 2 8 9 10 11 13 14 15 20 (6) 12,99

1 2 3 4 7 8 9 10 11 13 14 15 20 (7) 12,90

Page 108: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Fig.6.6 - Resultado da aplicação

6.7 - Dados Necessários para Utilização do Algoritmo

Os dados necessários à utilização do método compreendem a estrutura da rede com seus

respectivos arcos e valores (capacidade e tempo) correspondentes e a definição dos nós

de origem e destino.

A origem do fluxo pode ser única ou, se houver mais de uma, faz-se necessária a criação

de uma origem fictícia que será unida às várias origens. Neste caso, os arcos de ligação

com cada origem têm como capacidade o maior valor de capacidade entre os arcos que

saem desta origem e os tempos de deslocamento são nulos.

A modelagem do problema em relação ao tratamento das origens requer uma avaliação

das mesmas quanto à proximidade destes pontos com a “área de risco” e com a distância

dos mesmo em relação ao destino (ou destinos). Pode acontecer, a partir de uma

avaliação inicial, que a rede seja dividida de maneira que cada parte tenha suas próprias

origens e destinos; isto vai depender da localização da “área de riscos” e da estrutura da

rede existente. Cada região deve merecer inicialmente uma análise prévia sobre como

tratar o problema para definir as origens, a rede a ser utilizada e os destinos. Algumas

1 3 4 5

2

8 6

7

16

17 9

10

11

13 14 15

18

19

20

10,1500 9,200 11,110

4,1203,140

10,90

9,145

11,18711,125 9,138

9,110

4,143

10,200

12

Page 109: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

vezes estas origens são pontos centrais de micro regiões em que é dividida a região de

estudo.

6.8 - Alocação do Fluxo nas Rotas e Cálculo do Tempo de

Evacuação

Identificadas as rotas, tem-se o tempo total por rota e o máximo de tráfego que pode

ser alocado às mesmas. Assim, em função do número total de veículos a ser distribuído,

pode-se avaliar o tempo total de evacuação.

Se o número total de veículos a ser alocado é inferior à capacidade total das vias,

procura-se distribuí-lo, alocando-se o máximo de fluxo em cada via iniciando-se pela de

menor tempo e, neste caso, o tempo total de evacuação corresponderá aos tempos das

rotas.

Quando a quantidade de veículos é superior à capacidade total das rotas, deve-se

distribuir o fluxo de modo a minimizar o custo total, definido pelo somatório do produto

do número de veículos alocado em cada rota pelo tempo total de ocupação da rota. Para

definir esta distribuição, pode-se utilizar técnicas de alocação com base em

Programação Linear, como por exemplo, o algoritmo de alocação ou então,

Programação Dinâmica. Propõe-se, porém, uma forma simplificada para definir a

distribuição, que consiste num procedimento semelhante ao utilizado pelo algoritmo de

custo mínimo de Busacker e Gowen, procurando-se minimizar a seguinte função de

custo:

minr

pr

p

k

prV Tt∑∑

=1

(6.2)

onde:

Vpr - número de veículos alocado na rota p na iteração r.

Ttpr- tempo de utilização rota p na iteração r.

r - número de iterações necessárias.

Page 110: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

O tempo de utilização da rota na primeira iteração é igual ao tempo de viagem na rota; a

partir deste ponto, se a rota é utilizada numa iteração, o seu tempo acresce de (w), que

corresponde a um intervalo de tempo entre duas alocações consecutivas de veículos.

Considerando-se as rotas definidas pelo algoritmo proposto e suas respectivas

capacidades e tempos, o procedimento consiste nos seguintes passos:

1o) Calcular a capacidade de escoamento da rota, Cep , onde:

Cep = Cp (em veic./ minutos) × Tp (em min.)

2o) Alocar o número máximo de veículos possível na rota de menor tempo. Se a

quantidade total Q foi atingida, parar; senão, alocar a quantidade possível e

subtraí-la de Q.

3o) O tempo na rota utilizada é então modificado, somando-se a este um valor

constante, que represente um intervalo entre as quantidades alocadas . Pode-se,

por exemplo, usar uma constante w igual ao tempo de viagem na rota, o que

significa que um outra parcela de veículos só será alocada quando a primeira

chegar ao destino. Feito isto, retorna-se ao passo anterior.

Para melhor entendimento do processo de alocação apresenta-se a seguir uma aplicação

do mesmo , considerando os resultados obtidos no exemplo no item 6.6 e a alocação de

uma demanda Q = 3000 veículos.

Como resultado do exemplo de aplicação 1(item 6.6) foram obtidas duas rotas :

� rota 1, com capacidade (C1 ) de 1100 veic./hora e tempo total de viagem (t1) de 46

minutos.

� rota 2, com capacidade (C2 ) de 900 veic./hora e tempo total de viagem (t1) de 66

minutos.

Page 111: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Aplicando-se o procedimento de alocação :

1o Passo - Verificar a quantidade de veículos escoados em cada rota:

Ce1 = (1100/60) x 46 = 843 (veículos)

Ce2 = (900/60) x 66 = 990 (veículos)

Primeira iteração:

2o Passo - Alocar o máximo possível na rota de menor tempo e fazendo:

V1 1 = 843

V2 1 = 0

Q = 3000 - 843.= 2157

3o Passo - Modificar o valor do tempo na rota utilizada, fazendo-se

Tt12 = 46 + 46 = 92

Tt22 = 66

e volta-se a segunda etapa .

Segunda iteração:

2oPasso - Alocar o máximo possível de menor tempo (na rota 2), fazendo:

V1 2 = 0

V2 2 = 990

Q = 2157 - 990 = 1167

3o Passo - Modificar o valor do tempo na rota utilizada, fazendo-se

Tt13 = 92

Tt23 = 66 + 66 = 132

e retorna-se a segunda etapa .

Terceira iteração:

Page 112: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

2o Passo - Alocar o máximo possível na rota 1 de menor tempo e fazendo:

V1 3 = 843

V2 3 = 0

Q = 1167- 843 = 324

3o Passo - Modificar o valor do tempo na rota utilizada, fazendo-se

Tt14 = 92 +46 = 138

Tt24 = 132

e retorna-se a segunda etapa .

Quarta iteração:

2o) Alocar o máximo possível na rota 2 de menor tempo e fazendo:

V1 4 = 0

V2 4 = 324

Q = 324 -324 = 0 , o que caracteriza o fim do processo.

O resultado desta aplicação indica a alocação de um fluxo de 1686 veículos na rota 1 de

menor tempo e 1314 veículos na rota 2. Para calcular o custo referente a esta alocação,

faz-se:

custo total = (843x 46)+ (843x92) + (990x 66) + (324x 132)= 224442 veículos-minutos.

Observe-se que o intervalo entre as alocações em cada rota poderia ter sido considerado

como a metade do tempo total da rota. Neste caso, considera-se a liberação da rota a

partir do momento em que a primeira quantidade de veiçulos alocada chegou à metade

da mesma. Consequentemente, ter-se-ia um custo bastante inferior, mas o fluxo alocado

para esta rede seria o mesmo.

A opção de considerar o intervalo de tempo entre alocações igual ao tempo total da rota,

tem como, objetivo dar maior segurança a evacuação considerando-se que este tempo

corresponde a liberação total da rota, ou seja a rota está completamente (ou quase

completamente) liberada para escoar uma outra quantidade de veículos.

Page 113: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

6.9 - Ferramentas Computacionais Desenvolvidas

Para auxiliar no processo de planejamento e agilizar a obtenção dos resultados dados

pelo método de alocação proposto desenvolveram-se alguns programas em linguagem

Turbo Pascal, que foram posteriormente agrupados num único programa denominado

CHAMA que apresenta um menu inicial com 10 opções de escolha que correspondem a

cada um deste programas desenvolvidos.

Estas opções, por sua vez, correspondem as etapas do algoritmo proposto e a seqüência

de planejamento de transporte:

1- Definir a estrutura da rede:( opção 1)

2- Determinar as rotas de evacuação.( seqüências de opções: 2,3,4,5,6,7)

3- Alocar o volume de tráfego. (opção 8)

As duas últimas opções (9 e 10) correspondem a um manual de ajuda e a saída do

programa respectivamente.

Para a determinação dos k-caminhos mínimos (correspondente ao passo 2 do algoritmo

proposto), foi utilizado o programa desenvolvido por Almeida (1993) que calcula todos

os caminhos possíveis entre dois nós de uma rede e os coloca em ordem crescente de

tamanho; o autor deste programa utilizou para tanto o algoritmo M-Shortest (Horowitz,

1976). Com base nos resultados deste programa, foram desenvolvidos outros programas

que corresponde ao fluxograma da figura 6.7. Cabe ressaltar que o programa de Almeida

apresenta algumas restrições quanto ao número de nós da rede (máximo=50), ao número

de arcos (máximo=100), e ao um número de caminhos (6000).

.

Opção 1 Criar o arquivo de entrada

de acordo com as características da rede ou escolher arquivo existente

Page 114: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Fig.6.7 - Fluxograma referente aos programas utilizados no Método de Alocação

desenvolvido.

Para utilização deste programa, deve-se inicialmente numerar todos os n nós da rede de

1 a n, sendo 1 o nó de origem e n o nó de destino da rede.

Opção 2 Determinar os K-caminhos

mínimos e respectivas características

Opção 6 Identificar os caminhos

independentes

Opção 4 Identificar os nós

coincidentes

Opção 3 Modificar a rede retirando

arcos

Opção 5 Modificar a rede

retirando nós

Arquivo de Caminhos

encontrados

Opção 8 Alocação do Fluxo

Opção 7 Avaliação dos conjuntos

de k-caminhos

Page 115: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Os dados de entrada para iniciar o método de alocação são:

a) o nó de origem e de destino;

b) a capacidade de cada via (arco) e os tempos de deslocamento em cada uma.

No anexo A, deste trabalho, apresenta-se um manual de utilização do programa.

Cabe ressaltar que o programa foi desenvolvido como uma ferramenta de auxílio à

obtenção dos resultados em cada um dos passos do método proposto, servindo inclusive,

a nível de planejamento, para testar alternativas de operação e melhoria das vias , com o

objetivo de diminuir o tempo de evacuação.

Capítulo 7

Page 116: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Aplicações do algoritmo 7.1- Considerações iniciais Para um melhor entendimento do método desenvolvido e para mostrar a viabilidade do

mesmo, apresenta-se neste capítulo uma aplicação do método desenvolvido em uma

rede extraída do bairro de Bangu, na cidade do Rio de Janeiro.

Nesta rede, os dados sobre capacidade e tempo para cada ligação foram obtidos através

de um estudo anterior (Sobue, 1991) realizado na CET (Companhia de Engenharia de

Tráfego) sendo que, para esta aplicação, alguns ajustes foram feitos em termos da

estrutura da rede. A figura 7.1 apresenta a estrutura dessa rede, que possui 46 nós e 74

arcos. A tabela 7.1 apresenta seus respectivos tempos e capacidades por ligação.

Para exemplificar a utilização do algoritmo desenvolvido, apresenta-se uma aplicação

do mesmo numa rede não orientada.

7.2- Características da Rede Bangu

Quando ocorre um acidente numa determinada região, a evacuação deve muitas vezes

ser feita em etapas: promove-se inicialmente a evacuação da área mais próxima ou

adjacente ao local do acidente e, posteriormente conforme uma programação, a

evacuação das outras regiões de acordo com a extensão do desastre.

Page 117: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Fig. 7.1: Rede viária de Bangu Tabela 7.1- Tabela de tempos e Capacidades da Rede arcos tempo capacidade arcos tempo capacidade

2 1 5 7

3 4

6

9 8 10

11 12 13 14

15 16 17 18

19 20 21

22 23 24

25 26 27 28

29 30 31 32 33

34 35 36 37 38

39 40 41 42 43

44 46 45

Page 118: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

1,2 1 3098 22,26 1 3150 1,4 1 2795 23,27 2 2600 1,5 1 2505 23,24 3 1588 2,3 5 1500 24,28 2 2600 3,9 10 1540 25,29 3 1575 4,3 4 1098 26,25 5 1360 4,6 6 2695 26,30 3 3150 5,6 5 2254 27,32 2 2600 5,7 3 2340 28,33 1 2600 6,8 8 2800 28,27 1 1588 7,10 4 2940 29,30 1 1000 8,12 7 2940 29,34 1 1200 8,13 4 1810 30,35 1 2925 8,10 2 1820 30,31 2 1960 9,11 9 1540 31,32 2 1960 9,12 7 2940 31,36 1 1700 10,13 4 1820 32,33 2 1960 10,14 2 2940 32,37 2 3400 11,15 9 1540 33,38 2 3000 12,11 2 1190 33,44 5 2450 12,16 5 3080 34,39 1 1200 13,17 10 2940 35,34 1 3881 14,13 2 1820 35,40 1 2925 14,18 10 2940 36,35 1 3881 15,16 1 1120 37,36 1 3881 15,25 10 1575 37,42 4 3400 16,19 1 3150 38,37 1 3881 16,17 1 1750 38,43 1 3881 17,20 1 3570 39,40 1 1126 18,20 5 1525 40,41 1 2025 18,21 1 2940 41,42 1 2025 19,22 5 3150 41,45 3 2400 20,19 1 1960 42,43 1 2025 20,23 1 3570 42,46 3 3400 21,24 1 2600 43,46 3 2800 21,20 1 1960 44,46 1 2925 22,23 3 1588 45,46 1 2400

Assim, na rede estudada, considerou-se o nó de origem (1) como o ponto central de uma

área que se caracteriza como uma área de risco de acidente e que deve ser evacuada de

imediato no caso do efetivo acontecimento do mesmo. O nó de destino é representado

Page 119: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

pelo nó 46, sendo considerado um local seguro para onde se deve deslocar a população

evacuada

Dentro do procedimento básico de planejamento da evacuação (Cap.1), foram citadas as

principais fases que incluem a definição da estrutura da rede e suas características, uma

previsão da demanda de tráfego gerada pela população a ser evacuada , a definição do

local ou locais seguros para os quais a população deve se dirigir e, consequentemente, as

melhores rotas para se chegar a estes locais.

Considerou-se nesta aplicação que um total de 5500 veículos seria utilizado na

evacuação e, para definir as melhores rotas independentes nesta evacuação, aplicou-se o

algoritmo desenvolvido conforme descrito a seguir.

7.3 - Identificação das Melhores Rotas Independentes

Passo 1 Definir k

Utilizando-se o método proposto no item 5.5, verifica-se que o número de caminhos

disjuntos possíveis nesta rede entre os nós 1 e 46 é 3. Então k=3.

1a Iteração Passo 2 Encontrar os 3-caminhos mínimos Num. do caminho nós do caminho tempo total

1 1-5-7-10-14-18-21-24-28-33-38-43-46 31 2 1- 5-7-10-14-18-21-24-28-33-44-46 31 3 1-5-7-10-14 -18-21-24-28-33-38-37-42-46 35

Passo3: Capacidade, índice arco e gargalo Num. do caminho capacidade índice arco gargalo

1 2340 75,48 (5,7)

Page 120: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

2 2340 75,48 (5,7) 3 2340 66,86 (5,7)

Como esta é a primeira iteração, ir para o passo 4. Passo 4 Modificar a rede Inicial (R0 ) Retirar da rede inicial os arcos gargalos identificados no passo anterior e definir:

RG1 = R0 - {(5,7)} 2a Iteração Passo 2 Encontrar 3-caminhos mínimos na rede RG1 Num. do caminho nós do caminho tempo total

4 1-5-6-8-10-14-18-21-24-28-33-38-43-46 39 5 1-5-6-8-10-14-18-21-24-28-33-44-46 39 6 1-4-6-8-10-14-18-21-24-28-33-38-43-46 40

Passo 3 Capacidade, índice dos caminhos e arco gargalo Num. do caminho capacidade índice arco gargalo

4 1820 46,67 (8,10) 5 1820 46,67 (8,10) 6 1820 45,50 (8,10)

Como na iteração anterior foram retirados arcos gargalos , ir para o passo 5 Passo 5 - Identificar nós coincidentes Em todos os seis caminhos se encontram os seguintes nós: 10,14,18,21,24,28,33. Cada

um destes nós tem |xi | = 6 ∀i, como L= 6 (6 caminhos até o momento) e |xi | > L-(k-1),

então, vai-se para o passo 6.

Passo 6 Modificar a rede Inicial R0 Retiram-se da rede inicial os nós coincidentes identificados anteriormente, e define-se:

Page 121: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

RN1 = R0 - {10,14,18,21,24,28,33}

Ir para o passo 2.

3a Iteração Passo 2 Encontrar 3-caminhos mínimos na rede RN1

Ordem do caminho

nós do caminho tempo total

7 1-5-6-8-12-16-17- 20-23-27-32-37-42-46 42 8 1-4-3-9-12-16-17- 20-23-27-32-37-42-46 43 9 1-4-6-8-12-16-17- 20-23-27-32-37-42-46 43

Passo 3 Capacidade, índice dos caminhos e arco gargalo.

Ordem do caminho

capacidade índice arco gargalo

7 1750 41,67 (16,17) 8 1098 25,53 (4,3) 9 1750 40,70 (16,17)

Como no passo anterior foram retirados nós , ir para o passo 4. Passo 4 Modificar a rede RG1 Retirar da rede RG1 os arcos gargalos dos caminhos obtidos nesta e na iteração anterior . RG2 = RG1 - {(4,3), (16,17), (8,10)} Ir para o passo 2. 4a Iteração

Page 122: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo2 Encontrar 3-caminhos mínimos na rede RG2

Ordem do caminho

nós do caminho tempo total

10 1-5-6-8-13-17-20-23-24-28-33-38-43-46 42 11 1-5-6-8-13-17-20-23-24-28-33-44-46 42 12 1-5-6-8-13-17-20-23-27-32-33-38-43-46 42

Passo 3 Capacidade, índice dos caminhos e arco gargalo Num. do caminho capacidade índice arco gargalo

10 1588 37,81 (23,24) 11 1588 37,81 (23,24) 12 1810 43,10 (8,13)

Como na iteração anterior foram retirados os arcos, vai-se para o passo 5. Passo 5 - Identificar nós coincidentes Verifica-se que o nó o qual aparece o maior número de vezes nos caminhos encontrados

até o momento (L= 12) é o nó 5; este nó aparece em nove caminhos (|x5|= 9<L-(k-1)), o

que, consequentemente, indica a possibilidade de existirem caminhos independentes

dentre os já encontrados.

Assim, faz-se necessário verificar esta possibilidade. Desta forma, vai-se para o passo 7.

Passo 7 Identificação dos K-caminhos independentes existentes Entre os caminhos encontrados até o momento, tem-se os seguintes conjuntos de K-

caminhos independentes:

Conj. de k-cam. Num .dos cam. Soma dos índices

k1 1 e 8 101,01 k2 1 e 9 116,18 k3 2 e 8 101,01 k4 2 e 9 116,18

Page 123: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Como todos os conjuntos são constituídos apenas de dois caminhos independentes e se

desejam 3, volta-se então ao passo 6.

Passo 6 Modificar a Rede RN1 Conforme visto anteriormente o nó coincidente é o 5, então faz-se : RN2 = RN1 - {5} Ir para o passo 2. 5a Iteração Passo2 Encontrar 3-caminhos mínimos na rede RN2 Num. do caminho nós do caminho tempo total

13 1-4-3-9-12-16-17-20-23-27-32-37-42-46 43 14 1-4-6-8-12-16-17-20-23-27-32-37-42-46 43 15 1-2-3-9-12-16-17-20-23-27-32-37-42-46 44

Passo 3 Capacidade, índice dos caminhos e arco gargalo Num. do caminho capacidade índice arco gargalo

13 1098 25,53 (4,3) 14 1750 40,70 (16,17) 15 1500 34.09 (2,3)

Passo 4 Modificar a rede RG2 Retirar da rede RG2 os arcos gargalos dos caminhos obtidos nesta e na iteração anterior .

Como os arcos (16,17) e ( 4,3) já foram retirados em outra iteração, serão retirados

então os seguintes arcos:

RG3 = RG2 - {(23,24), (8,13),(2,3)}

Ir para o passo 2. 6a Iteração

Page 124: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Passo 2 Encontrar 3-caminhos mínimos na rede RG3

Ordem do caminho

nós do caminho tempo total

16 1-5-6-8-12-16-19-22-26-30-35-40-41-42-46 43 17 1-5-6-8-12-16-19-22-26-30-35-40-41-45-46 43 18 1-4-6-8-12-16-19-22-26-30-35-40-41-42-46 44

Passo 3 Capacidade, índice dos caminhos e arco gargalo

Ordem do caminho

capacidade índice arco gargalo

16 2025 47,09 (40,41) 17 2025 47,09 (40,41) 18 2025 46,02 (40,41)

Como esta iteração foi feita sobre a rede RG, vai-se para o passo 5. Passo 5 - Identificar nós coincidentes Verifica-se que os nós que aparecem o maior número de vezes nos caminhos

encontrados até o momento, (L= 18), são 6 e 8, que estão em 12 caminhos (|xl |= 12< L-

(k-1)), o que indica a possibilidade de existirem caminhos independentes dentre os já

encontrados. Vai-se para o passo 7.

Passo 7- Verificar conjuntos de k-caminhos independentes Verifica-se que dentre os caminhos encontrados ainda não existe um grupo de três

caminhos independentes (k=3) e neste caso volta-se ao passo 6 para retirar os nós 8 e 6

da rede RN.

Os procedimentos anteriores são repetidos até que, neste caso chegando a 11a iteração,

são obtidos os seguintes grupos de k-caminhos independentes:

Page 125: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Num. do caminho

nós do caminho tempo total índice

1 1-5-7-10-14-18-21-24-28-33-38-43-46 31 75,48 9 1-4-6-8-12-16-17- 20-23-27-32-37-42-46 43 40,70 33 1-2-3-9-11-15-25-29-34-39-40-41-45-46 55 20,47

Num. do caminho

nós do caminho tempo total índice

2 1- 5-7-10-14-18-21-24-28-33-44-46 31 75,48 9 1-4-6-8-12-16-17- 20-23-27-32-37-42-46 43 40,70 33 1-2-3-9-11-15-25-29-34-39-40-41-45-46 55 20,47

Observe-se que os dois grupos de caminhos independentes têm o mesmo somatório,

valor ótimo nesta rede pois, prosseguindo-se as iterações, verifica-se a existência de

mais dois conjuntos de caminhos independentes , porém com somatórios inferiores a

estes. A figura 7.2 apresenta o primeiro dos resultados acima.

Fig. 7.2 - Resultado da rede Bangu. Tendo-se definido as melhores rotas, o planejamento da evacuação vai depender da

distribuição da quantidade total de veículos utilizados na evacuação, que deve ser feita

de acordo com o procedimento definido em 6.7, em que se procura distribuir o fluxo de

2

1

5

7

3

4 6

9

8

1

1

1

1

1

1

1

1

1

1

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

3

3

3

3

3

4

4

4

4

4

46

4

Page 126: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

modo a minimizar o somatório do produto do número de veículos pelo tempo de

evacuação em cada rota.

7.4 - Resultado da Aplicação na Rede Bangu

Como resultado do algoritmo, foram determinadas 3 rotas , a rota 1 com o tempo total

de viagem t1 = 31 minutos e capacidade C1 = 2340 veic/h, a rota 2, com tempo t2 = 43 e

C2 = 1750 veic/h e a rota 3, com t3 = 55 e C3 = 1125 veic/h.

De acordo com o procedimento proposto no capítulo 6 a distribuição dos veículos é feita

para atender ao objetivo de diminuir o tempo médio global de evacuação por veículo

utilizado.

Considerando um intervalo de tempo entre uma alocação e outra na mesma rota igual ao

tempo de viagem nela, chegou-se à seguinte distribuição de veículos por rota e

respectivos tempos de utilização da mesma:

Rota 1 : 2418 veic. em 62 minutos

Rota 2 : 2051 veic em 86 minutos

Rota 3 : 1031 veic. em 55 minutos

Pelos resultados obtidos, conclui-se que:

- na rota 1 devem ser alocados inicialmente 1209 veículos que correspondem , de acordo

com a capacidade de escoamento desta rota, ao número de veículos que chegam ao

destino final em 31 minutos, tempo de viagem na rota. Passados estes 31 minutos, uma

quantidade de veículos igual ao primeiro deve ser alocado na mesma , desta forma, todo

este fluxo chegará 31 minutos depois, e portanto, o tempo total de utilização desta rota

é de 62 minutos.

Page 127: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

- na rota 2, inicialmente, devem ser alocados 1254 veículos que chegam ao destino em

43 minutos, e um fluxo de 797 veículos alocados após este tempo, o que corresponde a

um tempo total de utilização da rota igual a 86 minutos.

- na rota 3 devem ser alocados 1031 veículos, que correspondem ao número de veículos

que podem chegar ao destino em 55 minutos, tempo de viagem nesta rota.

Para que esta distribuição realmente aconteça é importante que previamente seja feita

uma pesquisa que identifique a localização da população e os respectivos veículos a

serem utilizados, e que esta população tenha conhecimento sobre que rota deve ser

utilizada e a partir de que tempo deve sair, após ter sido dado o alerta de evacuação.

Faz-se necessário, algumas vezes, que uma simulação de evacuação seja providenciada

em regiões de risco, como aquelas próximas a usinas nucleares e indústrias que utilizam

elementos tóxicos, para que as pessoas se conscientizem da forma de evacuação e como

proceder em tal situação, principalmente quanto ao momento de se dirigirem às rotas de

evacuação.

7.5 - Exemplo de Aplicação numa rede não orientada Este exemplo serve para mostrar a utilização do algoritmo proposto em redes não

orientadas; em alguns casos, pode ser interessante ignorar os sentidos dos arcos para

avaliar as melhores rotas, independentemente das mesmas e, a partir dos resultados,

propor a direção das vias de acordo com as rotas definidas, ou seja, induzindo em alguns

casos, a mudanças operacionais de emergência no sistema viário existente .

Considere-se a rede apresentada na figura 7.3, trata-se de uma rede não orientada com

20 nós e 36 arcos. A tabela 7.2 apresenta as arestas e seus respectivos valores de

capacidade e tempo.

Page 128: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Fig.7.3 - Rede não orientada Tabela 7.2 - Valores dos arcos da rede não orientada Aresta Tempo Capac. Aresta Tempo Capac. Aresta Tempo Capac. (1,2) 5 1800 (6,7) 4 1850 (12,17) 3 1680 (1,6) 4 2500 (6.11) 3 2500 (13,14) 3 2100 (1,7) 4 1900 (7,8) 5 1850 (13,18) 3 2050 (2,3) 6 1500 (7,12) 4 1500 (14,15) 3 2080 (2,7) 3 2000 (8,9) 3 1320 (14,19) 4 1900 (3,4) 7 2000 (8,13) 7 1600 (14,20) 4 2350 (3,7) 8 1650 (9,10) 4 2500 (15,20) 3 2200 (3,8) 4 1650 (9,14) 5 2000 (16,17) 2 2550 (4,5) 2 2500 (10,15) 3 2000 (17,18) 3 2500 (4,9) 6 2200 (11,12) 6 1550 (18,19) 3 2500 (5,10) 3 2000 (11,16) 2 2100 (19,20) 3 2500 (5,9) 6 3000 (12,13) 5 1550

Aplicando-se o algoritmo nesta rede pode-se verificar que existe a possibilidade de se

encontrar três caminhos disjuntos (k=3). Para se chegar aos três melhores caminhos

foram necessárias 6 iterações. Os caminhos resultantes a cada iteração e seus respectivos

índices são dados pela tabela 7.3.

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

Page 129: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Tabela 7.3- Resultados da rede não-orientada

Iterações Caminhos: nós do caminho: índices

1a (1) 1-6-11-16-17-18-19-20 105,00

iteração (2) 1-7-12-13-14-20 75,00

(3) 1-7-12-17-18-19-20 75,00

2a (4) 1-7-8-9-14-20 62,86

iteração (5) 1-7-8-9-10-15-20 60,00

(6) 1-7-8-9-14-15-20 57,39

3a (7) 1-6-11-16-17-18-19-20 105,00

iteração (8) 1-6-11-16-17-18-13-14-20 80,43

(9) 1-6-11-12-13-14-20 62,00

4a (10) 1-7-8-13-14-20 69,57

iteração (11) 1-7-8-13-14-15-20 64,00

(12) 1-7-8-13-14-19-20 61,54

5a (13) 1-6-11-16-17-18-19-20 105,00

iteração (14) 1-6-11-12-17-18-19-20 62,00

(15) 1-6-11-12-13-18-19-20 57,41

6a (16) 1-7-3-4-5-10-15-20 70,37

iteração (17) 1-2-3-4-5-10-15-20 51,72

(18) 1-2-7-3-4-5-10-15-20 58,06

Dentre os caminhos encontrados, alguns conjuntos de caminhos independentes foram

obtidos e, destes, aquele que possui o maior somatório de índices é formado pelos

caminhos: 1, 2 e 17.

7.6 - Testes Realizados: Resultados e Conclusões

Para avaliar o desempenho do algoritmo desenvolvido, alguns testes foram realizados

em redes com estruturas que apresentam pequenas diferenças em relação ao exemplo

anterior (item 7.5) e na rede de Bangu. O objetivo destes teste é verificar o número de

iterações necessárias fazendo-se variar k , retirando ou colocando alguns arcos, e

variando-se o sentido de alguns deles.

Page 130: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

A tabela 7.4, apresenta as redes que foram avaliadas, com seus respectivos número de

caminhos possíveis, número k de caminhos procurados e o número de iterações

necessárias para chegar à solução. As características específicas de cada uma destas

redes são dadas a seguir.

Tabela 7.4 - Redes testadas

Rede num. de caminhos k num. nós num. arc. num.iter. BG 5092 3 46 77 11 BG1 2210 2 45 70 8 BG2 4970 2 45 73 9 BG3 5978 2 45 74 9

FCON 184 2 20 41 5 FCON2 294 3 20 43 8

FCON3 (*) 976 2 20 31 4 FCON4 (*) 3349 3 20 35 6

FCON5 387 3 20 39 5 FCON6 387 3 20 41 5 FCON7 1370 4 25 55 8 (**)

(*) redes não orientadas.

(**)encontrados apenas 3 caminhos.

A rede BG é a rede Bangu estudada anteriormente, e as redes BG1, BG2 e BG3 são

redes semelhantes a BG que têm um nó e alguns arcos a menos que esta,

impossibilitando a existência de 3 caminhos disjuntos; desta forma a solução apresenta

apenas dois caminhos (k=2), e chega-se a este resultado em número menor de iterações.

Observe-se que, apesar de BG2 e BG3 terem um pequeno número de arcos superior a

BG1, houve uma duplicação do número de caminhos possíveis, obtendo-se porém o

resultado com apenas mais uma iteração em relação a primeira.

As redes de FCON a FCON6 têm características estruturais semelhantes à rede da figura

7.3, denominada de rede FCON4 .

As redes FCON e FCON2 são redes f-conexas orientadas, sendo que, na primeira, tem-

se a possibilidade de encontrar 2 caminhos disjuntos e na segunda 3 caminhos. Numa

Page 131: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

primeira avaliação da rede FCON2 obteve-se uma solução contendo apenas 2 caminhos

em 6 iterações; fazendo-se uma reavaliação da mesma com a retirada de nós

coincidentes conforme descrito anteriormente (Passo 7 do algoritmo, item b), chegou-se

a solução com três caminhos disjuntos após 8 iterações.

As redes FCON5 e FCON6 são redes orientadas que têm a mesma estrutura, exceto em

relação a dois arcos acrescentados na rede FCON6, permitindo que a mesma se tornasse

f-conexa. Trata-se de arcos de retorno, um ligando um nó adjacente à origem a ela

mesma e o outro unindo o nó de destino a um nó adjacente a este. Desta forma, como as

origens e os destinos nas duas redes são os mesmos, não houve modificação no número

de caminhos encontrados e nem no número de iterações necessárias.

A rede FCON7 é uma rede f-conexa com um número superior de nós e arcos em relação

a FCON2, estruturada de forma a ter uma rede com k=4. Porém se observou que, por

esta conter em parte a estrutura da rede FCON2, também não se obteve numa primeira

avaliação os 4 caminhos desejados, e sim os três melhores (k-1), necessitando-se, neste

caso, que se recorra a uma reavaliação da rede para encontrar um quarto caminho.

Com base nestes testes observou-se:

a) o número de iterações necessárias à obtenção da solução depende diretamente do

número de caminhos independentes (k) procurados e do número de caminhos possíveis

entre os nós de origem e destino .

b) para k>2, pode acontecer que o algoritmo não forneça os k caminhos ótimos; neste

caso o resultado final contém no mínimo os dois melhores caminhos. Isto pode

acontecer quando um dos caminhos disjuntos possíveis possui um tempo bastante

superior aos demais, além de um arco que é gargalo de outros caminhos de menores

tempos. Para corrigir este problema, sugere-se (conforme mencionado na última etapa

do algoritmo proposto) que a partir da última iteração em que foi retirado mais de um nó

(rede RN), o processo seja retornado a partir daí, retirando-se inicialmente um nó de

cada vez, dois a cada vez, depois três a três, até (n-1) a (n-1) nós de cada vez (sendo n o

Page 132: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

número de nós coincidentes). Caso tenha-se retirado apenas um nó e este apareça em l

caminhos faz-se então uma retirada dos que aparecem somente l-1 vezes.

Quanto ao tempo computacional, não há diferenças significativas quanto às etapas do

algoritmo, mas fica claro que quanto maior o número de iterações, maior é o tempo para

se chegar a solução.

Page 133: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 8

Conclusões e Recomendações

8.1- Conclusões

Durante a pesquisa realizada para elaboração deste trabalho, constatou-se que os

modelos utilizados em estudos sobre planejamento da evacuação estavam mais

preocupados em avaliar o potencial da rede no sentido de absorção do fluxo de veículos

gerado nesta situação do que definir as melhores rotas e que, com este objetivo,

utilizavam métodos de simulação aliados às técnicas de engenharia de tráfego.

Verificou-se, então, que uma contribuição ao planejamento de transporte para uma

situação de emergência seria o desenvolvimento de um método de alocação de fluxo, o

qual, dada uma rede urbana, definisse as melhores rotas para evacuar a população o

mais rápido possível, levando à identificação das rotas que possuem mais capacidade de

escoamento no menor tempo possível. Considere-se, principalmente o fato dessas rotas

serem independentes, o que, numa situação de emergência, é importante para evitar

acidentes e maiores tumultos. O método proposto neste trabalho, conforme testes

realizados, se mostrou eficiente para definição destas rotas.

Conforme se enfatizou, no decorrer do capítulo 6, a utilização do indice Ip= Cp/ Tp, teve

como objetivo definir as rotas que tivessem maior capacidade de escoamento, levando

em conta assim , tanto o tempo de viagem como a capacidade das mesmas. Se o objetivo

for a definição de rotas visando apenas minimizar o tempo de viagem, o algoritmo

desenvolvido pode ser simplificado. Desta forma, retiram-se apenas os nós coincidentes

a cada iteração (passo5), ou seja o passo 4 não existirá. Deve-se observar porém que

nesse caso a função objetivo passa a ser de minimização do tempo total.

Page 134: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

É importante notar que o método apresentado é apenas uma parte de um plano de

transporte para situações de emergência, servindo, inclusive, para estudos que possam

avaliar medidas alternativas de melhorias físicas e operacionais de vias com o objetivo

de aumentar o desempenho das rotas. Além disso, deve-se enfatizar a importância da

modelagem na análise de possíveis modificações emergenciais na rede, viabilizando um

maior número de rotas independentes. Neste caso, a visão do engenheiro de tráfego é

importante, pois algumas interseções, por exemplo, podem ser definidas por dois ou

mais nós distintos se houver possibilidade de dividi-las para passagem de fluxos que não

se cruzem (conforme discutido no capítulo 5) ou ainda mudança na direção de vias.

Cabe ressaltar que o método desenvolvido também se aplica a qualquer tipo de análise

que envolva o problema de distribuição de fluxo em rotas independentes, minimizando

um custo e maximizando o fluxo a ser alocado.

Considera-se assim, que a contribuição principal deste trabalho está no

desenvolvimento do algoritmo proposto, e que este pode ser utilizado tanto para

planejamento de transporte quanto em problemas de otimização de redes.

8.2 - Recomendações

O programa Chama foi desenvolvido apenas com o objetivo de mostrar a

funcionalidade do algoritmo proposto e portanto sua utilização tem algumas

limitações que se devem principalmente à sua pouca capacidade e a relativa interação

com o usuário. Quanto a capacidade, o programa principal Kcam.pas não pode ser

aplicado em redes com um número de nós superiores a 50 e com mais de 100 arcos

capacitados. Quanto à interação com o usuário os resultados de algumas opções

devem ser guardados pelo mesmo para serem utilizadas em outra opção, ou seja, o

programa não usa esses resultados automaticamente. Além de um aperfeiçoamento

em relação a estes aspectos, recomenda-se que na criação de um programa de ampla

utilização os seguintes aspectos sejam considerados:

Page 135: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

1- Incorporar ao programa desenvolvido uma função de desempenho que avalie o tempo

em função do fluxo alocado.

Como uma complementação do método de alocação proposto sugere-se o uso de uma

função de desempenho para avaliar o tempo nos arcos (vias) em função do fluxo

alocado. Propõe-se, nesse caso, a utilização da função desenvolvida no modelo do

Bureau of Public Research - BPR ou a apresentada no método da Wayne State

University - WSU (capítulo 4), utiliza-se uma dessas funções para se obter uma

atualização dos tempos de deslocamento nas vias em função do fluxo que se deseja

alocar possibilitando assim uma melhor avaliação do desempenho de cada rota

encontrada.

A expressão dada pelo BPR deve ser utilizada caso os dados referentes ao tempo de

deslocamento no arco (via) estejam relacionados à velocidade de fluxo livre,

enquanto a expressão dada pela WSU deve ser utilizada quando os tempos nos arcos

são aqueles que correspondem à velocidade observada quando o fluxo possui valor

próximo a sua capacidade.

2- Introduzir um processo de simulação .

Um processo de simulação pode ser introduzido em relação à taxa de carregamento

do fluxo de veículos na rede, para avaliar uma situação em que ocorra uma ação

desordenada na evacuação da população sem obedecer a uma ordem, conforme

considerado no procedimento proposto no item 6.7 ; neste caso, pode acontecer que a

capacidade das rotas esteja aquém do montante de fluxo que pode ocorrer em um

dado momento da evacuação, formando assim um congestionamento momentâneo

que pode acarretar um aumento do tempo de evacuação. A simulação de uma

situação desta natureza pode em alguns casos fornecer informações importantes sobre

medidas que visem um melhor gerenciamento da evacuação.

Page 136: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Bibliografia

ALMEIDA, R. A., 1993, Algoritmos de Determinação de Caminhos Críticos e suas

Aplicações em Sistemas de Informação Geográfica. Tese de mestrado, IME, Rio de

Janeiro, RJ, Brasil.

BAZARAA M.S., JARVIS J.J., SHERALI H. D., 1990, Linear Programming and

Network Flows, 2nd. Ed., John Wiley & Sons.

BEN-AKIWA M., DE PALMA A. E KANAROGLON P. (1986), “Dynamic Model of

Peak Period Traffic Congestion With Elastic Arrival Rates”. Trans. Science 20(2),

pp164-181.

BERGE C. , 1985, Graphs, North-Holland Mathematical Library, 2nd. Ed.

BOAVENTURA NETTO, P. O. , 1996, Grafos: Teoria, Modelos, Algoritmos , Editora

Edgar Blucher Ltda, São Paulo.

BOERI G.C. et al, 1987, “Dynamic Model for the Study of Evacuation Under Accident

Conditions, Radiation Protection Dosimetry”, Nuclear Technology Publishing , vol 21,

No 1/3, pp 171-174.

BOLLOBÁS B., 1978, Extremal Graph Theory, Academic Press,New York.

CAMPBELL, J. F., 1992, “Selecting Routes to Minimize Urban Travel Time”,

Transportation Research, Vol. 26b, No4.

CAREY M., 1987, “Optimal Time Varying Flows on Congested Networks”, Operation

Research 35(1), 58-69.

Page 137: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

CARRILLO D., DIAZ DE LA CRUZ F., RUIZ DEL ARBOL E., 1986, Incorporacion

de las Recomendaciones del OIEA al Pan Espanol de Emergência Nuclear Plant,

IAEA-SM- 280/5.

CHEN M. , ALFA A.S, 1991, “A Network Design Algorithm Using a Stochastic

Incremental Traffic Assignment Approach” , Transportation Science,Vol.25, No3.

DAFERMOS S., 1980, “Traffic Equilibrium and Variational Inequalities”,

Transportation Science, Vol.14- 1, (feb).

DA SILVA, P.A.L., 1980, Determinação dos Subconjuntos de Articulação Minimais de

um Grafo, Tese M.Sc., COPPE/UFRJ, Rio de Janeiro, RJ, Brasil.

DAZANGO C.F., 1977, “On the Traffic Assignment Problem with Flow Dependent

Cost-I and Cost-II”, Transportation Research, vol.11.

DIAL R.B., 1971, “A probabilistic Multipath Traffic Model with Obviates Path

Enumeration”, Transportation Research, vol.5, pp.83-111, Pergamon Press.

DRISSI-KAÏTOUNI O., HAMEDA-BENCHEKROUN A., 1992, “A Dynamic Traffic

Assignment Model and a Solution Algorithm”, Transportation Science, Vol. 26 , No 2.

EDMONDS,J. E KARP, R.M., 1972, “Theoretical Improvements in Algorithmic

Efficiency for Network Flow Problems”, J.ACM 19 ,pp248-264.

FLORIAN M., SPIESS H., 1989, “Optimal Strategies: A new Assignment Model for

Transit Networks”, Trans. Research Vol. 23B, No2.

FISK C. , 1980, “Some Development In Equilibrium Traffic Assignment” , Trans.

Research, vol. 14b no/3 ( Sept.).

FORD,L.R. E FULKERSON,D.R., 1962, Flows in Networks, Princeton Univ. Press,

Princeton, New Jersey.

Page 138: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

FRIESZ T. L., 1985. “Transportation Network Equilibrium, Design and Aggregation:

Key Developments and Research Opportunities”, Transportation Research Vol. 19A,

No 5/6, pp. 413-427.

FRISH, I. T., 1967, “An Algorithm for Vertex-Pair Connectivity”, Int. Journal Control,

vol.6, no.6, pp. 570-593.

HARARY F., 1969, Graph Theory, Addison Wesley Publishing Company, USA.

HENDRICKSON C. , KOCUR G., 1981, “Schedule Delay And Departure Time

Decision In A Deterministic Model”, Trans. Science 15, pp.62-77.

HOBEIKA A.G., RADWAN A.E., JAMEI B., SIVAISALAM D., 1985,

“Transportation Action to Reduce Highway Evacuation Times Under Natural

Disasters”, Technical Appendices , Vol.2, Virginia Polytechnic Institute.

HOBEIKA A.G., KWOPING HWANG, HAN LEE D., 1986, “TEDSS: A

Transportation Evacuation Decision Support System”. In: Proceedings of the 2nd.

European Conference on Computer Simulation, pp.7-16, Antwerp, Belgium,. Sept.

HO J. K., 1980, “A Sucessive Linear Optimization Approach to the Dynmamic Traffic

Assignment Problem”, Transportation Science, vol. 14, pp. 295-305.

HOROWITZ,E., SAHNI, S., 1976, Fundamentals of Data Structures , Computer

Science Press.

HOVELAQUE,V., COMMAULT. C., DION J.M., 1996, “Analysis of linear structured

systems using a primal-dual algorithm”; Systems & Control Letters 27, pp.73-85.

HUTCHINSON B.G., 1979, Princípios de Planejamento dos Sistemas de Transporte

Urbano, Editora Guanabara Dois S.A., RJ.

Page 139: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

JANSON B. N., 1991,“Dynamic Traffic Assignment for Urban Road Networks”, Trans.

Research, Vol.25b, No 2/3.

JASKE, R.T., 1986, “Fema’s Computerized Aids for Accident Assessment”, IAEA-

SM-280/85.

JENSEN, P.A., BARNES J. W., 1987, Network Flow Programming, John Wiley &

Sons.

KATOH N., IBARAKI T. E MINE H.; 1982, “An efficient Algorithm for K Shortest

Simple Paths”, Networks, vol.12 pp. 411-427.

KENNINGTON J. L., HELGASON R.V., 1988, Algorithms for Network Programming,

John Wiley & Sons.

LEBLANC L.J., MORLOK E., PIERSKALLA P.W. , 1975 “An Efficient Approach to

Solving the Road Network Equilibrium Traffic Assignment Problem”, Transportation

Research Vol.9.

LEONARD D.R. AND GOWER P., 1982, User Guide to CONTRAM Version 4. TRRL

Report SR 735, Transportation Research Laboratory, Cranthorne, England..

MAHMASSANI E HERMAN, 1984, “Dynamic User Equilibrium Departure Times

And Route Choice An Idealized Traffic Arterial”. Trans. Science 18, pp.362-384.

MANHEIM M.L., MARTIN B.V., 1965, “A Research Program for Comparison of

Traffic Assigment Techniques”, Highway Research Record 88.

MERCHANT D. K., NEMHAUSER G. L., 1978, “A Model and an Algorithm for the

Dynamic Traffic Assignment Problem”, Transportation Science vol.12, No 3, pp. 183-

199,

Page 140: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

MERCHANT D.K. , NEMHOUSER G.L, 1978, “ Optimality Conditions for a Dynamic

traffic Assignment Model”. Transportation Science vol. 12b, pp200-207.

MINIEKA E., 1990, Optimization Algorithms for Networks and Graphs, Ed. Marcel

Dekker Inc. 1st and 2nd ed.

MORALES, P. R. D., 1993, Modelo para Gerenciamento de um Corredor Ferroviário

de Transporte de Carga, Tese de Mestrado, IME , Rio de Janeiro, RJ, Brasil.

NEWELL G.F., 1980, Traffic Flow On Transportation Network, MIT Press.

NGUYEN S., 1974, “An algorithm for The Traffic Assignment Problem”,

Transportation Science, Vol.8/3, (aug.).

PAPACOSTAS G. S. Fundamentals of Transportation Engineering, Prentice Hall Inc.,

1987.

PAPAGEORGIOU M., 1990, “Dynamic Modeling, Assignment, and Route Guidance

in Traffic Networks”, Trans. Research, vol.24b, No 6, pp. 471- 495.

PERRY R.W., LINDELL M.K., GREENE M.R., 1981, Evacuation Planning in

Emergency Management, Lexington Books,

PLANE D.R., MCMILLIAM C. JR , 1971, Discrete Optimization, Prentice Hall Inc.,

Englewood Cliffs, N.J.

POTTS R.B. , OLIVER R.M., 1972, Flows in Transportation Networks, Academic

Press , New York.

ROBILLLARD P., 1974, Multipath Traffic Assignment with Dynamic Input Flows,

Trans. Research vol. .8, pp. 567-573.

Page 141: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

SHEFFI Y., DAZANGO C., 1977, “On Stochastic Models of Traffic Assignment,

Transportation Science”, vol.11/3 , pp.253- 274.

SHEFFI Y., 1985, Urban Transportation Network : Equilibrium Analysis with

Mathematical Programming Models, Prentice Hall Inc., Englewood Cliffs, N.J.

SHIER D. R., 1976, “Interactive Methods for Determining the K- Shortest Paths in a

Network”, Networks, No 6,pp 205-229.

SHIER D. R., 1979, “On Algorithms for Fiding the k-Shortest Paths in a Network”,

Networks, No 9, pp. 195- 214.

SMITH M. J. , 1993, “A New Dynamic Traffic Model and the Existence and

Calculation of Dynamic User Equilibrium on Congested Capacity-Constrained Road

Networks”, Trans. Research, vol.27b, No 1, pp. 49-63,.

SOBUE, J. K., 1991, Método de Alocação e Simulação de Tráfego em Rede Urbana,

Tese de Mestrado, IME, Rio de Janeiro, RJ, Brasil.

STEENBRINK P.A., 1974, Optimization of Transport Networks, Ed. John Wiley &

Sons.

STEIGLITZ, K. AND J. BRUNO, 1971, “A New Derivation of Frisch’s Algorithm for

Calculating Vertex-Pair Connectivity”, BIT, Vol. 11, pp. 94-106.

SUURBALLE, J. W., 1974, “Disjoint Path in a Network”, Networks, 4, pp125-145.

SYSLO M.M., NARSINGH D., KOWALIK J.S. 1983, Discrete Optimization

Algorithms With Pascal Programs, Prentice Hall, Inc. Englewood Cliffs..

TAAFFE E. J., GAUTHIER H.L., 1973, Geography of Transportation, Foundation of

Economic Geography Series, Prentice Hall, Inc., Englewood Cliffs, N.J.

Page 142: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

TAKAMORI, H., 1969, Edge Disjoint Routes and Blocking Routes Problems,

Department of Statistics and Operation Research, University of Pennsylvania,

November.

VAN AREDE D., 1987, “A Review of candidate Freeway-Arterial Corridor Traffic

Models”, Transportation Research Record 1132, pp.53-65.

VAN DEN DAMME,R., R. BECKERS, MOUREAU J.C. , 1986, Nuclear Facilities

Emergency Planning in Belgium, IAEA - SM- 280/33.

VAN VLIET D., 1982, “SATURN- A modern Assignment Model”, Traffic engineering

and Control 23, pp. 578-581.

VIEIRA, J.C.F., LOPES, L.A.S., 1989, “Evacuação de Localidade Atingida por

Acidente Nuclear: Uma contribuição ao Caso de Angra dos Reis” . Revista Militar de

Ciência e Tecnologia, vol. VI - no4- out/dez.

VLIET D. V., 1987, “The Frank Wolfe Algorithm for Equilibrium Traffic Assignment

Viewed as a Variational Inequality”, Transportation Research , Vol.21 No1, pp.87-89.

VYTHOULKAS P. C., 1990, “A Dynamic Sthocastic Assignment Model for the

Analysis of General Networks”, Trans. Research, vol. 24b, No 6,pp.453- 469.

WARDROP J.G., 1952, “Some Theoretical Aspect of Road Traffic Research

Proceedings”, Institution of Civil Engineering, 1, part 2, 325 - 378..

YAGAR S., 1976, “Emulation of Dynamic Equilibrium in Traffic Networks”, In traffic

Equilibrium Networks, pp. 260-264. M.Florian ed. Springer Verlag, Berlin.

YEN J.Y., 1971, “Finding the K- shortest Loopless Paths in a network”, Management

Science, vol.17, No 11, Jul.

Page 143: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

ANEXO A

Manual de Utilização do Programa CHAMA

Com objetivo de efetuar as etapas do algoritmo proposto, desenvolveu-se em linguagem

Turbo Pascal, o programa CHAMA.exe. Ao executar este programa tem-se inicialmente

uma tela que apresenta dez opções de tarefas. As sete primeiras opções correspondem à

entrada de dados para estruturação da rede e às etapas do algoritmo de k-caminhos

independentes, a oitava corresponde ao processo de alocação de fluxo, a nona é uma

opção de ajuda ao usuário do programa e a última finaliza a execução do programa. Ao

escolher uma opção o usuário tem uma tela correspondente a mesma , antes porém de

preencher os dados da tela deve confirmar a opção teclando <ENTER> ou <ESC> para

sair. As opções do programa são descritas a seguir.

Opção 1 - Criar Rede

Esta opção corresponde à entrada de dados para criação da rede caso o arquivo

correspondente a mesma ainda não exista. Para defini-la faz-se necessário inicialmente a

numeração de todos nós da rede de 1 a n, sendo n o total de nós da rede, 1 o nó de

origem e n o nó de destino. Além disso, as seguintes informações são necessárias :

- o grau de cada nó numa rede não-orientada ou o semigrau exterior de cada nó numa

rede orientada.

- tempo de viagem em cada arco e

- capacidade de cada arco.

No início da execução, pede-se o nome do arquivo-rede que vai conter as informações

sobre o tempo de viagem nos arcos, o grau de cada nó e nós adjacentes. Em seguida

pede-se o nome do arquivo de capacidade, que conterá as informações sobre a

Page 144: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

capacidade de fluxo em cada arco. Em ambos os casos o programa atribui a terminação

“.dat” para os nomes fornecidos.

.Opção 2 - k-caminhos

Esta opção executa um programa que calcula todos os caminhos possíveis entre o nó de

origem e o nó de destino na rede estudada e fornece os k melhores caminhos pedidos.

No início deste programa pede-se o nome do arquivo-rede e do arquivo de capacidade,

criados anteriormente; além disso, deve-se fornecer o nome do arquivo de saída. Após

estas informações, faz-se necessário informar se a análise está se iniciando, ou não. Esta

informação é importante para o resultado final do programa, assim durante as várias

iterações para uma mesma análise um arquivo (resultad.dat) contendo os caminhos já

examinados é criado.

Cabe ressaltar que ao se analisar uma rede a mesma é modificada a cada iteração de

acordo com o algoritmo, assim faz-se necessário que o usuário do programa guarde o

nome da rede a ser utilizada na próxima iteração.

Como resultado desta opção aparecem na tela os k-menores caminhos solicitados com

as seguintes informações:

- os nós que compõem cada caminho

- o tempo total do caminho

- a capacidade do caminho

- o arco gargalo do caminho

- o índice (Cp/Tp) deste caminho ( p= 1..k).

Estas informações são armazenadas no arquivo de saída especificado anteriormente

porém, o usuário deve anotar os arcos gargalos que serão retirados da rede na opção 3.

A cada execução deste programa são criados os arquivos a seguir:

Page 145: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

a) Arquivos internos

kpath.dat - neste arquivo estão todos os caminhos possíveis entre os nó de origem e

destino e os seus respectivos tempos totais de viagem.

kcamin.dat - apresenta a posição dos caminhos fornecidos pelo arquivo Kpath.dat

quanto a sua ordenação do menor para o maior (tempo).

sig-in.dat - os nós do caminho pedido.

custo.dat - contém o valor do tempo total de viagem de cada caminho pedido.

b) Arquivos de resultados:

“saida”.dat - arquivo contendo as informações dadas na tela e especificadas acima. O

nome “saída” é fornecido pelo usuário, que pode atribuir qualquer nome utilizando até

oito letras.

coincid.dat - este arquivo apresenta uma matriz k x n de valores 0-1, onde cada linha

representa um k-caminho ( o valor 1 indica que o nó referente àquela coluna está

presente no caminho). O número de linhas representa, então, o número de k-caminhos

encontrados até o momento e o número de colunas, o número de nós da rede.

resultad.dat - este arquivo apresenta um resumo dos caminhos encontrados até o

momento, na ordem em que foram aparecendo, com seus respectivos índices.

Opção 3 - Retirar Arcos

Esta opção executa um programa que modifica a rede (RG) da iteração anterior

eliminando os arcos gargalos. Inicialmente pede-se o nome do arquivo a ser modificado

e o nome do novo arquivo, se esta é a segunda iteração o arquivo a ser modificado é

Page 146: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

aquele referente a rede inicial, caso contrário é o último arquivo rede-RG criado . Os

arcos a serem retirados devem ser dados em ordem crescente quanto ao número do nó de

origem do arco e quando as origens coincidirem deve-se fornecer em ordem crescente

em relação aos destinos.

Opção 4 - Nós Coincidentes

Nesta opção verifica-se a existência de nós coincidentes pelo número de vezes em que

cada nó aparece no conjunto de caminhos encontrados; assim é possível identificar qual

ou quais nós aparecem o maior número de vezes e devem ser retirados da rede para as

avaliações posteriores. O resultado do programa aparece na tela e é armazenado no

arquivo nos-coinc.dat.

O nó ou nós a serem retirados devem ser guardados pelo usuário que precisará desta

informação para passar para a etapa seguinte (opção 5)

Opção 5 - Retirar nós

Nesta opção, referente a etapa 6 do algoritmo, modifica-se a rede (RN) da iteração

anterior eliminando os nós coincidentes, identificados na opção 4. No início do

programa pede-se o arquivo-rede que vai ser modificado e o nome do novo arquivo. Os

nós a serem retirados devem ser dados em ordem crescente de numeração.

Nesta opção o arquivo-rede a ser modificado será a rede inicial se esta é a primeira vez

se retiram nós , caso contrário será a última rede (RN) modificada. Os nomes destes

arquivos portanto devem ser guardados pelo usuário.

Opção 6- Conjuntos de k-caminhos

Page 147: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Esta opção executa um programa utilizado para identificar os conjuntos de k-caminhos

independentes dentre aqueles encontrados. Apresenta vários arquivos resultados que

são:

Resulfim.dat - este arquivo apresenta uma matriz triangular, onde cada linha contém em

primeiro lugar o número do caminho (segundo a ordem em que foi aparecendo nas

análises efetuadas), e em seguida os números dos caminhos disjuntos a ele .

Utilizando-se este arquivo de saída e sabendo-se que k-caminhos são independentes se

forem independentes dois a dois, pode-se compor qualquer conjunto de k-caminhos

independentes, e em conjunto com o arquivo de saída resultad.dat obtido após a

execução da opção 2, pode-se definir o conjunto de k-caminhos independentes que

maximiza o somatório dos índices Cp/Tp.

Kcoinc.dat - este arquivo fornece pares de caminhos independentes, ou seja , para k=2

utiliza-se este arquivo para identificar o melhor conjunto de caminhos.

K-conj.dat - este arquivo fornece conjuntos de três caminhos não-coincidentes (k=3),

caso eles existam.

K4conj.dat - este arquivo fornece conjuntos de quatro caminhos não-coincidentes (k=4),

caso eles existam.

Para k>4 , deve-se fazer uma composição de caminhos utilizando-se o arquivo

Resulfim.dat, conforme dito acima.

O programa principal tem possibilidade de ser utilizado para valores de k maiores que 4

, porém a formação de conjuntos de até quatro caminhos independentes é uma limitação

do subprograma referente a esta opção e à opção seguinte.

Opção 7 - Somatório de Índices

Page 148: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Com este programa se finaliza o processo, pois este fornece o somatório de índice de

todos os conjuntos de caminhos independentes identificados no programa anterior (para

k=2, 3 ou 4) podendo-se assim escolher o melhor conjunto.

Estes conjuntos apresentam os números referentes aos caminhos pela ordem em que

estes foram aparecendo em cada iteração, por exemplo, o conjunto K1= {3,5} representa

o terceiro e o quinto caminho que aparecerem como resultado nas iterações. Para

identificar os nós que o compõem, a sua capacidade e o tempo total de viagem no

mesmo, deve-se utilizar os arquivos de “saida”. dat que são criados ao se utilizar a

opção dois.

Opção 8 - Alocar Fluxo

Esta opção permite definir a distribuição do volume de tráfego nas rotas identificadas e

consequentemente o tempo de utilização de cada rota.

Para tanto , pede-se inicialmente o volume de tráfego a ser alocado, o número de rotas e

a capacidade e o tempo total de viagem em cada uma. Estes dados são obtidos conforme

mencionado na opção anterior.

Opção 9 - Ajuda

O usuário deve utilizar esta opção quando desejar tirar alguma dúvida sobre as demais

opções do programa sem recorrer a este manual. Desta forma apresenta-se um menu

correspondentes às opções do programa e o usuário ao acessá-las terá uma breve

explicação sobre as mesmas.

Opção 0 - Terminar

Esta opção deve ser utilizada quando se desejar sair do programa.

Page 149: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Observações Para Maior Facilidade de Utilização:

a) Atribuir ao nome do arquivo de saída um número que identifique a iteração, por

exemplo saida1, saida2.. etc, assim torna-se mais fácil identificar pelo número do

caminho em qual iteração este surgiu , e identificar os nós que o compõe, sua

capacidade e o tempo total.

b) A cada resultado da opção dois imprimir os dados da tela e identificar pelo nome

dado ao arquivo de saída a iteração correspondente.

c) Ao se modificar uma rede a partir da rede inicial, sugere-se somar a letra G ao nome

dado a rede inicial se forem retirados arcos e N se forem retirados nós, e um número

que identifique a última rede deste tipo que foi modificada. Por exemplo, supondo-se

que a rede inicial seja TESTE, a primeira rede modificada retirando-se arcos deve ser

chamada de TESTEG1, e a próxima rede resultante desta será a rede TESTEG2,

desta forma fica mais fácil identificar a rede a ser utilizada na opção 2 e as redes a

serem modificadas nas opções 3 e 5. Deve-se lembrar porém que estes nomes têm um

limite de oito caracteres.

Page 150: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

ANEXO B

Listagem do Programa Chama {$o+,F+,r+,v-} {$M 65520,0,655360} Program Chama; uses crt,dos,overlay,ov_start,ov_funct,k_camin, coindnos,kconju,arq_rede,evac,ajuda; Type num = array [1..5] of integer; nome= string[14]; Var n : num; no :integer; op:char; ok:boolean; Begin repeat clrscr; drawbox(1,79,1,24,white,blue); gotoxy(32,7); write('MENU PRINCIPAL'); gotoxy(32,8); write('==== ========='); gotoxy(30,10); write('1- ARQUIVOS DE ENTRADA'); gotoxy(30,11); write('2- K_CAMINHOS'); gotoxy(30,12); write('3- RETIRAR ARCOS'); gotoxy(30,13); write('4- NOS COINCIDENTES'); gotoxy(30,14); write('5- RETIRAR NOS '); gotoxy(30,15); write('6- CONJUNTOS DE K-CAMINHOS'); gotoxy(30,16); write('7- SOMATORIO DOS INDICES');

Page 151: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(30,17); write('8- ALOCAR FLUXOS'); gotoxy(30,18); write('9- AJUDA'); gotoxy(30,19); write('0- PARA TERMINAR'); gotoxy(25,23); write('Digite o n£mero da opcao desejada -> '); repeat gotoxy(61,23); write(' '); gotoxy(61,23); readln(op); if op in ['1','2','3','4','5','6','7','8','9','0'] then ok:=true else ok:=false; until ok; case op of '1': prog1; '2': prog2; '3': prog3; '4': prog5; '5': prog4; '6': prog6; '7': prog7; '8': prog8; '9': prog9; '0': exit; end; until op='0'; end.

Page 152: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

{$o+,F+} Unit arq_rede; interface uses crt,dos,overlay,ov_funct; type nome = string[14]; matriz_cap = array[1..50,1..50] of integer; Var arquivo1,arquivo: text; arqfisico1,arqfisico,dados,capa: nome; i,j,x,y,no,gr,num_nos,erro:integer; no_inic,no_fin,adj,temp,cap:integer; matcap: matriz_cap; ch,opcao:char; ok,fk: boolean; str : pathstr; path,tipo_arq : string; num_aux : string[5]; procedure prog1; procedure prog4; procedure prog3; implementation Procedure Prog1; procedure lista_arq_existente(var FileSpec : string); begin DirList(FileSpec,diretorio,num_arq); if FileSpec ='*.RED' then begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(21,7); write('LISTA DE ARQUIVOS DE REDE DISPONIVEIS'); gotoxy(21,8); write('===== == ======== == ==== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de rede encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink);

Page 153: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; (* escolhe_arq;*) arqfisico:= nome_escolh; assign(arquivo,arqfisico); end else begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(21,7); write('LISTA DE ARQUIVOS DE CAPACIDADE DISPONIVEIS'); gotoxy(21,8); write('===== == ======== == ========== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de capacidade encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink); write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; (* escolhe_arq;*) arqfisico1:= nome_escolh; assign(arquivo1,arqfisico1); end; end;(* end procedure utiliza_arq_existente *) begin repeat clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(30,7); write('ARQUIVOS DE ENTRADA'); gotoxy(30,8); write('======== == ======='); gotoxy(30,12); write('1-Criar Arquivo Novo'); gotoxy(30,14); write('2-Listar Arquivos Dispon¡veis');

Page 154: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(30,16); write('3-Retornar ao Menu Principal'); gotoxy(60,20); write('Op‡Æo -> '); repeat gotoxy(69,20); write(' '); gotoxy(69,20); {$I-}readln(opcao);{$I+} ok:=(opcao in ['1', '2', '3']); until ok; if opcao = '1' (* criar arquivo novo *) then begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(32,7); write('ARQUIVOS DE REDE'); gotoxy(32,8); write('======== == ===='); gotoxy(8,10); write('NOME DO ARQUIVO-REDE : (8 caracteres)'); textcolor(yellow+blink); gotoxy(16,23); writeln('Pressione <ESC> para sair ou <ENTER> para continuar'); repeat gotoxy(31,10); inkey(fk,ch); if key = Esc then exit; until key in [Esc, CarriageReturn]; TextColor(yellow); gotoxy(16,23); writeln(' '); drive:=0; repeat gotoxy(31,10); write(' '); gotoxy(31,10); readln(dados); delete(dados,9,4); for i:=1 to 8 do dados[i]:=upcase(dados[i]); dados:=dados+'.RED'; getdir(drive,path); str:=fsearch(dados,path); if str = dados then begin gotoxy(3,23);

Page 155: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

write(#7,'Arquivo ',dados,' ja existe !'); delay(1500); ok:=false; gotoxy(3,23); write(' '); end else begin gotoxy(3,23); write('Confirma a utilizacao do Arquivo ',dados,' (S/N) ? '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); readln(opcao); until upcase(opcao) in ['S','N']; if upcase(opcao) = 'S' then ok:=true else ok:=false; gotoxy(3,23); write(' '); end; until ok; arqfisico:= dados; assign(arquivo,arqfisico); rewrite(arquivo); gotoxy(11,12); write('Numero de nos da rede = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,num_nos,erro); if (num_nos <= 2) or (num_nos > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; write(arquivo,num_nos:4); gotoxy(23,14); write('No inicial= '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,no_inic,erro);

Page 156: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

if (no_inic <= 0) or (no_inic > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; gotoxy(25,16); write('No final= '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,no_fin,erro); if (no_fin <= 0) or (no_fin > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; write(arquivo,no_inic:3); write(arquivo,no_fin:3); writeln(arquivo); clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(30,7); write('ARQUIVO DE CAPACIDADE'); gotoxy(30,8); write('======= == =========='); gotoxy(11,10); write('NOME DO ARQUIVO DE CAPACIDADE : (8 caracteres)'); repeat gotoxy(43,10); write(' '); gotoxy(43,10); readln (capa); delete(capa,9,4); for i:=1 to 8 do capa[i]:=upcase(capa[i]); capa:=capa+'.CAP'; getdir(drive,path); str:=fsearch(capa,path); if str = capa then begin ok:=false; gotoxy(3,23); write(#7,'Arquivo ',capa,' ja existe !'); delay(1500); gotoxy(3,23); write(' '); end

Page 157: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

else begin gotoxy(3,23); write('Confirma a utilizacao do Arquivo ',capa,' (S/N) ? '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); readln(opcao); until upcase(opcao) in ['S','N']; if upcase(opcao) = 'S' then ok:=true else ok:=false; gotoxy(3,23); write(' '); end; until ok; arqfisico1:= capa; For i:= 1 to num_nos do Begin write (arquivo, i:4); write (arquivo, i:4); writeln (arquivo); end; assign(arquivo1,arqfisico1); rewrite(arquivo1); For i:= 1 to num_nos do begin gotoxy(11,12); write ( 'Grau do no ',i,' = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,gr,erro); if (gr < 0) or (gr > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; write(arquivo,i:3); write(arquivo,gr:3); writeln(arquivo); For j:=1 to gr do begin gotoxy(11,14); write('No adjacente ',j,' = ');

Page 158: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,adj,erro); if (adj < 0) or (adj > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; gotoxy(11,16); write('Tempo entre ',i,' e ',adj,' = ' ); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,temp,erro); if (temp < 0) or (temp > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; gotoxy(11,18); write('Capacidade entre ',i,' e ',adj,' = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,matcap[i,adj],erro); if (matcap[i,adj] < 0) or (matcap[i,adj] > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; write(arquivo,adj:3); write(arquivo,temp:3); write(arquivo1,i:3); write(arquivo1,adj:3); write(arquivo1,matcap[i,adj]:5); writeln(arquivo1); gotoxy(11,14); write(' '); gotoxy(11,16); write(' '); gotoxy(11,18); write(' ');

Page 159: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

end; writeln(arquivo); gotoxy(11,12); write(' '); end; close(arquivo); close(arquivo1); end else if opcao = '2' then begin tipo_arq:='*.RED'; lista_arq_existente(tipo_arq); tipo_arq:='*.CAP'; lista_arq_existente(tipo_arq); end; until opcao = '3'; end; (* end procedure prog1 *) procedure prog4; {.......................................................................................................... Este procedure retira nos de uma rede existente, criando uma nova rede. ................................................................................................................} const zero = 0; type nome = string[14]; matriz_cap = array[1..50,1..5] of integer; ret = array[1..10] of integer; Var arquivo1,arquivo: text; arqfisico1,arqfisico,dados,novo: nome; i,j,no,gr,num_nos,num,k,nn,n,g,ni,nf:integer; no_inic,no_fin,nr,l:integer; matcap: matriz_cap; ch:char; nos, adj, temp,t,nt,nm,nod: ret; Begin clrscr; drawbox(1,79,1,24,yellow,blue); FileSpec:='*.RED'; DirList(FileSpec,diretorio,num_arq); gotoxy(15,7); write('RETIRAR NOS - LISTA DE ARQUIVOS DE REDE DISPONIVEIS');

Page 160: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(15,8); write('======= === ===== == ======== == ==== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de rede encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink); write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; escolhe_arq; arqfisico:= nome_escolh; clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(35,7); write('RETIRAR NOS'); gotoxy(35,8); write('======= ==='); gotoxy(8,12); write('NOME DO NOVO ARQUIVO-REDE : (8 caracteres)'); repeat gotoxy(36,12); write(' '); gotoxy(36,12); readln(novo); delete(novo,9,4); for i:=1 to 8 do novo[i]:=upcase(novo[i]); novo:=novo+'.RED'; getdir(drive,path); str:=fsearch(novo,path); if str <> novo then ok:=true else begin gotoxy(3,23); write('Arquivo ',novo,' ja existe. Usar este arquivo (S/N) ? '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); readln(opcao); until upcase(opcao) in ['S','N']; if upcase(opcao) = 'S'

Page 161: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

then ok:=true else ok:=false; gotoxy(3,23); write(' '); end; until ok; arqfisico1:= novo; gotoxy(8,14); write('Numero de nos para retirar = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,nr,erro); if (nr <= 0) or (nr > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; num:=nr; x:=8; y:=16; For i:= 1 to num do Begin gotoxy(8,y); write('No [',i, '] = '); x:=wherex; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,nos[i],erro); if (nos[i] <= 0) or (nos[i] > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; y:=y+1; if y >= 20 then begin for x:=16 to 20 do begin gotoxy(8,x); write(' '); end; y:=16; end;

Page 162: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

nm[i]:=nos[i]; end; assign(arquivo1,arqfisico1); rewrite(arquivo1); writeln(arquivo1); close(arquivo1); assign(arquivo,arqfisico); reset(arquivo); assign(arquivo1,arqfisico1); rewrite(arquivo1); read(arquivo,num_nos); nn:= num_nos; write(arquivo1,nn); read(arquivo,no_inic); ni:=no_inic; write(arquivo1,ni:3); read(arquivo,no_fin); nf:=no_fin; write(arquivo1,nf:3); writeln(arquivo1); clrscr; For l:= 1 to nn do Begin read(arquivo); write(arquivo1, l:4); write(arquivo1, l:4); writeln(arquivo1); readln(arquivo) end; Begin i:= 1; nod[i]:=nm[i]; For j:= 1 to nn do begin readln(arquivo); read (arquivo,no); n:=no; read (arquivo,gr);

Page 163: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

g:=gr; readln(arquivo); if n<>nod[i] then begin writeln(arquivo1); write(arquivo1,n:3); write(arquivo1,g:3); writeln(arquivo1); For k:=1 to g do begin read (arquivo,adj[k]); nt[k]:=adj[k]; write(arquivo1,nt[k]:3); read (arquivo,temp[k]); t[k]:=temp[k]; write(arquivo1,t[k]:3); end; end; if n=nod[i] then begin writeln(arquivo1); write (arquivo1,n:3); write (arquivo1,zero:3); writeln(arquivo1); i:= i+1; nod[i]:=nm[i]; end; end; end; close(arquivo); close(arquivo1); end; procedure prog3; {............................................................................ Esta procedure retira arcos de uma rede existente .............................................................................} const zero = 0; type nome = string[14];

Page 164: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

matriz_cap = array[1..50,1..5] of integer; ret = array[1..10] of integer; Var arquivo2,arquivo1,arquivo: text; arqfisico2,arqfisico1,arqfisico,dados,novo: nome; i,j,no,gr,num_nos,num,k,nn,n,g,ni,nf:integer; no_inic,no_fin,nr,l,o,d,x,y,jj,w:integer; matcap,arc,a: matriz_cap; ch:char; num_ax : string[5]; nos, adj, temp,t,nt,nm,nod,og,de,ng,nd: ret; Begin arqfisico2:='retarc.dat'; assign(arquivo2,arqfisico2); rewrite(arquivo2); writeln(arquivo2); close(arquivo2); clrscr; drawbox(1,79,1,24,yellow,blue); FileSpec:='*.RED'; DirList(FileSpec,diretorio,num_arq); gotoxy(13,7); write('RETIRAR ARCOS - LISTA DE ARQUIVOS DE REDE DISPONIVEIS'); gotoxy(13,8); write('======= ===== ===== == ======== == ==== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de rede encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink); write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; escolhe_arq; arqfisico:= nome_escolh; clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(32,7); write('RETIRAR ARCOS'); gotoxy(32,8); write('======= =====');

Page 165: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(8,10); write('NOME DO NOVO ARQUIVO-REDE : (8 caracteres)'); repeat gotoxy(36,10); write(' '); gotoxy(36,10); readln(novo); delete(novo,9,4); for i:=1 to 8 do novo[i]:=upcase(novo[i]); novo:=novo+'.RED'; getdir(drive,path); str:=fsearch(novo,path); if str <> novo then ok:=true else begin gotoxy(3,23); write('Arquivo ',novo,' ja existe. Usar este arquivo (S/N) ? '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); readln(opcao); until upcase(opcao) in ['S','N']; if upcase(opcao) = 'S' then ok:=true else ok:=false; gotoxy(3,23); write(' '); end; until ok; arqfisico1:= novo; gotoxy(8,12); write('Numero de arcos para retirar = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,nr,erro); if (nr <= 0) or (nr > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; num:=nr; assign(arquivo2,arqfisico2);

Page 166: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

rewrite(arquivo2); For i:= 1 to num do Begin gotoxy(8,14); write('Arco (',i, ')'); gotoxy(8,16); write('Origem = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_aux);{$I+} val(num_aux,o,erro); if (o <= 0) or (o > 32767) or (erro <> 0) then ok:=false else ok:=true; until ok; og[i]:=o; write(arquivo2,og[i]:3); gotoxy(8,18); write('Destino = '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_ax);{$I+} val(num_ax,d,erro); if (d <= 0) or (d > 32767) then ok:=false else ok:=true; until ok; de[i]:=d; write(arquivo2,de[i]:3); writeln(arquivo2); gotoxy(8,16); write(' '); gotoxy(8,18); write(' '); end; close(arquivo2); assign(arquivo1,arqfisico1); rewrite(arquivo1); writeln(arquivo1); close(arquivo1); assign(arquivo,arqfisico);

Page 167: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

reset(arquivo); assign(arquivo1,arqfisico1); rewrite(arquivo1); read(arquivo,num_nos); nn:= num_nos; write(arquivo1,nn); read(arquivo,no_inic); ni:=no_inic; write(arquivo1,ni:3); read(arquivo,no_fin); nf:=no_fin; write(arquivo1,nf:3); writeln(arquivo1); clrscr; For l:= 1 to nn do Begin read (arquivo); write (arquivo1, l:4); write (arquivo1, l:4); writeln (arquivo1); readln (arquivo) end; assign(arquivo2,arqfisico2); reset(arquivo2); Begin i:= 1; ng[i]:=og[i]; nd[i]:=de[i]; For j:= 1 to nn do begin readln(arquivo); read (arquivo,no); n:=no; read (arquivo,gr); g:=gr; readln(arquivo); if n<>ng[i] then begin writeln(arquivo1);

Page 168: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

write(arquivo1,n:3); write(arquivo1,g:3); writeln(arquivo1); For k:=1 to g do begin read (arquivo,adj[k]); nt[k]:=adj[k]; write(arquivo1,nt[k]:3); read (arquivo,temp[k]); t[k]:=temp[k]; write(arquivo1,t[k]:3); end; end; if n=ng[i] then begin jj:=0; {writeln(arquivo1); write (arquivo1,n:3); x:=g-1; write (arquivo1,x:3); writeln(arquivo1);} For k:=1 to g do begin read (arquivo,adj[k]); nt[k]:=adj[k]; read (arquivo,temp[k]); t[k]:=temp[k]; if nt[k]<>nd[i] then begin jj:=JJ+1; nt[jj]:=nt[k]; t[jj]:=t[k]; end; if nt[k]=nd[i] then begin i:=i+1; if og[i]=n then begin nd[i]:=de[i]; end else i:=i-1; end; end; writeln(arquivo1); write(arquivo1,n:3); write(arquivo1,jj:3); writeln(arquivo1); for w:= 1 to jj do

Page 169: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin write(arquivo1,nt[w]:3); write(arquivo1,t[w]:3); end; i:= i+1; nd[i]:=de[i]; ng[i]:=og[i]; end; end; end; close(arquivo); close(arquivo1); end; end. {$o+,F+} Unit K_camin; {-------------------------------------------------- ------------------ Descricao : Programa para calcular os K-caminhos entre dois nos de uma rede,a capacidade e o arco gargalo dos mesmos. (versao 11/04/96) --------------------------------------------------------------------} interface uses crt,dos,overlay,ov_funct; { Declaracao de constantes. } const n = 150; { Numero maximo de nos da rede.} M = 6000; { Numero maximo de caminhos. } menos1 = -1; { Declaracao de tipos. } type pilha = array [1..n] of integer; cam_custo = RECORD caminho : integer; custo : real; END; cam_desordem = array [1..M] of cam_custo;

Page 170: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

vetor_bol = array [1..n] of boolean; rec_no = RECORD w_vizinho : integer; w_visit : boolean; custo : real; END; matriz_lista = array [1..n,1..10] of rec_no; nome = string[14]; vert = array [1..50] of integer; { Variaveis Globais. } var arquivo,arquivo1,arquivo2,arquivo5 : text; arquivo6,arquivo7,arquivo8 : TEXT; arqfisico,arqfisico1,arqfisico2,arqfisico8,capa: nome; arqfisico5,arqfisico6,arqfisico7,arq,saida : nome; matriz_lst : matriz_lista; visit : vetor_bol; no_final,x,y,erro : integer; caminho : pilha; dist : real; quant : integer; drive : byte; path : string; str : pathstr; ok,fk : boolean; num_ax,opcao,ch : char; ve : vert; procedure prog2; implementation {-------------------------------------------------- ------------------ Procedure: delete_pilha(no_topo); Descricao: Retira um no da pilha, ou seja, do caminho atual. --------------------------------------------------------------------} Procedure delete_pilha(var no_topo : integer); { Variaveis Locais. } var i, temp : integer; { Inicio da procedure. }

Page 171: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin i := 1; while caminho[i] <> no_topo do i := i + 1; caminho[i] := menos1; if i = 1 then no_topo := -1 else no_topo := caminho[i-1]; end; { Fim da delete_pilha } {-------------------------------------------------- ------------------ Procedure: poe_na_pilha(no); Descricao: Poe um no na pilha. --------------------------------------------------------------------} Procedure Poe_na_pilha(no : integer); { Variaveis Locais. } var i : integer; { Inicio da procedure. } begin i := 1; while caminho[i] <> menos1 do i := i + 1; caminho[i] := no; end; { Fim da poe_na_pilha } {-------------------------------------------------- ------------------ Procedure: grava_pilha (); Descricao: Grava o conteudo da pilha, isto e, o caminho atual que foi encontrado, acrescentando o no-final. --------------------------------------------------------------------} Procedure Grava_pilha; { Variaveis Locais. } var i, no : integer; arquivo_ : TEXT; arqfisico_ : nome; { Inicio da procedure. } begin

Page 172: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

i := 1; write (arquivo1, dist:8:2); while caminho[i] <> menos1 do begin no := caminho[i]; write (arquivo1, no:5); i := i + 1; end; writeln (arquivo1, no_final:5); gotoxy(22,15); quant := quant + 1; write ('N£mero de Caminhos = ',quant); end; { Fim da grava_pilha } {-------------------------------------------------- ------------------ Procedure: marque_w (no, no_adj); Descricao: Poe uma marca (true) no campo do no adjacente que esta sendo visitado. --------------------------------------------------------------------} Procedure Marque_w (no, no_adj : integer); { Variaveis Locais. } var i, temp : integer; registro : rec_no; { Inicio da procedure. } begin i := 1; repeat registro := matriz_lst[no,i]; temp := registro.w_vizinho; i := i + 1; until temp = no_adj; registro.w_visit := true; matriz_lst[no,i-1] := registro; end; { Fim da marque_w } {-------------------------------------------------- ------------------ Procedure: desmarca_nos_adj(no) Descricao: Poe uma marca (false) em todos os campo do nos adjacentes do no que esta sendo visitado. --------------------------------------------------------------------} Procedure Desmarca_nos_adj(no : integer); { Variaveis Locais.

Page 173: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

} var i, temp : integer; registro : rec_no; { Inicio da procedure. } begin for i := 1 to 10 do begin registro := matriz_lst[no,i]; registro.w_visit := false; matriz_lst[no,i] := registro; end; end; { Fim da desmarca_nos_adj } {-------------------------------------------------- ------------------ Procedure: recalcula_dist (no, no_adj); Descricao: Recalcula o custo do caminho, subtraindo o custo do arco retirado da pilha. --------------------------------------------------------------------} Procedure Recalcula_dist (no : integer); { Variaveis Locais. } var i, no_ant : integer; registro : rec_no; { Inicio da procedure. } begin i := 1; while caminho[i] <> menos1 do i := i + 1; no_ant := caminho[i-2]; i := 1; repeat registro := matriz_lst[no_ant,i]; i := i + 1; until no = registro.w_vizinho; dist := dist - registro.custo; end; { Fim da marque_w } {-------------------------------------------------- ------------------ Procedure: RAA. Descricao: Determina os M-caminhos entre dois nos. --------------------------------------------------------------------} procedure RAA (

Page 174: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

var no_atual : integer; var j : integer; var e_fim : boolean); { Variaveis Locais. } var i,w : integer; registro : rec_no; w_marcado : boolean; { Inicio da procedure. } begin while (caminho[1] <> menos1) do { ate que a pilha esteja vazia } begin registro := matriz_lst[no_atual,j]; w := registro.w_vizinho; w_marcado := registro.w_visit; if (w_marcado = true) or (visit[w] = true) then marque_w (no_atual, w) else if w = no_final then begin dist := dist + registro.custo; grava_pilha; dist := dist - registro.custo; marque_w (no_atual, w); end else if w = menos1 then begin desmarca_nos_adj(no_atual); visit[no_atual] := false; recalcula_dist(no_atual); delete_pilha(no_atual); j := 1; e_fim := false; exit; end else begin visit[w] := true; marque_w(no_atual, w); poe_na_pilha(w); j := 1;

Page 175: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

dist := dist + registro.custo; no_atual := w; e_fim := false; exit; end; j := j + 1; end; e_fim := true; end; { Fim da RAA } {-------------------------------------------------- ------------------ Procedure: SORT (var path : cam_desordem, var u : integer); Descricao: Ordena os caminhos. --------------------------------------------------------------------} procedure SORT (var path : cam_desordem; var u : integer); var i,j,k,t : integer; temp : cam_custo; temp1 : cam_custo; temp2 : cam_custo; begin for i := 1 to u do begin j := i; for k := j + 1 to u do begin temp1 := path[k]; temp2 := path[j]; if temp1.custo < temp2.custo then j := k; end; temp := path[i]; path[i] := path[j]; path[j] := temp; end; end;{Fim SORT} {................................................................... Procedure Coincidente Esta procedure identifica os nos coincidentes dos caminhos procurados .....................................................................} procedure coincidente(var arqfisico6:NOME; num_nos,nf:integer;ve:vert); const zero=0; n= 80; type node = array [1..n] of integer;

Page 176: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

matriz = array [1..n, 1..n] of integer; nome = string[14]; var i,j,nk,z,ni,nos : integer; arquivo,arquivo6 : text; arqfisico : nome; coind,no : node; {begin arqfisico:= 'sig_in.dat'; assign(arquivo,arqfisico); reset(arquivo); for i:=1 to n do begin no[i]:= zero; end; i:=1; repeat read(arquivo,nos); no[i]:=nos; i:=i + 1; nf:=i; until nos = zero; close(arquivo); arqfisico:= 'sig_in.dat'; assign(arquivo,arqfisico); reset(arquivo);} Begin z:=1; for ni:= 1 to nf-1 do begin {read(arquivo, no[ni]);} nk:= ve[ni]; if z=nk then begin coind[z]:=1; z:=z+1; end else if z>nk then begin coind[nk]:=1; coind[z]:=zero;

Page 177: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

z:=z+1; end else begin repeat coind[z]:=zero; z:= z + 1; until z=nk; coind[z]:=1; z:=z+1; end; end; assign(arquivo6,arqfisico6); append(arquivo6); Begin for z:= 1 to num_nos do write (arquivo6,coind[z]:2); end; writeln(arquivo6); close(arquivo6); end; { Fim da coincidente} {.................................................................. Procedure Calcapga Esta procedure calcula a capacidade , o indice do caminho pedido atraves do procedure rescamin.pas e o arco gargalo do caminho e, imprime os resultados no arquivo de saida .................................................................. } procedure calcapga(var arqfisico5,arqfisico7,arqfisico8:nome;num_nos,nf:integer; ct:real;ve:vert); const n = 80 ; zero = 0; type nome = string[10]; matriz_cap= array[1..80,1..3] of integer; node= array[1..80] of integer; var arquivo,arquivo1,arquivo2,arquivo5,arquivo7,arquivo8: TEXT; arqfisico,arqfisico1,arqfisico2,capa : nome;

Page 178: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

cap,k,cc,gx,gy,ggx,ggy : integer; i,j,o,d,x,y,nos,nocap,capcam : integer; no : node; matcap : matriz_cap; ch : char; custo,cs,id : real; begin {abre arquivo para leitura arqfisico:='sig_in.dat'; assign(arquivo,arqfisico); reset(arquivo); for i:=1 to n do begin no[i]:= zero; end; i:=1; repeat read(arquivo,nos); no[i]:=nos; i:=i+1; nf:=i; until nos = zero; close(arquivo); } {abre arquivo cap.dat para leitura} assign(arquivo7,arqfisico7); reset(arquivo7); for i:=1 to n do begin for j:=1 to 3 do begin read (arquivo7,nocap); matcap[i,j]:=nocap; k:=i; if matcap[i,j]=zero then i:=n; end; end; close (arquivo7); {arqfisico:='sig_in.dat'; assign(arquivo,arqfisico); reset(arquivo);} begin

Page 179: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

capcam:=10000; {read(arquivo,nos);} x:=ve[1]; for i:= 1 to (nf-2) do begin {read(arquivo,NO[i]);} y:=ve[i]; assign(arquivo7,arqfisico7); reset(arquivo7); for j:= 1 to k do begin read(arquivo7,matcap[j,1]); o:= matcap[j,1]; read(arquivo7,matcap[j,2]); d:= matcap[j,2]; read(arquivo7,matcap[j,3]); cap:=matcap[j,3]; if(o=x) and (d=y) then begin cc:=cap; if cc < capcam then begin capcam:=cap; gx:=o; gy:=d; end; end; end; x:=y; close (arquivo7); end; {arqfisico2:='custo.dat'; assign(arquivo2,arqfisico2); reset(arquivo2);} begin {read(arquivo2,custo); cs:=custo;} Id:=capcam/ct; end; {close(arquivo);} {close(arquivo2);} assign(arquivo5,arqfisico5); append(arquivo5);

Page 180: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

assign(arquivo8,arqfisico8); append(arquivo8); y:=wherey; if y >= 16 then for i:= 16 to 20 do begin gotoxy(20,i); write(' '); end; gotoxy(20,16); writeln(arquivo5); write('Capacidade do Caminho = ' ,capcam); gotoxy(20,18); write('Arco Gargalo do Caminho : ',gx,',',gy); writeln(arquivo5,'Capacidade do Caminho = ',capcam); writeln(arquivo5,'Arco Gargalo : ',gx,',',gy); gotoxy(20,20); write('Indice do Caminho = ',id:4:2); writeln(arquivo5,'Indice do Caminho = ',id:4:2); writeln(arquivo8); write(arquivo8,id:10:2); close(arquivo5); close(arquivo8); end; end; {-------------------------------------------------- ------------------ Procedure Rescamin Esta procedure fornece o caminho pedido de 1 a k e o valor do custo neste caminho e armazena o resultado no arquivo de saida. --------------------------------------------------------------------} Procedure Rescamin(var arqfisico,arqfisico1,arqfisico2, arqfisico5,arqfisico6,arqfisico7, arqfisico8 : nome;Num_nos,qual_caminho:integer); { Constantes. } const N = 60; ZERO = 0; { Declaracao de tipos. } type nome = string[14]; equi = array [1..N,1..2] of integer;

Page 181: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

node = array [1..15] of integer; { Variaveis Locais. } var arquivo3,arquivo7 : TEXT; arquivo4,arquivo5 : text; arqfisico3,sad : nome; arqfisico4 : nome; i,j,no : integer; caminho,resp,k,nf : integer; numero_de_nos : integer; grau_do_no : integer; no_inicial,no_final : integer; custo,ct : REAL; matriz_equi : equi; ch : char; nos : node; {-------------------------------------------------- ---------- Inicio da procedure ------------------------------------------------------------} begin { Abre o arquivo de dados para leitura. } assign(arquivo,arqfisico); reset(arquivo); { Le no arquivo o numero de nos da rede. } readln (arquivo,numero_de_nos); { Inicializa matriz de equivalencia. } for i:=1 to N do begin for j:=1 to 2 do begin matriz_equi[i][j] := ZERO; end; end; { Vai ler agora o arquivo para montar uma matriz de equivalencia

Page 182: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

} for i:=1 to (numero_de_nos) do begin for j:=1 to 2 do begin read (arquivo,no); matriz_equi[i][j] := no; end; end; { Fecha o arquivo de dados. } close (arquivo); { Abre o arquivo "K_path.dat" para leitura. } arqfisico1 := 'k_path.dat'; assign(arquivo1,arqfisico1); reset(arquivo1); { Abre o arquivo "kcaminho.dat" para leitura. } arqfisico2 := 'k_caminh.dat'; assign(arquivo2,arqfisico2); reset(arquivo2); begin ve[i]:=zero; end; { Le no arquivo kcaminho.dat o caminho ate encontrar aquele de ordem desejada. } i := 0; repeat read (arquivo2,caminho); i := i + 1; until qual_caminho = i; { De acordo com o numero do caminho, vai para o arquivo K-path.dat ler o registro correspondente do caminho. } for i := 1 to (caminho-1) do readln(arquivo1, custo); read (arquivo1, custo); ct:=custo; i:=1; while not EOLN(arquivo1) do

Page 183: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin read (arquivo1,no); {writeln(arquivo3,matriz_equi[no,2]);} ve[i]:=matriz_equi[no,2]; i:=i+1; nf:=i; end; {close(arquivo3); arqfisico3:= 'sig_in.dat'; assign(arquivo3,arqfisico3); reset(arquivo3); for i:= 1 to 30 do begin read(arquivo3,matriz_equi[i,2]); nos[i]:=matriz_equi[i,2]; end; arqfisico4:='custo.dat'; assign(arquivo4,arqfisico4); rewrite(arquivo4); begin write(arquivo4,ct:8:2); end; close(arquivo4); { Fecha os arquivos. } close(arquivo1); close(arquivo2); {close(arquivo3);} assign(arquivo5,arqfisico5); append(arquivo5); assign(arquivo8,arqfisico8); append(arquivo8); writeln(arquivo8); clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(35,7); write('K-CAMINHOS'); gotoxy(35,8); write('=========='); gotoxy(20,10);

Page 184: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

writeln(arquivo5); writeln(arquivo5); write('Caminho procurado: ',qual_caminho); write(arquivo5,'Caminho procurado: ', qual_caminho); writeln(arquivo5); gotoxy(20,11); write('Custo do caminho : ',{custo}ct:8:2); writeln(arquivo5,'Custo do caminho = ',{custo}ct:8:2); gotoxy(20,12); write('N¢s do caminho :'); writeln(arquivo5, 'N¢s do caminho : '); gotoxy(20,14); i:=1; while ve[i]<>0 do begin write(ve[i]:5); x:=wherex; y:=wherey; if x >= 70 then begin x:=20; if y >= 18 then y:=14 else y:=y+1; gotoxy(x,y); end; write(arquivo5,ve[i]:5); write(arquivo8,ve[i]:5); i:=i+1; end; close(arquivo5); close(ARQUIVO8); calcapga(arqfisico5,arqfisico7,arqfisico8,num_nos,nf,ct,ve); coincidente(arqfisico6,num_nos,nf,ve); gotoxy(12,23); write('Pressione uma tecla para continuar...'); ch:=readkey; gotoxy(12,23); write(' '); { Fim da procedure Rescamin } end; procedure prog2; {============================================================== Programa Principal. =============================================================== {

Page 185: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Variaveis Locais. } var no_inicial,qual_caminho : integer; grau_do_no, no_adj : integer; i, j, no, num_nos : integer; temp_int,resp,k : integer; cost : real ; temp_real : real; teste : rec_no; registro : rec_no; pos_no_adj : integer; fim : boolean; reg_custo : cam_custo; caminho_des : cam_desordem; ch : char; { Inicio do Programa Principal. } begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(35,7); write('K-CAMINHOS'); gotoxy(35,8); write('=========='); gotoxy(5,10); write('Esta iniciando a avaliacao ? Coloque "1" para sim e "0" para nao : '); x:=wherex; y:=wherey; TextColor(Yellow+Blink); gotoxy(16,23); writeln('Pressione <ESC> para sair ou <ENTER> para continuar'); TextColor(Yellow); gotoxy(x,y); repeat inkey(fk,ch); if key = Esc then exit; until key in [Esc, CarriageReturn]; gotoxy(16,23); writeln(' '); repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln(num_ax);{$I+} ok:=(num_ax in ['1','0']); until ok; val(num_ax,resp,erro);

Page 186: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

clrscr; drawbox(1,79,1,24,yellow,blue); FileSpec:='*.RED'; DirList(FileSpec,diretorio,num_arq); gotoxy(15,7); write('K-CAMINHOS - LISTA DE ARQUIVOS DE REDE DISPONIVEIS'); gotoxy(15,8); write('========== ===== == ======== == ==== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de rede encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink); write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; escolhe_arq; arqfisico:= nome_escolh; if resp = 1 then begin clrscr; drawbox(1,79,1,24,yellow,blue); FileSpec:='*.CAP'; DirList(FileSpec,diretorio,num_arq); gotoxy(12,7); write('K-CAMINHOS - LISTA DE ARQUIVOS DE CAPACIDADE DISPONIVEIS'); gotoxy(12,8); write('========== ===== == ======== == ========== ==========='); if num_arq = 0 then begin gotoxy(12,12); write(#7,'Nenhum arquivo de capacidade encontrado no diret¢rio atual !!!'); gotoxy(21,14); textcolor(yellow+blink); write('Pressione qualquer tecla para continuar !!!'); readkey; textcolor(yellow); exit; end; exibe_arq; escolhe_arq;

Page 187: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

arqfisico7:= nome_escolh; end; clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(35,7); write('K-CAMINHOS'); gotoxy(35,8); write('=========='); gotoxy(8,10); write('NOME DO ARQUIVO DE SAIDA : (8 caracteres)'); repeat gotoxy(35,10); write(' '); gotoxy(35,10); readln (saida); delete(saida,9,4); for i:=1 to 8 do saida[i]:=upcase(saida[i]); saida:=saida+'.dat'; getdir(drive,path); str:=fsearch(saida,path); if str <> saida then ok:=true else begin gotoxy(3,23); write(#7,'Arquivo ',saida,' ja existe !. Usar este arquivo (S/N)?'); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {I-}readln(opcao);{$I+} ok:=(upcase(opcao) in ['S','N']); until ok; if upcase(opcao) = 'S' then ok:=true else ok:=false; gotoxy(3,23); write(' '); end; until ok; arqfisico5:=saida; if resp=1 then begin arqfisico6:='coincid.dat'; assign(arquivo6,arqfisico6); rewrite(arquivo6); arqfisico8:='resultado.dat';

Page 188: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

assign(arquivo8,arqfisico8); rewrite(arquivo8); close(arquivo6); close(arquivo8); end else begin arqfisico6:='coincid.dat'; assign(arquivo6,arqfisico6); append(arquivo6); arqfisico8:='resultado.dat'; assign(arquivo8,arqfisico8); append(arquivo8); close(arquivo6); close(arquivo8); end; gotoxy (19,12); write ('CALCULANDO TODOS OS CAMINHOS POSSIVEIS'); quant := 0; { Abre o arquivo de dados para leitura. } assign(arquivo,arqfisico); reset(arquivo); { Le no arquivo o numero de nos da rede. } read (arquivo,num_nos); { Ve se o numero de nos da rede excedeu o limite maximo permitido. } if num_nos > N then begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(35,7); write('K-CAMINHOS'); gotoxy(35,8); write('=========='); gotoxy(24,10); write('Excedeu o limite maximo de Nos permitido.'); gotoxy(24,12); write('Numero de Nos da Rede : ',num_nos); gotoxy(19,14); write('Limite maximo de Nos permitido na Rede: ',N); gotoxy(28,16); write(#7,'Programa interrompido !'); gotoxy(22,23); write('Pressione uma tecla para terminar !');

Page 189: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

ch := readkey; close(arquivo); halt; end; { Le no arquivo os nos inicial e final da rede. } read (arquivo,no_inicial); read (arquivo,no_final); { Vai ler agora no arquivo as linhas da matriz de equivalencia } for i:=1 to (num_nos) do for j:=1 to 2 do read (arquivo,no); { Inicializa matriz de listas. } for i:=1 to (n) do for j:=1 to 10 do begin registro.w_vizinho := menos1; registro.w_visit := false; registro.custo := 0; matriz_lst[i,j] := registro; end; { Vai ler agora o arquivo para armazenar as relacoes dos nos e seus custos na matriz de listas. } i := 1; while not (EOF(arquivo)) do begin read (arquivo,no); read (arquivo,grau_do_no); for j:=1 to (grau_do_no) do begin read (arquivo,no_adj); read (arquivo,cost); registro.w_vizinho := no_adj; registro.w_visit := false; registro.custo := cost; matriz_lst[i,j] := registro; end; { Incrementa linha da matriz. } i := i + 1; end;

Page 190: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

{ Fecha o arquivo de dados. } close(arquivo); { Inicializa o vetor de nos visitados VISIT(n) com FALSE. } for i := 1 to n do visit[i] := false; { Marca VISIT (no_inicial) com TRUE. } visit[no_inicial] := true; { Inicializa uma pilha PILHA, que contera o caminho atual. } for i := 1 to n do caminho[i] := menos1; caminho[1] := no_inicial; { Inicializa como 0 (zero) o custo do caminho. } dist := 0.0; { Cria o arquivo "K_PATH.DAT". } arqfisico1 := 'k_path.dat'; assign(arquivo1,arqfisico1); rewrite(arquivo1); { Chama a procedure RAA() que analisa os caminhos, executando um loop ate que a pilha esteja vazia. Evita recursividade devido limitacoes impostas pelo compilador Turbo Pascal. } no := no_inicial; pos_no_adj := 1; fim := false; while fim = false do RAA (no, pos_no_adj, fim); { Fecha o arquivo 'k3_path.dat', reabrindo-o logo a seguir. Isto e feito para posicionar o ponteiro no seu inicio. } close (arquivo1); arqfisico1 := 'k_path.dat'; assign(arquivo1,arqfisico1); reset(arquivo1); { Abre o arquivo 'k_path.dat' para leitura.

Page 191: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

} arqfisico1 := 'k_path.dat'; assign(arquivo1,arqfisico1); reset(arquivo1); { Armazena o registro do caminho e seu custo em um vetor. } i := 1; while not (EOF(arquivo1)) do begin reg_custo.caminho := i; {numero do registro} readln (arquivo1,temp_real); reg_custo.custo := temp_real; {custo do caminho} caminho_des[i] := reg_custo; i := i + 1; end; i := i - 1; { Fecha o arquivo. } close (arquivo1); { Ordena os caminhos de acordo com o seu custo. } SORT (caminho_des, i); { Abre o arquivo 'k3_final.dat' para escrita. } arqfisico2 := 'k_caminho.dat'; assign(arquivo2,arqfisico2); rewrite(arquivo2); { Armazena o registro do caminho e seu custo em um vetor. } for j := 1 to i do begin reg_custo := caminho_des[j]; temp_int := reg_custo.caminho; writeln (arquivo2,temp_int); end; { Fecha o arquivo. } close (arquivo2); assign(arquivo5,arqfisico5); rewrite(arquivo5); write(arquivo5,'Resultado da Rede : ',arq);

Page 192: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

writeln(arquivo5); close(arquivo5); gotoxy(22,18); write('Qual o valor de k ? : '); x:=wherex; y:=wherey; repeat gotoxy(x,y); write(' '); gotoxy(x,y); {$I-}readln (k);{$I+} ok:=((k > 0) or (k <= n)); until ok; for qual_caminho:= 1 to k do begin RESCAMIN(arqfisico,arqfisico1,arqfisico2,arqfisico5,arqfisico6, arqfisico7,arqfisico8,num_nos, qual_caminho); end; gotoxy(12,23); write('Pressione uma tecla para continuar...'); { ch:=readkey; gotoxy(12,23); write(' ');} { Fim do programa } end; end. {o+,F+} Unit coindnos; {.................................................................. Este progranma identifica os nos coincidentes nos caminhos encontrados ........................................................................} interface uses crt,dos,overlay,ov_funct; const zero = 0; type node = array [1..50] of integer; matriz = array [1..50,1..50] of integer; nome = string[15]; var arquivo,arquivo1 : text;

Page 193: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

arqfisico, arqfisico1,nom : nome; i,j,k,n,num,kc,NOS,y,kn,lin : integer; coind : matriz; no : node; ch : char; drive,z : byte; path : string; str : pathstr; ok,fk : boolean; procedure prog5; implementation procedure prog5; Begin drive:=0; clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(32,7); write('NOS COINCIDENTES'); gotoxy(32,8); write('=== ============'); gotoxy(8,10); write('NOME DO ARQUIVO-REDE : (8 caracteres)'); TextColor(yellow+blink); gotoxy(16,23); writeln('Pressione <ESC>para sair ou <ENTER> para continuar'); TextColor(yellow); gotoxy(31,10); repeat inkey(fk,ch); if key = Esc then exit; until key in [Esc, CarriageReturn]; gotoxy(16,23); writeln(' '); repeat gotoxy(31,10); write(' '); gotoxy(31,10); readln(nom); delete(nom,9,4); for i:=1 to 8 do nom[i]:=upcase(nom[i]); nom:=nom+'.RED'; getdir(drive,path); str:=fsearch(nom,path); if str = nom

Page 194: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

then ok:=true else begin gotoxy(3,23); write(#7,'Arquivo ',nom,' nÆo encontrado !!!'); delay(1500); gotoxy(3,23); write(' '); ok:=false; end; until ok; arqfisico:= nom; assign(arquivo,arqfisico); reset(arquivo); read(arquivo,num); n:=num; close(arquivo); arqfisico:= 'coincid.dat'; assign(arquivo,arqfisico); reset(arquivo); arqfisico1:='nos-coinc.dat'; assign(arquivo1,arqfisico1); rewrite( arquivo1); Begin i:= 1; repeat readln (arquivo,nos); i:= i+ 1; until nos=zero; kc:= i-2; end; close(arquivo); arqfisico:= 'coincid.dat'; assign(arquivo,arqfisico); reset(arquivo); begin for i:=1 to kc do For j:= 1 to n do begin read(arquivo,nos); coind[i,j]:=nos; end; end;

Page 195: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin For j:= 1 to n do no[j]:= zero; end; begin for j:=1 to n do begin for i:= 1 to kc do begin no[j]:= no[j] + coind[i,j]; end; writeln(arquivo1,' no ',j,' = ',no[j]); end; end; close(arquivo); CLOSE(arquivo1); {clrscr;} gotoxy (8,12); write ('numero de caminhos = ',kc ); {writeln;} gotoxy(22,23); write('Pressione uma tecla para continuar !'); lin:=14; FOR j:= 1 to n do begin if lin >= 20 then begin for z:=14 to lin do begin gotoxy(8,z); write(' '); end; lin:=14; end; gotoxy(8,lin); write('no ',j, ' = ',no[j],' vezes'); lin:=lin+1; ch:=readkey; {writeln;} end; end; end.

Page 196: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

{$o+,F+} Unit kconju; {************************************************** ******************************** Este programa identifica os conjuntos de caminhos coincidentes a partir das varias iteracoes do programa Kcam.pas *************************************************** ******************************} interface uses crt,dos,overlay,ov_funct; const zero = 0; n = 50; type matriz = array [1..n,1..n] of integer; node = array [1..n] of integer; nome = string[14]; var arquivo, arquivo1,arquivo2,arquivo3,arquivo4 : text; arqfisico, arqfisico1,nom,arqfisico2,arqfisico3,arqfisico4 : nome; i,j,k,nf,x,y,kc,num,nn,nos,w,t,nt,nw,lin,col,z,erro,nc,nq,ntt,c,q,r : integer; coind,mat,inc,conj,id : matriz; no,tt : node; ch,opcao : char; drive : byte; path : string; str : pathstr; ok,fk : boolean; procedure prog6 ; procedure prog7 ; implementation procedure prog6; {..................................................................... Esta procedure identifica caminhos nao coincidentes dois a dois dando como resultado uma matriz triangular onde a primeira coluna corresponde aos numeros dos caminhos e as demais aos caminhos nao-coincidentes a este. ......................................................................} Begin drive:=0; clrscr;

Page 197: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

drawbox(1,79,1,24,yellow,blue); gotoxy(28,7); write('CONJUNTOS DE K-CAMINHOS'); gotoxy(28,8); write('========= == =========='); gotoxy(8,10); write('NOME DO ARQUIVO-REDE : (8 caracteres)'); TextColor(Yellow+Blink); gotoxy(16,23); writeln('Pressione <ESC> para sair ou <ENTER> para continuar'); TextColor(yellow); gotoxy(31,10); repeat inkey(fk,ch); if key = Esc then exit; until key in [Esc, CarriageReturn]; gotoxy(16,23); writeln(' '); repeat gotoxy(31,10); write(' '); gotoxy(31,10); readln(nom); delete(nom,9,4); for i:=1 to 8 do nom[i]:=upcase(nom[i]); nom:=nom+'.RED'; getdir(drive,path); str:=fsearch(nom,path); if str = nom then ok:=true else begin gotoxy(3,23); write(#7,'Arquivo ',nom,' nÆo encontrado !!!'); delay(1500); gotoxy(3,23); write(' '); ok:=false; end; until ok; arqfisico:= nom; assign(arquivo,arqfisico); reset(arquivo); read(arquivo,nn); num:=nn; close(arquivo); arqfisico:= 'coincid.dat';

Page 198: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

assign(arquivo,arqfisico); reset(arquivo); arqfisico1:='resulfim.dat'; assign(arquivo1,arqfisico1); rewrite( arquivo1); writeln(arquivo1); close(arquivo1); arqfisico2:= 'kcoinc.dat'; assign(arquivo2,arqfisico2); rewrite(arquivo2); writeln(arquivo2); close(arquivo2); arqfisico3:= 'k-conj.dat'; assign(arquivo3,arqfisico3); rewrite(arquivo3); writeln(arquivo3); close(arquivo3); arqfisico4:= 'k4conj.dat'; assign(arquivo4,arqfisico4); rewrite(arquivo4); writeln(arquivo4); close(arquivo4); Begin i:= 1; repeat readln (arquivo,nos); i:= i+ 1; until nos=zero; kc:= i-2; end; close(arquivo); begin for i:=1 to kc do begin for j:= 1 to kc do coind[i,j]:=0; end; end; arqfisico:= 'coincid.dat'; assign(arquivo,arqfisico); reset(arquivo); begin

Page 199: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

for i := 1 to kc do for j:= 1 to num do begin read(arquivo,inc[i,j]); mat[i,j]:=inc[i,j]; end; end; close(arquivo); arqfisico2:= 'kcoinc.dat'; assign(arquivo2,arqfisico2); rewrite(arquivo2); Begin i:= 1; nn:=i+1; repeat for k:=nn to kc do begin for j:=2 to num-1 do begin x:=mat[i,j]; y:=mat[k,j]; if (x=1) and (y=1) then Begin coind[i,1]:=i; coind[i,k]:=zero; j:= num-1; end else Begin coind[i,1]:=i; coind[i,k]:=k; end; end; end; i:=i+1; until i=kc; end; arqfisico1:='resulfim.dat'; assign(arquivo1,arqfisico1); append( arquivo1); arqfisico3:='k-conj.dat'; assign(arquivo3,arqfisico3);

Page 200: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

append( arquivo3); arqfisico4:='k4conj.dat'; assign(arquivo4,arqfisico4); append( arquivo4); Begin i:= 1; repeat write(arquivo1,coind[i,1]:3); begin For k:= i+1 to kc do write(arquivo1,coind[i,k]:3); end; i:=i+1; writeln(arquivo1); until i=kc; end; close(arquivo1); gotoxy(27,12); write('CAMINHOS NAO-COINCIDENTES'); gotoxy(27,13); write('======== ================'); Begin i:= 1; lin:=14; col:=5; gotoxy(col,lin); repeat begin if lin >= 20 then begin gotoxy(21,23); write('Pressione uma tecla para continuar...'); ch:=readkey; gotoxy(21,23); write(' '); for z:=15 to 21 do begin gotoxy(5,z); write(' '); end; lin:=15; col:=5; end else begin lin:=lin+1; col:=5;

Page 201: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

end; gotoxy(col,lin); write(coind[i,1]:3,' '); For k:= i+1 to kc do begin if lin > 20 then begin gotoxy(21,23); write('Pressione uma tecla para continuar...'); ch:=readkey; gotoxy(21,23); write(' '); for z:=15 to 21 do begin gotoxy(5,z); write(' '); end; lin:=15; col:=5; end else begin if col >= 70 then begin lin:=lin+1; col:=5; end else begin col:=wherex; lin:=wherey; end; end; gotoxy(col,lin); write(coind[i,k]:3,' '); col:=wherex; lin:=wherey; if coind[i,k]<>0 then begin write(arquivo2,i:3); write(arquivo2,k:3); writeln(arquivo2) end; end; end; i:=i+1; until i=kc; gotoxy(21,23); write('Pressione uma tecla para continuar...'); ch:=readkey; end;

Page 202: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

close(arquivo2); arqfisico1:='resulfim.dat'; assign(arquivo1,arqfisico1); reset( arquivo1); Begin i:= 1; repeat read(arquivo1,coind[i,1]); begin t:=0; For k:= i+1 to kc do begin read(arquivo1,coind[i,k]); id[i,k]:=coind[i,k]; if id[i,k]<>0 then begin t:=t+1; conj[i,t]:=k; tt[i]:=t end; end; end; i:=i+1; readln(arquivo1); until i=kc; end; begin i:=1; t:=0; repeat for k:=1 to tt[i] do begin x:= conj[i,k]; for t:=k+1 to tt[i] do begin nt:=conj[i,t]; for w:=1 to tt[x] do begin nw:=conj[x,w]; if nt=nw then begin write(arquivo3,i:3); write(arquivo3,x:3); write(arquivo3,nw:3); writeln(arquivo3); for c:= 1 to tt[nt] do

Page 203: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin nc:= conj[nt,c]; for q:=w+1 to tt[x] do begin nq:= conj[x,q]; if nc=nq then begin for r:=t+1 to tt[i] do begin ntt:=conj[i,r]; if(nc=nq) and(nq=ntt) then begin write(arquivo4,i:3); write(arquivo4,x:3); write(arquivo4,nw:3); write(arquivo4,ntt:3); writeln(arquivo4); end; end; end; end; end; end; end; end; end; i:=i+1; until i=kc; close(arquivo1); close(arquivo3); close(arquivo4); end; end; procedure prog7; {************************************************** ******************************** Esta procedure calcula o somatorio dos caminhos indices de um conjunto de k-caminhos nao-coincidentes, a partir do resultado do programa k-conju *************************************************** ******************************} const zero = 0; n = 80;

Page 204: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

type matriz = array [1..n,1..n] of integer; node = array [1..n] of integer; indic = array [1..n] of real; nome = string[14]; var arquivo, arquivo1,arquivo2 : text; arqfisico, arqfisico1,arqfisico2 : nome; i,j,k,nf,conj,L,num,nn,nos,nd,xx : integer; coind,mat,inc : matriz; no : node; id,ic,som : real; ind,soma : indic; Begin clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(30,7); write('SOMATORIO DOS INDICES'); gotoxy(30,8); write('========= === ======='); gotoxy(8,10); write('NUMERO K DE CAMINHOS PROCURADOS (2, 3 ou 4)= '); x:=wherex; y:=wherey; TextColor(yellow+blink); gotoxy(16,23); writeln('Pressione <ESC> para sair ou <ENTER> para continuar'); TextColor(yellow); gotoxy(x,y); repeat inkey(fk,ch); if key = Esc then exit; until key in [Esc, CarriageReturn]; gotoxy(16,23); writeln(' '); repeat gotoxy(x,y); write(' '); gotoxy(x,y); {I-}readln(opcao);{I+} if opcao in ['2','3','4'] then ok:=true else ok:=false; val(opcao,num,erro); until (ok) and (erro = 0); k:=num;

Page 205: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

case k of 2 : arqfisico:='kcoinc.dat'; 3 : arqfisico:='k-conj.dat'; 4 : arqfisico:='k4conj.dat'; end; assign(arquivo,arqfisico); reset(arquivo); Begin i:= 1; repeat For j:= 1 to k do begin read(arquivo,nos); coind[i,j]:=nos; end; i:=i+1; conj:=i-2; until nos=0; end; close(arquivo); arqfisico1:= 'resultad.dat'; assign(arquivo1,arqfisico1); reset(arquivo1); Begin i:= 1; L:=0; repeat read (arquivo1,nn); L:=L+1; readln(arquivo1); read (arquivo1,id); ind[i]:=id; i:=i+1; readln(arquivo1); until nn=0; end; close(arquivo1); arqfisico2:= 'indice.dat'; assign(arquivo2,arqfisico2); rewrite(arquivo2); writeln(arquivo2); close(arquivo2); assign(arquivo2,arqfisico2);

Page 206: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

rewrite(arquivo2); begin lin:=10; col:=8; clrscr; drawbox(1,79,1,24,yellow,blue); gotoxy(30,7); write('SOMATORIO DOS INDICES'); gotoxy(30,8); write('========= === ======='); for i:=1 to conj do begin som:=0; writeln(arquivo2); write(arquivo2,'conjunto K ', i ); writeln(arquivo2,' caminhos:'); gotoxy (col,lin); write('Conjunto K ',i); lin:=lin+1; gotoxy(col,lin); write('caminhos: '); writeln(arquivo2); col:=wherex; lin:=wherey; gotoxy(col,lin); Begin for j:= 1 to k do begin nd:=coind[i,j]; write(arquivo2,nd:3); col:=wherex; lin:=wherey; if col >= 70 then begin if lin >= 20 then begin lin:=12; col:=8; for xx:=lin to 20 do begin gotoxy(8,xx); write(' '); end; end else begin lin:=lin+1; col:=8; end; end else begin col:=wherex; lin:=wherey; end;

Page 207: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(col,lin); write(nd:3,' '); ic:=ind[nd]; som:=som+ic; end; writeln(arquivo2); write(arquivo2, 'Somatorio = ', som:3:2); lin:=lin+1; gotoxy(8,lin); writeln('Somatorio = ', som:3:2); col:=wherex; lin:=wherey; gotoxy(21,23); write('Pressione uma tecla para continuar...'); ch:=readkey; gotoxy(21,23); write(' '); if lin > 16 then begin for z:=8 to 21 do begin gotoxy(2,z); write(' '); end; lin:=10; col:=8; end else begin lin:=lin+1; col:=8; end; writeln(arquivo2); end; end; end; close (arquivo2); end; end. {$O+,F+,r-,v-} unit ov_funct; interface uses crt,dos;

Page 208: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

type keys = (NullKey,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,CarriageReturn,Tab,ShiftTab, Bksp,UpArrow,DownArrow,RightArrow,LeftArrow,DeleteKey,InsertKey,HomeKey, Esc,EndKey,TextKey,NumberKey,Space,PgUp,PgDn); Dir_Files = array[1..200] of string[13]; var key : keys; diretorio : Dir_Files; num_arq,col,lin,i : integer; nome_escolh : string[12]; conf : char; drive : byte; path : string; str2 :pathstr; ok : boolean; FileSpec : string; procedure drawbox(x1,x2,y1,y2,fg,bg:integer); procedure InKey(var FunctionKey: boolean; var ch : char); Procedure DIrList(Mask_In : string; var Name_List : Dir_Files; var File_Counter : integer); procedure exibe_arq; procedure escolhe_arq; implementation procedure drawbox(x1,x2,y1,y2,fg,bg:integer); var i : byte; hora,min,seg,dec,dia,mes,ano,dsem : word; min1,mes1 : string[2]; ano1 : string[4]; begin textcolor(fg); textbackground(bg); clrscr; for i:= (x1+1) to (x2-1) do begin gotoxy(i,y1); write(#205); gotoxy(i,y2); write(#205); end; for i:=(y1+1) to (y2-1) do begin gotoxy(x1,i); write(#186);

Page 209: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(x2,i); write(#186); end; gotoxy(x1,y1); write(#201); gotoxy(x2,y1); write(#187); gotoxy(x1,y2); write(#200); gotoxy(x2,y2); write(#188); gotoxy(x1,6); write(#204); gotoxy(x1,22); write(#204); for i:=(x1+1) to (x2-1) do begin gotoxy(i,6); write(#205); gotoxy(i,22); write(#205); end; gotoxy(x2,6); write(#185); gotoxy(x2,22); write(#185); gettime(hora,min,seg,dec); str(min:2,min1); if min1[1] = ' ' then min1[1]:='0'; gotoxy(3,2); write(hora,':',min1); getdate(ano,mes,dia,dsem); str(mes:2,mes1); str(ano:4,ano1); if mes1[1] = ' ' then mes1[1]:='0'; delete(ano1,1,2); gotoxy(70,2); write(dia,'/',mes1,'/',ano1); gotoxy(19,3); write('COPPE - Programa de Engenharia de Producao'); gotoxy(30,4); write('PESQUISA OPERACIONAL'); gotoxy(28,5); write('K-CAMINHOS INDEPENDENTES'); end;{end procedure drawbox} procedure InKey(var FunctionKey: boolean; var ch : char);

Page 210: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

begin FunctionKey:=false; ch:=readkey; if (ch = #0) then begin FunctionKey:=true; ch:=readkey; end; if FunctionKey then case ord(ch) of 15: (* Shift Tab *) key:=ShiftTab; 72: (* seta para cima *) key:=UpArrow; 80: (* seta para baixo *) key:=DownArrow; 82: (* Tecla Ins *) key:=InsertKey; 75: (* seta para a esquerda *) key:=LeftArrow; 77: (* seta para a direita *) key:=RightArrow; 73: (* pgup *) key:=PgUp; 81: (* pgdown *) key:=PgDn; 71: (* home *) key:=HomeKey; 79: (* End *) key:=EndKey; 83: (* Delete *) key:=DeleteKey; 82: (* Insert *) key:=InsertKey; 59: (* F1 *) key:=F1; 60: (* F2 *) key:=F2; 61: (* F3 *) key:=F3; 62: (* F4 *) key:=F4; 63: (* F5 *) key:=F5; 64: (* F6 *) key:=F6; 65: (* F7 *) key:=F7; 66: (* F8 *) key:=F8; 67: (* F9 *) key:=F9; 68: (* F10 *) key:=F10; end else case ord(ch) of 8: (* BackSpace *) key:=Bksp; 9: (* tecla Tab *) key:=Tab; 13: (* retorno de carro *) key:=CarriageReturn; 27: (* Esc *) key:=Esc; 32: (* barra de espa‡o *) key:=Space; 33..44,47,58..254 : key:=TextKey; (* tecla de letra*) 45..46,48..57 : key:=NumberKey; end; end;{end procedure InKey}

Page 211: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Procedure DIrList(Mask_In : string; var Name_List : Dir_Files; var File_Counter : integer); var i : byte; Regs : registers; DTAseg, DTAofs : Word; FileName : string[20]; begin FillChar(Regs,SizeOf(Regs),0); File_Counter:=0; Regs.AH:=$2F; MsDos(Regs); With Regs do begin DTAseg:=ES; DTAofs:=BX; end; FillChar(Regs,SizeOf(Regs),0); Mask_In:=Mask_In + #0; With Regs Do begin AH:=$4E; DS:=Seg(Mask_In); DX:=Ofs(Mask_In)+1; CL:=$00; end; MsDos(Regs); If Regs.AL <> 0 Then Exit; i:=1; repeat Filename[i]:=Chr(Mem[DTAseg:DTAofs+29+i]); i:=i+1; until (FileName[i-1] < #32) or (i > 12); FileName[0]:=Chr(i-1); File_Counter:=1; Name_List[File_Counter]:=FileName; repeat FillChar(Regs,SizeOf(Regs),0); With Regs do begin AH:=$4F; CL:=$00; end; MsDos(Regs); If Regs.AL = 0 Then begin i:=1; repeat

Page 212: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

FileName[i]:=Chr(Mem[DTAseg:DTAofs+29+i]); i:=i+1; until (FileName[i-1] < #32) or (i > 12); Inc(File_Counter,1); FileName[0]:=Chr(i-1); Name_List[File_Counter]:=FileName; End; Until Regs.AL <> 0; End;(* end procedure DirList *) procedure exibe_arq; var i,j : integer; begin col:=3; lin:=10; for j:=10 to 21 do begin gotoxy(3,j); write(' '); end; for i:=1 to num_arq do begin if col <= 63 then begin if lin <= 20 then begin gotoxy(col,lin); write(diretorio[i]); col:=col+15; end; end else begin col:=3; lin:=lin+1; if lin > 21 then begin if num_arq > 21 then begin gotoxy(21,23); write('Pressione uma tecla para continuar...'); readkey; end; for j:=10 to 21 do begin gotoxy(3,j); write(' '); end;

Page 213: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

lin:=10; end; gotoxy(col,lin); write(diretorio[i]); col:=col+15; end; end; gotoxy(21,23); write('Pressione uma tecla para continuar... '); readkey; end;(* end procedure exibe arq *) procedure escolhe_arq; begin repeat gotoxy(4,23); write('Arquivo escolhido : (Sem a extensao) Confirma ? (S/N): '); repeat gotoxy(24,23); write(' '); gotoxy(24,23); readln (nome_escolh); delete(nome_escolh,9,4); for i:=1 to 8 do nome_escolh[i]:=upcase(nome_escolh[i]); if FileSpec = '*.RED' then nome_escolh:=nome_escolh+'.RED' else nome_escolh:=nome_escolh+'.CAP'; getdir(drive,path); str2:=fsearch(nome_escolh,path); if str2 = nome_escolh then ok:=true else ok:=false; until ok; repeat gotoxy(72,23); write(' '); gotoxy(72,23); readln (conf); until upcase(conf) in ['S','N']; until upcase(conf) = 'S'; end;(* end procedure escolhe_arq *) end. {$O+,F+}

Page 214: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

unit ov_start; interface uses overlay; implementation begin OvrInit('chama.ovr'); if ovrresult = ovrnotfound then begin writeln('Arquivo chama.ovr nao encontrado !'); halt; end; OvrInitEMS; case OvrResult of ovrIOError: Writeln('Overlay file I/O error.'); ovrNoEMSDriver: Writeln('EMS driver not installed.'); ovrNoEMSMemory: Writeln('Not enough EMS memory.'); else Writeln('Using EMS for faster overlay swapping.'); end; end. {$o+,F+} Unit ajuda; {........................................................................... Esta Unit contem o programa de ajuda ao usu rio ............................................................................} interface Uses crt,dos,overlay,ov_funct; procedure prog9; implementation procedure prog9; (* Declara Vari veis Globais *) Var Ch,op:char; ok:boolean; VS:Word; arq_help : string; Texto : text; Linha_Texto : string[76];

Page 215: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

WinX1, WinX2, WinY1, WinY2 : Byte; Function VidSeg : Word; Begin If Mem[$0000:$0449] = 7 Then VidSeg:=$B000 Else VidSeg:=$B800; End; (* end Function VidSeg *) Procedure FastWrite(x,y : Byte; s : string; fc, bc : Byte); Var w : Word; i, ColAtr : Byte; Begin ColAtr:=(bc shl 4) + fc; (* cria byte de atributo *) w:=((y-1)*80 + (x-1))*2; (* calcula o deslocamento *) For i:=1 to Length(s) do begin MemW[VS:w]:=(ColAtr Shl 8) + Ord(s[i]); Inc(w,2); End; End;(* end procedure FastWrite *) Procedure FastBox(x1,y1,x2,y2,fg,bg : Byte); Var i : Byte; s : String[1]; Begin TextColor(fg); TextBackground(bg); s:=#205; For i:=(x1+1) to (x2-1) do begin FastWrite(i,y1,s,fg,bg); FastWrite(i,y2,s,fg,bg); End; s:=#186; for i:= (y1+1) to (y2-1) do begin FastWrite(x1,i,s,fg,bg); FastWrite(x2,i,s,fg,bg); end; s:=#201; FastWrite(x1,y1,s,fg,bg); s:=#187; FastWrite(x2,y1,s,fg,bg);

Page 216: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

s:=#200; FastWrite(x1,y2,s,fg,bg); s:=#188; FastWrite(x2,y2,s,fg,bg); End;(* end procedure FastBox *) Procedure OpenWindow; Begin Window(WinX1,WinY1,WinX2,WinY2); FastBox(WinX1-1,WinY1-1,WinX2+1,WinY2+1,Yellow,Black); TextColor(Black); TextBackGround(Cyan); Clrscr; End;(* end procedure OpenWindow *) procedure escreve_texto_ajuda(var nom_arq_help : string); var i,j : integer; begin OpenWindow; assign(Texto,nom_arq_help); reset(Texto); gotoxy(1,1); j:=1; while not(eof(Texto)) do begin readln(Texto,Linha_Texto); for i:= 1 to length(Linha_Texto) do begin write(Linha_Texto[i]); delay(20); end;(* end for *) writeln; j:=j+1; if (j = 17) and not(eof(Texto)) then begin gotoxy(23,j); write('Pressione qualquer tecla para continuar'); readkey; j:=1; clrscr; end; end;(* End While *) TextBackGround(Blue); TextColor(White); Window(1,1,80,25);

Page 217: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

gotoxy(23,23); write('Pressione qualquer tecla para continuar'); readkey; end;(* end procedure escreve_texto_ajuda *) Begin VS:=VidSeg; WinX1:=2; WinY1:=7; WinX2:=78; WinY2:=23; repeat clrscr; drawbox(1,79,1,24,white,blue); gotoxy(33,7); write('MENU DE AJUDA'); gotoxy(33,8); write('==== == ====='); gotoxy(30,10); write('1- CRIAR REDE'); gotoxy(30,11); write('2- K_CAMINHOS'); gotoxy(30,12); write('3- RETIRAR ARCOS'); gotoxy(30,13); write('4- RETIRAR NOS'); gotoxy(30,14); write('5- NOS COINCIDENTES'); gotoxy(30,15); write('6- CONJUNTOS DE K-CAMINHOS'); gotoxy(30,16); write('7- SOMATORIO DOS INDICES'); gotoxy(30,17); write('8- ALOCAR FLUXOS'); gotoxy(30,18); write('9- VOLTAR AO MENU PRINCIPAL'); gotoxy(25,23); write('Digite o n£mero da opcao desejada -> '); repeat gotoxy(61,23); write(' '); gotoxy(61,23); readln(op); if op in ['1','2','3','4','5','6','7','8','9'] then ok:=true else ok:=false; until ok; case op of '1': arq_help:='criarede.hlp'; '2': arq_help:='K_caminh.hlp'; '3': arq_help:='retirarc.hlp';

Page 218: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

'4': arq_help:='retirano.hlp'; '5': arq_help:='noscoinc.hlp'; '6': arq_help:='conjkcam.hlp'; '7': arq_help:='somatind.hlp'; '8': arq_help:='alocflux.hlp'; '9': exit; end; escreve_texto_ajuda(arq_help); until op='9'; end; end.

Page 219: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

Capítulo 8

Conclusões e Recomendações

8.1- Conclusões

Durante a pesquisa realizada para elaboração deste trabalho, constatou-se que os

modelos utilizados em estudos sobre planejamento da evacuação estavam mais

preocupados em avaliar o potencial da rede no sentido de absorção do fluxo de veículos

gerado nesta situação do que definir as melhores rotas e que, com este objetivo,

utilizavam métodos de simulação aliados às técnicas de engenharia de tráfego.

Verificou-se, então, que uma contribuição ao planejamento de transporte para uma

situação de emergência seria o desenvolvimento de um método de alocação de fluxo, o

qual, dada uma rede urbana, definisse as melhores rotas para evacuar a população o

mais rápido possível, levando à identificação das rotas que possuem mais capacidade de

escoamento no menor tempo possível. Considere-se, principalmente o fato dessas rotas

serem independentes, o que, numa situação de emergência, é importante para evitar

acidentes e maiores tumultos. O método proposto neste trabalho, conforme testes

realizados, se mostrou eficiente para definição destas rotas.

Conforme se enfatizou, no decorrer do capítulo 6, a utilização do indice Ip= Cp/ Tp, teve

como objetivo definir as rotas que tivessem maior capacidade de escoamento, levando

em conta assim , tanto o tempo de viagem como a capacidade das mesmas. Se o objetivo

for a definição de rotas visando apenas minimizar o tempo de viagem, o algoritmo

desenvolvido pode ser simplificado. Desta forma, retiram-se apenas os nós coincidentes

Page 220: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

a cada iteração (passo5), ou seja o passo 4 não existirá. Deve-se observar porém que

nesse caso a função objetivo passa a ser de minimização do tempo total.

É importante notar que o método apresentado é apenas uma parte de um plano de

transporte para situações de emergência, servindo, inclusive, para estudos que possam

avaliar medidas alternativas de melhorias físicas e operacionais de vias com o objetivo

de aumentar o desempenho das rotas. Além disso, deve-se enfatizar a importância da

modelagem na análise de possíveis modificações emergenciais na rede, viabilizando um

maior número de rotas independentes. Neste caso, a visão do engenheiro de tráfego é

importante, pois algumas interseções, por exemplo, podem ser definidas por dois ou

mais nós distintos se houver possibilidade de dividi-las para passagem de fluxos que não

se cruzem (conforme discutido no capítulo 5) ou ainda mudança na direção de vias.

Cabe ressaltar que o método desenvolvido também se aplica a qualquer tipo de análise

que envolva o problema de distribuição de fluxo em rotas independentes, minimizando

um custo e maximizando o fluxo a ser alocado.

Considera-se assim, que a contribuição principal deste trabalho está no

desenvolvimento do algoritmo proposto, e que este pode ser utilizado tanto para

planejamento de transporte quanto em problemas de otimização de redes.

8.2 - Recomendações

O programa Chama foi desenvolvido apenas com o objetivo de mostrar a

funcionalidade do algoritmo proposto e portanto sua utilização tem algumas

limitações que se devem principalmente à sua pouca capacidade e a relativa interação

com o usuário. Quanto a capacidade, o programa principal Kcam.pas não pode ser

aplicado em redes com um número de nós superiores a 50 e com mais de 100 arcos

capacitados. Quanto à interação com o usuário os resultados de algumas opções

devem ser guardados pelo mesmo para serem utilizadas em outra opção, ou seja, o

programa não usa esses resultados automaticamente. Além de um aperfeiçoamento

Page 221: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo

em relação a estes aspectos, recomenda-se que na criação de um programa de ampla

utilização os seguintes aspectos sejam considerados:

1- Incorporar ao programa desenvolvido uma função de desempenho que avalie o tempo

em função do fluxo alocado.

Como uma complementação do método de alocação proposto sugere-se o uso de uma

função de desempenho para avaliar o tempo nos arcos (vias) em função do fluxo

alocado. Propõe-se, nesse caso, a utilização da função desenvolvida no modelo do

Bureau of Public Research - BPR ou a apresentada no método da Wayne State

University - WSU (capítulo 4), utiliza-se uma dessas funções para se obter uma

atualização dos tempos de deslocamento nas vias em função do fluxo que se deseja

alocar possibilitando assim uma melhor avaliação do desempenho de cada rota

encontrada.

A expressão dada pelo BPR deve ser utilizada caso os dados referentes ao tempo de

deslocamento no arco (via) estejam relacionados à velocidade de fluxo livre,

enquanto a expressão dada pela WSU deve ser utilizada quando os tempos nos arcos

são aqueles que correspondem à velocidade observada quando o fluxo possui valor

próximo a sua capacidade.

2- Introduzir um processo de simulação .

Um processo de simulação pode ser introduzido em relação à taxa de carregamento

do fluxo de veículos na rede, para avaliar uma situação em que ocorra uma ação

desordenada na evacuação da população sem obedecer a uma ordem, conforme

considerado no procedimento proposto no item 6.7 ; neste caso, pode acontecer que a

capacidade das rotas esteja aquém do montante de fluxo que pode ocorrer em um

dado momento da evacuação, formando assim um congestionamento momentâneo

que pode acarretar um aumento do tempo de evacuação. A simulação de uma

situação desta natureza pode em alguns casos fornecer informações importantes sobre

medidas que visem um melhor gerenciamento da evacuação.

Page 222: tese-final - Instituto Militar de Engenhariaaquarius.ime.eb.br/~webde2/prof/vania/pubs/tese-final.pdf · O planejamento de transportes numa situação de emergência tem um objetivo