Application of the Maximum Flow Problem to Sensor Placement on Urban Road Networks for Homeland Security Lowell Bruce Anderson, Robert J. Atwell, D. Sean Barnett, and Robert L. Bovey Bruno Rogério UECE - Universidade Estadual do Ceará Sumário 1 Introdução ao problema 2 Aplicando teoria de grafos na modelagem do problema 3 Rede de Fluxo 4 Análise do Problema do Artigo 5 Metodologia 6 Resultados e Aplicações 7 Referências Maximum Flow Problem UECE Introdução ao Problema Iniciemos a apresentação com a seguinte problemática: • Como posicionar sensores em uma rede de estradas de forma a impedir uma invasão por terroristas? • Para isso, o artigo faz uso de fluxo em redes, da teoria dos grafos Vejamos um mapa da rede de estradas da cidade de Nova York: Figure 1: Mapa de estradas da região de Nova York Maximum Flow Problem UECE Aplicando teoria de grafos na modelagem do problema • Primeiro passo a se fazer, é modelar este mapa como um grafo, com: vértices e arcos direcionados • O que seriam os nós e os arcos neste grafo gerado? Maximum Flow Problem UECE Aplicando teoria de grafos na modelagem do problema • Primeiro passo a se fazer, é modelar este mapa como um grafo, com: vértices e arcos direcionados • O que seriam os nós e os arcos neste grafo gerado? • O mapa da rede rodoviária de Nova York apresenta em torno de um milhão de segmentos de estradas. Seria impraticável colocar tantos sensores para monitorar essa área, não é mesmo? Maximum Flow Problem UECE Aplicando teoria de grafos na modelagem do problema • Primeiro passo a se fazer, é modelar este mapa como um grafo, com: vértices e arcos direcionados • O que seriam os nós e os arcos neste grafo gerado? • O mapa da rede rodoviária de Nova York apresenta em torno de um milhão de segmentos de estradas. Seria impraticável colocar tantos sensores para monitorar essa área, não é mesmo? • Mostraremos como resolver este problema usando o conceito de fluxo em redes! Maximum Flow Problem UECE Rede de Fluxo • Afinal, o que é uma rede de fluxo? Maximum Flow Problem UECE Rede de Fluxo • Afinal, o que é uma rede de fluxo? Uma rede de fluxo G = (V, E) é um grafo dirigido em que cada aresta (u, v) ∈ E tem um valor (não-negativo) capacidade c(u, v). Se (u, v) ∈ / E, assume-se que c(u, v) = 0. • Uma rede possui dois vértices principais: Uma fonte (s) e um destino (t) Figure 2: Exemplo de uma rede de fluxo com suas capacidades Maximum Flow Problem UECE Rede de Fluxo Um fluxo em uma rede de fluxo G é uma função de valor real f : V x V → R que satisfaz às três propriedades seguintes: Maximum Flow Problem UECE Rede de Fluxo Um fluxo em uma rede de fluxo G é uma função de valor real f : V x V → R que satisfaz às três propriedades seguintes: • Restrição de Capacidade : Afirma que o fluxo de um vértice ao outro não deve exceder a capacidade dada. Para todo u, v ∈ V, exigimos f (u, v) ≤ c(u, v). Maximum Flow Problem UECE Rede de Fluxo Um fluxo em uma rede de fluxo G é uma função de valor real f : V x V → R que satisfaz às três propriedades seguintes: • Restrição de Capacidade : Afirma que o fluxo de um vértice ao outro não deve exceder a capacidade dada. Para todo u, v ∈ V, exigimos f (u, v) ≤ c(u, v). • Anti-simetria : A anti-simetria é uma conveniência de notação que afirma que o fluxo de um vértice u até um vértice v é o valor negativo do fluxo no sentido inverso. Para todo u, v ∈ V, exigimos: f (u, v)=−f (v, u) Maximum Flow Problem UECE Rede de Fluxo Um fluxo em uma rede de fluxo G é uma função de valor real f : V x V → R que satisfaz às três propriedades seguintes: • Restrição de Capacidade : Afirma que o fluxo de um vértice ao outro não deve exceder a capacidade dada. Para todo u, v ∈ V, exigimos f (u, v) ≤ c(u, v). • Anti-simetria : A anti-simetria é uma conveniência de notação que afirma que o fluxo de um vértice u até um vértice v é o valor negativo do fluxo no sentido inverso. Para todo u, v ∈ V, exigimos: f (u, v)=−f (v, u) • Conservação de Fluxo : A propriedade de conservação de fluxo afirma que o fluxo total para fora de um vértice que não seja a origem ou o destino é 0 (zero). Para todo u ∈ V - {s, t}, exigimos: P v ∈V f (u, v) = 0 Maximum Flow Problem UECE Rede de Fluxo • Como já sabemos o que é um fluxo, e a partir da definição, podemos afirmar que o fluxo nulo consiste no fluxo mı́nimo que podemos ter em uma rede G • Vejamos o exemplo : v' 0 0 s t 0 0 0 v'' Figure 3: Exemplo trivial de fluxo Maximum Flow Problem UECE Rede de Fluxo • Método de Ford-Fulkerson FORD-FULKERSON-METHOD(G, s, t) 1 inicializar fluxo f como 0 2 while existir um caminho aumentante p 3 do ampliar fluxo f ao longo de p 4 return f O método de Ford-Fulkerson depende de três ideias importantes que são relevantes para muitos algoritmos de fluxo e problemas: redes residuais, caminhos aumentantes e cortes Maximum Flow Problem UECE Rede de Fluxo Redes Residuais • A capacidade residual de (u, v) é dada por: cf (u, v) = c(u, v) - f (u, v) Maximum Flow Problem UECE Rede de Fluxo Redes Residuais • A capacidade residual de (u, v) é dada por: cf (u, v) = c(u, v) - f (u, v) • Definição: Dado um fluxo em rede G = (V, E) e um fluxo f , rede residual de G induzida por f é Gf = (V, Ef ), onde: Ef = { (u, v) ∈ V x V : cf (u, v) > 0 } Maximum Flow Problem UECE Rede de Fluxo Redes Residuais • A capacidade residual de (u, v) é dada por: cf (u, v) = c(u, v) - f (u, v) • Definição: Dado um fluxo em rede G = (V, E) e um fluxo f , rede residual de G induzida por f é Gf = (V, Ef ), onde: Ef = { (u, v) ∈ V x V : cf (u, v) > 0 } • A rede residual consiste em arestas que podem admitir mais fluxo. A quantidade de fluxo adicional que podemos empurrar desde u até v antes de exceder a capacidade c(u, v) é a capacidade residual de (u, v) Maximum Flow Problem UECE Rede de Fluxo Redes Residuais • A capacidade residual de (u, v) é dada por: cf (u, v) = c(u, v) - f (u, v) • Definição: Dado um fluxo em rede G = (V, E) e um fluxo f , rede residual de G induzida por f é Gf = (V, Ef ), onde: Ef = { (u, v) ∈ V x V : cf (u, v) > 0 } • A rede residual consiste em arestas que podem admitir mais fluxo. A quantidade de fluxo adicional que podemos empurrar desde u até v antes de exceder a capacidade c(u, v) é a capacidade residual de (u, v) • Qual seria a rede residual e as capacidades residuais de uma rede de fluxo G? Maximum Flow Problem UECE Rede de Fluxo Caminhos aumentantes • Definição: um caminho aumentante p é um caminho simples desde s até t na rede residual Gf . Maximum Flow Problem UECE Rede de Fluxo Caminhos aumentantes • Definição: um caminho aumentante p é um caminho simples desde s até t na rede residual Gf . • Chamamos a quantidade máxima pela qual podemos aumentar o fluxo em cada aresta de um caminho aumentante p de capacidade residual de p, dada por: cf (p) = min { cf (u, v) : (u, v) está em p } • Como podemos achar o caminho aumentante p a partir da rede residual Gf ? Maximum Flow Problem UECE Rede de Fluxo Teorema. Se f é um fluxo máximo em uma rede de fluxo G, então a rede residual Gf não possui caminho aumentante. • Com isso resolvemos o problema do fluxo máximo, por conta do algoritmo. • Qual a relação existente entre o problema de fluxo máximo e o problema de posicionar sensores em estradas para impedir o avanço de terroristas? Maximum Flow Problem UECE Rede de Fluxo Teorema. Se f é um fluxo máximo em uma rede de fluxo G, então a rede residual Gf não possui caminho aumentante. • Com isso resolvemos o problema do fluxo máximo, por conta do algoritmo. • Qual a relação existente entre o problema de fluxo máximo e o problema de posicionar sensores em estradas para impedir o avanço de terroristas? • Existe uma relação entre o problema de fluxo máximo e o problema de corte mı́nimo. Maximum Flow Problem UECE Rede de Fluxo Cortes em uma rede de fluxo • Um corte (S,T) de uma rede de fluxo G = (V, E) é uma partição de V em S e T = V-S tal que s ∈ S e t ∈ T. Parêmetros de um corte (S, T) : • Fluxo lı́quido: é f(S, T) = f (v1 , v3 ) + f (v2 , v3 ) + f (v2 , v4 ), onde S = {s, v1 , v2 } e T = {t, v3 , v4 } • Capacidade do corte: é c(S, T) = c(v1 , v3) + c(v2 , v4 ) • Corte mı́nimo: é um corte cuja capacidade é mı́nima dentre todos os cortes da rede. Teorema. O fluxo máximo de uma fonte s até um destino t em um grafo com capacidade nos arcos é igual a capacidade do corte s − t com menor capacidade Maximum Flow Problem UECE Rede de Fluxo • Vejamos um exemplo de um corte em uma rede de fluxo e o cálculo do fluxo lı́quido e a capacidade do corte Figure 4: O fluxo lı́quido por (S, T) é f(S, T) = 19 e a capacidade é c(S, T) = 26 • O valor de um fluxo máximo é de fato igual à capacidade de um corte mı́nimo Maximum Flow Problem UECE Análise do Problema do Artigo • Alvo dos terroristas : Cidade de Nova York, mais precisamente, a Times Square (centro do alvo). • Problema proposto : Implantar sensores a fim de detectar invasores e impedı́-los que cheguem ao seu destino. Maximum Flow Problem UECE Análise do Problema do Artigo • Alvo dos terroristas : Cidade de Nova York, mais precisamente, a Times Square (centro do alvo). • Problema proposto : Implantar sensores a fim de detectar invasores e impedı́-los que cheguem ao seu destino. • Qual seria a quantidade de sensores que devem ser alocados? Maximum Flow Problem UECE Metodologia A metodologia empregada neste artigo foi aplicada a partir da base de dados JServer Parâmetros para alocação dos sensores: • Criação de uma ”super origem” e um ”super destino” (Nós falsos) • Curvas significativas desenhadas no mapa, se transformam em nós falsos • Utilização do banco de dados JServer • Rotas terrestres fora do mapa Primeiro Passo : Concepção do sensor de barreira • Localização do corte mı́nimo: a partir do centro da cidade (Times Square) • Fixação de dois cı́rculos concêntricos em torno do ponto central Maximum Flow Problem UECE Metodologia Figure 5: Segmentos das estradas da região de Nova York Maximum Flow Problem UECE Metodologia Figure 6: Segmentos das estradas de Nova York - Para encontrar o corte mı́nimo Maximum Flow Problem UECE Metodologia Dados referentes a Figura 6: • Possui 488.951 segmentos de estradas; Dos quais: • 414.640 são bidirecionais; • 74.311 são de sentido único; • Na figura, há 722 segmentos que atravessam o anel exterior e 708 que atravessam o anel interior; Maximum Flow Problem UECE Metodologia • Os limites dos cı́rculos podem ser selecionados conforme tamanho desejado • A densidade da rede de estradas diminui à medida que nos afastamos da cidade • Obstáculos naturais também são uma forma de diminuir o tamanho do corte • Uma propriedade importante desses limites visualizados nas figuras, é que como um anel é expandido, o corte mı́nimo pode ficar menor, mas não maior • Segundo Passo : Trabalhar com os segmentos que tem um ou dois nós entre as linhas de fronteira dos anéis. Maximum Flow Problem UECE Metodologia Estrutura utilizada para permitir que o algoritmo de fluxo máximo encontre o corte mı́nimo : • Um nó ”super-origem” adicionado fora do anel externo e um nó ”super-destino” dentro do anel interno; • Segmentos que cruzarem o anel externo, seus nós externos serão alterados para um nó ”super-origem” e serão lhe dados capacidade infinita; • Segmentos que cruzarem o anel interno, seus nós internos serão alterados para um nó ”super-destino” e serão lhe dados capacidade infinita; • Um traço virtual foi adicionado entre o nó ”super-origem” e o nó ”super-destino”, também com capacidade infinita; • Os segmentos de estradas reais possuem capacidade 1; Maximum Flow Problem UECE Metodologia • Os 414.640 segmentos bidirecionais foram convertidos cada um em dois segmentos e dois nós; • GNET - é um software para solução de problemas de redes capacitadas • Gera um corte mı́nimo a partir dos dados fornecidos • Esse programa tem capacidade de lidar com redes com mais de um milhão de arcos • A verdadeira rede rodoviária de Nova York e esta representação feita não são simétricas; Maximum Flow Problem UECE Resultados e Aplicações • Feito todo esse processo, foi considerado que 89 sensores bastariam para cobrir todas rotas possı́veis em torno da Times Square Figure 7: Locais para a alocação dos 89 sensores Maximum Flow Problem UECE Resultados e Aplicações • O problema foi aplicado partindo da ideia de que a invasão ocorreria de fora para dentro. Mas se fosse ao contrário, a solução surtiria o mesmo efeito? Figure 8: Solução para os problemas de fora para dentro e o reverso Maximum Flow Problem UECE Resultados e Aplicações • O corte mı́nimo possui muito menos segmentos do que a rede como todo; • Auxı́lio na criação de um sistema de contra medidas de terrorismo; • Verificar outras maneiras que o inimigo pode ignorar os segmentos de corte; • Análise de custo-benefı́cio, gerenciamento de risco, vulnerabilidade dos sistemas de sensores; • Abordar em pesquisas futuras, análise de risco de ataque a outro tipos de regiões geográficas; Maximum Flow Problem UECE Resultados e Aplicações Exitem várias aplicações para o problema do fluxo máximo. Abaixo estão listadas as mais importantes • Mapas rodoviários, ferroviários ou de metrô • Transporte de informações - Roteamento • Transporte de carga - caixeiro viajante Maximum Flow Problem UECE Referências 1 Ahuja, R.K., T.L. Magnanti, and J.B. Orlin. “Maximum Flows: Basic Ideas.” Chapter 6 of Network Flows Theory, Algorithms, and Applications. Prentice Hall, 1993. 2 Balakrishnan, V.K. “Graph Theory.” Appendix of Combinatorics Including Concepts of Graph Theory, Schaum’s Outline Series. McGraw-Hill, 1995. 3 “Flows, Connectivity, and Combinatorics.” Chapter 6 of Graph Theory, Schaum’s Outline Series. McGraw-Hill, 1997. 4 Ball, M.O. “Design of Survivable Networks.” Chapter 10 of Handbooks in OR MS, Vol. 7, Network Models, M.O. Ball et al., Eds. Elsevier Science B.V., 1995. 5 Ball, M.O., C.J. Colbourn, and J.S. Provan. “Network Reliability,” Chapter 11 of Handbooks in OR MS, Vol. 7, Network Models, edited by M.O. Ball et al. Elsevier Science B.V., 1995. 6 Berge, C. “Transport Networks.” Chapter 8 of The Theory of Graphs. Dover, 1958 (reprint 2001). Maximum Flow Problem UECE Referências 7 Bradley, G.H., G.G. Brown, and G.W. Graves. “Design and Implementation of Large-Scale Primal Transshipment Algorithms.” Management Science 24, no. 1 (1977): 1-34. (Copy available at www.jstor.org ). 8 Bradley, S.P., A.C. Hax, and T.L. Magnanti. “Network Models.” Chapter 8 of Applied Mathematical Programming. Addison-Wesley, 1976. 9 Brown, G., M. Carlyle, J. Salmeron, and K. Wood. “Defending Critical Infrastructure.” Interfaces 36, no. 6 (2006): 530-544. 10 Even, S. “Maximum Flow in a Network,” Chapter 5 of Graph Algorithms. Computer Science Press, 1979. 11 Gerards, A.M.H. “Matching.” Chapter 3 of Handbooks in OR MS, Vol. 7, Network Models, edited by M.O. Ball et al. Elsevier Science B.V., 1995. 12 Gondran, M., and M. Minoux. “Flows and Transportation Networks.” Chapter 5 of Graphs and Algorithms. John Wiley Sons, 1984. 13 T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, 2nd edition, MIT Press McGraw-Hill, 2001. Maximum Flow Problem UECE Referências 14 http://www.ic.unicamp.br/ meidanis/courses/mo417/2003s1/aulas/2003-0606.html acessado em 25/11/2014. 15 http://www.dsc.ufcg.edu.br/ abrantes/CursosAnteriores/TG051/fluxorede.pdf acessado em 25/11/2014. Maximum Flow Problem UECE Obrigado! Maximum Flow Problem UECE