Problemas de Fluxo em Redes
|
|
- Paula Oliveira de Barros
- 6 Há anos
- Visualizações:
Transcrição
1 CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação visual que trará vantagens na construção de um modelo matemático com vista à resolução do problema. Um grafo é uma estrutura constituída por dois conjuntos finitos : de vértices (nós ou nodos) e de arestas (arcos ou ramos). Um grafo pode ser representado por G = (N, A), em que N = {1,..., n} e A = {1,..., m} são os conjuntos de vértices e arestas, respectivamente, em que (A N N). Cada aresta é representado por um par (i, j), com i j e i, j N, em que i é o vértice origem e j o vértice destino. Uma aresta (i, j) diz-se não dirigida (não orientada), se (j, i) A e diz-se dirigida (orientada), se (j, i) A. Existem 3 tipos de grafos : orientado (dirigido) todas as arestas são dirigidas, não orientado (não dirigido) todas as arestas são não dirigidas e, misto algumas arestas são dirigidas e outras são não dirigidas. Um grafo diz-se completo, se entre quaisquer dois vértices existir uma aresta dirigida (grafos dirigidos) ou não dirigida (grafos não dirigidos). A densidade de um grafo é a razão entre a quantidade de arestas do grafo e a quantidade de arestas do grafo completo com o mesma quantidade de vértices. Dois vértices são adjacentes (vizinhos), se estiverem ligados por uma aresta. Duas arestas são adjacentes se forem ambas incidentes relativamente ao mesmo vértice. Um vértice é de ordem k, se tiver k arestas a ele adjacente.
2 90 Conceitos fundamentais de redes Considere-se dois vértices, S e T, do grafo G. Um caminho de S para T, é uma sucessão de vértices e arestas, p = [S = n 1, (n 1, n 2 ), n 2,..., (n h-1, n h ), n h = T]. No entanto, aquele caminho também pode ser representado apenas pela sucessão de vértices (p = [S = n 1, n 2,..., n h-1, n h = T]) ou de arestas (p = [(S, n 2 ),..., (n h-1, T)]). O caminho p diz-se simples, se cada vértice e aresta pertencem à sucessão uma única vez. Um ciclo é um caminho em que S = T. Num ciclo simples, todos os vértices são distintos. Um circuito (ciclo dirigido) é um ciclo formado por arestas dirigidas. Um grafo dirigido sem ciclos dirigidos, diz-se acíclico. Um grafo diz-se ligado (conexo), se existir um caminho entre quaisquer dois vértices. Uma árvore é um grafo orientado com um e um só caminho simples entre quaisquer dois vértices. Um subgrafo que seja uma árvore e contenha todos os vértices do grafo, é designado por árvore abrangente (árvore total Spanning Tree ). 2. Conceitos fundamentais de redes Quando se associam valores aos vértices e/ou às arestas, o grafo designa-se geralmente por rede. Neste caso, fala-se em nós (nodos) e arcos, e em vez de vértices e arestas, respectivamente. Uma rede pode ser representada por G = (N, A, C), em que (N, A) é um grafo e C corresponde ao conjunto de valores associados aos arcos ( comprimentos ) : ao arco (i, j) está associado o valor c ij. De uma maneira geral, os conceitos utilizados em grafos são extensíveis às redes. Considere-se um caminho p de S para T, na rede G. O comprimento do caminho p corresponde à soma dos comprimentos dos arcos que pertencem àquele caminho; ou seja, C (p) = c ij (i,j) p O conjunto de todos os caminhos de S para T, numa rede qualquer G, identifica-se por P. Define-se árvore mínima (árvore de caminhos mais curtos) com raiz em S, como a árvore que contém todos os nós de N acessíveis a partir de S, em que para cada nó n 2 o único caminho de S para n 2 é o caminho mais curto (de comprimento mínimo) na rede G que liga S a n 2.
3 O Problema do Caminho Mais Curto O Problema do Caminho Mais Curto Os problemas de caminho mais curto, são fundamentais e frequentes quando se estuda redes de transportes e de comunicação. Este problema surge quando se pretende determinar o caminho mais curto, mais barato ou mais fiável, entre um ou vários pares de nós de uma rede. Existem três tipos de problemas de caminho mais curto : (i) de um nó para outro, (ii) de um nó para todos os outros, (iii) entre todos os pares de nós. No entanto, os dois primeiros são essencialmente o mesmo problema. Sejam S e T dois nós de uma rede G = (N, A, C), em que a cada arco é associado apenas um valor (comprimento do arco). O comprimento de um caminho de S para T, é a soma dos comprimentos dos arcos que o compõem. O problema do caminho mais curto entre os nós S e T, tem por objectivo determinar o caminho de valor mínimo existente em P. Ou seja, determinar p P tal que C(p) C(q), q P. Algumas observações relacionadas com este tipo de problemas : o comprimento de um caminho é maior do que o de qualquer dos seus subcaminhos; qualquer subcaminho de um caminho mais curto, é ele próprio um caminho mais curto (princípio da optimalidade); para uma rede com n nós, qualquer caminho mais curto tem no máximo n-1 arcos (no caminho mais curto entre dois nós, não existem nós repetidos). Matematicamente, este problema pode ser formulado da seguinte forma : Minimizar Z = c ij x ij i N j N sujeito a xsj = 1 j N xij x jk = 0, i N k N i N em que, x ij x it = 1 1, = 0, se (i, j) pertence se (i, j) j N {S, T} não pertence ao caminho ao caminho Existem vários algoritmos eficientes para resolver problemas de caminho mais curto, sendo os mais conhecidos os algoritmos de Dijkstra (i e ii) e de Floyd (iii).
4 92 O Problema do Caminho Mais Curto 3.1. Algoritmo de Dijkstra Este algoritmo, que foi apresentado por Dijkstra e que só pode ser aplicada a redes cujos arcos têm associados comprimentos não negativos, baseia-se num processo de rotulação dos nós da rede e classificação dos respectivos rótulos. A cada nó i é atribuído um rótulo [ξ i, π i ], o qual pode ser permanente ou temporário. Isto quer dizer o seguinte : [ξ i, π i ] permanente, representa o caminho mais curto de S para i ξ i nó que antecede i no caminho mais curto de S para i π i valor do caminho mais curto de S para i [ξ i, π i ] temporário, representa um caminho mais curto de S para i ξ i nó que antecede i no melhor caminho, até ao momento, de S para i π i valor do melhor caminho, até ao momento, de S para i O rótulo temporário de um nó representa um limite superior da distância mais curta de S a esse nó, uma vez que o caminho que lhe está associado pode ser ou não o mais curto. O algoritmo consiste em rotular os nós da rede, começando pelo S, de uma forma ordenada, segundo as distâncias de cada nó a S : escolher o nó com rótulo temporário com menor valor de π, que se torna permanente, para depois serem varridos todos os seus adjacentes, de forma a actualizar os rótulos destes (temporários). O algoritmo termina quando não existirem nós com rótulos temporários. Inicialmente apenas o nó S é permanente, sendo os restantes temporários. Algoritmo : Passo 1. [ξ S, π S ] = [S, 0] (caminho mais curto para S custa 0 e não tem nós intermédios) [ξ i, π i ] = [S, C Si ], i N { S } e (S, i) A [ξ i, π i ] = [, ], i N { S } e (S, i) A Temporários = N { S } (Temporários = conjunto de nós com rótulos temporários) Permanentes = { S } (Permanentes = conjunto de nós com rótulos permanentes) Se Temporários = (todos os nós têm rótulos permanentes) Então STOP k = nó de Temporários tal que π k é mínimo (k : π k = min { π x, x Temporários }) Temporários = Temporários { k } Permanentes = Permanentes { k } (k passou a permanente)
5 O Problema do Caminho Mais Curto 93 Para todo o j N tal que (k, j) A e j Temporários Fazer Se π k + C kj < π j Então π j = π k + C kj ξ j = k Regressar ao O algoritmo apresentado, determina o caminho mais curto entre um dado nó S e todos os outros nós da rede. Portanto, no fim do algoritmo, para se verificar se existe caminho entre S e um qualquer nó k, bastando analisar o valor de π k : se π k = então não existe caminho. Se existir caminho mais curto de S para k, este pode ser determinado percorrendo (em sentido inverso) a 1ª parte dos rótulos dos nós (ξ) de k até S, da seguinte forma : Caminho = { k } i = k Enquanto i S Fazer i = ξ i Caminho Caminho { i } Exemplo : Determinar o caminho mais curto entre o nó S = 1 e todos os outros nós da seguinte rede :
6 94 O Problema do Caminho Mais Curto Passo 1. Colocar rótulo permanente no nó 1 e rótulos temporários nos restantes nós. Permanentes = { 1 } Temporários = { 2, 3, 4, 5, 6, 7, 8 } k = 4, pois π 4 = min { π 2, π 3, π 4, π 5, π 6, π 7, π 8 } = min { 4, 5, 2, 12,,, } Permanentes = Permanentes { 4 } = { 1, 4 } Temporários = Temporários { 4 } = { 2, 3, 5, 6, 7, 8 } Varrer todos os nós adjacentes a 4, com rótulos temporários e actualizar os seus rótulos: π 3 = min { π 3, π 4 + C 43 } = min { 5, } = 3 [ξ 3, π 3 ] = [4, 3] π 6 = min { π 6, π 4 + C 46 } = min {, } = 13 [ξ 6, π 6 ] = [4, 13] k = 3, pois π 3 = min { π 2, π 3, π 5, π 6, π 7, π 8 } = min { 4, 3, 12, 13,, } Permanentes = Permanentes { 3 } = { 1, 3, 4 } Temporários = Temporários { 3 } = { 2, 5, 6, 7, 8 }
7 O Problema do Caminho Mais Curto 95 Varrer todos os nós adjacentes a 3, com rótulos temporários e actualizar os seus rótulos : π 2 = min { π 2, π 3 + C 32 } = min { 4, } = 4 [ξ 3, π 3 ] = [1, 4] (sem alteração) π 8 = min { π 8, π 3 + C 38 } = min {, } = 16 [ξ 8, π 8 ] = [3, 16] k = 2, pois π 2 = min { π 2, π 5, π 6, π 7, π 8 } = min { 4, 12, 13,, 16 } Permanentes = Permanentes { 2 } = { 1, 2, 3, 4 } Temporários = Temporários { 2 } = { 5, 6, 7, 8 } Varrer todos os nós adjacentes a 2, com rótulos temporários e actualizar os seus rótulos : π 5 = min { π 5, π 2 + C 25 } = min { 12, } = 5 [ξ 5, π 5 ] = [2, 5] k = 5, pois π 5 = min { π 5, π 6, π 8 } = min { 5, 13, 16 } Permanentes = Permanentes { 5 } = { 1, 2, 3, 4, 5 } Temporários = Temporários { 5 } = { 6, 7, 8 }
8 96 O Problema do Caminho Mais Curto Varrer todos os nós adjacentes a 5, com rótulos temporários e actualizar os seus rótulos : π 7 = min { π 7, π 5 + C 57 } = min {, } = 11 [ξ 7, π 7 ] = [5, 11] π 8 = min { π 8, π 5 + C 58 } = min { 16, } = 14 [ξ 8, π 8 ] = [5, 14] k = 7, pois π 7 = min { π 6, π 7, π 8 } = min { 13, 11, 14 } Permanentes = Permanentes { 7 } = { 1, 2, 3, 4, 5, 7 } Temporários = Temporários { 7 } = { 6, 8 } Varrer todos os nós adjacentes a 7, com rótulos temporários e actualizar os seus rótulos : π 8 = min { π 8, π 7 + C 78 } = min { 14, } = 14 [ξ 8, π 8 ] = [5, 14] (sem alteração) k = 6, pois π 6 = min { π 6, π 8 } = min { 13, 14 } Permanentes = Permanentes { 6 } = { 1, 2, 3, 4, 5, 6, 7 } Temporários = Temporários { 6 } = { 8 } Varrer todos os nós adjacentes a 6, com rótulos temporários e actualizar os seus rótulos : π 8 = min { π 8, π 6 + C 68 } = min { 14, } = 14 [ξ 8, π 8 ] = [5, 14] (sem alteração) k = 8, pois π 8 = min { π 8 } = min { 14 } Permanentes = Permanentes { 8 } = { 1, 2, 3, 4, 5, 6, 7, 8 } Temporários = Temporários { 8 } = Não existem nós adjacentes a 8, com rótulos temporários.
9 O Problema do Caminho Mais Curto 97 Temporários = Fim do algoritmo. Resultados após o término do algoritmo : caminho mais curto entre os nós 1 e 8 calcula-se da seguinte forma : p = { 8 } i = 8 Como i 1 então { i = ξ i = ξ 8 = 5 ; p = p { i } = { 5, 8 } Como i 1 então { i = ξ i = ξ 5 = 2 ; p = p { i } = { 2, 5, 8 } Como i 1 então { i = ξ i = ξ 2 = 1 ; p = p { i } = { 1, 2, 5, 8 } Como i = 1 então termina o processo. Logo, o caminho mais curto entre 1 e 8 é p = { 1, 2, 5, 8 } e o comprimento é C(p) = 14 (= π 8 ). a árvore de caminho mais curto do nó 1 para todos os outros é a seguinte : e tem um comprimento total de 34 (Σ c ij na árvore de caminhos mais curtos) Algoritmo de Floyd Ao pretender-se determinar o caminho mais curto entre todos os pares de nós, pode-se aplicar o algoritmo de Dijkstra n vezes, utilizando cada nó, sucessivamente, como origem. No entanto, existem outros algoritmos para resolver este problema, como é o caso do algoritmo de Floyd, desde que não haja circuitos negativos os arcos podem ter comprimentos negativos. Considere-se uma rede G = (N, A, D). Um arco (i, j) designa-se por arco básico, se constituir o caminho mais curto entre os nós i e j. Um caminho mais curto entre quaisquer dois nós da rede será totalmente constituído por arcos básicos (embora existam arcos básicos não pertencentes ao caminho mais curto). O algoritmo de Floyd utiliza a matriz D, de ordem n, das distâncias directas mais curtas entre nós. Os nós que não são adjacentes (não existe arco a ligá-los) têm associado uma distância directa
10 98 O Problema do Caminho Mais Curto infinita. Como os nós são (por convenção) adjacentes com eles próprios, têm associado um arco de comprimento 0. Os ciclos próprios são ignorados. Entre cada par de nós não ligados por um arco básico é criado um arco, através de um processo identificado por tripla ligação : d ij min { d ij, d ik + d kj } Fixando um k, a tripla ligação é efectuada para todos os nós i, j k. Após efectuar a tripla ligação para cada k N com i, j N { k }, a rede (na matriz D alterada ao longo deste processo) é apenas constituída por arcos básicos. Logo, o comprimento associado a cada arco dirigido do nó i ao nó k, é o caminho mais curto entre aqueles dois nós. Para conhecer todos os nós intermédios num dado caminho, mantém-se paralelamente uma matriz P, de ordem n, onde o elemento P ij representa o primeiro nó intermédio entre os nós i e j. Algoritmo : Passo 1. D = matriz das distâncias directas P ij = j, i, j N k 0 Se k n Então STOP k k + 1 Se D ij > D ik + D kj (i, j k não se considera a linha e a coluna k) Então D ij D ik + D kj P ij P ik No final, os elementos da matriz D são as distâncias mais curtas entre qualquer par de nós. Exemplo : Determinar o caminho mais curto entre todos os pares de nós da seguinte rede :
11 O Problema do Caminho Mais Curto 99 Passo D = 3 0 P= k = (n = 3) Falso k = k + 1 = 1 D 22 < D 21 + D 12 (0 < = 11) D 23 > D 21 + D 13 ( > = 8) D 23 = D 21 + D 13 = 8; P 23 = P 21 = 1 D 32 < D 31 + D 12 (2 < + 8) D 33 < D 31 + D 13 (0 < + 5) D= P= Falso k = k + 1 = 2 D 11 < D 12 + D 21 (0 < = 11) D 13 < D 12 + D 23 (5 < = 16) D 31 > D 32 + D 21 ( > = 5) D 31 = D 32 + D 21 = 5; P 31 = P 32 = 2 D 33 < D 32 + D 23 (0 < 2 + 8) D= P= Falso k = k + 1 = 3 D 11 < D 13 + D 31 (0 < = 10) D 12 > D 13 + D 32 (8 > 5 + 2= 7) D 12 = D 13 + D 32 = 7; P 12 = P 13 = 3 D 21 < D 23 + D 31 (3 < = 11)
12 100 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM D 22 < D 23 + D 32 (0 < 8 + 2) D= Verdadeiro STOP (termina o algoritmo) P= Resultados após o final do algoritmo : o comprimento do caminho mais curto entre os nós 1 e 2 é 7 (D 12 = 7); o caminho mais curto entre os nós 1 e 2 é { 1, 3 (P 12 = 3), 2 (P 32 = 2) }. 4. O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM A árvore abrangente mínima ( Minimum Spanning Tree ), é a árvore abrangente com o menor comprimento entre todas as árvores abrangentes. O comprimento de uma árvore abrangente é o somatório dos comprimentos associados aos respectivos arcos. Note-se que, em geral, a árvore abrangente mínima é diferente da árvore de caminho mais curto entre um nó origem e todos os outros nós da rede (calculada pelo algoritmo de Dijkstra). Algoritmo 1 : Passo 1. Toma-se arbitrariamente um nó S e atribui-se-lhe um rótulo permanente nulo : π S = 0. Aos restantes nós da rede atribuem-se rótulos temporários : π j = C Sj π j = se (S, j) A se (S, j) A Permanentes = { S } Temporários = N { S } k = nó com rótulo temporário que possua menor valor (que é vizinho de um nó i); Permanentes = Permanentes { k } Temporários = Temporários { k } O arco com o mínimo valor C ik = π k passa a fazer parte da árvore abrangente mínima Se Temporários = Então STOP (foi determinada a árvore abrangente mínima)
13 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM 101 Para todo o j N tal que (k, j) A e j Temporários Fazer π j = min { π j, C kj } Voltar ao Exemplo : Determinar a árvore abrangente mínima da seguinte rede : Passo 1. Colocar rótulo permanente no nó 1 e rótulos temporários nos restantes nós : π 1 = 0 π 2 = 4; π 3 = 5; π 4 = 2; π 5 = 12 π 6 = π 7 = π 8 = Permanentes = { 1 } Temporários = { 2, 3, 4, 5, 6, 7, 8 } k = 4 Permanentes = Permanentes { 4 } = { 1, 4 } Temporários = Temporários { 4 } = { 2, 3, 5, 6, 7, 8 } O arco (1, 4) passa a fazer parte da árvore abrangente mínima, pois C 14 = π 4 = 2 π 3 = min { 5, 1 } = 1 π 6 = min {, 11 } = 11 k = 3 Permanentes = Permanentes { 3 } = { 1, 4, 3 } Temporários = Temporários { 3 } = { 2, 5, 6, 7, 8 } O arco (4, 3) passa a fazer parte da árvore abrangente mínima, pois C 43 = π 3 = 1
14 102 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM π 2 = min { 4, 3 } = 3 π 8 = min {, 13 } = 13 k = 2 Permanentes = Permanentes { 2 } = { 1, 4, 3, 2 } Temporários = Temporários { 3 } = { 5, 6, 7, 8 } O arco (3, 2) passa a fazer parte da árvore abrangente mínima, pois C 32 = π 2 = 3 π 5 = min { 12, 1 } = 1 k = 5 Permanentes = Permanentes { 5 } = { 1, 4, 3, 2, 5 } Temporários = Temporários { 5 } = { 6, 7, 8 } O arco (2, 5) passa a fazer parte da árvore abrangente mínima, pois C 25 = π 5 = 1 π 7 = min {, 6 } = 6 π 8 = min { 13, 9 } = 9 k = 7 Permanentes = Permanentes { 6 } = { 1, 4, 3, 2, 5, 7 } Temporários = Temporários { 7 } = { 6, 8 } O arco (5, 7) passa a fazer parte da árvore abrangente mínima, pois C 57 = π 7 = 6 π 8 = min { 9, 7 } = 7 k = 8 Permanentes = Permanentes { 8 } = { 1, 4, 3, 2, 5, 7, 8 } Temporários = Temporários { 8 } = { 6 } O arco (7, 8) passa a fazer parte da árvore abrangente mínima, pois C 78 = π 8 = 7 π 6 = min { 11, 8 } = 8
15 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM 103 k = 6 Permanentes = Permanentes { 6 } = { 1, 4, 3, 2, 5, 7, 8, 6 } Temporários = Temporários { 6 } = O arco (8, 6) passa a fazer parte da árvore abrangente mínima, pois C 86 = π 6 = 8 Como Temporários = STOP (foi determinada a árvore abrangente mínima) Resultados após o final do algoritmo : a árvore abrangente mínima (árvore que visita todos os nós) é a seguinte : a árvore abrangente mínima tem um comprimento total igual a 28 ( ). Existe uma outra versão do algoritmo de PRIM, que opera sobre a matriz das distâncias (custos) da rede. Algoritmo 2 : Passo 1. Riscar a 1ª coluna e marcar a 1ª linha. Seleccionar o menor elemento (C ij ) das linhas marcadas (não considerar as colunas riscadas). Se tiverem todas as colunas riscadas, STOP foi determinada a árvore abrangente mínima. Riscar a coluna j e marcar a linha j. Voltar ao Os arcos que constituem a árvore abrangente mínima, são os correspondentes aos seleccionados, e o seu valor é o somatório daqueles C ij.
16 104 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM Exemplo : Determinar o árvore abrangente mínima da rede do exemplo apresentado neste capítulo. Passo 1. Riscar a 1ª coluna e marcar a 1ª linha : O menor elemento não riscado da linha 1 (a única seleccionada) é : C 14 = 2 Riscar a 4ª coluna e marcar a 4ª linha : O menor elemento não riscado das linhas 1 e 4 (as seleccionadas) é : C 43 = 1 Riscar a 3ª coluna e marcar a 3ª linha :
17 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM 105 O menor elemento não riscado das linhas 1, 3 e 4 (as seleccionadas) é : C 32 = 3 Riscar a 2ª coluna e marcar a 2ª linha : O menor elemento não riscado das linhas 1, 2, 3 e 4 (as seleccionadas) é : C 25 = 1 Riscar a 5ª coluna e marcar a 5ª linha : O menor elemento não riscado das linhas 1, 2, 3, 4 e 5 (as seleccionadas) é : C 57 = 6 Riscar a 7ª coluna e marcar a 7ª linha :
18 106 O Problema da Árvore Abrangente Mínima -- algoritmos de PRIM O menor elemento não riscado das linhas 1, 2, 3, 4, 5 e 7 (as seleccionadas) é : C 78 = 7 Riscar a 8ª coluna e marcar a 8ª linha : O menor elemento não riscado das linhas 1, 2, 3, 4, 5, 7 e 8 (as seleccionadas) é : C 86 = 8 Riscar a 6ª coluna e marcar a 6ª linha : Como todas as colunas se encontram riscadas, então STOP foi determinada a árvore abrangente mínima. Resultados no final do algoritmo : A árvore abrangente mínima é constituída pelos seguintes arcos : (1, 4), (2, 5), (3, 2), (4, 3), (5, 7), (7, 8) e (8, 6) O valor da árvore abrangente mínima é : = 28 Como se pode verificar, a árvore é a mesma que foi determinada pela versão anterior.
19 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson Neste capítulo, será estudado o problema de fluxo máximo numa rede G. Os valores associados aos arcos desta rede, b ij, representam as respectivas capacidades, isto é, a quantidade máxima de fluxo que pode ser enviada pelos arcos. Estes valores terão que ser positivos (b ij 0). Portanto, podese definir a rede da seguinte forma : G = (N, A, B), em que B = [b ij ]. Em problemas de fluxo máximo, existem 2 nós especiais : nó origem e nó terminal. Com a resolução do problema de fluxo máximo, pretende-se determinar a quantidade máxima de unidades de fluxo que podem ser enviados de um nó origem S para um nó terminal T. O fluxo no arco (i, j) é designado por x ij. Devido às restrições de capacidade nos arcos, tem-se o conjunto de restrições : 0 x ij b ij, para todo (i, j) A [1] Além disso, em cada nó (excepto em S e T) deve haver conservação de fluxo : a quantidade de fluxo que chega a um nó é igual à quantidade de fluxo que sai desse nó; ou seja, = x ij x jk i k para todo j S, T [2] Como existe conservação de fluxo em todos os nós, o fluxo que sai do nó S é igual ao fluxo que chega ao nó T; isto é, x Si = f = onde f é o valor de fluxo i j x jt Portanto, com a resolução do problema de fluxo máximo, pretende-se determinar o valor do fluxo nos arcos x ij [1], que maximize o valor do fluxo f, sujeito às restrições de capacidade [2] e de conservação de fluxo [3]. Matematicamente, este problema pode ser formulado da seguinte forma : Maximizar sujeito a f = x Sj j x ij = x jk para todo j S, T [2] i k x Si = x jt [3] i j 0 x ij b ij, para todo (i, j) A [1] Dado um caminho qualquer de S para T numa rede, p = [ S = n 1, n 2, n 3,..., n k-1, n k = T ], [3]
20 108 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson a quantidade máxima de fluxo que pode ser enviada de S para T, satisfazendo [1], [2] e [3], por aquele caminho, é a seguinte : min { b ij : (i, j) p }. Logo, o arco com a menor capacidade fica saturado, não podendo passar mais fluxo por ele. Um corte ( cut ) é o conjunto de todos os arcos de um subconjunto de nós para o seu complementar : o corte ( X, X) é o conjunto de todos os arcos (i, j), tal que i X e j X. A remoção de todos os arcos do corte, desliga a rede em duas ou mais partes. A capacidade de um corte é : CX (, X) = b, comi Xe j X. (,) i j ij Em geral, CXX (, ) CXX (, ). Um corte separando S de T, com uma capacidade mínima, designa-se por corte mínimo. Teorema do fluxo máximo corte mínimo ( max flow min cut ). Para qualquer rede com capacidades de valor inteiro associadas aos arcos, o fluxo máximo do nó origem S, para o nó terminal T, é igual à capacidade de um corte mínimo que separa S de T. Enquanto existir um caminho de aumento de fluxo (c.a.f.) satisfazendo uma das condições : x ij < b ij arco forward (sentido correcto) : pode enviar-se fluxo adicional de i para j, x ji > 0 arco backward (sentido inverso) : pode enviar-se fluxo adicional de i para j, diminuindo o fluxo que existe de j para i, é possível aumentar a quantidade de fluxo a enviar de S para T. Assumindo que as capacidades dos arcos são valores inteiros, definido um caminho de aumento de fluxo constituído por arcos forward e arcos backward, o fluxo a enviar de S para T pode ser alterado de ε unidades : ε = min { ε 1, ε 2 } [inteiro positivo] com ε 1 = min { b ij x ij } nos arcos forward do c.a.f. ε 2 = min { x ji } nos arcos backward do c.a.f. O valor do fluxo é, então, aumentado em ε unidades nos arcos forward e diminuído em ε unidades nos arcos backward. Como a capacidade de um corte mínimo é um número finito e em cada caminho de aumento de fluxo, o fluxo é aumentado de pelo menos 1 unidade, o fluxo máximo obtém-se após um número finito de iterações. Um fluxo é máximo, se e só se, não existir um caminho de aumento de fluxo.
21 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson 109 Algoritmo de Ford Fulkerson : Este algoritmo, é um modo sistemático de pesquisar todos os possíveis c.a.f. de S para T, atribuindo rótulos aos nós para indicar a direcção em que o fluxo pode ser aumentado. Cada nó pode estar num dos 3 estados : rotulado e varrido tem um rótulo e todos os seus vizinhos estão rotulados; rotulado e não varrido tem um rótulo, mas nem todos os seus vizinhos estão rotulados; não rotulado não tem rótulo. O rótulo do nó j tem 2 partes : [i +, ε(j)] (ou [i, ε(j)]), em que, i + (ou i ) : índice de um nó i, indicando que pode-se enviar fluxo de i para j (ou de j para i) ε(j) : fluxo máximo adicional que se pode enviar de S para j. Algoritmo : Passo 1. S [S +, ] S fica rotulado e varrido (processo de rotulação) j (rotulado e não varrido) [i +, ε(j)] ou [i, ε(j)] Para todo o k N tal que (j, k) A e x jk < b jk Fazer k [j +, ε(k)] com ε(k) = min { ε(j), b jk x jk } Para todo o k N tal que (k, j) A e x kj > 0 Fazer k [j, ε(k)] com ε(k) = min { ε(j), x kj } j fica rotulado e varrido. Todos os k ficam rotulados e não varridos. Se (T está rotulado) ou (não é possível rotular T) Então (foi determinado um c.a.f.) ou (não existe c.a.f. o fluxo actual é máximo) Senão Regressar ao Passo 2 (início) (mudança de fluxo) T [k +, ε(t)] x kt = x kt + ε(t) Enquanto k S Fazer Se k [j +, ε(k)] Se k [j, ε(k)] x jk = x jk + ε(t) x kj = x kj ε(t) k j Apagar os rótulos e regressar ao Passo 1.
22 110 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson Exemplo : Considere a rede em baixo, onde os valores correspondem às capacidades e ao fluxo nos arcos. Pretende-se determinar o fluxo máximo a enviar do nó 1 para o nó 4, atendendo a que o fluxo actual enviado entre aqueles 2 nós é de 2 unidades. Passo 1. Fluxo actual = 2 1 [1 +, ] RotuladosVarridos = RotuladosNãoVarridos = { 1 } NãoRotulados = { 2, 3, 4 } j 1 (rotulado e não varrido) Vizinhos (não rotulados) do nó 1 : 2 e 3. 2 não pode ser rotulado, pois b 12 = x 12 3 [1 +, min { ε(1), b 12 x 12 }] [1 +, min {, 1 }] [1 +, 1] RotuladosVarridos = { 1 } RotuladosNãoVarridos = { 3 } NãoRotulados = { 2, 4 } j 3 (rotulado e não varrido) Vizinhos (não rotulados) do nó 3 : 2 e 4. 2 [3, min { ε(3), x 23 }] [3, min { 1, 1 }] [3, 1] 4 não pode ser rotulado, pois b 34 = x 34 RotuladosVarridos = { 1, 3 } RotuladosNãoVarridos = { 2 } NãoRotulados = { 4 }
23 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson 111 j 2 (rotulado e não varrido) Vizinhos (não rotulados) do nó 2 : 4. 4 [2 +, min { ε(2), b 24 x 24 }] [2 +, min { 1, 3 }] [2 +, 1] RotuladosVarridos = { 1, 3, 2 } RotuladosNãoVarridos = { 4 } NãoRotulados = Como T = 4 foi rotulado, foi determinado um caminho de aumento de fluxo. (mudança de fluxo : o aumento de fluxo é de ε(4) = 1 unidades) fluxo = fluxo + ε(4) =2 + 1 = 3 4 [2 +, 1] x 24 = x 24 + ε(4) = = 1 2 [3, 1] x 23 = x 23 ε(4) = 1 1 = 0 3 [1 +, 1] x 13 = x 13 + ε(4) = = 2 Passo 1. Fluxo actual = 3 1 [1 +, ] RotuladosVarridos = RotuladosNãoVarridos = { 1 } NãoRotulados = { 2, 3, 4 } j 1 (rotulado e não varrido) Vizinhos (não rotulados) do nó 1 : 2 e 3. 2 não pode ser rotulado, pois b 12 = x 12 3 não pode ser rotulado, pois b 13 = x 13 Como não é possível rotular mais nenhum nó, e como o nó T = 4 não foi rotulado, então não existe caminho de aumento de fluxo; logo, o fluxo actual é máximo.
24 112 O Problema do Fluxo Máximo -- algoritmo de Ford-Fulkerson Resultados a retirar após o final do algoritmo : Fluxo máximo = 3. X = { 1 } X = { 2, 3, 4 } C(X, X) = b 12 + b 13 = 3 = Fluxo máximo
Pesquisa Operacional
Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 3 - Teoria dos Grafos Fernando Marins fmarins@feg.unesp.br Departamento de Produção
Leia maisInvestigação Operacional
Investigação Operacional Licenciatura em Gestão 3.º Ano Ano Lectivo 2013/14 Optimização em Redes Texto elaborado por: Maria João Cortinhal (Coordenadora) Anabela Costa Maria João Lopes Ana Catarina Nunes
Leia mais2 Definição do Problema
Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo
Leia maisMATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47
1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado
Leia maisGrafos Parte 1. Aleardo Manacero Jr.
Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem
Leia maisProblema do Caminho Mínimo
Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.
Leia maisTeoria dos Grafos Aula 5
Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema
Leia maisIntrodução à Teoria de Grafos e Topologia em SIG. João Matos Departamento de Engenharia Civil e Arquitectura
Introdução à Teoria de Grafos e Topologia em SIG João Matos Departamento de Engenharia Civil e Arquitectura (Versão.0) Outubro 007 Motivação A teoria de grafos no contexto dos sistemas de informação geográfica
Leia maisPesquisa Operacional. Teoria dos Grafos
Pesquisa Operacional Teoria dos Grafos 1 Sumário Introdução Histórico Aplicações de modelos em grafos Conceitos e Notação Representações de um grafo G Tipos de grafos Algoritmos Algoritmo de Djisktra Algoritmo
Leia maisProblema do Caminho Mais Curto. Problema do Caminho Mais Curto
Problema do Caminho Mais Curto " Podemos afectar pesos" aos arcos de um grafo, por exemplo, para representar uma distância entre cidades numa rede ferroviária: ria: Chicago 650 600 700 Toronto 200 New
Leia maisC 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar.
rafos ircuito e iclo de uler X. ircuito e iclo de uler Um grafo orientado diz-se euleriano se há um circuito que contenha todos os seus arcos uma e só uma vez (circuito euleriano ).O grafo da figura é
Leia maisGRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira
Ciência da Computação GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Árvore Geradora (spanning tree) É um subconjunto de um grafo G que possui todos os vértices
Leia maisTeoria dos Grafos. Árvores Geradoras
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir
Leia maisOtimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2
Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo
Leia maisDisciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa
Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Aula -Grafos Uma figura vale por mil palavras A representação de dados e ou informações utilizando de recursos visuais é, em muitos casos,
Leia maisSub-grafo. Árvore Geradora Mínima
Comentários da aula anterior Componentes Fortemente Conectados (algoritmo) 1. Chama BuscaEmProfundidade (G) para obter os tempos de término (t[u], ou f[u]) para todos os vértices de G, isto é, enquanto
Leia maisProblema de Fluxo Máximo
Problema de Fluxo Máximo The Maximum Flow Problem Fernando Nogueira Fluxo Máximo 1 O Problema de Fluxo Máximo (The Maximum Flow Problem) Considere uma rede direcionada (dígrafo) conectada, com 2 nós especiais
Leia maisMATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO
MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting Árvore
Leia maisProblemas de Fluxo Máximo
Investigação Operacional 1 Problemas de Fluxo Máximo Slide 1 Transparências de apoio à leccionação de aulas teóricas Problemas de Fluxo Máximo Definição: Dada uma rede, com um nó de entrada eumnó desaída,
Leia maisAlgoritmos em Grafos COM11087-Tópicos Especiais em Programação I
Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I edmar.kampke@ufes.br Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Aplicações de grafos grafo vértices arestas Cronograma tarefas restrições de preferência Malha viária interseções
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático
Leia maisProblema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados
Leia maisInvestigação Operacional
nvestigação Operacional Optimização em Redes e rafos Licenciatura em ngenharia ivil Licenciatura em ngenharia do Território Licenciatura em ngenharia e rquitectura Naval / ntrodução à Teoria dos rafos
Leia maisESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.
PUC-Rio Departamento de Informática Profs. Marcus Vinicius S. Poggi de Aragão Período: 0. Horário: as-feiras e as-feiras de - horas de maio de 0 ESTRUTURAS DISCRETAS (INF 6) a Lista de Exercícios Procure
Leia maisRedes. ADSA António Câmara
Redes ADSA António Câmara Redes Método do caminho mais curto Localização de equipamentos Minimum spanning tree Carteiro chinês Caixeiro viajante Links Redes Redes são sistemas de linhas (arcos) ligando
Leia maisCONCEITOS BÁSICOS EM GRAFOS
Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,
Leia maisEstruturas de Dados Grafos
Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:
Leia maisOtimização em Grafos
Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias
Leia maisESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron
Leia maisBCC204 - Teoria dos Grafos
BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal
Leia maisElementos de Matemática Discreta
Duração: 55m Instituto Superior Técnico - Departamento de Matemática Licenciatura em Engenharia de Telecomunicações e Informática Elementos de Matemática Discreta - 2015-2016 Teste 3 - teste tipo Cotação
Leia maisVolmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Três objetivos i. Redução de custos (custos variáveis) ii. iii. Redução de capital (investimento, custos fixos) Melhoria do serviço
Leia maisÁrvores: Conceitos Básicos e Árvore Geradora
Árvores: Conceitos Básicos e Árvore Geradora Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Introdução No dia a dia aparecem muitos problemas envolvendo árvores:
Leia maisConceitos Básicos da Teoria de Grafos
Conceitos Básicos da Teoria de Grafos Universidade Federal do Pampa - UNIPAMPA Engenharia da Computação Estrutura de Dados Profª Sandra Piovesan Grafos Uma noção simples, abstrata e intuitiva. Representa
Leia maisGrafos: árvores geradoras mínimas. Graça Nunes
Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de
Leia maisMódulo 2 OTIMIZAÇÃO DE REDES
Módulo 2 OTIMIZAÇÃO DE REDES Grafos e Redes Está contida na área de Pesquisa Operacional. Pode ser considerada como uma teoria baseada na interligação de pontos e linhas, utilizada principalmente na solução
Leia maisDepartamento de Engenharia de Produção UFPR 22
Departamento de Engenharia de Produção UFPR 22 Geralmente, temos três objetivos i. Redução de custos (custos variáveis) Redução de capital (investimento, custos fixos) i Melhoria do serviço (pode conflitar
Leia maisMÓDULO 2 - OTIMIZAÇÃO DE REDES
MÓUL - TIMIZÇÃ RS s problemas de otimização de redes podem ocorrer em várias áreas, mas geralmente são encontrados nas áreas de transportes e comunicações. Um problema típico de transporte consiste em
Leia maisModelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos
Métodos de Análise de Sistemas Produtivos Modelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos 17 de Maio de 2002 Alunos: Álvaro Magalhães Bernardo Ribeiro João
Leia maisCap. 2 Conceitos Básicos em Teoria dos Grafos
Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os
Leia maisGrafos: componentes fortemente conexos, árvores geradoras mínimas
Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente
Leia maisDefinição e Conceitos Básicos
Definição e Conceitos Básicos Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Conceitos Básicos Em grafos ocorrem dois tipos de elementos: Vértices ou nós;
Leia maisGRAFOS E ALGORITMOS TEORIA DE GRAFOS
GRAFOS E ALGORITMOS TEORIA DE GRAFOS 1a. PARTE Prof. Ronaldo R. Goldschmidt rribeiro@univercidade.br ronaldo_goldschmidt@yahoo.com.br ROTEIRO 1. INTRODUÇÃO E MOTIVAÇÃO 2. FUNDAMENTOS 3. CONECTIVIDADE 4.
Leia maisGrafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes
Grafos: Busca Algoritmos e Estruturas de Dados Graça Nunes Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é uma tarefa fundamental Pense no caso de se procurar uma certa informação associada
Leia maisIntrodução à Teoria dos Grafos
Capítulo 1 Introdução à Teoria dos Grafos 1.1 História O primeiro problema cuja solução envolveu conceitos do que viria a ser teoria dos grafos, denominado "problema das pontes de Königsberg", foi resolvido
Leia maisProblemas de Decisão em Redes 18
Problemas de Decisão em Redes 8 Problemas de Fluxo Máximo Slide Problemas de Fluxo Máximo Definição: Dada uma rede, com um nó de entrada e um nó de saída, com capacidades associadas a cada ramo, pretende-se
Leia maisÁrvore de Suporte de Comprimento Mínimo Minimal Spanning Tree
Investigação Operacional Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree Slide Transparências de apoio à leccionação de aulas teóricas Maria Antónia Carravilla José Fernando Oliveira Árvore
Leia maisTEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO
TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas
Leia maisOalgoritmo de Dijkstra
Dijkstra Oalgoritmo de Dijkstra O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 1959, soluciona o problema do caminho mais curto num grafo
Leia maisProblemas de Transportes e de Afectação
CAPÍTULO 6 Problemas de Transportes e de Afectação 1. Problema de Transporte Este problema, que é um dos particulares de PL, consiste em determinar a forma mais económica de enviar um bem disponível, em
Leia maisAlgoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica
Algoritmo Floyd-Warshall S. Problema dos caminhos mínimos entre todos os pares Problema: Dado um digrafo com custo nos arcos, determinar, para cada par de vértices s, t o custo de um caminho mínimo de
Leia maisFaculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu
1 Programação Linear (PL) Aula 8 : O método Simplex. Casos particulares. Empate no critério de entrada. Óptimo não finito. Soluções óptimas alternativas. Degenerescência. INÍCIO Forma Padrão Faculdade
Leia maisOptimização em Redes e Não Linear
Departamento de Matemática da Universidade de Aveiro Optimização em Redes e Não Linear Ano Lectivo 005/006, o semestre Folha - Optimização em Redes - Árvores de Suporte. Suponha que uma dada companhia
Leia maisIntrodução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3
Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 3 Árvores Problema: Suponha que numa cidade haja n postos telefônicos. Para que seja sempre possível haver comunicação
Leia maisTeorema 1 - Todo corte de arestas de um grafo conexo G contém pelo menos uma aresta em comum com qualquer árvore geradora de G. Exemplo 2 - Seja T:
12 - Conjuntos de Corte o estudarmos árvores geradoras, nós estávamos interessados em um tipo especial de subgrafo de um grafo conexo: um subgrafo que mantivesse todos os vértices do grafo interligados.
Leia mais2º Trabalho Prático - Algoritmos em grafos
Page of LEIC - AEDII - 00/003 - º Semestre º Trabalho Prático - Algoritmos em grafos Introdução Conteúdo do trabalho O segundo trabalho consiste no desenvolvimento de um programa em Java de aplicação de
Leia maisAlgoritmos em Grafos
Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)
Leia maisGRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira
Ciência da Computação GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira Algoritmo de Bellman-Ford Arestas com valores negativos podem parecer inúteis, mas elas podem
Leia maisCAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:
Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos
Leia maisFolha 3.1. Grafos (não dirigidos)
Matemática para Ciência dos Computadores Outubro, 2005 Docente: n : n Folha 3.1 Grafos (não dirigidos) 1. (*) Seja V = {a, b, c, d, e, f, g} um conjunto de localidades e seja E = { a, b, a, f, b, e, b,
Leia maisGabriel Coutinho DCC035 - Pesquisa Operacional Lista 6
Lista 6 Exercício. O objetivo deste exercício é modelar o problema de emparelhamento em um grafo bipartido como um problema de fluxo, e verificar que o Teorema de Konig é essencialmente o Teorema de Fluxo
Leia maisGrafos Orientados (digrafos)
Grafos Orientados (digrafos) Grafo Orientado ou digrafo Consiste em um grafo G = (V,A) onde V = {v 1,, v n } é um conjunto de vértices e A = {a 1,, a k } é um conjunto de arcos tais que a k, k=1,,m é representado
Leia maisResolução de problemas difíceis de programação linear através da relaxação Lagrangeana
problemas difíceis de programação linear através da relaxação Lagrangeana Ana Maria A.C. Rocha Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho arocha@dps.uminho.pt http://www.norg.uminho.pt/arocha
Leia maisDefinição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.
1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa
Leia maisGrafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32
Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).
Leia maisTGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher
TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze
Leia maisTeoria dos Grafos AULA
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA Caminho mínimo - Algoritmo de Djskstra Preparado a partir
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 11: Introdução aos Grafos Indução Finita Indução Finita é uma técnica para provar teoremas também usada no projecto de algoritmos. Suponha
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático
Leia maisProva Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade
Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem
Leia maisW 8. Nas colunas "k =1 a n" executar: Nas linhas "i =1 a m" executar: Em cada linha "i" de "j=1 a n" executar: z = c ik + c kj
VI. Encaminhamentos de encargo total mínimo Considere-se um grafo (orientado ou não) em que se associa a cada um dos seus arcos (arestas) um dado encargo real (distância, custo, tempo, etc.); admita-se
Leia maisTeoria dos Grafos. Profa. Alessandra Martins Coelho
Teoria dos Grafos Profa. Alessandra Martins Coelho fev/2014 Avaliação 2 Provas 30 pontos cada; 3 Implementações 10 pontos cada; 1 Seminário 10 pontos; Listas de exercícios Listas não valem nota, entretanto...
Leia maisCaminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas
Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC0 Aula 1 Algoritmos e Programação Avançada Plano da Aula Caminhos
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.
Leia maisGrafos: caminhos (matriz adjacência)
Grafos: caminhos (matriz adjacência) Algoritmos e Estruturas de Dados 2 Graça Nunes 1 O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível entre duas cidades do Brasil
Leia maisCAPÍTULO 3. Método Simplex
CAPÍTULO 3 1. Soluções Básicas Admissíveis Considere um problema de PL representado nas suas formas padrão e matricial. Uma base é um conjunto de m variáveis, tais que a matriz dos coeficientes do sistema
Leia maisTeoria dos Grafos Aula 6
Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,
Leia maisGrafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por
Leia maisAlgoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3
Algoritmo Aproximação Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas NP- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),
Leia maisMatemática Discreta 10
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas
Leia maisSimplex. Investigação Operacional José António Oliveira Simplex
18 Considere um problema de maximização de lucro relacionado com duas actividades e três recursos. Na tabela seguinte são dados os consumos unitários de cada recurso (A, B e C) por actividade (1 e 2),
Leia maisInvestigação Operacional
Métodos de Programação Linear: Big M, Fases, S Dual (Licenciatura) Tecnologias e Sistemas de Informação http://dps.uminho.pt/pessoais/zan - Escola de Engenharia Departamento de Produção e Sistemas 1 Simplex
Leia maisPCC173 - Otimização em Redes
PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de maio de 2017 Marco Antonio M. Carvalho
Leia maisFaculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu
Redes Aula 19: Modelos de Optimização de Redes O Problema do Caminho Mais Curto. O Problema do Fluxo Máximo. O Problema do Fluxo de Custo Mínimo. 2 Modelos de Optimização de Redes O que são redes em (IO)?
Leia maisCAPÍTULO 2. Grafos e Redes
CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que
Leia mais2.3.4 Algoritmos de SAT
114 CAÍTULO 2. LÓGICA ROOSICIONAL 2.3.4 Algoritmos de SAT Os algoritmos de SAT (do inglês satisfiability ) têm o objectivo de determinar se uma dada fbf α é satisfazível ou não; em caso afirmativo, devolvem
Leia maisTeoria dos Grafos. Edson Prestes
Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados
Leia maisTeoria dos Grafos AULA 3
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 3 Trajetos, Caminhos, Circuitos, Grafos Conexos Preparado
Leia maisParte B Teoria dos Grafos
45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função
Leia maisTeoria dos Grafos. Fluxo Máximo em Redes
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Fluxo Máximo
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso conhecido 7 Euler: pontes de Königsberg //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso
Leia maisResolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana
Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Ana Maria A.C. Rocha e João Luís C. Soares Departamento de Produção e Sistemas Escola de Engenharia Universidade
Leia maisCAPÍTULO 4. O Problema do Caminho Mais Curto com Múltiplos Objectivos
CAPÍTULO 4 O Problema do Caminho Mais Curto com Múltiplos Objectivos. Formulação do problema Considere-se uma rede G = (N, A, C) com n nós e m arcos, em que C = (c, c 2,..., c h ) com h corresponde aos
Leia maisCapítulo 1. Aula Conectividade Caminhos
Capítulo 1 Aula 7 1.1 Conectividade Muitos problemas podem ser modelados com caminhos formados ao percorrer as arestas dos grafos. Por exemplo, o problema de determinar se uma mensagem pode ser enviada
Leia mais