Conforme definição na seção4.1, página43, uma cobertura é um conjunto de nós que contém pelo menos uma ponta de cada aresta do grafo. Coberturas fornecem uma delimitação superior de ν(G): para qualquer cobertura K tem-se ν(G) ≤ |K|. Mas a desigualdade é usualmente estrita, mesmo quando K é uma cobertura mínima.
Uma delimitação superior mais poderosa precisa do conceito de componente ímpar. Uma componente ímpar (= odd component) de um grafo H é qualquer componente conexa de H que tem um número ímpar de nós. O número de componentes ímpares de H é denotado por oc(H).
Proposição 7.3 Para qualquer grafo G e qualquer subconjunto A de V (G), def(G) ≥ oc(G−A) − |A|, ou seja,
ν(G) ≤ 12 n −oc(G−A) + |A|, (1)
onde n := |V (G)|.
A expressão G − A denota o subgrafo de G induzido por V (G) − A. Essa notação será usada com frequência no que segue. A propósito, não é difícil verificar que o número n −oc(G−A) + |A| é par.
PROVA: Seja M um emparelhamento de G e A um subconjunto de V (G). Sejam H1, . . . , Hkas componentes ímpares de G − A.
Cada grafo Hi tem um nó exposto por M ou um nó ligado por M a A. Por outro lado,
no máximo |A| arestas de M têm uma ponta em A. Portanto, M deixa pelo menos k − |A| nós expostos. Em outras palavras, n − 2|M | ≥ k − |A|. Segue daí que |M | ≤
1
2(n − k + |A|).
A proposição tem a seguinte consequência: para provar que um dado emparelhamento M é máximo, basta exibir um conjunto A de nós tal que n − 2|M | = oc(G−A) − |A|. W. Tutte e C. Berge mostraram (1947 e 1958) que todo grafo tem um tal “certificado de maximalidade”:
Teorema 7.4 (fórmula de Tutte-Berge) Em qualquer grafo G, max
M |M | = minA 1
sendo maxM tomado sobre todos os emparelhamentos M e minA tomado sobre todos
os subconjuntos A de V (G).
Um emparelhamento é perfeito se não deixa nenhum nó exposto. Ocasionalmente usaremos a abrviatura “ep” para a expressão “emparelhamento perfeito”. A fórmula de Tutte-Berge equivale a um teorema de Tutte sobre ep’s:
Teorema 7.5 (Tutte) Um grafo G tem um emparelhamento perfeito se e somente se oc(G−A) ≤ |A| para todo subconjunto A de V (G).
Essa condição para existência de um ep é conhecida como condição de Tutte.
EXEMPLO2: A figura mostra um emparelhamento perfeito. Dizer que um grafo G tem um ep é o mesmo que dizer que ν(G) =12n, ou que def(G) = 0.
Exercícios
7.7 Mostre que minA 12(n −oc(G−A) + |A|) ≤ |K| para qualquer cobertura K.
7.8 Mostre que minA 12(n −oc(G−A) + |A|) = k se G consiste em um circuito de comprimento 2k + 1
e nada mais.
7.9 ? Mostre que, para qualquer grafo G o número1
2 n −oc(G−A) + |A| é inteiro, qualquer que seja
o subconjunto A de V (G).
7.10 Mostre que se G tem um ep então oc(G − v) = 1 para cada nó v.
7.11 ? Mostre que uma árvore T tem ep se e somente se oc(T − v) = 1 para cada nó v.
7.12 Mostre que a fórmula de Tutte-Berge (teorema7.4) vale quando G é uma árvore. (Dica: Árvores são bipartidas.)
7.13 ? Teorema de Hall. Mostre que, no caso de grafos bipartidos, a condição de Tutte equivale à se- guinte: |N (B)| ≥ |B| para todo B ⊆ P e todo B ⊆ Q, sendo (P, Q) uma bipartição do grafo e N (B) o conjunto de todos os nós adjacentes a nós de B. (Sua prova não deve usar emparelhamentos.)
[CCPS 3.21]
7.14 Use a proposição7.3para provar que o emparelhamento indicado na figura é máximo. (Dica: Veja os nós brancos.)
7.16 ? Seja G um grafo e k um inteiro positivo não maior que n/2. Construa um grafo G0 que tenha
a seguinte propriedade: G0 tem um ep se e somente se G tem um emparelhamento de tama-
nho k. (A construção deve ser “genérica”, isto é, não pode depender da estrutura de G.) Use essa construção para provar a fórmula de Tutte-Berge (teorema7.4) a partir do Teorema de Tutte (teorema7.5).[CCPS 5.5]
7.17 Teorema de Petersen. Seja G um grafo tal que G − e é conexo para cada aresta e e grau(v) = 3 para todo nó v. Use o teorema de Tutte (teorema7.5) para mostrar G tem um ep. (Dica: Mostre que |∂(C)| ≥ 3 para todo conjunto ímpar C de nós.)[CCPS 5.7]
Contração de circuitos ímpares e a prova dos teoremas
A prova dos teoremas 7.4 e 7.5 exige a introdução de duas ideias: nós essenciais e contração de circuitos.
Seja C um circuito em um grafo G. A contração (= shrinking) de C é a operação que produz um novo grafo que tem conjunto de nós (V (G) r V (C)) ∪ {C} e conjunto de arestas definido da seguinte maneira: para cada aresta vw de G tal que v ∈ V (G) r V (C), se w ∈ V (G) r V (C) então vw é aresta do novo grafo e se w ∈ V (C) então vC é aresta do novo grafo. (As eventuais “diagonais” de C não estão representadas no novo grafo.) Esse novo grafo será denotado por G×C.
(Ao contrário do que sugere a figura, a operação de contração não produz arestas “paralelas”.) A operação de contração tem a seguinte propriedade: se o circuito C é ímpar — ou seja, tem comprimento ímpar — então qualquer emparelhamento em G×C pode ser propagado para dentro de C de modo a produzir um emparelhamento em G:
Proposição 7.6 Se C é um circuito ímpar e M0 é um emparelhamento em G×C então há um emparelhamento M em G tal que M ⊆ M0 ∪ E(C) e o número de nós de G que
PROVA: Seja G0o grafo G×C. Suponha inicialmente que o nó C de G0 é coberto por M0.
Então M0 tem uma aresta da forma vC que se originou de uma aresta vw de G tal que v /∈ V (C) e w ∈ V (C). Seja M00
um ep em C − w. Então M := M0 ∪ M00
é um emparelhamento em G que tem as propriedades desejadas. O número de nós de G que M deixa expostos é igual ao número de nós de G×C que M0 deixa expostos, ou seja, n − 2|M | = n0− 2|M0|.
Suponha agora que o nó C de G×C não é coberto por M0. Nesse caso, escolha qualquer wem V (C) e repita a construção do parágrafo anterior.
Segue dessa proposição que def(G) ≤ def(G×C) para qualquer circuito ímpar C, ou seja,
ν(G) ≥ ν(G×C) + 12(|V (C)| − 1) . (2) Dizemos que o circuito C é justo (= tight) se (2) vale com igualdade, isto é, se existe um emparelhamento máximo em G que usa exatamente 12(|V (C)| − 1) arestas de C. Se todos os circuitos ímpares fossem justos, o problema de encontrar um emparelha- mento máximo em G poderia ser reduzido ao problema de emparelhamento máximo no grafo G×C. Infelizmente, nem todo circuito ímpar é justo, como mostra a figura.
Para tentar caracterizar os circuitos ímpares justos, o seguinte conceito é importante. Um nó v de um grafo G é essencial (= essential) se todo emparelhamento máximo cobre v, ou seja, se ν(G−v) < ν(G). É claro que se v é essencial então ν(G−v) = ν(G)−1.
EXEMPLO3: No grafo induzido por um circuito de comprimento par, todos os nós são essenciais. Já no grafo induzido por um circuito ímpar, nenhum nó é essencial.
Na árvore definida pela matriz de adjacências abaixo, somente os nós a e b são essenciais. a b c d e f a − 1 1 1 − − b 1 − − − 1 1 c 1 − − − − − d 1 − − − − − e − 1 − − − − f − 1 − − − −
Proposição 7.7 Se um conjunto A satisfaz a condição (1) com igualdade então todo nó de A é essencial.
PROVA: Seja v um nó em A e tome G0 := G − v. Então G0− (A r {v}) tem as mesmas componentes conexas que G − A. Portanto, ν(G0) ≤ 1
2(n − 1 −oc(G−A) + |A| − 1) < 1
Lema 7.8 Para qualquer aresta vw de um grafo G, se v e w não são essenciais então vw pertence a algum circuito ímpar justo C; ademais, C é um nó não-essencial de G×C. PROVA: Seja M1 um emparelhamento máximo que não cobre v. Seja M2 um empare-
lhamento máximo que não cobre w. Note que M1 cobre w e M2 cobre v. Considere o
grafo H induzido por M1 ⊕ M2. A componente conexa de H que contém v consiste
em um caminho simples P com origem v. Se o término de P fosse exposto por M1,
teríamos um caminho M1-aumentador, o que contradiz a maximalidade de M1. Se o
término de P fosse um nó exposto por M2 e diferente de w, o caminho (w, v) · P seria
caminho M2-aumentador, o que contradiz a maximalidade de M2. Portanto, P termina
em w e tem comprimento par. Logo, C := P · (w, v) é um circuito ímpar.
O emparelhamento máximo M1 contém (|V (C)| − 1)/2 arestas de C. Logo, C é justo.
Finalmente, M1r E(C) é um emparelhamento máximo em G×C e não cobre o nó C de
G×C.
Agora que as proposições7.6 e 7.7 e o lema 7.8 prepararam o terreno, podemos dar uma prova da fórmula de Tutte-Berge.
PROVA DO TEOREMA7.4: Seja G um grafo com n nós. A proposição7.3já mostrou que n − 2|M | ≥oc(G − A) − |A| para qualquer emparelhamente M e qualquer A ⊆ V (G). Resta mostrar que existe um emparelhamento M e um conjunto A tais que n − 2|M | ≤ oc(G − A) − |A|, ou seja, tais que M deixa no máximo oc(G − A) − |A| nós expostos. A prova é uma indução no número de arestas. Se o conjunto de arestas é vazio, a afirmação vale com M = ∅ e A = ∅. Agora suponha que o conjunto de arestas não é vazio e seja vw uma aresta qualquer.
Considere inicialmente o caso em que uma das pontas de vw é um nó essencial. Ajuste a notação (intercambinado v e w se necessário) de modo que v seja o nó essencial. Seja G0 := G − v e n0 := n − 1. Por hipótese de indução, podemos supor que G0 tem um emparelhamento M0 e um conjunto A0 tais que n0 − 2|M0| ≤ oc(G0 − A0) − |A0|. Seja
A := A0 ∪ {v} e observe que oc(G − A) = oc(G0 − A0). Seja M um emparelhamento
máximo em G e observe que |M | ≥ |M0| + 1, uma vez que ν(G − v) = ν(G) − 1. Temos então
n − 2|M | ≤ n − 2|M0| − 2 = n0− 2|M0| − 1
≤ oc(G0− A0) − |A0| − 1
= oc(G − A) − |A|
e portanto M deixa no máximo oc(G − A) − |A| nós de G expostos.
Considere agora o caso em que v e w são não-essenciais. Pelo lema7.8, G tem um cir- cuito ímpar justo, digamos C. Seja G0 := G×Ce n0 o número de nós de G0. Por hipótese de indução, podemos supor que G0 tem um emparelhamento M0e um conjunto A0tais
que n0 − 2|M0| ≤ oc(G0 − A0) − |A0|. Pelo lema
7.8, o nó C de G0 não é essencial. Pela proposição 7.7, o nó C de G0 não pode estar em A0. Logo, oc(G0 − A0) ≤
oc(G − A0), uma vez que toda componente ímpar de G0− A0, mesmo que contenha o nó C, também
emparelhamento M de G tal que n − 2|M | = n0− 2|M0|. Logo,
n − 2|M | = n0 − 2|M0|
≤ oc(G0 − A0) − |A0|
≤ oc(G − A0) − |A0|
e portanto M deixa no máximo oc(G − A0) − |A0| nós de G expostos.
Esta prova do teorema7.4 não é construtiva, ou seja, não pode servir de base para um algoritmo que calcule um emparelhamento máximo. Uma tal algoritmo será discutido nas proximas seções.
Exercícios
7.18 Critique a seguinte proposta de algoritmo para encontrar um emparelhamento máximo: contraia circuitos ímpares, recursivamente, até que o grafo não os tenha; encontre um emparelhamento máximo no grafo resultante; propague o emparelhamento para dentro dos circuitos que foram contraídos.
7.19 Seja G um grafo induzido por um caminho simples. Quais são os nós essenciais de G? 7.20 Seja G um grafo dotado de um ep. Mostre que todos os nós de G são essenciais.
7.21 A proposição7.7sugere a seguinte pergunta: se A é o conjunto de todos os nós essencias de um grafo, então A satisfaz (1) com igualdade? Responda a pergunta.
7.22 Partição de Gallai-Edmonds. Dado um grafo G, seja B o conjunto dos nós não-essenciais, C o conjunto dos vizinhos de B (ou seja, o conjunto dos nós em V (G) r B que têm algum vizinho em B), e D o conjunto V (G) r (B ∪ C). Prove que
(a) n − oc(G−A) + |A| tem valor mínimo quando A := C;
(b) para todo emparelhamento máximo M e todo v em C, existe vw em M tal que w ∈ B; (c) todo emparelhamento máximo contém um ep de G[D].
A expressão G[D] representa o subgrafo de G induzido por D.[CCPS 5.6]
7.23 Exiba a partição de Gallai-Edmonds (veja o exercício7.22) do grafo da figura.[CCPS 5.16]
7.24 Mostre que a restrição do lema7.8a grafos bipartidos é equivalente ao teorema de K˝onig (teo- rema4.3).[CCPS 5.8]
7.25 Seja G um grafo conexo cada um de cujos nós é não-essencial. Use o lema7.8para mostrar que ν(G) = (n − 1)/2.[CCPS 5.9]
7.26 Slither. O jogo Slither é jogado por duas pessoas, digamos Um e Dois, sobre um grafo G. Os jogadores se alternam: o primeiro a jogar é Um, o segundo é Dois, e assim por diante. Cada jogada consiste em escolher uma aresta que não tenha sido escolhida em nenhuma das jogadas anteriores. A cada passo, o conjunto das arestas já escolhidas deve formar um caminho simples. Perde o jogador que não conseguir fazer uma jogada. Prove que Um pode forçar uma vitória se Gtiver um ep.[CCPS 5.18]
7.27 Slither. Considere o jogo Slither do exercício7.26. Suponha que a primeira jogada de Um é uma aresta uv tal que o nó u não é essencial. Mostre que Dois pode forçar uma vitória.[CCPS 5.19]
7.28 Slither. Considere o jogo Slither do exercício 7.26. Seja (B, C, D) a decomposição de Gallai- Edmonds de G (veja o exercício7.22). Suponha que D não é vazio. Prove que Um pode forçar uma vitória.[CCPS 5.20]
7.29 Slither. Considere o jogo Slither do exercício 7.26. Seja (B, C, D) a decomposição de Gallai- Edmonds de G (veja o exercício 7.22). Suponha que os nós de todas as arestas jogadas até o momento estão em C. Suponha que o próximo jogador escolhe uma aresta que não tem ponta em C. Prove que o outro jogador pode forçar uma vitória.[CCPS 5.21]