• Nenhum resultado encontrado

Matroides e interseção de matroides em problemas de otimização combinatória

N/A
N/A
Protected

Academic year: 2021

Share "Matroides e interseção de matroides em problemas de otimização combinatória"

Copied!
94
0
0

Texto

(1)

Universidade de Aveiro Departamento de Matem´atica, 2012

Ayagi

da Mota Dias

(2)
(3)

Universidade de Aveiro Departamento de Matem´atica, 2012

Ayagi

da Mota Dias

Matroides e interse¸

ao de Matroides em Problemas

de otimiza¸

ao Combinat´

oria

Disserta¸c˜ao apresentada `a Universidade de Aveiro para cumprimento dos requisitos necess´arios `a obten¸c˜ao do grau de Mestre em Matem´atica e Aplica¸c˜oes, ´area de especializa¸c˜ao Matem´atica Empresarial e Tecnol´ogica, realizada sob a orienta¸c˜ao cient´ıfica da Doutor Agostinho Miguel Mendes Agra, Professor Auxiliar do Departamento de Matem´atica da Universidade de Aveiro.

(4)
(5)

o j´uri / the jury

presidente / president Professora Doutora Maria Paula Lopes Dos Reis Carvalho Professora Auxiliar do Departamento de Matem´atica da Universidade de Aveiro

vogais / examiners committee Professora Doutora L´ıgia Duque Baptista Amado

Professora Auxiliar do Departamento de Matem´atica do Instituto Superior de Economia e Gest˜ao da Universidade T´ecnica de Lisboa

Professor Doutor Agostinho Miguel Mendes Agra

Professor Auxiliar do Departamento de Matem´atica da Universidade de Aveiro (orientador)

(6)
(7)

agradecimentos / acknowledgements

Em primeiro lugar, ao Dr. Agostinho Miguel Mendes Agra, com quem tive a honra e o privil´egio de trabalhar nestes anos de mestrado, agrade¸co o seu trabalho dedica¸c˜ao e disponibilidade e acima de tudo, as suas palavras de encorajamento e est´ımulo.

A Universidade de Aveiro, e em particular ao Departamento de Ma-tem´atica pela oportunidade e pelas excelentes condi¸c˜oes proporciona-das para desenvolver este trabalho.

A Instituto Superior Polit´ecnico de S˜ao Tom´e e Principe na parceria com a Embaixada de Fran¸ca pelo financiamento deste mestrado. A minha fam´ılia e amigos, pelo apoio, compreens˜ao, paciˆencia e pelo estimulo constante `a conclus˜ao deste trabalho.

A todos os que, directa ou indirectamente, contribu´ıram para este tra-balho e que fariam uma extensa lista.

(8)
(9)

Palavras-chave matroides, interse¸c˜ao de matroides, poliedro inteiros, polimatroides, desigualdades de cobertura

Resumo

Nesta tese s˜ao revistos conceitos b´asicos que relacionam a teoria dos matroides com a otimiza¸c˜ao combinat´oria. S˜ao expostos, de forma uniformizada, v´arios resultados e conceitos bem conhecidos, mas apresentados em textos diversos. Al´em dos conceitos b´asicos s˜ao igualmente apresentados algoritmos exatos que permitem resolver problemas de otimiza¸c˜ao cujo conjunto de solu¸c˜oes admiss´ıveis forma um matroide ou corresponde `a interse¸c˜ao de dois matroides.

´

E dado ˆenfase ao estudo poli´edrico dos problemas de otimiza¸c˜ao. Em particular s˜ao estudadas algumas rela¸c˜oes da fun¸c˜ao carater´ıstica com restri¸c˜oes e desigualdades v´alidas para v´arios problemas de otimiza¸c˜ao bem conhecidos, como o problema do Saco-Mochila e da ´Arvore de Suporte de Custo M´ınimo. Seguindo Amado, 1997, ´e estudada a estrutura poli´edrica de fam´ılias particulares do problema de saco-mochila cuja descri¸c˜ao poli´edrica ´e feita com base em desigualdades de cobertura estendida. Com base nessa fam´ılia s˜ao apresentados minorantes e majorantes para o problema do saco-mochila.

(10)
(11)

Keywords matroids; matroid intersections; integral polyhedra; polymatroids; cover inequalities.

Abstract In this thesis we revise basic concepts relating matroid theory with combinatorial otimization. We present, in an unified way, several well-known results and concepts that are given in different sources. In addition to the basic concepts we also give exact algorithms for otimization problems where the feasible set is either a matroid or it can be obtained as the intersection of two matroids.

We focus on the polyhedral study of the otimization problem. In particular, we study the relation between the characteristic function and constraints and valid inequalities for several well-known optimi-zation problems as the knapsack problem and the minimum spanning tree. Following Amado, 1997, we study the polyhedral of particular families of the knapsack problem whose polyhedral description is based on extended cover inequalities. Based on those families we discuss lower and upper bounds for the knapsack problem.

(12)
(13)
(14)

Conte´

udo

Conte´udo i

Lista de Figuras 1

1 Introdu¸c˜ao 3

2 Sistemas Independentes e Matroides 5

2.1 Introdu¸c˜ao . . . 5

2.2 Matroides: defini¸c˜ao e propriedades . . . 7

2.2.1 Exemplo de Matroides . . . 7

2.2.2 Propriedades e conceitos b´asicos . . . 9

2.2.3 Dualidade de Matroides . . . 14

2.3 otimiza¸c˜ao de sistemas independentes . . . 16

2.3.1 Algoritmo Guloso . . . 17

3 Interse¸c˜ao de Matroides 23 3.1 Introdu¸c˜ao . . . 23

3.2 Exemplos de interse¸c˜ao de Matroides . . . 25

3.3 Interse¸c˜ao de Cardinalidade M´axima . . . 28

3.4 Interse¸c˜ao de Matroides de Peso M´aximo . . . 35

3.5 Uni˜ao de matroides . . . 38

4 Poliedros Inteiros e Matroides 42 4.1 Introdu¸c˜ao . . . 42

4.2 Desigualdade carater´ıstica . . . 43

4.2.1 Exemplos da desigualdade carater´ıstica . . . 44

4.2.2 Facetas do Poliedro Conv(X(F)) . . . 48

4.3 Polimatroide . . . 52

4.3.1 Exemplos de Polimatroides . . . 54

4.3.2 Interse¸c˜ao de Poliedros Polimatroides . . . 55

(15)

5 Mochilas Bin´arias 61 5.1 Introdu¸c˜ao . . . 61 5.2 Mochilas Bin´arias . . . 62 6 Majorantes e minorantes matroidais para o problema da Mochila Bin´aria 69 6.1 Majorantes . . . 69 6.2 Minorantes . . . 70

7 Conclus˜ao 72

A Propriedade de um conjunto independente 73

B Alguns resultados sobre Conjuntos Convexos e Poliedros em Programa¸c˜ao

Inteira 74

(16)

Lista de Figuras

2.1 Ilustra¸c˜ao do grafo G = (V, E). . . 7

2.2 Ilustra¸c˜ao do grafo G = (V, E). . . 8

2.3 Ilustra¸c˜ao do grafo G = (V, E) do Exemplo 2.7. . . 15

2.4 Ilustra¸c˜ao da base B. . . 16

2.5 Ilustra¸c˜ao da co-base BD. . . . . 16

2.6 Grafo G com peso associado. . . 19

2.7 Ilustra¸c˜ao da base B = B12. . . 22

3.1 Ilustra¸c˜ao do grafo bipartido G = (V1, V2, E). . . 23

3.2 Ilustra¸c˜ao do digrafo ~G e de uma arborescˆencia I com raiz no v´ertice 1. . . 26

3.3 Ilustra¸c˜ao do digrafo ~G. . . 27

3.4 Ilustra¸c˜ao do digrafo ~G0. . . . 27

3.5 Ilustra¸c˜ao do grafo auxiliar Gaux. . . 29

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

3.7 Ilustra¸c˜ao de caminhos de aumento no grafo Gaux . . . 34

3.8 Ilustra¸c˜ao de caminhos de aumento no grafo Gaux. . . 37

4.1 Ilustra¸c˜ao de facetas de um poliedro. . . 48

4.2 Ilustra¸c˜ao do Grafo cr´ıtico GX(F). . . 50

4.3 Ilustra¸c˜ao da | S1 | + | S2\CE |. . . 57

(17)
(18)

Cap´ıtulo 1

Introdu¸

ao

O conceito de matroide tem a sua origem num artigo de Hassler Whitney, publicado em 1935 [29]. Neste artigo Whitney apresenta semelhan¸cas entre os conceitos de independˆencia e carater´ıstica em teoria de grafos e os conceitos de independˆencia linear e dimens˜ao no estudo dos espa¸cos vetoriais. Neste trabalho define matroides a partir do conceito de in-dependˆencia das colunas de uma matriz. Anos depois Tutte [26] caracteriza os matroides que s˜ao definidos a partir dos grafos.

A teoria dos matroides permite generalizar v´arios resultados conhecidos em campos es-pec´ıficos da matem´atica. Em particular, como iremos ver mais adiante, permite generalizar conjuntos de solu¸c˜oes admiss´ıveis de v´arios problemas de otimiza¸c˜ao combinat´oria. Deste modo, estudando problemas de otimiza¸c˜ao sobre matroides ou interse¸c˜ao de matroides, estamos a estudar simultaneamente v´arios problemas de otimiza¸c˜ao. Esta ´e precisamente uma das vantagens do estudo de matroides.

