• Nenhum resultado encontrado

Nesta sec¸c˜ao, descrevemos um algoritmo para encontrar o conjunto independente de cardinalidade m´axima comum a dois matroides.

O algoritmo para a determina¸c˜ao da interse¸c˜ao entre dois matroides, foi introduzido por Edmonds [11]. Come¸cando por se considerar um conjunto I = ∅ vai-se adicionando a I um elemento j ∈ N em cada intera¸c˜ao. Em geral ao juntarmos j em I esperamos que I + j ∈ F1∩ F2.

Essa adi¸c˜ao de elementos ao conjunto independente I ´e feita com base nos caminhos auxi- liares de aumento encontrados entre os elementos que est˜ao em I e os de N \ I.

Para que a leitura desta sec¸c˜ao se torne mais simples vamos inici´a-la com apresenta¸c˜ao e demonstra¸c˜ao de alguns resultados sobre a no¸c˜ao de caminhos de aumento. As provas dos resultados apresentadas nesta sec¸c˜ao podem ser consultadas em [18, 25].

Caminho de aumento

O conceito do caminho de aumento ´e bem conhecido para o problema da determina¸c˜ao do emparelhamento de peso m´aximo. Este conceito pode ser generalizado para o problema da determina¸c˜ao da interse¸c˜ao de dois independentes.

Seja I uma qualquer interse¸c˜ao de dois matroides, M1 = (N, F1) e M2 = (N, F2), ou seja

I ∈ F1 ∩ F2. Podemos construir um caminho de aumento P em rela¸c˜ao a I da seguinte

forma:

Escolher e1 tal que I + e1 ∈ F1.

Se I + e1 6∈ F2 ent˜ao encontrar e2 tal que I + e1 − e2 ∈ F1∩ F2.

Escolher e3 tal que I + e1− e2+ e3 ∈ F1 e I + e3 6∈ F1.

Se I + e1 − e2+ e3 6∈ F2 ent˜ao encontrar e4 tal que I + e1 − e2+ e3− e4 ∈ F1∩ F2.

O processo ´e repetido at´e que I + e1− e2+ e3− e4+ · · · + ek ∈ F2 com k ´ımpar.

P = (e1, e2, · · · , ek) ´e um caminho de aumento tal que ei ∈ N \I para i ´ımpar e ei ∈ I

para i par.

Formalmente,

Seja Pi = (e1, e2, · · · , ei), k ≤ i. P diz-se um caminho alternado relativamente a I se:

• Para todo i par sp2(I + e1− e2+ · · · − ei) = sp2(I).

Portanto I + e1− e2+ · · · − ei ∈ F2.

• Para todo i ´ımpar, i > 1, sp1(I + e3− e4+ · · · + ei) = sp1(I + e1).

Portanto I + e3− e4+ · · · + ei ∈ F1.

Onde spi com i = 1, 2 ´e conjunto gerado associado ao matroide Mi. Se adicionalmente

|P | = k ´e ´ımpar e I + e1 − e2+ e3− e4+ · · · + ek ∈ F2, P diz-se um caminho de aumento

relativamente a I.

Dado um conjunto I ∈ F e j ∈ N , vamos designar por Cj o ´unico ciclo que contem

I + j se I + j 6∈ F e Cj = ∅ caso contr´ario.

A Figura 3.5, exemplifica um procedimento para determinar caminhos de aumento. Considerem-se o conjunto independente I ∈ F1∩F2e os ciclos C

(1) i , C

(2)

i , i = 1, 2 associados

aos matroides M1 e M2, respetivamente, define-se por Gaux = (N, A(1) ∪ A(2)) o grafo

auxiliar onde A(1) = {(ei, ej) : ej ∈ N \I, ei ∈ C (1) j − ej}, A(2) = {(ej, ei) : ej ∈ N \I, ei ∈ C (2) j − ej}. Seja T1 = {ej ∈ N \I : I + ej ∈ F1}, T2 = {ej ∈ N \I : I + ej ∈ F2},

