aula04_matematica_aplicada

9
AULA 04 - GRAFOS ORIENTADOS Autor: Ernesto Massa “Tudo é fluxo, nada fica parado” Heráclito Olá! Nesta aula, retomaremos o estudo sobre grafos orientados. Serão aprofundados seus principais conceitos e propriedades, identificados vértices especiais e vistas algumas aplicações. A mais importante delas é o estudo do fluxo em redes, fundamental para a solução de alguns problemas de otimização combinatória. GRAFOS ORIENTADOS Como vimos na nossa primeira aula, um grafo orientado é um grafo em que uma aresta pode ser percorrida em apenas uma direção, sendo formalmente definido por uma tripla ordenada ) , , ( D D D A V D Ψ = , em que D V é um conjunto não vazio de vértices, D A é um conjunto de arestas, e D Ψ é a função incidente que associa cada aresta pertencente ao conjunto D A a um par ordenado de vértices pertencentes ao conjunto D V (BONDY, 1982). Todos os conceitos que são válidos para grafos não-orientados, aplicam-se automaticamente aos grafos orientados, com a inclusão do fato que as arestas serão direcionadas. Desta forma, um passeio em um grafo orientado é um passeio orientado, uma trilha em um grafo orientado é uma trilha orientada, e um caminho em um grafo orientado é um caminho orientado. Analogamente são definidos ciclo orientado e circuito orientado (BONDY, 1982). Se existe um caminho orientado entre os vértices v i e v j , dizemos que v j é atingível a partir de v i . Todos os vértices alcançados a partir de v i formam o fecho transitivo de v i , e todos os vértices de onde v i é alcançável formam o fecho transitivo inverso de v i (BOAVENTURA NETTO, 1996). Podemos observar na figura 1(a) o fecho transitivo do vértice v 5 , e na figura 1(b) podemos observar o fecho transitivo inverso do vértice v 7 . Figura 1- (a) Fecho transitivo de v5; (b) Fecho transitivo inverso de v7

Upload: cwmqueiros

Post on 25-Nov-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

  • AULA 04 - GRAFOS ORIENTADOS

    Autor: Ernesto Massa

    Tudo fluxo, nada fica parado

    Herclito

    Ol!

    Nesta aula, retomaremos o estudo sobre grafos orientados. Sero aprofundados seus principais conceitos e propriedades, identificados vrtices especiais e vistas algumas aplicaes. A mais importante delas o estudo do fluxo em redes, fundamental para a soluo de alguns problemas de otimizao combinatria.

    GRAFOS ORIENTADOS

    Como vimos na nossa primeira aula, um grafo orientado um grafo em que uma aresta pode ser percorrida em apenas uma direo, sendo formalmente definido por uma tripla ordenada ),,( DDD AVD = , em que DV um conjunto no vazio de vrtices, DA um conjunto de arestas, e D a funo incidente que associa cada aresta pertencente ao conjunto DA a um par ordenado de vrtices pertencentes ao conjunto DV (BONDY, 1982).

    Todos os conceitos que so vlidos para grafos no-orientados, aplicam-se automaticamente aos grafos orientados, com a incluso do fato que as arestas sero direcionadas. Desta forma, um passeio em um grafo orientado um passeio orientado, uma trilha em um grafo orientado uma trilha orientada, e um caminho em um grafo orientado um caminho orientado. Analogamente so definidos ciclo orientado e circuito orientado (BONDY, 1982).

    Se existe um caminho orientado entre os vrtices vi e vj, dizemos que vj atingvel a partir de vi. Todos os vrtices alcanados a partir de vi formam o fecho transitivo de vi, e todos os vrtices de onde vi alcanvel formam o fecho transitivo inverso de vi (BOAVENTURA NETTO, 1996). Podemos observar na figura 1(a) o fecho transitivo do vrtice v5, e na figura 1(b) podemos observar o fecho transitivo inverso do vrtice v7.

    Figura 1- (a) Fecho transitivo de v5; (b) Fecho transitivo inverso de v7

  • ORDENAO TOPOLGICA

    Todo grafo orientado acclico possui um ordenao topolgica, ou seja, possvel construir um alinhamento dos vrtices em que todas as arestas estejam direcionadas da esquerda para direita (REZENDE, 2002). A necessidade do grafo ser acclico clara, pois se dispusermos as arestas de um ciclo direcionadas da esquerda para a direita, em algum momento aparecer uma aresta que retornar ao vrtice inicial, localizado na extrema esquerda (figura 2).

    Figura 2- (a) Ciclo; (b)Impossibilidade de ordenao

    FLUXO EM REDES

    Redes de distribuio, seja de alimentos, energia ou informao, podem ser melhor entendidas se modeladas por grafos orientados acrescidos de alguma estrutura adicional. Uma rede (network) N um grafo orientado D com dois subconjuntos de vrtices distintos, X e Y, e uma funo c inteira definida sobre o conjunto de arestas de D. Os vrtices pertencentes a X so chamados fontes, e representam unidades produtoras, enquanto os vrtices pertencentes a Y so chamados sumidouros, e representam unidades consumidoras (BONDY, 1982). As fontes no possuem nenhuma aresta convergente (figura 3(a)), e os sumidouros no possuem nenhuma aresta divergente (BOAVENTURA NETTO, 1996) (figura 3(b)). Vrtices pertencentes a D e que no pertencem a X nem a Y so vrtices intermedirios. A funo c uma funo sobre as arestas de D e determina a capacidade de distribuio de cada aresta.

    Figura 3- (a) Fontes; (b) Sumidouro

  • Uma rede pode ser representada por um grafo orientado, em que as

    arestas so rotuladas com os valores determinados pela funo de capacidades (Figura 4).

    Figura 4 - Rede (network)

    Fonte: Adaptado de Bondy (1982, p.192)

    Um fluxo (flow) em uma rede N uma funo f definida sobre o

    conjunto de arestas A, que atende s seguintes restries:

    YvXvv

    vfvvfvfvf

    = ++ e onde , para gindo

    -conver fluxo o )( e , de divergindo fluxo o )( onde ),()(

    Aaacaf todopara ),()(0 A primeira restrio garante que o fluxo convergindo para um vrtice v,

    deve ser igual ao fluxo divergindo de v. Esta restrio tem a finalidade de no permitir o acmulo em nenhum vrtice, e conhecida como condio de conservao (BONDY, 1982). Para simplificar esta restrio e aplic-la a todos os vrtices, podem ser criados: a) uma fonte (x) que alimenta as fontes originais; b) um sumidouro (y) que recebe todos os fluxos dos sumidouros originais; c) uma aresta de retorno, com capacidade infinita, e que liga y x (figura 5). Feito isto, a condio de conservao passa a ser vlida para todos os vrtices da rede (BOAVENTURA NETTO, 1996).

  • Figura 5- Fonte e sumidouro nicos, com aresta de retorno

    Fonte: Adaptado de Bondy (1982, p.192)

    Podemos entender a segunda restrio como um fluxo )(af que atravessa

    uma aresta a sendo limitado pela capacidade de distribuio c(a) desta aresta a. Esta restrio conhecida como restrio de capacidade (BONDY, 1982).

    Em alguns problemas, considerada importante a existncia de um fluxo mnimo percorrendo cada aresta, calculado pela funo b(a). Da mesma forma que c(a), a funo b(a) definida sobre o conjunto das arestas da rede. Nestes casos, a restrio de capacidade substituda por uma restrio de canalizao, que tem a seguinte forma (BOAVENTURA NETTO, 1996):

    Aaacafab todopara ),()()( Considere S um subconjunto qualquer de vrtices que pertenam rede.

    O fluxo de S, denotado por )(Sf , calculado pelo fluxo divergente de S menos o fluxo convergente para S. Desta forma, )()()( SfSfSf + = . Como todo vrtice intermedirio possui fluxo divergente igual ao fluxo convergente, temos que a soma dos fluxos que saem das fontes igual soma dos fluxos que chegam aos sumidouros ( )()( YfXf + = ). Este valor chamado de o valor da funo f . Como exemplo, observe a figura 6, que agora possui um fluxo em cada aresta, apresentado entre parnteses.

  • Figura 6- Fluxo em uma rede (network flow)

    Fonte: Adaptado de Bondy (1982, p.192)

    Note que a soma dos fluxos que convergem para qualquer dos vrtices

    intermedirios (v1, v2, v3, v4) igual soma dos fluxos que divergem destes mesmos vrtices. Com isso, os nicos vrtices que possuem fluxo divergente so as fontes, e os nicos vrtices com fluxo convergente so os sumidouros. Ainda possvel perceber que a soma dos fluxos divergindo das fontes ( 6)( =+ Xf ) igual soma dos fluxos convergindo para os sumidouros ( 6)( = Yf ).

    Uma aresta est saturada quando o fluxo que passa por ela igual a sua capacidade. Podemos ver que, na rede da figura 06, as arestas (x1,v4), (x2,v4), e (v3,y2) esto saturadas, enquanto as demais arestas ainda possuem capacidades que permitiriam o aumento em seus respectivos fluxos. Alm disso, algumas arestas no-saturadas formam caminhos entre fontes e sumidouros e permitiriam o aumento do fluxo que escoa das fontes para os sumidouros. Como exemplo, o fluxo divergindo de x2 poderia ser aumentado em uma unidade e chegar at y2 atravs do caminho x2~v3~y2, j que as capacidades de (x2,v3) e (v3,y2) ainda no foram esgotadas. Assim, podemos perceber que o fluxo na rede em questo poderia ser aumentado. Para encontrar o fluxo mximo em uma rede, pode-se utilizar o algoritmo de Ford-Fulkerson, que ser visto nas prximas sees.

    GRAFO DE AUMENTO DE FLUXO

    Uma ferramenta utilizada no algoritmo de Ford-Fulkerson e que precisa ser estudada para sua compreenso, o grafo de aumento de fluxo. Neste grafo, as arestas indicam quanto existe de folga para se crescer o fluxo na direo da aresta, considerando o fluxo atual, a capacidade, e o fluxo mnimo da aresta (BOAVENTURA NETTO, 1996). Podemos ver, na figura 7, o grafo de aumento de fluxo do grafo apresentado na figura 6.

  • Figura 7- Grafo de aumento de fluxo

    Fonte: Adaptado de Bondy (1982, p.192)

    Analisando a construo do grafo de aumento de fluxo, percebemos que a

    aresta (x1,v1) estava, originalmente, com fluxo igual a um. Como a capacidade desta aresta igual a seis, o fluxo ainda pode crescer cinco unidades na direo (x1,v1), mas tambm pode ser reduzido de uma unidade, o que equivaleria ser aumentado na direo inversa (v1,x1) em uma unidade. Ambas as possibilidades so representadas no grafo de aumento de fluxo pelas arestas que ligam os vrtices x1 e v1. Portanto, cada aresta do grafo indica quanto o fluxo ainda pode crescer na direo indicada pela aresta.

    ALGORITMO DE FORD-FULKERSON

    Agora que conhecemos o grafo de aumento de fluxo, podemos compreender o algoritmo de Ford-Fulkerson, que pode ser descrito pelos passos apresentados no algoritmo 01:

    2 passo o paraVoltar )05oposto sentido no arestas as todasem aumentamos e

    caminho do arestas as todasde diminuir caminho, no existente mnima folga a Seja fluxo de aumento de grafo do sumidouro o e fonte a entre caminho um Considerar )04

    algoritmo oencerrar o, transitivfecho no presenteestiver no sumidouro o Se grafo do fonte vrticedo o transitivfecho o Determinar 03)entecorrespond fluxo de aumento de grafo oConstruir )02

    vivelinicial fluxo umGerar )01

    Algoritmo 01- Algoritmo de Ford-Fulkerson Fonte: Adaptado de Boaventura Netto (1996, p.155)

    Aplicando o algoritmo ao grafo de aumento de fluxo da figura 07, vemos que o sumidouro ainda pertence ao fecho transitivo do vrtice x, e podemos escolher o caminho x~x1~v1~y1~y que liga x a y. Como a folga mnima deste

  • caminho igual a quatro (na aresta (v1,y1)), diminumos quatro das arestas do caminho escolhido, e somamos quatro nas arestas no sentido oposto. O novo grafo de aumento de fluxo ficar como exibido na figura 8.

    Figura 08- Grafo de aumento de fluxo

    aps a incluso do caminho x~x1~v1~y1~y Fonte: Adaptado de Bondy (1982, p.192)

    Voltando ao algoritmo 01, verificamos que o sumidouro continua

    pertencendo ao fecho transitivo da fonte x, e inclumos o caminho x~x2~v4~v3~v2~y2~y, que possui folga mnima igual a dois. O novo grafo de aumento de fluxo ficou como aparece na figura 9.

    Figura 9 - Grafo de aumento de fluxo

    aps a incluso do caminho x~x2~v3~v2~y1~y Fonte: Adaptado de Bondy (1982, p.192)

  • Como pode ser visto, o sumidouro y no faz mais parte do fecho transitivo de x, encerrando a execuo do algoritmo. Com isso, o fluxo mximo da rede o fluxo inicial (seis), apresentado na figura 6, somado aos fluxos dos dois caminhos includos durante a execuo do algoritmo de Ford-Fulkerson (quatro e um), totalizando onze. Unindo os trs fluxos citados, temos a rede apresentada na figura 10. Note que o fluxo total divergindo das fontes e o fluxo total convergindo para os sumidouros igual ao valor calculado (onze).

    Figura 10- Fluxo mximo da rede

    Fonte: Adaptado de Bondy (1982, p.192)

    SNTESE

    Nesta aula tivemos uma viso mais aprofundada sobre grafos orientados. Vimos que o conjunto de vrtices alcanveis a partir de um vrtice v chamado de fecho transitivo de v, e que o conjunto de vrtices de onde se consegue alcanar um vrtice v chamado de fecho transitivo inverso de v. Aprendemos que todo grafo orientado acclico possui uma ordenao topolgica que nos permite alinhar suas arestas sempre na mesma direo.

    Fontes so vrtices que no possuem arestas convergentes, e sumidouros so vrtices que no possuem arestas divergentes. Grafos orientados, quando possuem fontes e sumidouros, e so unidos a uma funo que associa capacidades s suas arestas, formam as redes. Um importante problema o clculo do fluxo mximo em redes, que pode ser resolvido pelo algoritmo de Ford-Fulkerson.

    Em nossa prxima aula conheceremos um novo tpico da Matemtica Aplicada: A Pesquisa Operacional.

    QUESTO PARA REFLEXO

    Como seria o algoritmo de Ford-Fulkerson se quisermos saber o fluxo mximo de uma rede em que as arestas possuem um fluxo mnimo?

  • LEITURAS INDICADAS

    Para consolidao dos assuntos vistos nesta aula, sugerimos a leitura do captulo 7: "Fluxos em Grafos", do livro de Paulo Oswaldo Boaventura Netto. Para conhecer o trabalho original de Lester Randolph Ford Jr. e Delbert Ray Fulkerson, faa a leitura do artigo: "FORD, L.R.; FULKERSON, D.R. Maximal Flow Through a Network. Canadian Journal of Mathematics, n.8, p.399-404, 1956.". O artigo pode ser obtido pela internet.

    SITES INDICADOS

    http://en.wikipedia.org/wiki/Maximum_flow_problem

    REFERNCIAS

    BOAVENTURA NETTO, Paulo Oswaldo. Grafos: teoria, modelos, algoritmos. So Paulo: Ed. Edgard Blcher, 1996.

    BONDY, John Adrian; Murthy, U.S.R. Graph theory with applications. The MacMillan Press, London, fifth edition, 1982.

    FORD, L.R.; FULKERSON, D.R. Maximal Flow Through a Network. Canadian Journal of Mathematics, n.8, p.399-404, 1956.

    REZENDE, Pedro J. Algoritmos em grafos. Notas de Aula da disciplina Complexidade de Algoritmos I. Unicamp, junho 2002.