Nesta tese s˜ao revistos conceitos b´asicos que relacionam a teoria dos matroides com a otimiza¸c˜ao combinat´oria. Tamb´em abordamos quer os problemas de otimiza¸c˜ao sobre sistemas independentes quer os problemas de otimiza¸c˜ao sobre interse¸c˜ao de sistemas inde-pendentes. Em particular, estudaremos casos particulares de otimiza¸c˜ao sobre interse¸c˜oes de matroides.

O enfoque desta tese est´a colocado no estudo poli´edrico dos problemas de otimiza¸c˜ao, em particular nos problemas de saco-mochila. Revemos as condi¸c˜oes em que as desigualda-des de cobertura e cobertura estendida definem facetas do envolvente convexo do conjunto das solu¸c˜oes admiss´ıveis e estudamos casos particulares onde estas faces s˜ao suficientes para descrever o envolvente convexo. Com base nesses casos discutimos minorantes e majorante para o problema geral.

O cap´ıtulo 2 ´e dedicado `a apresenta¸c˜ao dos conceitos b´asicos da teoria de matroides, isto ´e, defini¸c˜oes e propriedades fundamentais para uma melhor compreens˜ao desta dis-serta¸c˜ao. Tamb´em ´e apresentado neste cap´ıtulo o algoritmo guloso para encontrar uma solu¸c˜ao ´otima em casos em que um sistema independente define um matroide.

(19)

No cap´ıtulo 3 s˜ao apresentados alguns exemplos de solu¸c˜ao admiss´ıvel de problemas de otimiza¸c˜ao combinat´oria como exemplos de problema de interse¸c˜ao de matroides. Vamos tamb´em apresentar neste cap´ıtulo algoritmos que permitem encontrar, polinomialmente, uma solu¸c˜ao admiss´ıvel para o problema de interse¸c˜ao de dois matroides. Os problemas de interse¸c˜ao de trˆes ou mais matroides s˜ao NP-dif´ıceis e n˜ao ser˜ao abordados neste trabalho. No cap´ıtulo 4 ´e estabelecida uma rela¸c˜ao entre a teoria de matroides e a programa¸c˜ao linear e programa¸c˜ao inteira.

No cap´ıtulo 5 ´e feito um pequeno estudo sobre o problema de mochilas bin´arias, mais precisamente, aquelas instˆancias de mochilas bin´arias em que a fam´ılia de subconjuntos de N associados `a mochila, {I ⊆ N : P

j∈Iwj ≤ b}, forma um matroide sobre o conjunto

suporte N . Os problemas de mochilas nestas condi¸c˜oes s˜ao facilmente resol´uveis pelo al-goritmo guloso, da´ı serem chamadas de mochilas glutonas.

No cap´ıtulo 6 s˜ao discutidos majorantes e minorantes para o problema do saco-mochila baseados em mochilas matroidais, isto ´e, mochilas cujo conjunto das solu¸c˜oes admiss´ıveis forma um matroide.

Finalmente no ´ultimo cap´ıtulo, faz-se uma s´ıntese conclusiva desta disserta¸c˜ao.

Uma vez que, para melhor compreender o texto principal, o leitor deve ter presente alguns resultados sobre a programa¸c˜ao inteira, no apˆendice B ´e feito um pequeno resumo deste tema, com o objectivo de facilitar a leitura deste trabalho.

(20)

Cap´ıtulo 2

Sistemas Independentes e Matroides

2.1

Introdu¸

ao

Neste cap´ıtulo apresentamos alguns resultados b´asicos sobre a teoria dos matroides. Um matroide pode ser definido partindo das propriedades de um sistema independente. Defini¸c˜ao 2.1 Seja N = {1, . . . , n} e seja F uma fam´ılia de subconjunto de N . Diz-se que (N, F) ´e um sistema independente se:

(i) ∅ ∈ F,

(ii) se I1 ∈ F e I2 ⊂ I1 ent˜ao I2 ∈ F.

Os conjuntos I ⊆ N : I ∈ F designam-se por conjuntos independentes e os conjuntos I ⊆ N : I 6∈ F designam-se por conjuntos dependentes.

Ao longo desse trabalho iremos ter frequentemente necessidade de adicionar e remover um elemento de um conjunto, por exemplo X. Em tais casos, usaremos a nota¸c˜ao X + j e X − j em vez de X ∪ {j} e X\{j}.

Dado um sistema independente (N, F) diz-se que I ∈ F ´e um conjunto independente maximal se I + j 6∈ F, ∀ j ∈ N \I. E vamos designar por FM a fam´ılia de conjuntos

inde-pendentes maximais.

Um conjunto independente maximal I ∈ FM ´e m´aximo (ou de cardinalidade m´axima)

se

| I0 | ≤ | I |, ∀ I0 ∈ F.

Seja X ⊆ N . Designamos por carater´ıstica de X e representamos por α(X), a maior cardinalidade de entre os subconjuntos independentes de X:

α(X) = max

I⊆X{| I | : I ∈ F}.

Ent˜ao F = {X ⊆ N : α(X) =| X |}. O sistema (N, F) pode ser definido alternativamente por (N, α).

(21)

Exemplo 2.1 Seja N = {1, 2, · · · , n} e F = {I ⊆ N : Σj∈Iwj ≤ b} com wj > 0, j ∈

N e b > 0, o conjunto de solu¸c˜oes admiss´ıveis de uma instˆancia de um problema de saco mochila.

Facilmente se prova que (N, F) ´e um sistema independente. I = ∅ ∈ F pois b > 0. Suponhamos que I ⊆ N : I ∈ F com I 6= ∅. Se S ⊂ I ent˜ao S ∈ F, caso contr´ario, P

i∈Swi +

P

j∈I\Swj >

P

j∈Swj ≥ b, ou seja, I 6∈ F o que contradiz o facto de I ser um

independente.

Tomando, por exemplo, N = {1, 2, 3, 4, 5} e F = {I ⊆ N : Σj∈Iwj ≤ b} onde w1 = 4, w2 =

3, w3 = 5, w4 = 2, w5 = 4 e b = 9, o conjunto de solu¸c˜oes admiss´ıveis F ´e expresso da

seguinte forma:

F = {∅, {1}, {2}, {3}, {4}, {5}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {3, 5}, {4, 5}, {1, 2, 4}, {2, 4, 5}}.

Assim, (N, F) ´e um sistema independente. Os conjuntos

{1, 2, 3}, {1, 2, 5}, {1, 3, 4}, {1, 3, 5}, {1, 4, 5}, {2, 3, 4}, {2, 3, 5}, {3, 4, 5}, {1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 4, 5}, {1, 3, 4, 5}, {2, 3, 4, 5}, {1, 2, 3, 4, 5}

s˜ao dependentes, porque, n˜ao pertencem a F. A fam´ılia de subconjuntos maximais ´e dada por

FM = {{1, 3}, {1, 5}, {2, 3}, {3, 4}, {3, 5}, {1, 2, 4}, {2, 4, 5}}

e os seus subconjuntos I1 = {1, 2, 4} e I2 = {2, 4, 5} s˜ao conjuntos independentes m´aximos.

Exemplo 2.2 Seja A a matriz

A =   1 1 1 2 0 1 0 1 1 0 0 1  .

Seja N = {1, 2, 3, 4} e F = {I ⊆ N : colunas com ´ındices em I s˜ao linearmente independentes}. Ent˜ao,

F = {∅, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}, {1, 2, 3}, {1, 3, 4}, {2, 3, 4}}.

Assim, (N, F) ´e um sistema independente. O conjunto {1, 2, 4} n˜ao pertence a F logo {1, 2, 4} ´e um conjunto dependente, isto ´e, as colunas 1, 2 e 4 s˜ao linearmente dependentes.

FM = {{1, 2, 3}, {1, 3, 4}, {2, 3, 4}}.

Os conjuntos I1 = {1, 2, 3}, I2 = {2, 3, 4} e I3 = {1, 3, 4} s˜ao conjuntos independentes

(22)

Exemplo 2.3 Seja G um grafo G = (V, E) onde V = {1, 2, 3, 4, 5} e

E = {e1, e2, e3, e4, e5, e6} s˜ao o conjunto dos v´ertices e das arestas, respetivamente, do grafo

(ver Figura 2.1). Seja F = {I ⊂ V : i, j ∈ I se e s´o se i, j n˜ao s˜ao v´ertices adjacentes}.

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

F= {∅, {1}, {2}, {3}, {4}, {5}, {1, 3}, {1, 5}, {3, 4}, {3, 5}, {1, 3, 5}}.

O par (V, F) ´e um sistema independente e todos os conjuntos de v´ertices que s˜ao adjacentes em G formam um conjunto dependente. Tem-se FM = {{2}, {3, 4}, {1, 3, 5}}. I1 = {1, 3, 5}

´

e o ´unico conjunto independente m´aximo.

2.2

Matroides: defini¸

ao e propriedades

Existem v´arias formas equivalentes de definir um matroide. Aqui, por´em definiremos um matroide em termos das cardinalidades dos seus conjuntos independentes. Para um estudo mais completo, poder-se-´a consultar [7, 18, 21].