onde T1 ´e o conjunto de todas as ra´ızes dos caminhos auxiliares de aumento e T2 o conjunto

de todas as cabe¸cas dos caminhos auxiliares de aumento com raiz em T1. Vamos determinar

o caminho mais curto de T1 a T2.

Este caminho vai-nos fornecer um caminho de aumento. Se T1 ∩ T2 = ∅, temos um

caminho de comprimento nulo, pode-se ent˜ao adicionar a I um qualquer elemento de T1∩T2.

Lema 3.1 Seja I ∈ F1∩ F2. Seja y0, x1, y1, · · · xs, ys o caminho mais curto de y0 para ys

(de menor cardinalidade) no grafo auxiliar Gaux, com y0 ∈ T1 e ys∈ T2. Ent˜ao

I0 = (I ∪ {y0, y1, · · · , ys})\{x1, x2, · · · , xs} ∈ F1∩ F2.

Prova: (ver Korte [2008]) Em primeiro lugar vamos mostrar que I + y0, x1, x2, · · · , xs

e y1, y2, · · · , ys satisfazem os axiomas do Lema A.1 (ver Apˆendice A) em rela¸c˜ao a F1.

Observe-se que I + y0 ∈ F1 isto porque y0 ∈ T1. O axioma (i) ´e satisfeito porque (xj, yj) ∈

A(1) ∀j, e o (ii) tamb´em ´e satisfeito, porque caso contr´ario o caminho y0x1y1· · · xsys n˜ao

seria o mais curto. Assim conclu´ımos que I0 ∈ F1. Em segundo lugar vamos provar se-

guindo um racioc´ınio an´alogo que I +{ys}, xs−1, xs−2, · · · , x1 e ys−1, ys−2, · · · , y0 satisfazem

os axiomas do Lema A.1 (ver Apˆendice A) em rela¸c˜ao a F2. Observe que I + ys ∈ F2 isto

porque ys ∈ T2. O axioma (i) ´e satisfeito porque (yj−1, xj) ∈ A(2) ∀j, e o (ii) tamb´em ´e

satisfeito, porque, caso contr´ario, o caminho y0x1y1· · · xsys n˜ao seria o mais curto. Assim

conclu´ımos que I0 ∈ F2. 2

Vamos agora provar que se n˜ao existe um caminho de T1 − T2 em Gaux, ent˜ao I ´e

m´aximo.

Teorema 3.1 Uma interse¸c˜ao I tem cardinalidade m´axima se e s´o se n˜ao admite nenhum caminho de T1− T2 em Gaux.

Prova: (Ver Schrijver [2010]) Se existir um caminho de T1 − T2 em Gaux, ent˜ao existe

um caminho mais curto de T1 − T2. Aplicando o Lema 3.1 obt´em-se um conjunto I0 ∈

F1∩ F2 de maior cardinalidade. Suponhamos que n˜ao existe nenhum caminho de aumento

de T1− T2 em Gaux. Portanto, existe um subconjunto X ⊆ N que cont´em T2 de tal modo

que X ∩ T1 = ∅ e tal que n˜ao existe arco de Gaux incidente em X (podemos considerar

X como um conjunto de v´ertices n˜ao ating´ıveis a partir de T1). Sejam α1 e α2 as fun¸c˜ao

carater´ısticas de F1 e F2, respetivamente, vamos provar que,

α1(X) + α2(N \X) = |I|, I ∈ F1∩ F2. (3.1)

Para esse fim mostramos primeiro que

α1(X) = |I ∩ X|. (3.2)

Claramente, como I ∩ X ∈ F1, sabemos que α1(X) ≥ |I ∩ X|. Suponhamos que α1(X) >

|I ∩ X|, ent˜ao existe um x ∈ X\I de modo que (I ∩ X) + x ∈ F1. Uma vez que I ∈ F1 isso

