VinBR

PO - 22/11/2012

May 28th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.66 KB | None | 0 0
  1. # # # # # # # # # # # # #
  2. # Pesquisa Operacional #
  3. # Prof. Alexandre Cunha #
  4. # notasdogarcia.blog.com #
  5. # # # # # # # # # # # # #
  6.  
  7. Problema da arvore geradora de custo mínimo (AEM):
  8.  
  9. Dados:
  10.  
  11. Arvore G=(V,E), grafo não direcionado, finito.
  12. Pesos: {wij: }i,j € E
  13.  
  14. // Nota m é cardinalidade de V
  15. // n é cardinalidade de E
  16.  
  17. Encontrar um subgrafo T=(V,Et) de G, gerador de V, aciclico de mínimo peso total.
  18.  
  19. O peso de um sub-grafo G' é a soma dos pesos das arestas.
  20.  
  21. sum((i,j) € E') wij
  22.  
  23. Grafo:
  24.  
  25. 82-3 81-3
  26. 12-1 13-3
  27. 24-2 23-4 25-3
  28. 35-2
  29. 45-2 46-5 47-3
  30. 56-2
  31. 67-3
  32.  
  33. Esse problema é interessante porque ele pode ser resolvido de forma inteira ou real.
  34. E servirá de ilustração para nossa primeira solução de PPLs inteiros.
  35.  
  36. Já existem algoritmos que resolvem:
  37.  
  38. Prim O(n log n)
  39.  
  40. Kruskal O(m log n)
  41.  
  42. Vamos falar do Kruskal:
  43.  
  44. - Ordenar as arestas por seus pesos de forma crescente.
  45.  
  46. Vamos agora iterar o algoritimo:
  47. i=1
  48. Et = ø
  49.  
  50. Enquanto |Et| != n-1 repita:
  51.  
  52. Seleciono o item i da lista ordenada de arestas.
  53. Se ele junto as demais arestas que selecionei gerarem um ciclo, descarto ele.
  54. Caso contrário adiciono à Et.
  55. i++;
  56.  
  57.  
  58. Arvore geradores de G são matróides e como tal possuem a mesma cardinalidade máxima que é |v|-1 = n-1
  59.  
  60. // Nota estamos assuminto que G é conexo.
  61.  
  62. // Um sistema eficiente para guardar Et é o union_sets de Tarjan.
  63. // Tem um livro legal network flows and data-structures (primeiro nome do tarjan é roberto eu acho)
  64.  
  65. Ordenando as arestas:
  66.  
  67.  
  68. 12-1 56-2 35-2 45-2 24-2 67-3 47-3 13-3 82-3 81-3 25-3 23-4 46-5
  69.  
  70. (mais ou menos isso o professor ordenou diferente eu acho)
  71.  
  72. ordenaçao do professor.
  73. 12 45 24 35 56 18 82 47 67 25 23 46
  74.  
  75. O 82 gerá um ciclo e portanto não é adicionado.
  76. o 47 é o último arco à ser adicionado.
  77.  
  78. Agora veremos soluções alternativas para esse problema.
  79.  
  80. Uma mais intuitiva outra menos.
  81.  
  82. A menos envolverá adição de colunas no dual, em outras palavras:
  83. adição de linhas no primal.
  84.  
  85. // Nota:
  86. // número de condição: C= ||A|| * ||A⁻¹||
  87. // ||A|| = norma da matriz.
  88. // Quanto maior mais dificil é fatorar essa matriz.
  89.  
  90. Formulação do Problema da Arvore G. M.
  91. como um PPL inteiro.
  92.  
  93. Vamos fazer ele parecer um problema de fluxo de custo mínimo.
  94.  
  95. Seja um grafo direcionado D = (V,A)
  96.  
  97. A = {(i,j) + (j,i) para todo i,j € E }
  98. // (+ = uniao)
  99.  
  100. Cria-se um tipo de mercadoria por vetice.
  101. Cada vertice tem uma demanda pela mercadoria de mesmo indice.
  102. O único ofertante dessa mercadoria é o vertice raiz escolhido arbitráriamente.
  103.  
  104. Modelagem: (essa é a modelagem de multiplas mercadorias)
  105. Escolher o vertice raiz R.
  106. Para cada vertice não raiz cria-se uma mercadoria.
  107. Criamos uma demanda unitária em cada um dessa mercadoria.
  108. Tudo será ofertado no vertice R.
  109.  
  110. // Note: Não é preciso que sejam mercadorias distintas, o professor está modelando assim para facilitar as analogias que ele irá utilizar.
  111.  
  112. Vamos utilizar variáveis binárias xij com (i,j) € A
  113. (binárias ou seja € {0,1})
  114.  
  115. x é portanto nossa matriz de escolha de arcos. é 1 em i,j se o arco é utilizado 0 se não.
  116.  
  117. Variaveis reais+:
  118.  
  119. fij-k para todo i,j € A e k € V-r (k representa as mercadorias)
  120.  
  121. Representa a quantidade de fluxo da mercadoria k que passa pelo arco (i,j)
  122.  
  123. Note que elas vão acabar sendo inteiras. Porque as demais variáveis são inteiras.
  124.  
  125. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  126.  
  127. No grafo anterior com a solução:
  128.  
  129. 12 45 24 35 56 18 47
  130.  
  131. teriamos
  132.  
  133. f47-7 = 1
  134. f24-7 = 1
  135. f12-7 = 1
  136. f81-7 = 1
  137.  
  138. o fluxo da mercadoria 7, para as demais arestas é 0.
  139.  
  140. A diferença desse problema para os demais é a discreção de decidir incluir ou não uma aresta.
  141. Escolher o conjunto de arcos que irão compor a rede final.
  142.  
  143. Balanço de Fluxo:
  144. Balanço de cada mercadoria em cada vértice.
  145.  
  146. // Lembrando a notação:
  147. // ð+ partem de S ð- chegam em S
  148.  
  149. // ð* ð° seria muito melhor não é?
  150. // Vou usar essa notação é mais fácil de lembrar.
  151. { 1 para i=k e k!=r
  152. sum((j,i) € ð°(i))fij-k - sum((i,j) € ð*(i)) fji-k = { 0 para todo i e r != i onde k € V\{r} (se i não for sub arvore de r minusculo eu acho)
  153. { -1 i=r, para todo k
  154.  
  155. fij-k >= 0
  156.  
  157. fij-k <= xij
  158.  
  159. sum xij = n-1
  160.  
  161. // Nota: No caso da modelagem com uma única mercadoria.
  162. // A restrição de fluxo diria que sum fij - fji = 1 para todos os valores i,j.
  163. // e fij <= (n-1) * xij
  164. // Basicamente seriam estas as mudanças.
  165.  
  166. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  167.  
  168. Porque escolher um ou outro modelo?
  169.  
  170. Seja o modelo multi-mercadoria o modleo 1 e o outro o modelo 2.
  171.  
  172. Em ambos temos:
  173.  
  174. xij € {0,1} par todo (i,j) € A
  175.  
  176. E se eu trocar isso por:
  177.  
  178. 0 <= xij <= 1 para todo (i,j) € A
  179.  
  180. Isso é uma relaxação linear dos modelos.
  181.  
  182. Suponha que tenhamos resolvido o problema com essa relaxação.
  183.  
  184. Seja v(minusculo) = min sum wij*xij
  185. (esse é o objetivo)
  186.  
  187. A relaxação linear terá uma solução menor que a solução sem relaxamento.
  188.  
  189. O limite do mod-1 é maior ou igual ao modelo 2.
  190.  
  191. Em outras palavras, é mais próximo do mínimo real.
  192. Mais próximo do nosso objetivo ótimo.
  193.  
  194. E a noticia mais surpreentendente
  195. é que na verdade o mod-1 uma vez solucionado resolve o problema inteiro.
  196. É como se eu reduzisse meu espaço de busca somente para o espaço entre os números inteiros.
  197. De forma que necessáriamente a solução será inteira apesar do relaxamento real das variáveis..
  198.  
  199. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  200.  
  201. Terceiro modelo:
  202.  
  203. Desigualdades de Eliminação de circuitos.
  204.  
  205. Vamos utilizar aresats.
  206.  
  207. Seja:
  208. zij€{0,1} com ij€E
  209.  
  210. zij = 1 => aresta {i,j} pertence à arvore.
  211. else não pertence.
  212.  
  213. min sum wij * zij
  214.  
  215. sum zij = n-1
  216.  
  217. Agora seja S um subgrafo da arvore geradora.
  218.  
  219. Qual o máximo de combinações de arvores que posso fazer com estas arestas? |S|-1
  220.  
  221. Podemos escrever então:
  222. sum zij <= |s|-1 para todo s contido em V e diferente de ø
  223.  
  224. Foi provado que a relaxação de Zij também gera vertices inteiros.
  225. logo a solução ótima do modelo relaxado é igual a solução do modelo original.
  226.  
  227. Porém voce pode ter um número ilimitado de linhas ou restrições, como resolver?
  228.  
  229. Então utilizamos o sistema de eliminar restrições que não são interessantes.
  230.  
  231. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  232.  
  233. PPLs inteiros são NP-Completos
  234.  
  235. Os relaxamentos como os feitos acima permitem encontrar soluções ótimas de problemas NP-Completos de forma otimizada.
  236. (ainda é NP-Completa no entanto)
  237.  
  238. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  239.  
  240. // Fim da aula!
Advertisement
Add Comment
Please, Sign In to add comment