Defini¸c˜ao 2.2 M = (N, F) diz-se um matroide se M ´e um sistema independente, e se para todo X ⊆ N , quaisquer dois conjuntos independentes maximais I, I0 ⊆ X tˆem a mesma cardinalidade, ou seja,

| I |=| I0 |, ∀ I, I0conjunto independente maximal de X.

Propriedade 2.1 Se (N, F) ´e um matroide ent˜ao o sistema independente (X, FX) ´e um

matroide para todo X ⊆ N onde FX = {I ∈ F : I ⊂ X}.

2.2.1

Exemplo de Matroides

Partindo da defini¸c˜ao do Exemplo 2.2 podemos dizer que o sistema independente do Exemplo 2.2 visto anteriormente ´e um matroide, mas os sistemas independentes apresen-tados nos Exemplos 2.1 e 2.3 n˜ao s˜ao matroides.

(23)

Exemplo 2.4 Seja M = (N, F) definido no Exemplo 2.2. Tem-se que para todo X ⊆ N os subconjuntos independentes maximais de X tˆem a mesma cardinalidade.

Seja M = (N, F) e F dados no Exemplo 2.1. Como se verificou no Exemplo 2.1 a fam´ılia de conjuntos independentes maximais ´e

FM = {{1, 3}, {1, 5}, {2, 3}, {3, 4}, {3, 5}, {1, 2, 4}, {2, 4, 5}}.

Tem-se por exemplo que I1 = {1, 3} ∈ FM e I2 = {1, 2, 4} ∈ FM assim vem que | I1 |=

2 6=| I2 |= 3 ou seja M n˜ao ´e um matroide. O mesmo acontece no Exemplo 2.3.

Proposi¸c˜ao 2.1 Sejam m e n inteiros n˜ao negativos tais que m ≤ n. Seja N = {1, · · · , n}. Se F = {I ⊆ N : | I |≤ m}, ent˜ao M = (N, F) ´e um matroide, que representamos por Um,n

e chamamos de matroide uniforme.

Exemplo 2.5 O matroide U2,4 ´e um matroide uniforme com o conjunto de base N =

{1, 2, 3, 4} e os independentes de F formados por dois ou menos elementos. Assim, F= {∅, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}}.

Facilmente vemos que os subconjuntos independentes maximais de cada X ⊆ N s˜ao todos eles m´aximos, ou seja, tˆem a mesma cardinalidade.

Proposi¸c˜ao 2.2 Seja um grafo G = (V, E) e seja F formada por todos os conjuntos de arestas de G que n˜ao formam um ciclo. Ent˜ao M = (E, F) ´e um matroide, que se denomina por matroide gr´afico.

Exemplo 2.6 Seja G = (V, E) dado na Figura (4.1) a fam´ılia de conjuntos independentes

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

F = {∅, {e1}, {e2}, {e3}, {e4}, {e1, e2}, {e1, e3}, {e1, e4}, {e2, e3}, {e2, e4}, {e3, e4},

{e1, e2, e3}, {e1, e2, e4}, {e1, e3, e4}, {e2, e3, e4}},

e os conjuntos independentes maximais, de cada subgrafo, s˜ao as ´arvores geradoras desse subgrafo, e tˆem a mesma cardinalidade.

(24)

Proposi¸c˜ao 2.3 Seja A uma matriz com colunas a1, · · · , an e sejam N o conjunto das

colunas da matriz A, ou seja, N = {a1, · · · , an} e F formado por conjuntos de elementos

de N que s˜ao linearmente independentes em N . Ent˜ao M = (N, F) ´e um matroide, que se designa por matroide matricial (ver o Exemplo 2.2).

Proposi¸c˜ao 2.4 Seja N = {1, 2, · · · , n} e seja F uma parti¸c˜ao finita de N em k conjuntos disjuntos F = {F1, · · · , Fk} e sejam di inteiros n˜ao negativos, i ∈ {1, 2, · · · , k}. Ent˜ao

M = (N, F) ´e um matroide onde

F= {I : I ⊂ N, | I ∩ Fi |≤ di, i = 1, · · · , k}.

Este matroide ´e conhecido por matroide da parti¸c˜ao (ver [21, 22]).

Proposi¸c˜ao 2.5 Seja A = {A1, A2, · · · , Ak} uma fam´ılia de subconjuntos (n˜ao

neces-sariamente distintos) de E = {e1, e2, · · · , en}. Um conjunto transversal ou sistema de

representantes distintos ´e um conjunto {e1, e2, · · · , ek}, tal que, ei ∈ Ai.

Seja M = (E, F) tal que I ⊆ E, I ∈ F se e s´o se I ´e um sistema de representantes distintos de uma subcolec¸c˜ao de A = {A1, A2, · · · , Ak}. O sistema M = (E, F) ´e um matroide dito

matroide transversal.

Sendo por exemplo E = {e1, e2, e3, e4} e A = {A1, A2} com A1 = {e1, e2, e3} e A2 =

{e2, e3, e4}. A fam´ılia de conjuntos independentes ´e dado por

F= {∅, {e1}, {e2}, {e3}, {e4}, {e1, e2}, {e1, e3}, {e1, e4}, {e2, e3}, {e2, e4}, {e3, e4}}.

2.2.2

Propriedades e conceitos b´

asicos

Nesta sec¸c˜ao iremos apresentar os conceitos e propriedades fundamentais da teoria dos matroides necess´ario para este trabalho.

Teorema 2.1 Seja (N, F) um sistema independente. Ent˜ao as afirma¸c˜oes seguintes s˜ao equivalentes;

(i) (N, F) ´e um matroide, isto ´e, para todo X ⊂ N, I e I0 s˜ao subconjuntos maximais de X em F, ent˜ao | I |=| I0 |;

(ii) Sejam In, In+1 ∈ F contendo n e n + 1 elementos respetivamente. Ent˜ao

∃j ∈ In+1\In tal que In+ j ∈ F.

Prova: (i) ⇒ (ii) Suponhamos que se verifica (i). Sejam In, In+1 ∈ F tal que | In |= n e

| In+1 |= n + 1. Seja X = In+ In+1. Por (i) resulta que In n˜ao pode ser maximal em X.

(25)

(ii) ⇒ (i) Suponhamos que se verifica (ii) e que I e I0 s˜ao subconjuntos maximais de F tais que | I |<| I0 |. Seja I00 ⊂ I0 tal que | I00 |=| I | +1. Ent˜ao, por (ii) ∃j ∈ I00\ I

tal que I + j ∈ F o que contraria a hip´otese de I ser maximal. 2 Defini¸c˜ao 2.3 Seja M = (N, F) um matroide com fun¸c˜ao carater´ıstica α.

1. B diz-se uma base do matroide M se B ´e um conjunto independente maximal, ou seja B ∈ F e α(B) = α(N ).

2. Para X ⊂ N define-se conjunto gerado por X, como sp(X) = {j ∈ N : α(X + j) = α(X)}.

Nota 2.1 Um subconjunto qualquer B ⊂ N ´e base do matroide M = (N, F) se e s´o se sp(B) = N .

