Problemas de Fluxo em Redes

Tamanho: px
Começar a partir da página:

Download "Problemas de Fluxo em Redes"

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

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 mais

Investigação Operacional

Investigaçã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 mais

2 Definição do Problema

2 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 mais

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁ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 mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos 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 mais

Problema do Caminho Mínimo

Problema 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 mais

Teoria dos Grafos Aula 5

Teoria 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 mais

Introduçã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 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 mais

Pesquisa Operacional. Teoria dos Grafos

Pesquisa 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 mais

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Problema 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 mais

C 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.

C 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 mais

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

GRAFOS 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 mais

Teoria dos Grafos. Árvores Geradoras

Teoria 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 mais

Otimizaçã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 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 mais

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Disciplina: 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 mais

Sub-grafo. Árvore Geradora Mínima

Sub-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 mais

Problema de Fluxo Máximo

Problema 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 mais

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

MATEMÁ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 mais

Problemas de Fluxo Máximo

Problemas 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 mais

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Algoritmos 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 mais

INF 1010 Estruturas de Dados Avançadas

INF 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 mais

UNIVERSIDADE 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 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 mais

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Problema 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 mais

Investigação Operacional

Investigaçã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 mais

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

ESTRUTURAS 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 mais

Redes. ADSA António Câmara

Redes. 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 mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS 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 mais

Estruturas de Dados Grafos

Estruturas 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 mais

Otimização em Grafos

Otimizaçã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 mais

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.

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. 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 mais

BCC204 - Teoria dos Grafos

BCC204 - 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 mais

Elementos de Matemática Discreta

Elementos 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 mais

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

Volmir 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 Á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 mais

Conceitos Básicos da Teoria de Grafos

Conceitos 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 mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: á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 mais

Teoria dos Grafos. Edson Prestes

Teoria 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 mais

Módulo 2 OTIMIZAÇÃO DE REDES

Mó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 mais

Departamento de Engenharia de Produção UFPR 22

Departamento 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 mais

MÓDULO 2 - OTIMIZAÇÃO DE REDES

MÓ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 mais

Modelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos

Modelos 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 mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 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 mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: 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 mais

Definição e Conceitos Básicos

Definiçã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 mais

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

GRAFOS 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 mais

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Grafos: 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 mais

Introdução à Teoria dos Grafos

Introduçã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 mais

Problemas de Decisão em Redes 18

Problemas 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

Á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 mais

TEORIA 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 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 mais

Oalgoritmo de Dijkstra

Oalgoritmo 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 mais

Problemas de Transportes e de Afectação

Problemas 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 mais

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Algoritmo 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 mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade 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 mais

Optimização em Redes e Não Linear

Optimizaçã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 mais

Introduçã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 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 mais

Teorema 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:

Teorema 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 mais

2º Trabalho Prático - Algoritmos em grafos

2º 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 mais

Algoritmos em Grafos

Algoritmos 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 mais

GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira

GRAFOS 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 mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. 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 mais

Folha 3.1. Grafos (não dirigidos)

Folha 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 mais

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Gabriel 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 mais

Grafos Orientados (digrafos)

Grafos 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 mais

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Resoluçã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 mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definiçã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 mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - 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 mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR 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 mais

Teoria dos Grafos. Edson Prestes

Teoria 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 mais

Teoria dos Grafos AULA

Teoria 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 mais

Estrutura 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 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 mais

UNIVERSIDADE 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 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 mais

Prova 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 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 mais

W 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

W 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 mais

Teoria dos Grafos. Profa. Alessandra Martins Coelho

Teoria 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 mais

Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas

Caminhos 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 mais

Estrutura 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 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 mais

Grafos: caminhos (matriz adjacência)

Grafos: 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 mais

CAPÍTULO 3. Método Simplex

CAPÍ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 mais

Teoria dos Grafos Aula 6

Teoria 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 mais

Teoria 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. 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 mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. 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 mais

Algoritmo 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 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 mais

Matemática Discreta 10

Matemá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 mais

Simplex. Investigação Operacional José António Oliveira Simplex

Simplex. 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 mais

Investigação Operacional

Investigaçã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 mais

PCC173 - Otimização em Redes

PCC173 - 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 mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade 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 mais

CAPÍTULO 2. Grafos e Redes

CAPÍ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 mais

2.3.4 Algoritmos de SAT

2.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 mais

Teoria dos Grafos. Edson Prestes

Teoria 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 mais

Teoria dos Grafos AULA 3

Teoria 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 mais

Parte B Teoria dos Grafos

Parte 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 mais

Teoria dos Grafos. Fluxo Máximo em Redes

Teoria 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 mais

INF 1010 Estruturas de Dados Avançadas

INF 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 mais

Resoluçã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 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 mais

CAPÍ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 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 mais

Capítulo 1. Aula Conectividade Caminhos

Capí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