• Nenhum resultado encontrado

Modelo vetorial: análise de redes. Análise de redes. Algoritmos de análise de redes. Análise de redes. Análise de redes

N/A
N/A
Protected

Academic year: 2021

Share "Modelo vetorial: análise de redes. Análise de redes. Algoritmos de análise de redes. Análise de redes. Análise de redes"

Copied!
6
0
0

Texto

(1)

Sistemas de Informação Geográfica II

Alexandre Gonçalves DECivil - IST alexg@civil.ist.utl.pt

Aula 3

Modelo vetorial:

análise de redes

1.

Análise de redes: problemas

1. Caminhos de menor custo 2. Árvores

2.

Algoritmos

3.

Avaliação da rede

1. Indicadores topológicos 2. Indicadores métricos

Em SIG (ArcGIS):

• caminhos (fig. esq.)

• circuitos (fig. dir.)

• “áreas de serviço”

• matriz OD

• VRP

Algoritmos de análise de redes

tudo variantes do problema de caminho de menor custo

Prob. do caminho de menor custo

Análise de redes

ij n i n j ijX c



1 1 min

  n j Pj X 1 1 XjP0 j

  n j jC X 1 1 XCj0 j

      n k n k ki ik X i PC X 1 1 } , { 0 j i Xij{0,1} , sujeito a:

Se resolvido em SIG, qual a info. geográfica necessária?

Topologia de linhas criada, com

atributos não-negativos para o custo

Prob. do caixeiro viajante

Análise de redes

sujeito a:

 

   n i n i j j ij ijX c 1 1, min N i X n i j j ij   

 1, 1 X j N n j i i ij 

 1, 1 2 }, ,..., 2 { 1 | | , ,     

  M n M M X n j i M j i ij 2 0 3 1 9 7 8 4 5 6 10

Análise de redes

Vehicle Routing Problem

– o PRV simples pode ser definido como o problema de desenhar rotas a serem percorridas por veículos de capacidade conhecida de forma a satisfazer a procura de clientes cuja localização é conhecida, partindo cada veículo do depósito e regressando ao mesmo

Transporte de materiais e produtos de longa distância; Entrega de produtos porta a porta;

Entrega de correio; Recolha de resíduos sólidos urbanos;

Geração de rotas de autocarros; Transportes escolares; Vendas ambulantes etc.

(2)

Vehicle Routing Problem

Análise de redes

sujeito a:

 

   n i n j m k ijk ij X c 0 0 1 min n j X n i m k ijk 1 1,..., 0 1  



  n p m k X X n i n j pjk ipk 0 1,..., ; 0,..., 0 0    

  m k Q X q n i n j k ijk i 1,..., 0 0  



  m k D X d c n i k n j ijk i ij ) 1,..., ( 0 0   



  m k X n j jk 1 1,..., 1 0  

m k M n M M X n j i M j i ijk | | 1 {1,..., }, 2, 1,..., , ,      

  m k n j i Xijk{0,1} , 1,..., ; 1,..., ij c custos k Q capacidades k j i Xijk{0,1} , , variáveis de decisão

Prob. do caminho de menor custo que minimiza a distância cumulativa dos nós não “visitados”

Análise de redes

B A

Prob. do caminho de menor custo que minimiza a distância cumulativa dos nós não “visitados”

Análise de redes

) ; ( min 1 1 1 1





     n i n j ij ij i n i n j ij ijX dtY c Z

      n j jP ij ij i C P i Y X 1 } , { 1 j i X Yijij ,



       Q i jQ ij Q Q V Q X 1 , 2

restrições do anterior, mais: sujeito a:

Árvore de dispersão mínima

Análise de redes

5 5 4 3 5 2 8 D H B A G E F 5 7 C 4 4 5 4 3 4 3 2 D H B A G E F C 4 4 4 3 ij c j i Xij{0,1} , custos variáveis de decisão 2  BE c

Descrição ambígua: o que é que pode ser a rede de menor custo que liga mais do que 2 locais?

circuito

árvore árvore árvore

Análise de redes

Árvore de dispersão mínima no plano

Análise de redes

A B

C árvores de

(3)

Árvore de dispersão mínima (de Steiner)

Análise de redes

Vértices a ligar 3 4 5 6 7 P o n tos d e S te iner 0 3 12 60 360 2520 1 1 12 120 1200 12600 2 3 75 1350 22050 3 15 630 17640 4 105 6615 5 945 Total 4 27 270 3645 62370

Árvore de dispersão mínima (de Steiner)

Análise de redes

Algoritmos

• Prim (árvore de dispersão mínima)

• Dijkstra (caminho de menor custo)

Algoritmo de Prim

2 3 6 5 1 4 24 24 18 13 11 5 12 17 5 escolher (u,v)A: custo é aí mínimo

T = {u,v}

enquanto T e V forem diferentes acrescentar em T o nó v*:

(u*,v*)A, de custo mínimo: u*T e v*T fim ciclo; 2 3 6 5 1 4 24 24 18 13 11 5 12 17 5 escolher (u,v)A: custo é aí mínimo

T = {u,v}

enquanto T e V forem diferentes acrescentar em T o nó v*:

(u*,v*)A, de custo mínimo: u*T e v*T fim ciclo; T = {3,5}, custo total = 5 T = {3,5,4}, custo total = 10 T = {3,5,4,2}, custo total = 23 T = {3,5,4,2,6}, custo total = 35 T = {3,5,4,2,6,1}, custo total = 59 2 3 6 5 1 4 24 13 5 12 5

Algoritmo de Prim

Encontrar o caminho

mais curto (de menor

custo) de modo a ligar

dois locais na rede.

Exemplo: de 1 para 4 2 3 6 5 1 4 24 30 18 13 11 5 12 17 5

Construir duas listas indexadas pelos nós: dist

predecessor

e uma lista de nós que falta visitar

(4)

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquantolista ≠ 

escolher v lista: dist é aí mínimo; lista = lista \ {v};

para todos os u lista: (v, u)  A se dist(u) > dist(v) + custo(v,u) então dist(u) = dist(v) + custo(v,u); predecessor(u)=v; fim ciclo; fim ciclo;

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 para todos os v  V, dist(v) = ∞; fim ciclo; dist(início) = 0; lista = V; predecessor(início) = *indefinido*; enquanto lista ≠ 

escolher v  lista: dist é aí mínimo; lista = lista \ {v};

para todos os u  lista: (v, u)  A se dist(u) > dist(v) + custo(v,u) então dist(u) = dist(v) + custo(v,u); predecessor(u)=v; fim ciclo; fim ciclo; vért. dist pred 1 2 3 4 5 6

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 vért. dist pred 1 0 *ind* 2 3 4 5 6  para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquanto lista ≠ 

escolher v  lista: dist é aí mínimo; lista = lista \ {v};

para todos os u  lista: (v, u)  A se dist(u) > dist(v) + custo(v,u) então dist(u) = dist(v) + custo(v,u); predecessor(u)=v;

fim ciclo;

fim ciclo; lista = {1,2,3,4,5,6}

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 vért. dist pred 1 0 *ind* 2 3 4 5 6  para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquantolista ≠ 

escolher v lista: dist é aí mínimo; lista = lista \ {v};

para todos os u  lista: (v, u)  A se dist(u) > dist(v) + custo(v,u) então dist(u) = dist(v) + custo(v,u); predecessor(u)=v;

fim ciclo;

fim ciclo; listav = 1 = {2,3,4,5,6}

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 vért. dist pred 1 0 *ind* 2 30 1 3 4 5 6 24 1 para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquantolista ≠ 

escolher v lista: dist é aí mínimo; lista = lista \ {v};

para todos os u lista: (v, u)  A sedist(u) > dist(v) + custo(v,u) entãodist(u) = dist(v) + custo(v,u); predecessor(u)=v;

fim ciclo;

fim ciclo; lista = {2,3,4,5,6}

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 vért. dist pred 1 0 *ind* 2 30 1 3 41 6 4 5 42 6 6 24 1 para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquantolista ≠ 

escolher v lista: dist é aí mínimo; lista = lista \ {v};

para todos os u lista: (v, u)  A sedist(u) > dist(v) + custo(v,u) entãodist(u) = dist(v) + custo(v,u); predecessor(u)=v;

fim ciclo;

fim ciclo; lista = {2,3,4,5}

(5)

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 vért. dist pred 1 0 *ind* 2 30 1 3 41 6 4 47 5 5 42 6 6 24 1 para todos os v  V, dist(v) = ∞; fim ciclo;

dist(início) = 0; lista = V; predecessor(início) = *indefinido*;

enquantolista ≠ 

escolher v lista: dist é aí mínimo; lista = lista \ {v};

para todos os u lista: (v, u)  A sedist(u) > dist(v) + custo(v,u) entãodist(u) = dist(v) + custo(v,u); predecessor(u)=v; fim ciclo; fim ciclo;

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 Sequência vez=0 lista = {1} pred(1) = *indefinido* custo(1) = 0 vez=1 cand: (1,2)0+30; (1,6)0+24 lista = {1,6} pred(6) = 1; custo(6) = 24 vez=2 cand: (1,2)0+30; (6,2)24+12; (6,3)24+17; (6,5)24+18 lista = {1,2,6} pred(2) = 1; custo(2) = 30 vez=3 cand: (2,3)30+13;(6,3)24+17; (6,5)24+18 lista = {1,2,3,6} pred(3) = 6; custo(3) = 41

Algoritmo de Dijkstra

2 3 6 5 1 4 24 30 18 13 11 5 12 17 5 Sequência (cont.) vez=4 cand: (3,4)41+11;(3,5)41+5;(6,5)24+18 lista = {1,2,3,5,6} pred(5) = 6; custo(5) = 42 vez=5 cand: (3,4)41+11;(5,4)42+5 lista = {1,2,3,4,5,6} pred(4) = 5; custo(4) = 47 vért. dist pred 1 0 *ind* 2 30 1 3 41 6 4 47 5 5 42 6 6 24 1

Algoritmo de Dijkstra

outros problemas

• árvore de dispersão de alguns vértices

• extensão de uma rede

– como avaliar?

PDH – pruned Dijkstra heuristic

A

Estratégia possível para encontrar a árvore de dispersão de alguns vértices

1. encontrar a árvore de dispersão mínima de um terminal fixo para o resto do grafo;

2. eliminar os ramos da árvore que não ligam a nenhum vértice terminal.

SPH – shortest path heuristic

Outra estratégia

1. iniciar a activação de um terminal e constituir uma árvore apenas com este vértice;

2. determinar o terminal que seja mais próximo de algum vértice da árvore actual pelo algoritmo de Dijkstra;

3. juntar o caminho dado pelo algoritmo à arvore actual; 4. repetir os passos 2 e 3 até a árvore incluir todos os vértices

terminais A

(6)

múltiplas árvores de dispersão

T V v\

Indicadores topológicos

Indicadores topológicos baseados na rede (conectividade)

Medida Domínio Expressão Avaliação

Número de ciclos

rede número de ciclos no grafo

Índice a rede número de ciclos em relação

ao número máximo possível de ciclos

Índice b rede número de arestas (troços) em

relação ao número de vértices

Índice g (entre 0 e 1)

rede número de arestas em relação

ao máximo possível S V A  5 2    V S V A V A 6 3VA

A = #arestas V = #vértices S = #subgrafos conexos calcular p/

estas redes

Indicadores métricos

Indicadores métricos baseados em distâncias (acessibilidade)

Medida Domínio Expressão Avaliação

Número de König

nó centralidade de um nó (número

de arestas necessárias para o ligar com o nó que seja mais

distante)

Diâmetro rede distância (custo) entre os dois

nós mais afastados Índice de conectividade nó grau de conectividade de um nó Índice de dispersão ou de Shimbel

rede soma dos graus de

conectividade de todos os nós ij j i d K max ij j i, d max

 V j ij i d A 1



  V i V j ij i d A 1 1 calcular p/ as redes do slide anterior

exercício: comparar os índices topológicos e métricos do Metro de Lisboa na rede actual e na rede futura

índices da rede do ML

Referências

Documentos relacionados

b) Racionalizar a estrutura societária das controladas da Brasiliana, mediante a concentração das participações por ela detidas direta ou indiretamente em

A liquidação da despesa foi procedida com base na nota de empenho e no documento apresentado, onde consta a declaração do material e/ou serviço em

Eu, ..., brasileiro (a), RG Nº ..., CIC Nº ..., DECLARO, para os devidos fins de Direito, que tenho pleno conhecimento e aceito as normas e instruções do Concurso Público de Provas

Foi ainda emitida confirmação de que não são utilizadas quaisquer substâncias químicas tóxicas, cancerígenas, tóxicas para a reprodução e mutagénicas da

"tendo em vista a estrutura da incorporação pretendida, a Companhia entende que não se faz necessário o atendimento integral ao Artigo 264 da Lei 6.404/76 e à ICVM

Os valores encontrados para os coeficientes foram de 0,71 e 0,68 para número de adultos vivos e de ovos, respectivamente, na face adaxial e de 0,56 e 0,64, para essas mesmas

No entanto, ao contrário da autora, o pensador italiano não espera na criação a partir do vazio o nascimento de uma nova obra (um novo começo), mas, justamente, pretende

13.1 A partir de 18/05/2012 será publicada a relação dos candidatos aprovados, em ordem decrescente de pontuação final, contendo a nota da prova e o número de