Para matroides gr´aficos M = (E, F) de um grafo G n˜ao orientado, as bases corres-pondem `as ´arvores geradoras de grafo G (´arvores com exatamente ν − 1 arestas, onde ν =| V |).

Defini¸c˜ao 2.4 Um conjunto C ⊆ N diz-se um ciclo de um matroide M = (N, F) se C ´e um conjunto dependente minimal, isto ´e, C 6∈ F mas C − j ∈ F, ∀j ∈ C.

A demonstra¸c˜ao de resultado seguinte (Teorema 2.2) pode ser consultada em [18, 21, 29, 30].

Teorema 2.2 (Whitney [1935]) Seja C a fam´ılia de ciclos de um matroide M ent˜ao: (i) ∅ 6∈ C.

(ii) Se C1, C2 ∈ C, C1 ⊆ C2 implica C1 = C2.

(iii) Se C1, C2 ∈ C, C1 6= C2, com j ∈ C1∩ C2, ent˜ao existe C3 ∈ C tal que C3 ⊆ (C1∪ C2) − j.

Reciprocamente, se (N, C) ´e uma estrutura finita satisfazendo os axiomas (i), (ii) e (iii), ent˜ao M = (N, F) ´e um matroide, onde

F= {I : C 6⊆ I, ∀ C ∈ C}.

O axioma (iii) do resultado acima (Teorema 2.2) ´e conhecido como propriedade de eli-mina¸c˜ao de ciclos.

Proposi¸c˜ao 2.6 Seja B ⊂ N uma base de um matroide M e j ∈ N \B, ent˜ao existe um ´

unico ciclo C tal que C ⊆ B + j.

Prova: Como todas as bases tˆem o mesmo cardinal, o conjunto B + j ´e dependente e, portanto, contem um ciclo C. Se existirem dois ciclos em B + j, o elemento j teria de pertencer a ambos e usando axioma (iii) do Teorema 2.2, obter´ıamos um ciclo contido em

(26)

De seguida vamos definir as fun¸c˜oes submodulares que nos conduzir˜ao a uma defini¸c˜ao alternativa para matroides (Teorema 2.3).

Seja S ⊆ X e seja I um independente de cardinalidade m´axima contido em X, i.e, | I |= α(X). Os conjuntos I ∩ S e I ∩ (X\S) s˜ao conjuntos independentes contidos em S e X\S, respetivamente. Tem-se ent˜ao

α(S) + α(X\S) ≥| I ∩ S | + | I ∩ X\S |=| I |= α(X). (2.1)

Defini¸c˜ao 2.5 Consideremos um conjunto finito N = {1, 2, · · · , n} e uma fun¸c˜ao f : 2N → <+. A fun¸c˜ao f ´e submodular se

f (I) + f (S) ≥ f (I ∩ S) + f (I ∪ S) ∀ I, S ⊂ N. f ´e n˜ao decrescente, se

f (I) ≤ f (S) I ⊂ S.

A proposi¸c˜ao seguinte apresenta-nos propriedades que ser˜ao ´uteis para concluir que se a fun¸c˜ao f ´e ou n˜ao submodular e n˜ao decrescente.

Proposi¸c˜ao 2.7 (ver [5])Uma fun¸c˜ao f ´e submodular se e somente se para todo j, k, j 6= k e I ⊂ N \{j, k}:

f (I + j) − f (I) ≥ f (I ∪ {j, k}) − f (I + k). (2.2) Adicionalmente f ´e submodular e n˜ao decrescente se e somente se para todo I, S ⊆ N :

f (S) ≤ f (I) + X

j∈S\I

[f (I + j) − f (I)]. (2.3)

Prova: Vamos em primeiro lugar provar a primeira parte da proposi¸c˜ao. Se f ´e submo-dular, aplicando a sua defini¸c˜ao para A ⊆ N com I = A + j e S = A + k obtemos

f (A + j) + f (A + k) ≥ f ((A + j) ∩ (A + k)) + f ((A + j) ∪ (A + k)) ≥ f (A) + f (A ∪ {j, k})

⇔ f (A + j) − f (A) ≥ f (A ∪ {j, k}) − f (A + k).

(27)

B\A = {k1, k2, · · · , kq}. Ent˜ao, f (B) − f (A ∩ B) = f (I ∪ {k1, k2, · · · , kq}) − f (I) = Pq i=1[f (I ∪ {k1, k2, · · · , ki}) − f (I ∪ {k1, k2, · · · , ki−1})] ≥ Pq i=1[f (I ∪ {k1, k2, · · · , ki} + j1) − f (I ∪ {k1, k2, · · · , ki−1} + j1)] .. . ≥ Pq i=1[f (I ∪ {k1, k2, · · · , ki} ∪ {j1, j2, · · · , jk}) −f (I ∪ {k1, k2, · · · , ki−1} ∪ {j1, j2, · · · , jk})] = Pq i=1[f (A ∪ {k1, k2, · · · , ki}) − f (A ∪ {k1, k2, · · · , ki−1})] = f (A ∪ B) − f (A)

daqui resulta f (B) + f (A) ≥ f (A ∪ B) + f (A ∩ B).

Em seguida vamos provar a segunda parte da proposi¸c˜ao. Assumamos que f ´e submo-dular e n˜ao decrescente. Seja I, S ⊆ N tal que S\I = {j1, j2, · · · , jp}. Ent˜ao

f (S) ≤ f (I ∪ S) = f (I) + [f (I ∪ S) − f (I)] = f (I) +Pp i=1[f (I ∪ {j1, j2, · · · , ji}) − f (I ∪ {j1, j2, · · · , ji−1})] ≤ f (I) +Pp i=1[f (I ∪ ji) − f (I)] ,

onde a primeira desigualdade ´e obtida se f ´e n˜ao decrescente e a segunda desigualdade se f ´e submodular.

Reciprocamente, se escolhermos S = I ∪ {j, k}, da equa¸c˜ao (2.3), obtemos f (I ∪ {j, k}) ≤ f (I) +P

j∈{j,k}[f (I + j) − f (I)]

= f (I) + f (I + j) − f (I) + f (I + k) − f (I) = f (I + j) + f (I + k) − f (I)

⇔ f (I ∪ {j, k}) − f (I + k) ≤ f (I + j) − f (I),

e assim f (I) ´e submodular. Se encolhermos S = I − k da equa¸c˜ao (2.3), obtemos f (I − k) ≤ f (I)

(28)

de forma recursiva temos

f (I − j1) ≤ f (I)

f (I − j1− j2) ≤ f (I − j1) ≤ f (I)

f (I − j1− j2− . . . − jk) ≤ f (I − j1− j2− . . . − jk−1) ≤ · · · ≤ f (I)

ou seja f (I) ´e n˜ao decrescente. 2

O teorema seguinte estabelece que a fun¸c˜ao carater´ıstica associada a um matroide ´e submodular.

Teorema 2.3 Seja (N, F) um sistema independente. (N, F) ´e um matroide se e somente se a fun¸c˜ao carater´ıstica

α(X) = max{| I | : I ∈ F, I ⊂ X} ´

e submodular.

Prova: Esta prova segue de perto a apresentada em (Bertsimas [2005]). Se (N, F) ´e um matroide, ent˜ao α(∅) = 0, α(I) ´e n˜ao decrescente, e α(I + j) − α(I) ≤ 1 . De modo a provar que α(I) ´e submoludar vamos verificar que a equa¸c˜ao (2.2) ´e satisfeita:

α(I + j) − α(I) ≥ α(I ∪ {j, k}) − α(I + k).

Se α(I + j) − α(I) = 1, a desigualdade ´e ´obvia. Suponhamos que a desigualdade ´e violada, ou seja, α(I + j) − α(I) = 0, com α(I) = x e α(I ∪ {j, k}) − α(I + k) = 1. Ent˜ao podem ocorrer dois casos:

1o caso: α(I ∪ {j, k}) = x + 2. Assim α(I ∪ {j, k}) − α(I + k) = x + 2 − x = 2 o que

´

e imposs´ıvel.

2o caso: α(I ∪ {j, k}) = x + 1. Seja S um conjunto independente maximal em I, ou seja,

S + l 6∈ F, para todo l ∈ N \S. Deste modo α(I + j) = α(I + k) = x pelo que S+ j 6∈ F e S + k 6∈ F. Por isso S ´e maximal com respeito a α(I ∪ {j, k}), de modo que α(I ∪ {j, k}) = x o que ´e uma contradi¸c˜ao.

Reciprocamente, suponhamos que α(I) ´e submodular e assumamos que (N, F) n˜ao define um matroide, i.e, ∃X ⊂ N, I1 e I2 independentes maximais em X com | I1 |<| I2 |. Assim

α(I1) =| I1 |< α(I2) =| I2 | .

Pela segunda parte da Proposi¸c˜ao 2.7, temos α(I2) ≤ α(I1) +

X

j∈I2\I1

(29)

o que implica que α(I1+ j) > α(I1) para algum j ∈ I2\I1. Por isso,

α(I1+ j) =| I1 | +1

contradizendo o facto de I1 ser um maximal. Portanto (N, F) ´e um matroide. 2

2.2.3

Dualidade de Matroides

Associado a cada matroide M = (N, F) existe um matroide dual MD = (N, FD) no

qual cada base BD de MD ´e o complemento de uma base de M , isto ´e, BD = N \B, e vice-versa. Formalmente temos:

Defini¸c˜ao 2.6 Seja (N, F) um sistema independente. Definimos dual de (N, F) por (N, FD), onde

FD = {I ⊆ N : existe uma base B em B tal que I ∩ B = ∅} e B ´e a fam´ılia das bases de (N, F).

A prova do resultado seguinte pode ser consultada em [21].

Teorema 2.4 Se M = (N, F) ´e um matroide ent˜ao MD = (N, FD) ´e um matroide.

Os ciclos de MD designam-se por co-ciclos de M e vice-versa. Definimos por BD a

fam´ılia das bases de (N, FD).

Um matroide M = (N, F) e o seu dual MD = (N, FD) est˜ao relacionados da seguinte forma:

Proposi¸c˜ao 2.8 (MD)D = (N, FD)D = M = (N, F).

Prova: I ∈ (FD)D se e s´o se existe uma base BD ∈ BD tal que I ∩ BD = ∅, o que ´e

equivalente a dizer que existe uma base B ∈ B tal que I ∩ (N \B) = ∅ se e s´o se I ∈ F. 2 Seja X ⊆ N , a carater´ıstica de X em MD, αD(X), ´e determinada por uma base de M com um n´umero m´ınimo de elementos em X. A cardinalidade maxima de um independente de M disjunto de X ´e α(N \X). Tal conjunto est´a contido na base com α(X) elementos dos quais α(N ) − α(N \X) est˜ao contidos em X. O n´umero de elementos de X n˜ao contidos nesta base ´e | X | +α(N \X) − α(N ).

Formalmente temos o seguinte resultado.

(30)

Prova: αD(X) = max{|A ∩ X| : A ∈ BD} = | X | − min{| B ∩ X |: B ∈ B} = | X | −(α(N ) − max{| B\X |: B ∈ B}) = | X | −α(N ) + max{| B\X |: B ∈ B} = | X | −α(N ) + α(N \X). 2 No caso dos matroides associados a um grafo M = (E, F), o seu dual MD = (E, FD)

designa-se por co-gr´afico. Se G ´e um grafo conexo, as co-bases BD de MD, s˜ao conjuntos de arestas que n˜ao desconectam o grafo G. Se por outro lado o grafo G tem ν v´ertices,  arestas e p componentes conexas, ent˜ao:

α(E) = ν − p

αD(E) =  − ν + p =| E | −α(E).

Exemplo 2.7 Seja G = (V, E) o grafo dado na Figura 2.3 e M = (E, F) o matroide associado a este grafo, onde as bases s˜ao todas as ´arvores geradoras (portanto com v − 1 arestas). As bases BD ao os complementares das bases B com  − ν + 1 arestas.

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

(31)

Figura 2.4: Ilustra¸c˜ao da base B. ent˜ao o complementar de B ´e BD ∈ BD dado por BD = {e

4, e5, e6, e7, e8, e10, e11} que

´

e uma base do matroide dual.

Figura 2.5: Ilustra¸c˜ao da co-base BD.

Os ciclos do problema primal s˜ao por exemplo {e1, e2, e3, e4}, {e1, e2, e6}, etc., ou seja,

s˜ao conjuntos dependentes minimais de M , e os co-ciclos s˜ao os conjuntos de arestas que, se forem removidas, desconectam o grafo G, por exemplo {e3, e4, e5, e11}, {e1, e2, e9}, etc.

Neste caso

α(E) = ν − p = 5 − 1 = 4

αD(E) =  − ν + p =| E | −α(E) = 11 − 4 = 7.

2.3

otimiza¸

ao de sistemas independentes

Nesta sec¸c˜ao vamos considerar problemas de otimiza¸c˜ao definidos sobre sistemas inde-pendentes. Seja M = (N, F) um sistema independente e w : N → < uma fun¸c˜ao peso. Vamos considerar os seguintes problemas:

(32)

(a) o problema de determina¸c˜ao do conjunto Independente de Peso M´aximo (IPMax): max{X

e∈I

w(e) : I ∈ F};

(b) o problema de encontrar uma Base B ∈ B de M tal que o Peso w(B) seja M´ınimo (BPMim):

min{X

e∈B

w(e) : B ∈ B}.

No primeiro caso, problemas IPMax, existe uma correspondˆencia entre o conjunto F e o conjunto das solu¸c˜oes admiss´ıveis. Como exemplo de problemas de otimiza¸c˜ao combi-nat´oria que se podem escrever na forma (a) temos:

• Problema da determina¸c˜ao do Independente de Peso M´aximo (PIPM) - Dado um grafo G = (V, E) e uma fun¸c˜ao pesos w : E → <, o PIPM consiste em encontrar o conjunto independente de G de peso m´aximo. Aqui E = {1, 2, · · · , n} e F = {I ⊆ E : I ´e um independente em G}. Os conjuntos independentes de F s˜ao solu¸c˜oes admiss´ıveis do PIPM.

• Problema do Saco Mochila (PSM) - Sejam n, b, cj, wj (1 ≤ j ≤ n) n´umeros n˜ao

negativos, o PSM consiste em encontrar um I ⊆ {1, 2, · · · , n} tal que Σj∈Iwj ≤ b e

Σj∈Icj seja m´aximo. Neste caso E = {1, 2, · · · , n} e F = {I ⊆ E : Σj∈Iwj ≤ b}. Os

conjuntos independentes de F s˜ao solu¸c˜oes admiss´ıveis do PSM.

No segundo caso, problemas BPMim, as solu¸c˜oes admiss´ıveis correspondem `as bases do conjunto F. Como exemplo de problemas de otimiza¸c˜ao combinat´oria que se podem escre-ver na forma (b) temos:

• Problema do Caixeiro Viajante (PCV) - Dado uma grafo completo n˜ao orientado G = (E, V ) e uma fun¸c˜ao peso w : E → <+, o PCV consiste em encontrar um ciclo

hamiltoniano de peso m´ınimo em G. Aqui F = {I ⊆ E : I subconjunto de um ciclo hamiltoniano em G }. O ciclo hamiltoniamo ´e uma base de F.

• Problema de ´Arvore de Suporte de Custo M´ınimo (PASCM) - Dado um grafo conexo G = (E, V ), n˜ao orientado, e w : E → <, o PASCM consiste em encontrar uma ´

arvore de suporte de custo m´ınimo em G, ou seja, encontrar a base de F, onde F ´e uma fam´ılia de florestas em G.

2.3.1

Algoritmo Guloso

Nesta sec¸c˜ao vamos apresentar o algoritmo guloso. Em cada etapa este algoritmo s´o considera a melhor escolha, sem ter em conta as altera¸c˜oes que tal escolha possa originar

(33)

nas etapas seguintes. Numa fase inicial ordena os elementos do conjunto suporte por or-dem (decrescente para um problema de m´aximo ou crescente para um problema de m´ınimo) dos seus pesos, e em cada passo analisa os pesos seguintes e verifica se os elementos do conjunto suporte associados a esses pesos formam ou n˜ao ciclos com os elementos j´a esco-lhidos. Caso n˜ao forme ciclo adiciona este elemento a F.

Consideremos um conjunto suporte N , uma fun¸c˜ao peso w : N → <+ e uma fam´ılia F

de independentes de N , o algoritmo guloso para o problema IPMax pode ser assim descrito:

Algoritmo 2.1 Algoritmo Guloso para o problema de maximiza¸c˜ao IPMax: Input: M = (N, F) e w : N → <+

Output: I (conjunto independente de peso m´aximo) Passo 1 Fazer t = 1, I0 = ∅

Ordenar os elementos de N de modo que w1 ≥ w2 ≥ · · · ≥ wk

Passo 2 Se w(t) ≤ 0 PARAR. I ← It−1.

Se w(t) > 0 e It−1+ t ∈ F ent˜ao It← It−1+ t

Se w(t) > 0 e It−1+ t 6∈ F ent˜ao It← It−1

Se t = n PARAR. I ← It

Se t < n ent˜ao t ← t + 1 e voltar ao Passo 2.

Teorema 2.6 Se M = (N, F) ´e um matroide o algoritmo guloso determina um conjunto independente de peso m´aximo.

Prova: Suponhamos que M ´e um matroide e que a solu¸c˜ao obtida pelo algoritmo guloso, Ig, n˜ao ´e ´optima. Seja I0 uma solu¸ao ´optima.

Como M ´e um matroide, | Ig |=| I0 |. De facto, como o algoritmo guloso s´o selecciona

elementos com pesos positivos, se | Ig |>| I0 |, ent˜ao pelo axioma (ii) do Teorema 2.1

existir´a e ∈ Ig \ I0 tal que w(e) > 0 e I0 + e ∈ F. Portanto, I0 ao seria solu¸ao ´optima

(com um argumento an´alogo se prova que | I0 | n˜ao pode ser superior a | Ig |).

Admitamos, sem perda de generalidade, que os elementos se encontram ordenados por ordem decrescente dos seu pesos, isto ´e,

Ig = {i1, i2, · · · , ik}, I0 = {j1, j2, · · · , jk},

onde w(i1) ≥ w(i2) ≥ · · · ≥ w(ik) > 0, w(j1) ≥ w(j2) ≥ · · · ≥ w(jk) > 0.

Se Ig ao for uma solu¸ao ´optima,

X

e∈Ig

w(e) < X

e∈I0

(34)

e ent˜ao

∃ p ∈ {1, 2, · · · , k} : w(ip) < w(jp) e w(il) ≥ w(jl), se l < p.

Por outro lado, quando o algoritmo guloso selecciona o elemento ip para entrar para Ig

tinha j´a constru´ıdo o independente I = {i1, i2, · · · , ip−1}. Ora como J = (j1, j2, · · · , jp)

tamb´em ´e independente, pelo axioma (ii) do Teorema 2.1, jp ∈ J : I + jp ∈ F.

Mas isso significa que o algoritmo guloso quando tinha j´a gerado o independente I, escolheu um elemento para juntar a I, ip, com w(ip) < w(jp) o que ´e absurdo.

Assim fica provado que se M for um matroide, a solu¸c˜ao encontrada pelo algoritmo guloso ´

e ´optima, qualquer que seja a atribui¸c˜ao w : N → <. 2 Exemplo 2.8 Usemos novamente o matroide induzido pelo grafo G da Figura 2.3 e atri-buamos peso as arestas, w : E → <+. Desta forma associa-se a cada aresta um peso w(e).

Recorde-se que I ´e um independente, ou seja, I ∈ F se e s´o se I n˜ao contem ciclo.

Figura 2.6: Grafo G com peso associado.

Primeiramente vamos ordenar os elementos por ordem decrescente dos seus pesos: w(e11) ≥ w(e10) ≥ w(e1) ≥ w(e9) ≥ w(e3) ≥

w(e8) ≥ w(e2) ≥ w(e7) ≥ w(e6) ≥ w(e4) ≥ w(e5),

e fazer I0 = ∅. Aplicando o Passo 2 do algoritmo temos que I1 = I0 + e11 = {e11} isto

porque I0+ e11∈ F. De seguida ao adicionarmos e10 no conjunto I1, ainda continuamos a

ter um independente, ent˜ao fazemos I2 = I1+ e

10= {e11, e10}. De igual modo a adi¸c˜ao de

e1 ao conjunto I2 continua a pertencer a F, o que implica que I2+ e1 = I3 = {e11, e10, e1}.