implica que existe um conjunto Y ∈ F1 com |Y | ≥ |I| e (I ∩ X) + x ⊆ Y ⊆ I + x. Ent˜ao

Y = I + x ou Y = {(I − y) + x} para algum y ∈ I\X. Na primeira alternativa, x ∈ T1,

que incide em X, o que contradiz a defini¸c˜ao de X (com y 6∈ X e x ∈ X). Isso prova a equa¸c˜ao (3.2). Da mesma forma temos que α2(N \X) = |I\X|. Daqui resulta (3.1). Agora

(3.1) implica que, para qualquer conjunto Y ∈ (F1∩ F2), temos

|Y | = |Y ∩ X| + |Y \X| ≤ α1(X) + α2(N \X) = |I|. (3.3)

Assim I ∈ F1 ∩ F2 ´e uma interse¸c˜ao de cardinalidade m´axima. 2

Da prova da equa¸c˜ao (3.1) resulta o seguinte teorema de interse¸c˜ao de matroides, Teorema 3.2 (Edmonds [1970]) Seja M1 = (N, F1) e M2 = (N, F2) dois matroides com

fun¸c˜ao carater´ıstica α1 e α2 respetivamente. Ent˜ao,

max{| I |: I ∈ F1∩ F2} = min{α1(X) + α2(N \X) : X ⊆ N }. (3.4)

Portanto do teorema da interse¸c˜ao de matroides resulta o bem conhecido resultado de K¨onig-Egervary:

