VinBR

PO - 18/10/2012

May 28th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. # # # # # # # # # # # # #
  2. # Pesquisa Operacional #
  3. # Prof. Alexandre Cunha #
  4. # notasdogarcia.blog.com #
  5. # # # # # # # # # # # # #
  6.  
  7. Assunto do dia:
  8.  
  9. Fluxo em Redes.
  10.  
  11. São PPLs definidos em uma rede
  12.  
  13. Vamos definir o que entenderemos como rede:
  14.  
  15. Rede será um grafo direcionado D = (v,a).
  16. v = vertice, a = arcos. Ambos podem ter propridades.
  17. Porque falar de arco ao invés de aresta? porque um arco é orientado.
  18.  
  19. (i,j) € A
  20. (i,j) != (j,i)
  21.  
  22. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  23.  
  24. Problema do transbordo:
  25.  
  26. Rede digrafo D = (v,a) // digrafo = grafo orientado
  27. e demandas associadas a alguns vertices de V e ofertas associadas
  28. a outros vertices de V.
  29.  
  30. Demandas: di € R i € Vd contidas em V
  31. Ofertas: oi € R i € Vo contidas em V
  32.  
  33. O ideal é que o somatorio das ofertas, sejam no minimo
  34. maior que o somatorio das demandas.
  35.  
  36. Pois caso contrário o problema não teria solução.
  37.  
  38. Vamos assumir que para todo o problema
  39.  
  40. sum ofertas == sum demandas
  41.  
  42. Para enquadrar os demais problemas nesse molde
  43. nos daremos ao luxo de criar vertices artificiais
  44. com capacidades artificiais e coisas do tipo.
  45.  
  46. Dessa forma nossas soluções se aplicarão à problemas de todos os tipos.
  47. Problemas em que é impossível atender à todas as demandas.
  48. E problemas em que acaba sobrando algumas ofertas.
  49.  
  50. Proposta do problema:
  51. Definir de forma ótima uma minimização do custo total de transporte
  52. dos fluxos de mercadoria na rede de forma a atender a demanda da mercadoria.
  53.  
  54. Vamos considerar que os valores de oferta são positivos.
  55. e que os valores de demanda são negativos.
  56.  
  57. Logo nosso objetivo é somando as ofertas, demandas e vertices artificiais obter o somatório 0.
  58.  
  59. // NOTA: podem existir vertices sem capacidade nem demanda. Eles são chamados de vertices intermediários.
  60. // podem ser usado como caminho mas não são importantes para mais nada.
  61.  
  62. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  63.  
  64. Exercicio:
  65.  
  66. Modelar o problema usando o conjunto de variáveis sugerido pelo aluno pedro:
  67. xij é a quantidade de demanda do vertice j suprido pelo i.
  68.  
  69. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  70.  
  71. Modelar o problema:
  72.  
  73. A modelagem do professor foi com a seguinte idéia:
  74.  
  75. cada arco (aresta direcionada) (i,j) // que sai do i para o j
  76. tem associado a ele um fluxo de mercadoria.
  77.  
  78. Quando houver dois fluxos, um em (i,j) e outro em (j,i)
  79. eles serão expressos separadamente, e não devem ser subtraidos um do outro
  80. apesar de terem sentido contrários.
  81.  
  82. Assim (i,j) será sempre >= 0
  83.  
  84. Assim nosso problema é:
  85.  
  86. min sum Cij * (i,j)
  87.  
  88. Onde (i,j) é nossa variável que assume o valor igual ao fluxo corrente naquele vertice.
  89.  
  90. Balanço de Fluxo nos vertices:
  91.  
  92. // ð=delta
  93.  
  94. ð*(i) = conjunto de arcos de A que partem de i.
  95. ð°(i) = conjunto de arcos de A que chegam a i.
  96.  
  97. Suponha em nosso grafo ( que ele desenhou no quadro ) tenhamos:
  98.  
  99. ð*(3) = { (3,4), (3,5), (3,6), (3,2) }
  100. ð°(3) = { (1,3), (2,3), (4,3) }
  101.  
  102. assim a demanda de i deve ser:
  103.  
  104. di = ð°(i) - ð*(i)
  105.  
  106. Ou seja o que entra menos o que sai deve ser suficiente para suprir di.
  107. idealmente igual à di.
  108.  
  109. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  110.  
  111. Vamos tentar expressar isso no formato de um PPL:
  112.  
  113. min cTx
  114.  
  115. Ax = b
  116. x >= 0
  117.  
  118. Nesse caso a matriz A seria a matriz de incidencia nó
  119. b é o vetor de ofertas
  120.  
  121. Assim a pode ter apenas 3 valores:
  122.  
  123. A = {0,1,-1}^(n×m)
  124.  
  125. Assim A(v, (i,j)) = 0 é quando nada acontece entre o vertice v e a aresta (i,j).
  126. A(v, (i,j)) = 1 é quando há oferta saindo de v através da aresta (i,j).
  127. A(v, (i,j)) = -1 é quando há oferta incidindo em v através da aresta (i,j).
  128.  
  129. //CONCEITO:
  130. // Posto é a ordem da maior sub-matriz de A com determinantes não nulos.
  131. // Em outras palavras, o maior número possível de linhas linearmente independentes na matriz A.
  132. // Para esse problema, o posto de A é sempre <= numVertices.
  133.  
  134. A matriz fica:
  135.  
  136. (1,4) | (1,2) | (2,6) | (3,6) | (5,6) |
  137. 1 1 1
  138. 2 -1 1
  139. 3 1
  140. 4 -1
  141. 5 1
  142. 6 -1 -1 -1
  143.  
  144.  
  145. Queremos encontrar um subconjunto de vertices que tenha
  146. determinante != 0.
  147.  
  148. O professor removeu um dos vertices (v=5). (uma linha)
  149.  
  150. Assim o numLinhas=numColunas
  151.  
  152. Agora o professor começou a calcular o determinante dessa matriz.
  153. Por indução ele provou o fato do grafo ser conexo implica
  154. que esse determinante será diferente de 0.
  155.  
  156. A indução foi: se det!=0 matriz é conexa.
  157. então se eu remover uma folha do grafo.
  158. ou seja uma aresta e um vertice que não se liga em mais ninguém, e provar que o que sobrou for conexo
  159. então provei que o grafo completo é conexo.
  160.  
  161. Dessa forma removendo folha por folha podemos provar que o grafo é provando que o det de final é 1 ou -1.
  162. Note que antes disso nós precisamos remover alguma das arestas que se conectam a um vertice que já tem mais de uma conexão.
  163.  
  164. A matriz A é chamada de Matriz de Fluxo
  165.  
  166. O professor provou que mais especificamente o posto(A) quando A = matriz de fluxo.
  167. sempre obedece à:
  168.  
  169. posto(A) = numVertices-1, para todo A que seja matriz de fluxo.
  170.  
  171. Mas isso só vale se o grafo for conexo.
  172.  
  173. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  174.  
  175. // Fim da aula!
Advertisement
Add Comment
Please, Sign In to add comment