Mas vamos notar que I3 + e9 6∈ F, ou seja, forma ciclo o que nos leva a n˜ao adicionar

o elemento e9 ao conjunto I3. Por outro lado, ao adicionarmos e3 ao I3 obtemos I4 pelo

facto de I3+ e

(35)

elementos por adicionar, vamos constatar que I4+ ej 6∈ F, ∀ j ∈ {2, 4, 5, 6, 7, 8}. Assim

sendo I4 = {e

11, e10, e1, e3} ´e a solu¸c˜ao ´optima (pois (E, F) ´e um matroide) com peso

w(I4) = w(e11) + w(e10) + w(e1) + w(e3) = 10 + 9 + 8 + 4 = 31.

Quando o sistema independente em estudo n˜ao define um matroide, este algoritmo nem sempre conduz a uma solu¸c˜ao ´optima, sobretudo .

Teorema 2.7 Se (N, F) ´e um sistema independente mas n˜ao ´e um matroide ent˜ao existe uma fun¸c˜ao w : N → < para a qual o algoritmo guloso n˜ao resolve o problema da deter-mina¸c˜ao do conjunto independente de peso m´aximo.

Prova: Suponha-se que (N, F) ´e um sistema independente mas que n˜ao ´e um matroide. Nestas condi¸c˜oes, vamos exibir uma atribui¸c˜ao de peso w : N → < para a qual o algoritmo n˜ao encontra a solu¸c˜ao ´optima.

Se (N, F) n˜ao for um matroide ent˜ao existe um subconjunto X de N , que contem dois inde-pendentes maximais I1 e I2 de cardinalidade diferente, |I1| < |I2|. Para ξ suficientemente

pequeno (por exemplo), 0 < ξ < |I1

1| defina-se w(e) =    1 se e ∈ I1, 1 − ξ se e ∈ I2\ I1,

0 caso contr´ario.

(2.4)

Para esta atribui¸c˜ao de peso, a solu¸c˜ao obtida pelo algoritmo tem peso total |I1| n˜ao sendo,

portanto, uma solu¸c˜ao ´optima, uma vez que qualquer independente que contenha |I2|

ele-mentos tem peso total n˜ao inferior a |I2|(1 − ξ) > |I1|. 2

Exemplo 2.9 Tomemos agora o seguinte exemplo, onde o problema consiste em: M aximizar Z = 8x1+ 2x2+ 5x3+ 4x4+ 2x5

sujeito a 8x1+ 2x2+ 5x3+ 4x4+ 2x5 ≤ 14

x1, · · · , x5 ∈ {0, 1}.

Usando o algoritmo guloso obteremos o seguinte: I0 = ∅ w(1) ≥ w(3) ≥ w(4) ≥ w(2) ≥ w(5) I0+ {1} ∈ F ⇒ I1 = I0+ {1} = {1} I1+ {3} ∈ F I2 = I1+ {3} = {1, 3} I2+ {4} 6∈ F I3 = I2 I3+ {2} 6∈ F ⇒ I4 = I3 I4+ {5} 6∈ F I5 = I4 = {1, 3}.

(36)

A solu¸c˜ao encontrada pelo algoritmo guloso ´e I = {1, 3} com peso w(I) = w(1) + w(3) = 13,

mas o independente de peso m´aximo ´e {1, 2, 4} com peso

w({1, 2, 4}) = w(1) + w(2) + w(4) = 14.

O algoritmo guloso para o problema de maximiza¸c˜ao PIMax sobre um sistema inde-pendente (N, F) corresponde ao algoritmo guloso para o problema de minimiza¸c˜ao BPMin, aplicado ao dual (N, FD).

Este algoritmo ´e semelhante ao algoritmo de Kruskal para o PASCM. No caso em que w(t) > 0, ∀ t o algoritmo determina uma base de F.

Algoritmo 2.2 Algoritmo guloso para o problema de minimiza¸c˜ao BPMin Input: (N, F) e w : N → <+

Output: B (uma base de F de peso m´ınimo) Passo 1 Fazer N = {e1, e2, · · · , ek}

Ordenar os elementos de N por ordem crescente do peso w(e1) ≤ w(e2) ≤ · · · ≤ w(ek)

Passo 2 Fazer B = N .

Para i = 1, 2, · · · , k fazer

Se sp(B − ei) = N ent˜ao B ← B − ei.

Suponhamos que pretendemos encontrar uma base B do grafo apresentado na Figura 2.6 tal que w(B) seja m´ınimo. Ent˜ao temos:

i B Arestas ordenadas por peso

1 {e1, · · · , e11} e11, e10, e1, e9, e3, e8, e2, e7, e6, e4, e5 2 {e1, · · · , e10} e10, e1, e9, e3, e8, e2, e7, e6, e4, e5 3 {e1, · · · , e9} e1, e9, e3, e8, e2, e7, e6, e4, e5 4 {e2, · · · , e9} e9, e3, e8, e2, e7, e6, e4, e5 5 {e2, · · · , e8} e3, e8, e2, e7, e6, e4, e5 6 {e2, e4, e5, e6, e7, e8} e8, e2, e7, e6, e4, e5 7 {e2, e4, e5, e6, e7, e8} e8, e2, e7, e6, e4, e5 n˜ao removemos e8 8 {e2, e4, e5, e6, e7, e8} e8, e2, e7, e6, e4, e5 n˜ao removemos e2 9 {e2, e4, e5, e6, e8} e8, e2, e6, e4, e5 10 {e2, e4, e5, e6, e8} e8, e2, e6, e4, e5 n˜ao removemos e6 11 {e2, e5, e6, e8} e8, e2, e6, e5 12 {e2, e4, e6, e8} e8, e2, e6, e5 n˜ao removemos e5

(37)

ou seja, B = {e2, e5, e6, e8} ´e solu¸c˜ao ´optima com peso

w(B) = w(e2) + w(e5) + w(6) + w(8) = 3 + 1 + 2 + 3 = 9.

(38)

Cap´ıtulo 3

Interse¸

ao de Matroides

3.1

Introdu¸

ao

Muitos problemas de otimiza¸c˜ao podem ser vistos como problemas de otimiza¸c˜ao sobre interse¸c˜ao de matroides, isto ´e, os conjuntos de solu¸c˜oes admiss´ıveis s˜ao, simultaneamente, conjuntos independentes de diferentes matroides.

Edmonds [10], mostrou que se tivermos dois matroides a determina¸c˜ao do independente de cardinalidade ou peso m´aximo comum entre eles, pode ser determinada polinomialmente. O problema da determina¸c˜ao da interse¸c˜ao de dois matroides de cardinalidade m´axima, ´

e estudado na sec¸c˜ao 3.3. Na sec¸c˜ao 3.4 ´e apresentado um algoritmo para a determina¸c˜ao da solu¸c˜ao ´optima para o problema de interse¸c˜ao de matroides de peso m´aximo.

Dados dois sistemas independentes (N, F1) e (N, F2), definimos a sua interse¸c˜ao por

(N, F) onde F = F1∩ F2. Nota-se que se (N, F1) e (N, F2) forem dois matroides quaisquer,

(N, F1∩ F2) ´e um sistema independente mas em geral n˜ao ´e um matroide.

Exemplo 3.1 Consideremos o exemplo da Figura 3.1.

Figura 3.1: Ilustra¸c˜ao do grafo bipartido G = (V1, V2, E).

Um emparelhamento em G pode ser visto como um independente que ´e simultaneamente independente dos matroides Mi = (E, Fi) i = 1, 2 onde I ∈ Fi se em I quanto muito uma

(39)

aresta incide em cada v´ertice de Vi (matroides da parti¸c˜ao), definido pelo grafo da Figura 3.1. A fam´ılia F = {∅, {e1}, {e2}, {e3}, {e4}, {e5}, {e6}, {e7}, {e1, e4}, {e1, e5}, {e1, e6}, {e1, e7}, {e2, e3}, {e2, e5}, {e2, e7}, {e3, e6}{e3, e7}, {e4, e7}, {e5, e6}, {e1, e4, e7}, {e1, e5, e6}, e2, e3, e7}} = F1∩ F2 ´

e um sistema independente mas n˜ao ´e um matroide porque, por exemplo, I1 = {e1, e4, e7}

e I2 = {e2, e5} s˜ao dois independentes maximais mas I2 n˜ao ´e m´aximo, |I1| = 3 6= |I2| = 2.

De uma forma an´aloga ´e definida a interse¸c˜ao de um n´umero finito de independentes, e ´e evidente que o resultado ´e novamente um sistema independente.

O resultado seguinte mostra que todo o sistema independente pode ser obtido a partir da interse¸c˜ao de um n´umero finito de matroides.

Proposi¸c˜ao 3.1 Qualquer sistema independente (N, F) ´e a interse¸c˜ao de um n´umero fi-nito de matroides.

Prova: Seja C a fam´ılia de ciclos de (N, F). Em primeiro lugar vamos provar que para cada ciclo C, o sistema (N, FC) com FC = {I ⊆ N : C \ I 6= ∅} define um matroide

MC = (N, FC).

(i) ´E evidente que para I = ∅, C\I 6= ∅, ou seja, ∅ ∈ FC.

(ii) Se I1 ∈ FC ent˜ao C\I1 6= ∅. Suponhamos que I2 ⊆ I1 isso implica que ∅ 6= C\I1 ⊆