• Teorema: Num grafo bipartido a cardinalidade de um emparelhamento m´aximo ´e igual `a cardinalidade de uma cobertura por v´ertices m´ınima.

A prova desse resultado (Teorema de K¨onig) poder ser consultado em [24].

A cobertura por v´ertices ´e tamb´em um dos exemplos da interse¸c˜ao de dois matroides. Dado um grafo G = (V, E) designa-se por cobertura por v´ertices a um subconjunto de v´ertices S ⊆ V relativamente ao qual cada aresta e ∈ E tem pelo menos um extremo em S. Tomando como exemplo o grafo da Figura 3.1, tem-se que S = {1, 2, 5, 6} ´e uma cobertura por v´ertices.

Se S ´e uma cobertura por v´ertices e n˜ao existe uma cobertura por v´ertices S0 tal que | S0 |≤| S | diz-se que S ´e uma cobertura por v´ertices m´ınima.

Tendo em conta a no¸c˜ao de caminho de aumento visto anteriormente, o algoritmo para o problema da determina¸c˜ao da interse¸c˜ao de matroides de cardinalidade m´axima pode ser descrito da seguinte forma [21]:

Algoritmo 3.1 Algoritmo para interse¸c˜ao de matroides de cardinalidade m´axima. Input: M1 = (N, F1) e M2 = (N, F2)

Passo 0 Seja I ∈ F1∩ F2 (I pode ser o conjunto vazio).

Passo 1 (1.0) Para cada ei ∈ N \ I encontrar ciclo (caso existam) C (1) i , C

(2) i .

Etiquetar com ∅+ todo o elemento em ei ∈ N \ sp1(I).

(1.1) Se todas as etiquetas foram pesquisadas seguir para o Passo 3. Caso contr´ario, determinar o elemento ei por pesquisar com etiqueta

mais antiga.

Se a etiqueta tem sinal + seguir para (1.2). Se tem sinal − seguir para (1.3)

(1.2) Pesquisar a etiqueta + em ei. Se I ∪ {ei} ∈ F2 seguir para o Passo 2.

Caso contr´ario atribuir etiqueta i− a cada elemento n˜ao etiquetado em Ci(2), voltar a (1.1)

(1.3) Pesquisar a etiqueta − em ei atribuindo a etiqueta i+ a cada

elemento n˜ao etiquetado ej tal que ei ∈ C (1)

j . Voltar a (1.1).

Passo 2 Um caminho de aumento P foi encontrada no Passo 1.2. Adicionar a I todos os elementos em P com etiqueta + e remover de I todos os elementos em P com etiqueta −. Remover todas as etiquetas e voltar ao Passo 1.

Passo 3 N˜ao existe qualquer caminho de aumento. I ´e o conjunto de cardinalidade m´axima. Parar.

Nota: Ci(1) ´e o ´unico ciclo (caso exista) de M1 em I + ei para ei ∈ N \ I. C (2) i ´e o

´

unico ciclo (caso exista) de M2 em I + ei para ei ∈ N \ I.

Exemplo 3.2 Considere o matroide gr´afico M1 = (E, F1) definido no grafo seguinte:

Figura 3.6: Ilustra¸c˜ao do grafo G = (V, E).

e o matroide M2 = (E, F2), para E = {e1, e2, e3, e4, e5, e6, e7, e8, e9} tal que I ∈ F2 se e

Comecemos com o conjunto em F1 ∩ F2 maximal que n˜ao ´e m´aximo I = {e2, e3, e7, e8}.

Podemos determinar um caminho de aumento P em rela¸c˜ao a I. Cada elemento de P corresponde a elementos dos matroides M1 e M2. Cada caminho de aumento cont´em um

elemento de tal modo que ei ∈ N \sp1(I), i.e, ei pode ser adicionado em I sem formar ciclo

em M1, onde

sp1(I) = {e2, e3, e7, e8, e1, e9}.

Assim sendo existem trˆes caminhos de aumento com raiz em e4, e5 e e6 respetivamente,

cada um deles ser´a constru´ıdo de forma a passar atrav´es de uma alternˆancia entre os elementos que est˜ao no conjunto admiss´ıvel I e os que n˜ao est˜ao.

Partindo das ra´ızes e4, e5 e e6, e tendo em conta os ciclos encontrados

Ce(1)1 = {e2, e3, e1} C (1) e9 = {e7, e8, e9} Ce(2)4 = {e3, e8, e4} C (2) e5 = {e3, e8, e5} C (2) e6 = {e3, e8, e6}

o algoritmo procede do seguinte modo:

se adicionarmos o elemento e4 ao conjunto admiss´ıvel forma ciclo C (2)

e4 , o que nos leva a

remover e3 ou e8. O mesmo acontece ao adicionarmos e5 ou e6, forma ciclo C (2) e5 ou C

(2) e6 ,

respetivamente, mas como e3 ou e8 j´a est˜ao no caminho com ra´ız em e4, por isso n˜ao se

analisam as ra´ızes e5 e e6.

Vejamos agora o que acontece no matroide M1 se removemos qualquer um dos elementos

e3 ou e8 do conjunto I. Removendo e3 permite que e1 seja adicionada em I sem formar

ciclo em M1. Por outro lado, removendo e8 permite adicionar e9 sem formar ciclo em

M1. Consideremos agora o efeito em M2 na adi¸c˜ao de qualquer um dos elementos e1, e8.

A adi¸c˜ao de qualquer um desses elementos n˜ao forma ciclo em M2. Percorrendo um ca-

minho no sentido contr´ario, partindo de e1 e e9, identificam-se dois caminhos de aumento

P1 = {e4, e3, e1} e P2 = {e4, e8, e9}. Escolhendo arbitrariamente P1, adicionamos ao I os

elementos e4 e e1 removendo e3 para obter uma nova interse¸c˜ao I0 = {e1, e2, e7, e8, e4}.

Este processo pode ser visto de uma forma mais simples como por exemplo,

e1 e2 e3 e4 e5 e6 e7 e8 e9 ei ∈ N \sp1(I) ∅+ ∅+ ∅+ e4 ∅− ∅− e5 e6 e3 ∅+ e8 ∅+

Documentos relacionados