C\I2, ou seja, I2 ∈ FC. Ent˜ao por (i) e (ii) o sistema (N, FC) ´e um sistema

inde-pendente.

(iii) Vamos agora provar que todos os independentes maximais de X ⊆ N tˆem a mesma cardinalidade. Seja X ⊆ N , I, I0 ⊆ X s˜ao independentes (I, I0 ∈ F ⇔ C\I 6= ∅ e C\I0 6= ∅) e maximais, ent˜ao tem-se dois casos:

a) se C ⊆ X ent˜ao | I |=| I0 |=| X | −1. b) se C 6⊆ X ent˜ao I = I0 = X pois C\X 6= ∅.

Por fim vamos verificar que a interse¸c˜ao de todos esses matroides MC, C ∈ C ´e o pr´oprio

sistema independente (N, F), ou seja, F = T

C∈CFC. Seja A =

T

C∈CFC, pretendemos

mostrar que A = F. Se I ∈ A ent˜ao I ∈ FC, ∀ C ∈ C ⇒ C\I 6= ∅, ∀ C ∈ C. Ent˜ao I n˜ao

cont´em qualquer ciclo (∀ C ∈ C, C 6⊂ I). Logo I ∈ F ⇒ A ⊆ F. Reciprocamente

I ∈ F ⇒ C\I 6= ∅, ∀ C ∈ C ⇒ I ∈ A ⇒ F ⊆ A.

(40)

Um conjunto I ⊆ N : I ∈ F1 ∩ F2 ´e uma interse¸c˜ao de cardinalidade m´axima se n˜ao

existe nenhum conjunto independente I0 ∈ F1∩ F2 com | I0 |>| I |. Mais genericamente,

fa¸camos uma atribui¸c˜ao de peso aos elementos ei ∈ N, w : N → <. Um conjunto

independente I ⊆ N : I ∈ F1 ∩ F2 ´e uma interse¸c˜ao de peso m´aximo se a soma total dos

pesos em I, w(I), for m´axima,

w(I) = max{w(I0) : I0 ∈ F1∩ F2}.

3.2

Exemplos de interse¸

ao de Matroides

De seguida apresentamos alguns exemplos de interse¸c˜ao de matroides. Os leitores mais interessado poder˜ao consultar [21, 25].

Emparelhamento

Um problema de emparelhamento num grafo bipartido pode ser visto como um problema envolvendo a interse¸c˜ao de dois matroides sobre um mesmo conjunto de arestas do grafo bipartido. Seja G = (V1, V2, E) um grafo bipartido com as parti¸c˜oes V1 e V2. O conjunto

I ⊆ E ´e um emparelhamento se e s´o se em cada um dos v´ertices de V1 e V2 incide quanto

muito uma aresta, ou seja, ei, ej ∈ I se e s´o se ei, ej n˜ao forem adjacentes.

Usualmente consideramos dois tipos de problemas de emparelhamento: o de encontrar um emparelhamento de cardinalidade m´axima e o de procurar um emparelhamento de peso m´aximo. Neste segundo caso, ´e dado, al´em do grafo, uma fun¸c˜ao que associa a cada arco um peso n˜ao negativo.

Existem algoritmos eficientes para os dois problemas. No caso da determina¸c˜ao de em-parelhamentos de cardinalidade m´axima em grafos bipartidos temos o algoritmo h´ungaro, usado para o problema de afeta¸c˜ao [23], e no caso do problema de emparelhamento de peso m´aximo em grafos bipartidos temos o algoritmo de Kuhn para encontrar um emparelha-mento ´optimo num grafo bipartido com pesos [19].

Suponhamos agora M1 = (E, F1) e M2 = (E, F2) dois matroides sobre o mesmo

con-junto de arestas, onde I ∈ Fi, i = 1, 2, se n˜ao mais do que uma aresta de I ´e incidente

em cada v´ertice de Vi, i = 1, 2 (Mi, i = 1, 2 matroide da parti¸c˜ao). Encontrar um

con-junto I ⊆ E comum `a F1 e F2 ´e o mesmo que encontrar um emparelhamento I onde

I ∈ Fi, i = 1, 2 se e somente se n˜ao mais do que uma aresta de I ´e incidente em cada

v´ertice de Vi, i = 1, 2.

Desta forma, tomando como exemplo o grafo bipartido da Figura 3.1, temos que {e1, e3} ∈

F1 mas n˜ao pertence a F2. Todavia se consideramos o conjunto independente I = {e1, e5, e6},

(41)

I ∈ F1∩ F2, e como n˜ao se pode adicionar mais arestas a I logo ´e de cardinalidade m´axima

ou emparelhamento perfeito.

Adicionalmente se a cada aresta de G for adicionado um peso wij n˜ao negativo obtemos

um problema de emparelhamento de peso m´aximo. Por exemplo, seja

wij =   5 4 0 2 3 6 0 4 2  

facilmente vemos que a solu¸c˜ao ´optima ´e I = {e1, e5, e6} com o peso w(I) = 5 + 6 + 4 = 15.

Podemos ver que o problema de emparelhamento de cardinalidade m´axima ´e um exemplo de interse¸c˜ao de matroides com uma fun¸c˜ao peso que associamos a cada aresta o peso 1.

Problema de arborescˆ

encia

Uma arborescˆencia ´e um digrafo cujo grafo n˜ao orientado obtido por remo¸c˜ao da ori-enta¸c˜ao dos arcos ´e uma ´arvore, e em que em cada v´ertice incide quanto muito um arco. Assim, uma arborescˆencia com ν v´ertices tem ν − 1 arcos, logo existe um v´ertice r com grau de entrada nulo. Este v´ertice designa-se por raiz.

Na Figura 3.2 encontra-se representado um digrafo −→G e uma arborescˆencia.

Figura 3.2: Ilustra¸c˜ao do digrafo ~G e de uma arborescˆencia I com raiz no v´ertice 1. Sejam M1 = (A, F1) e M2 = (A, F2) dois matroides definidos do seguinte modo: I ∈ F1

se e s´o se n˜ao mais do que um arco de I incide em cada um dos v´ertice (M1 ´e um matroide de

parti¸c˜ao) de G. I ∈ F2 se e s´o se I n˜ao cont´em qualquer ciclo (M2 ´e um matroide gr´afico).

As arborescˆencias correspondem aos conjuntos em F1 ∩ F2. No Exemplo da Figura 3.2,

I = {e1, e5, e7, e8, e10, e11, e12} ´e um conjunto independente em F1 mas n˜ao pertence a F2; de

igual modo {e1, e3, e7, e8, e10, e11, e12} pertence a F2 mas n˜ao pertence a F1. Considerando

I = {e2, e3, e7, e8, e9, e11, e15} (ver arborescˆencia na Figura 3.2) verificamos que cada v´ertice

tem quanto muito um arco de entrada, I cont´em ν − 1 arcos, e n˜ao cont´em qualquer ciclo, ou seja, I ∈ F1 e I ∈ F2, isso quer dizer que a solu¸c˜ao encontrada ´e uma arborescˆencia,

(42)

Problema de ciclo hamiltoniano

Pretende-se encontrar um ciclo hamiltoniano num grafo G com n n´os. Existe um ciclo hamiltoniano em G se e somente se existe um caminho do n´o 1 ao n´o n que passa por cada um dos outros n´os exatamente uma vez. Por exemplo o ciclo

1 → 2 → 3 → 4 → 1 retirado do grafo da Figura 3.3, ´e um ciclo hamiltoniano.

Figura 3.3: Ilustra¸c˜ao do digrafo ~G.

Vamos construir um grafo G0 com n + 1 n´os onde o nodo n + 1 ´e criado de forma que cada arco incidente no nodo 1 passe a ser incidente no nodo n + 1 (como exemplo do ciclo 1 → 2 → 3 → 4 → 5) ver Figura 3.4.

De seguida vamos descrever o conjunto das solu¸c˜oes admiss´ıveis do problema do ciclo ha-miltoniano como interse¸c˜ao de trˆes matroides sobre o grafo G0 (ver Figura 3.4).

Suponhamos que temos trˆes matroides M1, M2 e M3. M1 ´e um matroide gr´afico no

grafo −→G .

Figura 3.4: Ilustra¸c˜ao do digrafo ~G0.

M2 e M3 s˜ao matroides de parti¸c˜ao (n˜ao existe mais do um arco incidente em cada

v´ertice de−→G ), ou seja, M2 ´e o matroide de parti¸c˜ao cujos conjuntos independentes contˆem

(43)

independentes contˆem no m´aximo um arco divergente de cada n´o. Existe um ciclo hamil-toniano se e s´o se existir um independente na interse¸c˜ao de M1, M2 e M3. Infelizmente

n˜ao existe nenhum algoritmo polinomial para resolver o problema da determina¸c˜ao do in-dependente de peso ou cardinalidade m´axima na interse¸c˜ao de trˆes ou mais matroides [21]. O problema de caixeiro viajante ´e um problema NP-dif´ıcil.

3.3

Interse¸

ao de Cardinalidade M´

axima

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:

(44)

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

(45)

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,

(46)

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

(47)

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

(48)

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 ∅+

(49)
(50)

3.4

Interse¸

ao de Matroides de Peso M´

aximo

O problema da interse¸c˜ao de matroides de peso m´aximo tamb´em pode ser resolvido em tempo polinomial. O algoritmo aqui apresentado ´e uma generaliza¸c˜ao do algoritmo h´ungaro para determinar uma afeta¸c˜ao de peso m´aximo num grafo bipartido [23].

Sejam ∆(ej) o peso de um caminho alternado de peso m´aximo com elemento final ej

e ∆k(ej) o peso de um caminho alternado contendo n˜ao mais do que k elementos, com

ej como ´ultimo elemento, e w(I) =

P

j∈Iwj. Uma vez que nenhum caminho alternado

cont´em mais do que n elementos, em que n = |N |, ´e evidente que o caminho de aumento de peso m´aximo tem peso ∆(P ) onde,

∆(P ) = max{∆n(ej) : Ip+ ej ∈ F2}

e Ip o independente de cardinalidade p ou seja, I ´e p - maximal se | I |= p e I ´e de peso

m´aximo com respeito a todas as interse¸c˜oes contendo exatamente p elementos.

A ideia ´e inicialmente etiquetarmos com ”∅+” todos os elementos ej ∈ N \ sp1(Ip) e

atribu´ımos a cada caminho alternado de aumento de peso m´aximo com elemento final ej, o

peso dos respectivos elementos j, ou seja, 4(ej) = wj. E fazemos 4(el) = −∞ para todo

el ∈ sp1(Ip). Em seguida procuramos um elemento ei etiquetado e dependendo do sinal da

sua etiqueta temos o seguinte:

Se a etiqueta de tal elemento for ” + ” e I + ei forma um ciclo em F2 atribu´ımos

eti-queta ”i−” para todos elementos ej ∈ Ci(2)− ei para os quais 4(ei) − wj > 4(ej) e fazemos

4(ej) = 4(ei) − wj.

Se a etiqueta de tal elemento for ”−” atribu´ımos etiqueta ”i+” a todos elementos ej tal

que ej ∈ C (1)

j e 4(ei) + wj > 4(ej) e fazemos 4(ej) = 4(ei) + wj.

O processo ´e repetido at´e todos os elementos serem etiquetados. Assim sendo o algoritmo para interse¸c˜ao de matroides de peso m´aximo pode ser assim descrito [21]:

Algoritmo 3.2 Algoritmos para interse¸c˜ao de matroides de peso m´aximo Passo 0 Seja I = ∅. (nenhum elemento se encontra etiquetado).

Passo 1 (1.0) Para cada ei ∈ N \ I encontrar circuitos (caso existam) Ci(1), C (2) i .

Fazer ∆(P ) = −∞, ∆(ei) = −∞ para todo ei ∈ N \ sp1(I).

Etiquetar com ∅+ todo o elemento em e

i ∈ N \ sp1(I) e fazer

∆(ei) = wi.

(1.1) Se todas as etiquetas foram pesquisadas e ∆(S) > −∞ seguir para o Passo 2.

Se todas as etiquetas foram pesquisadas e ∆(S) = −∞ seguir para o Passo 3.

(51)

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 e ∆(ei) > ∆(P )

fazer ∆(P ) = ∆(ei) e k = i.

Caso contr´ario atribuir a etiqueta i− a todo o elemento ej ∈ C (2) i − ei

para o qual ∆(ej) < ∆(ei) − wj e fazer ∆(ej) = ∆(ei) − wj.

Seguir para (1.1).

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

elemento ej tal que ei ∈ Cj(1) e ∆(ei) + wj > ∆(ej) e fazer

∆(ej) = ∆(ei) + wj. Voltar a (1.1).

Passo 2 Um caminho de aumento P terminado em ek foi identificada.

Se ∆(P ) ≤ 0 parar.O conjunto I ´e o conjunto da interse¸c˜ao de peso m´aximo.

Caso contr´ario incrementar I, remover todas as etiquetas e voltar ao Passo 1.

Passo 3 N˜ao existe qualquer caminho de aumento.

I ´e o conjunto de peso m´aximo e de cardinalidade m´axima. Parar.

Exemplo 3.3 Consideremos os mesmo matroides do Exemplo 3.1 e associemos a cada elemento ei de N um peso,

w(e1) = 3, w(e2) = 2, w(e3) = 12, w(e4) = 5, w(e5) = 4,

w(e6) = 6, w(e7) = 10, w(e8) = 7, w(e9) = 8.

Desta vez comecemos com o conjunto independente 4-maximal I4 = {e3, e6, e7, e9}, com

w(I4) = 36, o que quer dizer que pode-se procurar um caminho de aumento P em rela¸c˜ao

a I4, da mesma forma que fizemos para o exemplo anterior, mas tendo em considera¸c˜ao

os pesos associados a cada elemento ei.

Note-se que sp1(I4) = {e3, e6, e7, e9, e4, e8}, desta forma existem trˆes caminhos de aumento

com raiz em e1, e2 e e5, respetivamente. Partindo de uma dessas ra´ızes, fazendo ∆(ei) =

−∞ e ∆(P ) = −∞ para ei ∈ sp1(I4), e tendo em conta os ciclos encontrados

Ce(1)8 = {e7, e9, e8} C (1) e4 = {e3, e6, e7, e9, e4} Ce(2)5 = {e3, e6, e5} C (2) e8 = {e3, e6, e8}

o algoritmo procede do seguinte modo:

Ao adicionarmos o elemento e1 ao conjunto admiss´ıvel n˜ao forma ciclo em M2 ent˜ao

(52)

acontece ao adicionarmos e2 ao conjunto admiss´ıvel n˜ao forma ciclo em M2 mas como

∆(P ) = 3 > ∆(e2) = 2 n˜ao atualizamos ∆(P ) e k continua a ser igual ao e1, e seguimos

para e5. Se adicionarmos o elemento e5 ao conjunto admiss´ıvel forma ciclo Ce(2)5 , o que

nos leva a remover e3 ou e6 porque ∆(e3) < ∆(e5) − w(e3) e ∆(e6) < ∆(e5) − w(e6) logo

atualizamos ∆(e3) = ∆(e5) − w(e3) = 4 − 12 = −8 e ∆(e6) = ∆(e5) − w(e6) = 4 − 6 = −2.

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

e3 ou e6 do conjunto I4. Removendo e3 permite que e4 seja adicionado em I4 porque

∆(e4) < ∆(e3)+w(e4) e n˜ao forma ciclo em M1, logo actualizamos ∆(e4) = ∆(e3)−w(e4) =

−8 + 5 = −3. Por outro lado removendo e6 tamb´em permite a adi¸c˜ao de e4 em I4. Apesar

de e4 j´a estar etiquetado temos que o caminho alternado at´e ao e4 vindo pelo e6 tem melhor

peso, por isso actualizamos ∆(e4) = ∆(e6) + w(e4) = −2 + 5 = 3. Consideremos agora

o efeito no M2 com a adi¸c˜ao do elemento e4. Ao adicionarmos e4 a I4 n˜ao forma ciclo

em M2, mas ∆(e4) = ∆(P ) = 3 por isso n˜ao actualizamos ∆(P ). Percorrendo o caminho

no sentido contr´ario, partindo do e4 temos que o caminho de aumento em rela¸c˜ao a I4 ´e

P = {e5, e6, e4}. Fazendo I4+e5−e6+e4 obtemos um nova interse¸c˜ao I = {e3, e4, e5, e7, e9}

com w(I) = 39. O conjunto I = {e3, e4, e5, e7, e9} encontrado ´e de peso e de cardinalidade

m´axima. A forma mas simples de representar este processo ´e a seguinte (ver caminho de aumento no grafo da Figura 3.8):

e1 e2 e3 e4 e5 e6 e7 e8 e9

(3, ∅+) (2, ∅+) (−∞, −) (−∞, −) (4, ∅+) (−∞, −) (−∞, −) (−∞, −) (−∞, −)

(−8, e−5) (−2, e−5)

(−3, e+3) (3, e+6)

Removendo todas as etiquetas, e recome¸cando o processo novamente, vamos verificar que o novo conjunto gerado sp1(I) = {e3, e4, e5, e7, e9, e1, e2, e6, e8} contem todas as arestas

de M1, o que significa que para todo ei ∈ sp1(I), ∆(ei) = −∞ e ∆(P ) = −∞, logo n˜ao

existe mais nenhum cominho de aumento.

Referências

Documentos relacionados

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

grandiflora por estaquia, foram avaliados dois ambientes (viveiro e ambiente / condições de ocorrência natural), assim como o efeito do hormônio de enraizamento, o ácido

O objetivo principal deste estudo de caso era verificar o grau de valorização da medicina popular de plantas entre o próprio povo, tendo por base uma comunidade com diferentes

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

O estudo Placebo-controlled Randomized study of the selective A 1 adenosine receptor antagonist rolofylline for patients hospitalized with acute heart failure and

Comparando com os resultados anteriores, principalmente com os obtidos com a amostra de Metal duro usinada em 0,50mm (TESTE 1), Figura 44, observa-se por uma análise visual que

Analisou-se o efeito de cinco substratos, constituídos de diferentes proporções de terra de subsolo, calcário e cinza de bagaço de cana, na altura, diâmetro de caule e peso fresco e

Os resultados obtidos indicaram que o Método do Ganho de Massa é viável para a obtenção do percentual de absorção de CO2; todas as mostras submetidas à cura por