Universidade de Aveiro Departamento de Matemática, Ayagi da Mota Dias. Matroides e Problemas de otimização Combinatória

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

Download "Universidade de Aveiro Departamento de Matemática, Ayagi da Mota Dias. Matroides e Problemas de otimização Combinatória"

Transcrição

1 Universidade de Aveiro Departamento de Matemática, 2012 Ayagi da Mota Dias Matroides e Problemas de otimização Combinatória

2

3 Universidade de Aveiro Departamento de Matemática, 2012 Ayagi da Mota Dias Matroides e interseção de Matroides em Problemas de otimização Combinatória Dissertação apresentada à Universidade de Aveiro para cumprimento dos requisitos necessários à obtenção do grau de Mestre em Matemática e Aplicações, área de especialização Matemática Empresarial e Tecnológica, realizada sob a orientação científica da Doutor Agostinho Miguel Mendes Agra, Professor Auxiliar do Departamento de Matemática da Universidade de Aveiro.

4

5 o júri / the jury presidente / president vogais / examiners committee Professora Doutora Maria Paula Lopes Dos Reis Carvalho Professora Auxiliar do Departamento de Matemática da Universidade de Aveiro Professora Doutora Lígia Duque Baptista Amado Professora Auxiliar do Departamento de Matemática do Instituto Superior de Economia e Gestão da Universidade Técnica de Lisboa Professor Doutor Agostinho Miguel Mendes Agra Professor Auxiliar do Departamento de Matemática 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égio de trabalhar nestes anos de mestrado, agradeço o seu trabalho dedicação e disponibilidade e acima de tudo, as suas palavras de encorajamento e estímulo. A Universidade de Aveiro, e em particular ao Departamento de Matemática pela oportunidade e pelas excelentes condições proporcionadas para desenvolver este trabalho. A Instituto Superior Politécnico de São Tomé e Principe na parceria com a Embaixada de França pelo financiamento deste mestrado. A minha família e amigos, pelo apoio, compreensão, paciência e pelo estimulo constante à conclusão deste trabalho. A todos os que, directa ou indirectamente, contribuíram para este trabalho e que fariam uma extensa lista.

8

9 Palavras-chave Resumo matroides, interseção de matroides, poliedro inteiros, polimatroides, desigualdades de cobertura Nesta tese são revistos conceitos básicos que relacionam a teoria dos matroides com a otimização combinatória. São expostos, de forma uniformizada, vários resultados e conceitos bem conhecidos, mas apresentados em textos diversos. Além dos conceitos básicos são igualmente apresentados algoritmos exatos que permitem resolver problemas de otimização cujo conjunto de soluções admissíveis forma um matroide ou corresponde à interseção de dois matroides. É dado ênfase ao estudo poliédrico dos problemas de otimização. Em particular são estudadas algumas relações da função caraterística com restrições e desigualdades válidas para vários problemas de otimização bem conhecidos, como o problema do Saco-Mochila e da Árvore de Suporte de Custo Mínimo. Seguindo Amado, 1997, é estudada a estrutura poliédrica de famílias particulares do problema de sacomochila cuja descrição poliédrica é feita com base em desigualdades de cobertura estendida. Com base nessa família são apresentados minorantes e majorantes para o problema do saco-mochila.

10

11 Keywords Abstract matroids; matroid intersections; integral polyhedra; polymatroids; cover inequalities. 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 optimization 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 Ayagi Dias

13

14 Conteúdo Conteúdo i Lista de Figuras 1 1 Introdução 3 2 Sistemas Independentes e Matroides Introdução Matroides: definição e propriedades Exemplo de Matroides Propriedades e conceitos básicos Dualidade de Matroides otimização de sistemas independentes Algoritmo Guloso Interseção de Matroides Introdução Exemplos de interseção de Matroides Interseção de Cardinalidade Máxima Interseção de Matroides de Peso Máximo União de matroides Poliedros Inteiros e Matroides Introdução Desigualdade caraterística Exemplos da desigualdade caraterística Facetas do Poliedro Conv(X(F)) Polimatroide Exemplos de Polimatroides Interseção de Poliedros Polimatroides Exemplos de interseção de Polimatroides i

15 5 Mochilas Binárias Introdução Mochilas Binárias Majorantes e minorantes matroidais para o problema da Mochila Binária Majorantes Minorantes Conclusão 72 A Propriedade de um conjunto independente 73 B Alguns resultados sobre Conjuntos Convexos e Poliedros em Programação Inteira 74 Bibliografia 77 ii

16 Lista de Figuras 2.1 Ilustração do grafo G = (V, E) Ilustração do grafo G = (V, E) Ilustração do grafo G = (V, E) do Exemplo Ilustração da base B Ilustração da co-base B D Grafo G com peso associado Ilustração da base B = B Ilustração do grafo bipartido G = (V 1, V 2, E) Ilustração do digrafo G e de uma arborescência I com raiz no vértice Ilustração do digrafo G Ilustração do digrafo G Ilustração do grafo auxiliar G aux Ilustração do grafo G = (V, E) Ilustração de caminhos de aumento no grafo G aux Ilustração de caminhos de aumento no grafo G aux Ilustração de facetas de um poliedro Ilustração do Grafo crítico G X (F) Ilustração da S 1 + S 2 \CE Ilustração de S 1 \CE + S 2 \CE

17

18 Capítulo 1 Introdução O conceito de matroide tem a sua origem num artigo de Hassler Whitney, publicado em 1935 [29]. Neste artigo Whitney apresenta semelhanças entre os conceitos de independência e caraterística em teoria de grafos e os conceitos de independência linear e dimensão no estudo dos espaços vetoriais. Neste trabalho define matroides a partir do conceito de independência das colunas de uma matriz. Anos depois Tutte [26] caracteriza os matroides que são definidos a partir dos grafos. A teoria dos matroides permite generalizar vários resultados conhecidos em campos específicos da matemática. Em particular, como iremos ver mais adiante, permite generalizar conjuntos de soluções admissíveis de vários problemas de otimização combinatória. Deste modo, estudando problemas de otimização sobre matroides ou interseção de matroides, estamos a estudar simultaneamente vários problemas de otimização. Esta é precisamente uma das vantagens do estudo de matroides. Nesta tese são revistos conceitos básicos que relacionam a teoria dos matroides com a otimização combinatória. Também abordamos quer os problemas de otimização sobre sistemas independentes quer os problemas de otimização sobre interseção de sistemas independentes. Em particular, estudaremos casos particulares de otimização sobre interseções de matroides. O enfoque desta tese está colocado no estudo poliédrico dos problemas de otimização, em particular nos problemas de saco-mochila. Revemos as condições em que as desigualdades de cobertura e cobertura estendida definem facetas do envolvente convexo do conjunto das soluções admissíveis e estudamos casos particulares onde estas faces são suficientes para descrever o envolvente convexo. Com base nesses casos discutimos minorantes e majorante para o problema geral. O capítulo 2 é dedicado à apresentação dos conceitos básicos da teoria de matroides, isto é, definições e propriedades fundamentais para uma melhor compreensão desta dissertação. Também é apresentado neste capítulo o algoritmo guloso para encontrar uma solução ótima em casos em que um sistema independente define um matroide. 3

19 No capítulo 3 são apresentados alguns exemplos de solução admissível de problemas de otimização combinatória como exemplos de problema de interseção de matroides. Vamos também apresentar neste capítulo algoritmos que permitem encontrar, polinomialmente, uma solução admissível para o problema de interseção de dois matroides. Os problemas de interseção de três ou mais matroides são NP-difíceis e não serão abordados neste trabalho. No capítulo 4 é estabelecida uma relação entre a teoria de matroides e a programação linear e programação inteira. No capítulo 5 é feito um pequeno estudo sobre o problema de mochilas binárias, mais precisamente, aquelas instâncias de mochilas binárias em que a família de subconjuntos de N associados à mochila, {I N : j I w j b}, forma um matroide sobre o conjunto suporte N. Os problemas de mochilas nestas condições são facilmente resolúveis pelo algoritmo guloso, daí serem chamadas de mochilas glutonas. No capítulo 6 são discutidos majorantes e minorantes para o problema do saco-mochila baseados em mochilas matroidais, isto é, mochilas cujo conjunto das soluções admissíveis forma um matroide. Finalmente no último capítulo, faz-se uma síntese conclusiva desta dissertação. Uma vez que, para melhor compreender o texto principal, o leitor deve ter presente alguns resultados sobre a programação inteira, no apêndice B é feito um pequeno resumo deste tema, com o objectivo de facilitar a leitura deste trabalho. 4

20 Capítulo 2 Sistemas Independentes e Matroides 2.1 Introdução Neste capítulo apresentamos alguns resultados básicos sobre a teoria dos matroides. Um matroide pode ser definido partindo das propriedades de um sistema independente. Definição 2.1 Seja N = {1,..., n} e seja F uma família de subconjunto de N. Diz-se que (N, F) é um sistema independente se: (i) F, (ii) se I 1 F e I 2 I 1 então I 2 F. Os conjuntos I N : I F designam-se por conjuntos independentes e os conjuntos I N : I 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ção X + j e X j em vez de X {j} e X\{j}. Dado um sistema independente (N, F) diz-se que I F é um conjunto independente maximal se I + j F, j N\I. E vamos designar por F M a família de conjuntos independentes maximais. Um conjunto independente maximal I F M é máximo (ou de cardinalidade máxima) se I I, I 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 : I F}. I X Então F = {X N : α(x) = X }. O sistema (N, F) pode ser definido alternativamente por (N, α). 5

21 Exemplo 2.1 Seja N = {1, 2,, n} e F = {I N : Σ j I w j b} com w j > 0, j N e b > 0, o conjunto de soluções admissíveis de uma instância de um problema de saco mochila. Facilmente se prova que (N, F) é um sistema independente. I = F pois b > 0. Suponhamos que I N : I F com I. Se S I então S F, caso contrário, i S w i + j I\S w j > j S w j b, ou seja, I 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 I w j b} onde w 1 = 4, w 2 = 3, w 3 = 5, w 4 = 2, w 5 = 4 e b = 9, o conjunto de soluções admissíveis F é 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) é 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ão dependentes, porque, não pertencem a F. A família de subconjuntos maximais é dada por F M = {{1, 3}, {1, 5}, {2, 3}, {3, 4}, {3, 5}, {1, 2, 4}, {2, 4, 5}} e os seus subconjuntos I 1 = {1, 2, 4} e I 2 = {2, 4, 5} são conjuntos independentes máximos. Exemplo 2.2 Seja A a matriz A = Seja N = {1, 2, 3, 4} e F = {I N : colunas com índices em I são linearmente independentes}. Então, 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) é um sistema independente. O conjunto {1, 2, 4} não pertence a F logo {1, 2, 4} é um conjunto dependente, isto é, as colunas 1, 2 e 4 são linearmente dependentes. F M = {{1, 2, 3}, {1, 3, 4}, {2, 3, 4}}. Os conjuntos I 1 = {1, 2, 3}, I 2 = {2, 3, 4} e I 3 = {1, 3, 4} são conjuntos independentes máximos. 6

22 Exemplo 2.3 Seja G um grafo G = (V, E) onde V = {1, 2, 3, 4, 5} e E = {e 1, e 2, e 3, e 4, e 5, e 6 } são o conjunto dos vértices e das arestas, respetivamente, do grafo (ver Figura 2.1). Seja F = {I V : i, j I se e só se i, j não são vértices adjacentes}. Então Figura 2.1: Ilustração do grafo G = (V, E). F = {, {1}, {2}, {3}, {4}, {5}, {1, 3}, {1, 5}, {3, 4}, {3, 5}, {1, 3, 5}}. O par (V, F) é um sistema independente e todos os conjuntos de vértices que são adjacentes em G formam um conjunto dependente. Tem-se F M = {{2}, {3, 4}, {1, 3, 5}}. I 1 = {1, 3, 5} é o único conjunto independente máximo. 2.2 Matroides: definição e propriedades Existem várias formas equivalentes de definir um matroide. Aqui, porém definiremos um matroide em termos das cardinalidades dos seus conjuntos independentes. Para um estudo mais completo, poder-se-á consultar [7, 18, 21]. Definição 2.2 M = (N, F) diz-se um matroide se M é um sistema independente, e se para todo X N, quaisquer dois conjuntos independentes maximais I, I X têm a mesma cardinalidade, ou seja, I = I, I, I conjunto independente maximal de X. Propriedade 2.1 Se (N, F) é um matroide então o sistema independente (X, F X ) é um matroide para todo X N onde F X = {I F : I X} Exemplo de Matroides Partindo da definição do Exemplo 2.2 podemos dizer que o sistema independente do Exemplo 2.2 visto anteriormente é um matroide, mas os sistemas independentes apresentados nos Exemplos 2.1 e 2.3 não são matroides. 7

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êm 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 é F M = {{1, 3}, {1, 5}, {2, 3}, {3, 4}, {3, 5}, {1, 2, 4}, {2, 4, 5}}. Tem-se por exemplo que I 1 = {1, 3} F M e I 2 = {1, 2, 4} F M assim vem que I 1 = 2 I 2 = 3 ou seja M não é um matroide. O mesmo acontece no Exemplo 2.3. Proposição 2.1 Sejam m e n inteiros não negativos tais que m n. Seja N = {1,, n}. Se F = {I N : I m}, então M = (N, F) é um matroide, que representamos por U m,n e chamamos de matroide uniforme. Exemplo 2.5 O matroide U 2,4 é 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ão todos eles máximos, ou seja, têm a mesma cardinalidade. Proposição 2.2 Seja um grafo G = (V, E) e seja F formada por todos os conjuntos de arestas de G que não formam um ciclo. Então M = (E, F) é um matroide, que se denomina por matroide gráfico. Exemplo 2.6 Seja G = (V, E) dado na Figura (4.1) a família de conjuntos independentes Figura 2.2: Ilustração do grafo G = (V, E). F = {, {e 1 }, {e 2 }, {e 3 }, {e 4 }, {e 1, e 2 }, {e 1, e 3 }, {e 1, e 4 }, {e 2, e 3 }, {e 2, e 4 }, {e 3, e 4 }, {e 1, e 2, e 3 }, {e 1, e 2, e 4 }, {e 1, e 3, e 4 }, {e 2, e 3, e 4 }}, e os conjuntos independentes maximais, de cada subgrafo, são as árvores geradoras desse subgrafo, e têm a mesma cardinalidade. 8

24 Proposição 2.3 Seja A uma matriz com colunas a 1,, a n e sejam N o conjunto das colunas da matriz A, ou seja, N = {a 1,, a n } e F formado por conjuntos de elementos de N que são linearmente independentes em N. Então M = (N, F) é um matroide, que se designa por matroide matricial (ver o Exemplo 2.2). Proposição 2.4 Seja N = {1, 2,, n} e seja F uma partição finita de N em k conjuntos disjuntos F = {F 1,, F k } e sejam d i inteiros não negativos, i {1, 2,, k}. Então M = (N, F) é um matroide onde F = {I : I N, I F i d i, i = 1,, k}. Este matroide é conhecido por matroide da partição (ver [21, 22]). Proposição 2.5 Seja A = {A 1, A 2,, A k } uma família de subconjuntos (não necessariamente distintos) de E = {e 1, e 2,, e n }. Um conjunto transversal ou sistema de representantes distintos é um conjunto {e 1, e 2,, e k }, tal que, e i A i. Seja M = (E, F) tal que I E, I F se e só se I é um sistema de representantes distintos de uma subcolecção de A = {A 1, A 2,, A k }. O sistema M = (E, F) é um matroide dito matroide transversal. Sendo por exemplo E = {e 1, e 2, e 3, e 4 } e A = {A 1, A 2 } com A 1 = {e 1, e 2, e 3 } e A 2 = {e 2, e 3, e 4 }. A família de conjuntos independentes é dado por F = {, {e 1 }, {e 2 }, {e 3 }, {e 4 }, {e 1, e 2 }, {e 1, e 3 }, {e 1, e 4 }, {e 2, e 3 }, {e 2, e 4 }, {e 3, e 4 }} Propriedades e conceitos básicos Nesta secção iremos apresentar os conceitos e propriedades fundamentais da teoria dos matroides necessário para este trabalho. Teorema 2.1 Seja (N, F) um sistema independente. Então as afirmações seguintes são equivalentes; (i) (N, F) é um matroide, isto é, para todo X N, I e I são subconjuntos maximais de X em F, então I = I ; (ii) Sejam I n, I n+1 F contendo n e n + 1 elementos respetivamente. Então j I n+1 \I n tal que I n + j F. Prova: (i) (ii) Suponhamos que se verifica (i). Sejam I n, I n+1 F tal que I n = n e I n+1 = n + 1. Seja X = I n + I n+1. Por (i) resulta que I n não pode ser maximal em X. Logo j I n+1 \I n tal que I n + j F. 9

25 (ii) (i) Suponhamos que se verifica (ii) e que I e I são subconjuntos maximais de F tais que I < I. Seja I I tal que I = I +1. Então, por (ii) j I \ I tal que I + j F o que contraria a hipótese de I ser maximal. Definição 2.3 Seja M = (N, F) um matroide com função caraterística α. 1. B diz-se uma base do matroide M se B é 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 é base do matroide M = (N, F) se e só se sp(b) = N. Para matroides gráficos M = (E, F) de um grafo G não orientado, as bases correspondem às árvores geradoras de grafo G (árvores com exatamente ν 1 arestas, onde ν = V ). Definição 2.4 Um conjunto C N diz-se um ciclo de um matroide M = (N, F) se C é um conjunto dependente minimal, isto é, C F mas C j F, j C. A demonstração 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ão: (i) C. (ii) Se C 1, C 2 C, C 1 C 2 implica C 1 = C 2. (iii) Se C 1, C 2 C, C 1 C 2, com j C 1 C 2, então existe C 3 C tal que C 3 (C 1 C 2 ) j. Reciprocamente, se (N, C) é uma estrutura finita satisfazendo os axiomas (i), (ii) e (iii), então M = (N, F) é um matroide, onde F = {I : C I, C C}. O axioma (iii) do resultado acima (Teorema 2.2) é conhecido como propriedade de eliminação de ciclos. Proposição 2.6 Seja B N uma base de um matroide M e j N\B, então existe um único ciclo C tal que C B + j. Prova: Como todas as bases têm o mesmo cardinal, o conjunto B + j é 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 B, o que contradiz o facto de B ser uma base. 10

26 De seguida vamos definir as funções submodulares que nos conduzirão a uma definição alternativa para matroides (Teorema 2.3). Seja S X e seja I um independente de cardinalidade máxima contido em X, i.e, I = α(x). Os conjuntos I S e I (X\S) são conjuntos independentes contidos em S e X\S, respetivamente. Tem-se então α(s) + α(x\s) I S + I X\S = I = α(x). (2.1) Definição 2.5 Consideremos um conjunto finito N = {1, 2,, n} e uma função f : 2 N R +. A função f é submodular se f(i) + f(s) f(i S) + f(i S) I, S N. f é não decrescente, se f(i) f(s) I S. A proposição seguinte apresenta-nos propriedades que serão úteis para concluir que se a função f é ou não submodular e não decrescente. Proposição 2.7 (ver [5])Uma função f é submodular se e somente se para todo j, k, j k e I N\{j, k}: f(i + j) f(i) f(i {j, k}) f(i + k). (2.2) Adicionalmente f é submodular e não decrescente se e somente se para todo I, S N: f(s) f(i) + [f(i + j) f(i)]. (2.3) j S\I Prova: Vamos em primeiro lugar provar a primeira parte da proposição. Se f é submodular, aplicando a sua definição 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). Reciprocamente, sejam A, B N, I = A B, A\B = {j 1, j 2,, j p } e 11

27 B\A = {k 1, k 2,, k q }. Então, f(b) f(a B) = f(i {k 1, k 2,, k q }) f(i) = q i=1 [f(i {k 1, k 2,, k i }) f(i {k 1, k 2,, k i 1 })] q i=1 [f(i {k 1, k 2,, k i } + j 1 ) f(i {k 1, k 2,, k i 1 } + j 1 )]. q i=1 [f(i {k 1, k 2,, k i } {j 1, j 2,, j k }) f(i {k 1, k 2,, k i 1 } {j 1, j 2,, j k })] = q i=1 [f(a {k 1, k 2,, k i }) f(a {k 1, k 2,, k i 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ção. Assumamos que f é submodular e não decrescente. Seja I, S N tal que S\I = {j 1, j 2,, j p }. Então f(s) f(i S) = f(i) + [f(i S) f(i)] = f(i) + p i=1 [f(i {j 1, j 2,, j i }) f(i {j 1, j 2,, j i 1 })] f(i) + p i=1 [f(i j i) f(i)], onde a primeira desigualdade é obtida se f é não decrescente e a segunda desigualdade se f é submodular. Reciprocamente, se escolhermos S = I {j, k}, da equação (2.3), obtemos f(i {j, k}) f(i) + 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) é submodular. Se encolhermos S = I k da equação (2.3), obtemos f(i k) f(i) 12

28 de forma recursiva temos f(i j 1 ) f(i) f(i j 1 j 2 ) f(i j 1 ) f(i) f(i j 1 j 2... j k ) f(i j 1 j 2... j k 1 ) f(i) ou seja f(i) é não decrescente. O teorema seguinte estabelece que a função caraterística associada a um matroide é submodular. Teorema 2.3 Seja (N, F) um sistema independente. (N, F) é um matroide se e somente se a função caraterística é submodular. α(x) = max{ I : I F, I X} Prova: Esta prova segue de perto a apresentada em (Bertsimas [2005]). Se (N, F) é um matroide, então α( ) = 0, α(i) é não decrescente, e α(i + j) α(i) 1. De modo a provar que α(i) é submoludar vamos verificar que a equação (2.2) é satisfeita: α(i + j) α(i) α(i {j, k}) α(i + k). Se α(i + j) α(i) = 1, a desigualdade é óbvia. Suponhamos que a desigualdade é violada, ou seja, α(i + j) α(i) = 0, com α(i) = x e α(i {j, k}) α(i + k) = 1. Então podem ocorrer dois casos: 1 o caso: α(i {j, k}) = x + 2. Assim α(i {j, k}) α(i + k) = x + 2 x = 2 o que é impossível. 2 o caso: α(i {j, k}) = x + 1. Seja S um conjunto independente maximal em I, ou seja, S + l F, para todo l N\S. Deste modo α(i + j) = α(i + k) = x pelo que S+ j F e S + k F. Por isso S é maximal com respeito a α(i {j, k}), de modo que α(i {j, k}) = x o que é uma contradição. Reciprocamente, suponhamos que α(i) é submodular e assumamos que (N, F) não define um matroide, i.e, X N, I 1 e I 2 independentes maximais em X com I 1 < I 2. Assim α(i 1 ) = I 1 < α(i 2 ) = I 2. Pela segunda parte da Proposição 2.7, temos α(i 2 ) α(i 1 ) + j I 2 \I 1 [α(i 1 + j) α(i 1 )], 13

29 o que implica que α(i 1 + j) > α(i 1 ) para algum j I 2 \I 1. Por isso, α(i 1 + j) = I 1 +1 contradizendo o facto de I 1 ser um maximal. Portanto (N, F) é um matroide Dualidade de Matroides Associado a cada matroide M = (N, F) existe um matroide dual M D = (N, F D ) no qual cada base B D de M D é o complemento de uma base de M, isto é, B D = N\B, e vice-versa. Formalmente temos: Definição 2.6 Seja (N, F) um sistema independente. Definimos dual de (N, F) por (N, F D ), onde F D = {I N : existe uma base B em B tal que I B = } e B é 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) é um matroide então M D = (N, F D ) é um matroide. Os ciclos de M D designam-se por co-ciclos de M e vice-versa. Definimos por B D a família das bases de (N, F D ). Um matroide M = (N, F) e o seu dual M D = (N, F D ) estão relacionados da seguinte forma: Proposição 2.8 (M D ) D = (N, F D ) D = M = (N, F). Prova: I (F D ) D se e só se existe uma base B D B D tal que I B D =, o que é equivalente a dizer que existe uma base B B tal que I (N\B) = se e só se I F. Seja X N, a caraterística de X em M D, α D (X), é determinada por uma base de M com um número mínimo de elementos em X. A cardinalidade maxima de um independente de M disjunto de X é α(n\x). Tal conjunto está contido na base com α(x) elementos dos quais α(n) α(n\x) estão contidos em X. O número de elementos de X não contidos nesta base é X +α(n\x) α(n). Formalmente temos o seguinte resultado. Teorema 2.5 (Schrijver [2010]) α D (X) = X +α(n\x) α(n) para todo X N. 14

30 Prova: α D (X) = max{ A X : A B D } = X min{ B X : B B} = X (α(n) max{ B\X : B B}) = X α(n) + max{ B\X : B B} = X α(n) + α(n\x). No caso dos matroides associados a um grafo M = (E, F), o seu dual M D = (E, F D ) designa-se por co-gráfico. Se G é um grafo conexo, as co-bases B D de M D, são conjuntos de arestas que não desconectam o grafo G. Se por outro lado o grafo G tem ν vértices, ɛ arestas e p componentes conexas, então: α(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ão todas as árvores geradoras (portanto com v 1 arestas). As bases B D são os complementares das bases B com ɛ ν + 1 arestas. Figura 2.3: Ilustração do grafo G = (V, E) do Exemplo 2.7. Por exemplo seja B B, B = {e 1, e 2, e 3, e 8 } uma base de M, 15

31 Figura 2.4: Ilustração da base B. então o complementar de B é B D B D dado por B D = {e 4, e 5, e 6, e 7, e 8, e 10, e 11 } que é uma base do matroide dual. Figura 2.5: Ilustração da co-base B D. Os ciclos do problema primal são por exemplo {e 1, e 2, e 3, e 4 }, {e 1, e 2, e 6 }, etc., ou seja, são conjuntos dependentes minimais de M, e os co-ciclos são os conjuntos de arestas que, se forem removidas, desconectam o grafo G, por exemplo {e 3, e 4, e 5, e 11 }, {e 1, e 2, e 9 }, etc. Neste caso α(e) = ν p = 5 1 = 4 α D (E) = ɛ ν + p = E α(e) = 11 4 = otimização de sistemas independentes Nesta secção vamos considerar problemas de otimização definidos sobre sistemas independentes. Seja M = (N, F) um sistema independente e w : N R uma função peso. Vamos considerar os seguintes problemas: 16

32 (a) o problema de determinação do conjunto Independente de Peso Máximo (IPMax): max{ 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{ e B w(e) : B B}. No primeiro caso, problemas IPMax, existe uma correspondência entre o conjunto F e o conjunto das soluções admissíveis. Como exemplo de problemas de otimização combinatória que se podem escrever na forma (a) temos: Problema da determinação do Independente de Peso Máximo (PIPM) - Dado um grafo G = (V, E) e uma função pesos w : E R, o PIPM consiste em encontrar o conjunto independente de G de peso máximo. Aqui E = {1, 2,, n} e F = {I E : I é um independente em G}. Os conjuntos independentes de F são soluções admissíveis do PIPM. Problema do Saco Mochila (PSM) - Sejam n, b, c j, w j (1 j n) números não negativos, o PSM consiste em encontrar um I {1, 2,, n} tal que Σ j I w j b e Σ j I c j seja máximo. Neste caso E = {1, 2,, n} e F = {I E : Σ j I w j b}. Os conjuntos independentes de F são soluções admissíveis do PSM. No segundo caso, problemas BPMim, as soluções admissíveis correspondem às bases do conjunto F. Como exemplo de problemas de otimização combinatória que se podem escrever na forma (b) temos: Problema do Caixeiro Viajante (PCV) - Dado uma grafo completo não orientado G = (E, V ) e uma função peso w : E R +, 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 é uma base de F. Problema de Árvore de Suporte de Custo Mínimo (PASCM) - Dado um grafo conexo G = (E, V ), não orientado, e w : E R, o PASCM consiste em encontrar uma árvore de suporte de custo mínimo em G, ou seja, encontrar a base de F, onde F é uma família de florestas em G Algoritmo Guloso Nesta secção vamos apresentar o algoritmo guloso. Em cada etapa este algoritmo só considera a melhor escolha, sem ter em conta as alterações que tal escolha possa originar 17

33 nas etapas seguintes. Numa fase inicial ordena os elementos do conjunto suporte por ordem (decrescente para um problema de máximo 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ão ciclos com os elementos já escolhidos. Caso não forme ciclo adiciona este elemento a F. Consideremos um conjunto suporte N, uma função peso w : N R + 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ção IPMax: Input: M = (N, F) e w : N R + Output: I (conjunto independente de peso máximo) Passo 1 Fazer t = 1, I 0 = Ordenar os elementos de N de modo que w 1 w 2 w k Passo 2 Se w(t) 0 PARAR. I I t 1. Se w(t) > 0 e I t 1 + t F então I t I t 1 + t Se w(t) > 0 e I t 1 + t F então I t I t 1 Se t = n PARAR. I I t Se t < n então t t + 1 e voltar ao Passo 2. Teorema 2.6 Se M = (N, F) é um matroide o algoritmo guloso determina um conjunto independente de peso máximo. Prova: Suponhamos que M é um matroide e que a solução obtida pelo algoritmo guloso, I g, não é óptima. Seja I 0 uma solução óptima. Como M é um matroide, I g = I 0. De facto, como o algoritmo guloso só selecciona elementos com pesos positivos, se I g > I 0, então pelo axioma (ii) do Teorema 2.1 existirá e I g \ I 0 tal que w(e) > 0 e I 0 + e F. Portanto, I 0 não seria solução óptima (com um argumento análogo se prova que I 0 não pode ser superior a I g ). Admitamos, sem perda de generalidade, que os elementos se encontram ordenados por ordem decrescente dos seu pesos, isto é, I g = {i 1, i 2,, i k }, I 0 = {j 1, j 2,, j k }, onde w(i 1 ) w(i 2 ) w(i k ) > 0, w(j 1 ) w(j 2 ) w(j k ) > 0. Se I g não for uma solução óptima, w(e) < w(e) e I g e I 0 18

34 e então p {1, 2,, k} : w(i p ) < w(j p ) e w(i l ) w(j l ), se l < p. Por outro lado, quando o algoritmo guloso selecciona o elemento i p para entrar para I g tinha já construído o independente I = {i 1, i 2,, i p 1 }. Ora como J = (j 1, j 2,, j p ) também é independente, pelo axioma (ii) do Teorema 2.1, j p J : I + j p F. Mas isso significa que o algoritmo guloso quando tinha já gerado o independente I, escolheu um elemento para juntar a I, i p, com w(i p ) < w(j p ) o que é absurdo. Assim fica provado que se M for um matroide, a solução encontrada pelo algoritmo guloso é óptima, qualquer que seja a atribuição w : N R. Exemplo 2.8 Usemos novamente o matroide induzido pelo grafo G da Figura 2.3 e atribuamos peso as arestas, w : E R +. Desta forma associa-se a cada aresta um peso w(e). Recorde-se que I é um independente, ou seja, I F se e só se I não contem ciclo. Figura 2.6: Grafo G com peso associado. Primeiramente vamos ordenar os elementos por ordem decrescente dos seus pesos: w(e 11 ) w(e 10 ) w(e 1 ) w(e 9 ) w(e 3 ) w(e 8 ) w(e 2 ) w(e 7 ) w(e 6 ) w(e 4 ) w(e 5 ), e fazer I 0 =. Aplicando o Passo 2 do algoritmo temos que I 1 = I 0 + e 11 = {e 11 } isto porque I 0 + e 11 F. De seguida ao adicionarmos e 10 no conjunto I 1, ainda continuamos a ter um independente, então fazemos I 2 = I 1 + e 10 = {e 11, e 10 }. De igual modo a adição de e 1 ao conjunto I 2 continua a pertencer a F, o que implica que I 2 + e 1 = I 3 = {e 11, e 10, e 1 }. Mas vamos notar que I 3 + e 9 F, ou seja, forma ciclo o que nos leva a não adicionar o elemento e 9 ao conjunto I 3. Por outro lado, ao adicionarmos e 3 ao I 3 obtemos I 4 pelo facto de I 3 + e 3 ser um independente, então I 4 = {e 11, e 10, e 1, e 3 }. Analisando os restantes 19

35 elementos por adicionar, vamos constatar que I 4 + e j F, j {2, 4, 5, 6, 7, 8}. Assim sendo I 4 = {e 11, e 10, e 1, e 3 } é a solução óptima (pois (E, F) é um matroide) com peso w(i 4 ) = w(e 11 ) + w(e 10 ) + w(e 1 ) + w(e 3 ) = = 31. Quando o sistema independente em estudo não define um matroide, este algoritmo nem sempre conduz a uma solução óptima, sobretudo. Teorema 2.7 Se (N, F) é um sistema independente mas não é um matroide então existe uma função w : N R para a qual o algoritmo guloso não resolve o problema da determinação do conjunto independente de peso máximo. Prova: Suponha-se que (N, F) é um sistema independente mas que não é um matroide. Nestas condições, vamos exibir uma atribuição de peso w : N R para a qual o algoritmo não encontra a solução óptima. Se (N, F) não for um matroide então existe um subconjunto X de N, que contem dois independentes maximais I 1 e I 2 de cardinalidade diferente, I 1 < I 2. Para ξ suficientemente pequeno (por exemplo), 0 < ξ < 1 I 1 defina-se 1 se e I 1, w(e) = 1 ξ se e I 2 \ I 1, (2.4) 0 caso contrário. Para esta atribuição de peso, a solução obtida pelo algoritmo tem peso total I 1 não sendo, portanto, uma solução óptima, uma vez que qualquer independente que contenha I 2 elementos tem peso total não inferior a I 2 (1 ξ) > I 1. Exemplo 2.9 Tomemos agora o seguinte exemplo, onde o problema consiste em: Maximizar Z = 8x 1 + 2x 2 + 5x 3 + 4x 4 + 2x 5 sujeito a 8x 1 + 2x 2 + 5x 3 + 4x 4 + 2x 5 14 x 1,, x 5 {0, 1}. Usando o algoritmo guloso obteremos o seguinte: I 0 = w(1) w(3) w(4) w(2) w(5) I 0 + {1} F I 1 = I 0 + {1} = {1} I 1 + {3} F I 2 = I 1 + {3} = {1, 3} I 2 + {4} F I 3 = I 2 I 3 + {2} F I 4 = I 3 I 4 + {5} F I 5 = I 4 = {1, 3}. 20

36 A solução encontrada pelo algoritmo guloso é I = {1, 3} com peso w(i) = w(1) + w(3) = 13, mas o independente de peso máximo é {1, 2, 4} com peso w({1, 2, 4}) = w(1) + w(2) + w(4) = 14. O algoritmo guloso para o problema de maximização PIMax sobre um sistema independente (N, F) corresponde ao algoritmo guloso para o problema de minimização BPMin, aplicado ao dual (N, F D ). Este algoritmo é 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ção BPMin Input: (N, F) e w : N R + Output: B (uma base de F de peso mínimo) Passo 1 Fazer N = {e 1, e 2,, e k } Ordenar os elementos de N por ordem crescente do peso w(e 1 ) w(e 2 ) w(e k ) Passo 2 Fazer B = N. Para i = 1, 2,, k fazer Se sp(b e i ) = N então B B e i. Suponhamos que pretendemos encontrar uma base B do grafo apresentado na Figura 2.6 tal que w(b) seja mínimo. Então temos: i B Arestas ordenadas por peso 1 {e 1,, e 11 } e 11, e 10, e 1, e 9, e 3, e 8, e 2, e 7, e 6, e 4, e 5 2 {e 1,, e 10 } e 10, e 1, e 9, e 3, e 8, e 2, e 7, e 6, e 4, e 5 3 {e 1,, e 9 } e 1, e 9, e 3, e 8, e 2, e 7, e 6, e 4, e 5 4 {e 2,, e 9 } e 9, e 3, e 8, e 2, e 7, e 6, e 4, e 5 5 {e 2,, e 8 } e 3, e 8, e 2, e 7, e 6, e 4, e 5 6 {e 2, e 4, e 5, e 6, e 7, e 8 } e 8, e 2, e 7, e 6, e 4, e 5 7 {e 2, e 4, e 5, e 6, e 7, e 8 } e 8, e 2, e 7, e 6, e 4, e 5 não removemos e 8 8 {e 2, e 4, e 5, e 6, e 7, e 8 } e 8, e 2, e 7, e 6, e 4, e 5 não removemos e 2 9 {e 2, e 4, e 5, e 6, e 8 } e 8, e 2, e 6, e 4, e 5 10 {e 2, e 4, e 5, e 6, e 8 } e 8, e 2, e 6, e 4, e 5 não removemos e 6 11 {e 2, e 5, e 6, e 8 } e 8, e 2, e 6, e 5 12 {e 2, e 4, e 6, e 8 } e 8, e 2, e 6, e 5 não removemos e 5 21

37 ou seja, B = {e 2, e 5, e 6, e 8 } é solução óptima com peso w(b) = w(e 2 ) + w(e 5 ) + w(6) + w(8) = = 9. Figura 2.7: Ilustração da base B = B

38 Capítulo 3 Interseção de Matroides 3.1 Introdução Muitos problemas de otimização podem ser vistos como problemas de otimização sobre interseção de matroides, isto é, os conjuntos de soluções admissíveis são, simultaneamente, conjuntos independentes de diferentes matroides. Edmonds [10], mostrou que se tivermos dois matroides a determinação do independente de cardinalidade ou peso máximo comum entre eles, pode ser determinada polinomialmente. O problema da determinação da interseção de dois matroides de cardinalidade máxima, é estudado na secção 3.3. Na secção 3.4 é apresentado um algoritmo para a determinação da solução óptima para o problema de interseção de matroides de peso máximo. Dados dois sistemas independentes (N, F 1 ) e (N, F 2 ), definimos a sua interseção por (N, F) onde F = F 1 F 2. Nota-se que se (N, F 1 ) e (N, F 2 ) forem dois matroides quaisquer, (N, F 1 F 2 ) é um sistema independente mas em geral não é um matroide. Exemplo 3.1 Consideremos o exemplo da Figura 3.1. Figura 3.1: Ilustração do grafo bipartido G = (V 1, V 2, E). Um emparelhamento em G pode ser visto como um independente que é simultaneamente independente dos matroides M i = (E, F i ) i = 1, 2 onde I F i se em I quanto muito uma 23

39 aresta incide em cada vértice de V i (matroides da partição), definido pelo grafo da Figura 3.1. A família F = {, {e 1 }, {e 2 }, {e 3 }, {e 4 }, {e 5 }, {e 6 }, {e 7 }, {e 1, e 4 }, {e 1, e 5 }, {e 1, e 6 }, {e 1, e 7 }, {e 2, e 3 }, {e 2, e 5 }, {e 2, e 7 }, {e 3, e 6 }{e 3, e 7 }, {e 4, e 7 }, {e 5, e 6 }, {e 1, e 4, e 7 }, {e 1, e 5, e 6 }, e 2, e 3, e 7 }} = F 1 F 2 é um sistema independente mas não é um matroide porque, por exemplo, I 1 = {e 1, e 4, e 7 } e I 2 = {e 2, e 5 } são dois independentes maximais mas I 2 não é máximo, I 1 = 3 I 2 = 2. De uma forma análoga é definida a interseção de um número finito de independentes, e é evidente que o resultado é novamente um sistema independente. O resultado seguinte mostra que todo o sistema independente pode ser obtido a partir da interseção de um número finito de matroides. Proposição 3.1 Qualquer sistema independente (N, F) é a interseção de um número finito 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, F C ) com F C = {I N : C \ I } define um matroide M C = (N, F C ). (i) É evidente que para I =, C\I, ou seja, F C. (ii) Se I 1 F C então C\I 1. Suponhamos que I 2 I 1 isso implica que C\I 1 C\I 2, ou seja, I 2 F C. Então por (i) e (ii) o sistema (N, F C ) é um sistema independente. (iii) Vamos agora provar que todos os independentes maximais de X N têm a mesma cardinalidade. Seja X N, I, I X são independentes (I, I F C\I e C\I ) e maximais, então tem-se dois casos: a) se C X então I = I = X 1. b) se C X então I = I = X pois C\X. Por fim vamos verificar que a interseção de todos esses matroides M C, C C é o próprio sistema independente (N, F), ou seja, F = C C F C. Seja A = C C F C, pretendemos mostrar que A = F. Se I A então I F C, C C C\I, C C. Então I não contém qualquer ciclo ( C C, C I). Logo I F A F. Reciprocamente I F C\I, C C I A F A. Pelas duas inclusões, A F e F A podemos concluir que A = F. 24

40 Um conjunto I N : I F 1 F 2 é uma interseção de cardinalidade máxima se não existe nenhum conjunto independente I F 1 F 2 com I > I. Mais genericamente, façamos uma atribuição de peso aos elementos e i N, w : N R. Um conjunto independente I N : I F 1 F 2 é uma interseção de peso máximo se a soma total dos pesos em I, w(i), for máxima, w(i) = max{w(i ) : I F 1 F 2 }. 3.2 Exemplos de interseção de Matroides De seguida apresentamos alguns exemplos de interseção de matroides. Os leitores mais interessado poderão consultar [21, 25]. Emparelhamento Um problema de emparelhamento num grafo bipartido pode ser visto como um problema envolvendo a interseção de dois matroides sobre um mesmo conjunto de arestas do grafo bipartido. Seja G = (V 1, V 2, E) um grafo bipartido com as partições V 1 e V 2. O conjunto I E é um emparelhamento se e só se em cada um dos vértices de V 1 e V 2 incide quanto muito uma aresta, ou seja, e i, e j I se e só se e i, e j não forem adjacentes. Usualmente consideramos dois tipos de problemas de emparelhamento: o de encontrar um emparelhamento de cardinalidade máxima e o de procurar um emparelhamento de peso máximo. Neste segundo caso, é dado, além do grafo, uma função que associa a cada arco um peso não negativo. Existem algoritmos eficientes para os dois problemas. No caso da determinação de emparelhamentos de cardinalidade máxima em grafos bipartidos temos o algoritmo húngaro, usado para o problema de afetação [23], e no caso do problema de emparelhamento de peso máximo em grafos bipartidos temos o algoritmo de Kuhn para encontrar um emparelhamento óptimo num grafo bipartido com pesos [19]. Suponhamos agora M 1 = (E, F 1 ) e M 2 = (E, F 2 ) dois matroides sobre o mesmo conjunto de arestas, onde I F i, i = 1, 2, se não mais do que uma aresta de I é incidente em cada vértice de V i, i = 1, 2 (M i, i = 1, 2 matroide da partição). Encontrar um conjunto I E comum à F 1 e F 2 é o mesmo que encontrar um emparelhamento I onde I F i, i = 1, 2 se e somente se não mais do que uma aresta de I é incidente em cada vértice de V i, i = 1, 2. Desta forma, tomando como exemplo o grafo bipartido da Figura 3.1, temos que {e 1, e 3 } F 1 mas não pertence a F 2. Todavia se consideramos o conjunto independente I = {e 1, e 5, e 6 }, facilmente verificamos que esse conjunto pertence simultaneamente a F 1 e a F 2 ou seja, 25

41 I F 1 F 2, e como não se pode adicionar mais arestas a I logo é de cardinalidade máxima ou emparelhamento perfeito. Adicionalmente se a cada aresta de G for adicionado um peso w ij não negativo obtemos um problema de emparelhamento de peso máximo. Por exemplo, seja w ij = facilmente vemos que a solução óptima é I = {e 1, e 5, e 6 } com o peso w(i) = = 15. Podemos ver que o problema de emparelhamento de cardinalidade máxima é um exemplo de interseção de matroides com uma função peso que associamos a cada aresta o peso 1. Problema de arborescência Uma arborescência é um digrafo cujo grafo não orientado obtido por remoção da orientação dos arcos é uma árvore, e em que em cada vértice incide quanto muito um arco. Assim, uma arborescência com ν vértices tem ν 1 arcos, logo existe um vértice r com grau de entrada nulo. Este vértice designa-se por raiz. Na Figura 3.2 encontra-se representado um digrafo G e uma arborescência. Figura 3.2: Ilustração do digrafo G e de uma arborescência I com raiz no vértice 1. Sejam M 1 = (A, F 1 ) e M 2 = (A, F 2 ) dois matroides definidos do seguinte modo: I F 1 se e só se não mais do que um arco de I incide em cada um dos vértice (M 1 é um matroide de partição) de G. I F 2 se e só se I não contém qualquer ciclo (M 2 é um matroide gráfico). As arborescências correspondem aos conjuntos em F 1 F 2. No Exemplo da Figura 3.2, I = {e 1, e 5, e 7, e 8, e 10, e 11, e 12 } é um conjunto independente em F 1 mas não pertence a F 2 ; de igual modo {e 1, e 3, e 7, e 8, e 10, e 11, e 12 } pertence a F 2 mas não pertence a F 1. Considerando I = {e 2, e 3, e 7, e 8, e 9, e 11, e 15 } (ver arborescência na Figura 3.2) verificamos que cada vértice tem quanto muito um arco de entrada, I contém ν 1 arcos, e não contém qualquer ciclo, ou seja, I F 1 e I F 2, isso quer dizer que a solução encontrada é uma arborescência, pois as arborescência são todos os elementos maximais em F 1 F 2. 26

42 Problema de ciclo hamiltoniano Pretende-se encontrar um ciclo hamiltoniano num grafo G com n nós. Existe um ciclo hamiltoniano em G se e somente se existe um caminho do nó 1 ao nó n que passa por cada um dos outros nós exatamente uma vez. Por exemplo o ciclo retirado do grafo da Figura 3.3, é um ciclo hamiltoniano. Figura 3.3: Ilustração do digrafo G. Vamos construir um grafo G com n + 1 nós onde o nodo n + 1 é criado de forma que cada arco incidente no nodo 1 passe a ser incidente no nodo n + 1 (como exemplo do ciclo ) ver Figura 3.4. De seguida vamos descrever o conjunto das soluções admissíveis do problema do ciclo hamiltoniano como interseção de três matroides sobre o grafo G (ver Figura 3.4). Suponhamos que temos três matroides M 1, M 2 e M 3. M 1 é um matroide gráfico no grafo G. Figura 3.4: Ilustração do digrafo G. M 2 e M 3 são matroides de partição (não existe mais do um arco incidente em cada vértice de G), ou seja, M 2 é o matroide de partição cujos conjuntos independentes contêm no máximo um arco incidente em cada nó e M 3 é o matroide da partição cujos conjuntos 27

43 independentes contêm no máximo um arco divergente de cada nó. Existe um ciclo hamiltoniano se e só se existir um independente na interseção de M 1, M 2 e M 3. Infelizmente não existe nenhum algoritmo polinomial para resolver o problema da determinação do independente de peso ou cardinalidade máxima na interseção de três ou mais matroides [21]. O problema de caixeiro viajante é um problema NP-difícil. 3.3 Interseção de Cardinalidade Máxima Nesta secção, descrevemos um algoritmo para encontrar o conjunto independente de cardinalidade máxima comum a dois matroides. O algoritmo para a determinação da interseção entre dois matroides, foi introduzido por Edmonds [11]. Começando por se considerar um conjunto I = vai-se adicionando a I um elemento j N em cada interação. Em geral ao juntarmos j em I esperamos que I + j F 1 F 2. Essa adição de elementos ao conjunto independente I é feita com base nos caminhos auxiliares de aumento encontrados entre os elementos que estão em I e os de N \ I. Para que a leitura desta secção se torne mais simples vamos iniciá-la com apresentação e demonstração de alguns resultados sobre a noção de caminhos de aumento. As provas dos resultados apresentadas nesta secção podem ser consultadas em [18, 25]. Caminho de aumento O conceito do caminho de aumento é bem conhecido para o problema da determinação do emparelhamento de peso máximo. Este conceito pode ser generalizado para o problema da determinação da interseção de dois independentes. Seja I uma qualquer interseção de dois matroides, M 1 = (N, F 1 ) e M 2 = (N, F 2 ), ou seja I F 1 F 2. Podemos construir um caminho de aumento P em relação a I da seguinte forma: Escolher e 1 tal que I + e 1 F 1. Se I + e 1 F 2 então encontrar e 2 tal que I + e 1 e 2 F 1 F 2. Escolher e 3 tal que I + e 1 e 2 + e 3 F 1 e I + e 3 F 1. Se I + e 1 e 2 + e 3 F 2 então encontrar e 4 tal que I + e 1 e 2 + e 3 e 4 F 1 F 2. O processo é repetido até que I + e 1 e 2 + e 3 e e k F 2 com k ímpar. P = (e 1, e 2,, e k ) é um caminho de aumento tal que e i N\I para i ímpar e e i I para i par. Formalmente, Seja P i = (e 1, e 2,, e i ), k i. P diz-se um caminho alternado relativamente a I se: I + e 1 F 1. 28

44 Para todo i par sp 2 (I + e 1 e 2 + e i ) = sp 2 (I). Portanto I + e 1 e 2 + e i F 2. Para todo i ímpar, i > 1, sp 1 (I + e 3 e e i ) = sp 1 (I + e 1 ). Portanto I + e 3 e e i F 1. Onde sp i com i = 1, 2 é conjunto gerado associado ao matroide M i. Se adicionalmente P = k é ímpar e I + e 1 e 2 + e 3 e e k F 2, P diz-se um caminho de aumento relativamente a I. Dado um conjunto I F e j N, vamos designar por C j o único ciclo que contem I + j se I + j F e C j = caso contrário. A Figura 3.5, exemplifica um procedimento para determinar caminhos de aumento. Considerem-se o conjunto independente I F 1 F 2 e os ciclos C (1) i, C (2) i, i = 1, 2 associados aos matroides M 1 e M 2, respetivamente, define-se por G aux = (N, A (1) A (2) ) o grafo auxiliar onde A (1) = {(e i, e j ) : e j N\I, e i C (1) j e j }, Seja A (2) = {(e j, e i ) : e j N\I, e i C (2) j e j }. T 1 = {e j N\I : I + e j F 1 }, T 2 = {e j N\I : I + e j F 2 }, onde T 1 é o conjunto de todas as raízes dos caminhos auxiliares de aumento e T 2 o conjunto de todas as cabeças dos caminhos auxiliares de aumento com raiz em T 1. Vamos determinar o caminho mais curto de T 1 a T 2. Figura 3.5: Ilustração do grafo auxiliar G aux. 29

45 Este caminho vai-nos fornecer um caminho de aumento. Se T 1 T 2 =, temos um caminho de comprimento nulo, pode-se então adicionar a I um qualquer elemento de T 1 T 2. Lema 3.1 Seja I F 1 F 2. Seja y 0, x 1, y 1, x s, y s o caminho mais curto de y 0 para y s (de menor cardinalidade) no grafo auxiliar G aux, com y 0 T 1 e y s T 2. Então I = (I {y 0, y 1,, y s })\{x 1, x 2,, x s } F 1 F 2. Prova: (ver Korte [2008]) Em primeiro lugar vamos mostrar que I + y 0, x 1, x 2,, x s e y 1, y 2,, y s satisfazem os axiomas do Lema A.1 (ver Apêndice A) em relação a F 1. Observe-se que I + y 0 F 1 isto porque y 0 T 1. O axioma (i) é satisfeito porque (x j, y j ) A (1) j, e o (ii) também é satisfeito, porque caso contrário o caminho y 0 x 1 y 1 x s y s não seria o mais curto. Assim concluímos que I F 1. Em segundo lugar vamos provar seguindo um raciocínio análogo que I +{y s }, x s 1, x s 2,, x 1 e y s 1, y s 2,, y 0 satisfazem os axiomas do Lema A.1 (ver Apêndice A) em relação a F 2. Observe que I + y s F 2 isto porque y s T 2. O axioma (i) é satisfeito porque (y j 1, x j ) A (2) j, e o (ii) também é satisfeito, porque, caso contrário, o caminho y 0 x 1 y 1 x s y s não seria o mais curto. Assim concluímos que I F 2. Vamos agora provar que se não existe um caminho de T 1 T 2 em G aux, então I é máximo. Teorema 3.1 Uma interseção I tem cardinalidade máxima se e só se não admite nenhum caminho de T 1 T 2 em G aux. Prova: (Ver Schrijver [2010]) Se existir um caminho de T 1 T 2 em G aux, então existe um caminho mais curto de T 1 T 2. Aplicando o Lema 3.1 obtém-se um conjunto I F 1 F 2 de maior cardinalidade. Suponhamos que não existe nenhum caminho de aumento de T 1 T 2 em G aux. Portanto, existe um subconjunto X N que contém T 2 de tal modo que X T 1 = e tal que não existe arco de G aux incidente em X (podemos considerar X como um conjunto de vértices não atingíveis a partir de T 1 ). Sejam α 1 e α 2 as função caraterísticas de F 1 e F 2, respetivamente, vamos provar que, Para esse fim mostramos primeiro que α 1 (X) + α 2 (N\X) = I, I F 1 F 2. (3.1) α 1 (X) = I X. (3.2) Claramente, como I X F 1, sabemos que α 1 (X) I X. Suponhamos que α 1 (X) > I X, então existe um x X\I de modo que (I X) + x F 1. Uma vez que I F 1 isso implica que existe um conjunto Y F 1 com Y I e (I X) + x Y I + x. Então Y = I + x ou Y = {(I y) + x} para algum y I\X. Na primeira alternativa, x T 1, o que contradiz o facto de que x X. Na segunda alternativa (yx) é um arco de G aux 30

46 que incide em X, o que contradiz a definição de X (com y X e x X). Isso prova a equação (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 (F 1 F 2 ), temos Y = Y X + Y \X α 1 (X) + α 2 (N\X) = I. (3.3) Assim I F 1 F 2 é uma interseção de cardinalidade máxima. Da prova da equação (3.1) resulta o seguinte teorema de interseção de matroides, Teorema 3.2 (Edmonds [1970]) Seja M 1 = (N, F 1 ) e M 2 = (N, F 2 ) dois matroides com função caraterística α 1 e α 2 respetivamente. Então, max{ I : I F 1 F 2 } = min{α 1 (X) + α 2 (N\X) : X N}. (3.4) Portanto do teorema da interseção de matroides resulta o bem conhecido resultado de König-Egervary: Teorema: Num grafo bipartido a cardinalidade de um emparelhamento máximo é igual à cardinalidade de uma cobertura por vértices mínima. A prova desse resultado (Teorema de König) poder ser consultado em [24]. A cobertura por vértices é também um dos exemplos da interseção de dois matroides. Dado um grafo G = (V, E) designa-se por cobertura por vértices a um subconjunto de vértices 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} é uma cobertura por vértices. Se S é uma cobertura por vértices e não existe uma cobertura por vértices S S S diz-se que S é uma cobertura por vértices mínima. tal que Tendo em conta a noção de caminho de aumento visto anteriormente, o algoritmo para o problema da determinação da interseção de matroides de cardinalidade máxima pode ser descrito da seguinte forma [21]: 31

47 Algoritmo 3.1 Algoritmo para interseção de matroides de cardinalidade máxima. Input: M 1 = (N, F 1 ) e M 2 = (N, F 2 ) Passo 0 Seja I F 1 F 2 (I pode ser o conjunto vazio). Passo 1 (1.0) Para cada e i N \ I encontrar ciclo (caso existam) C (1) i, C (2) i. Etiquetar com + todo o elemento em e i N \ sp 1 (I). (1.1) Se todas as etiquetas foram pesquisadas seguir para o Passo 3. Caso contrário, determinar o elemento e i 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 e i. Se I {e i } F 2 seguir para o Passo 2. Caso contrário atribuir etiqueta i a cada elemento não etiquetado em C (2) i, voltar a (1.1) (1.3) Pesquisar a etiqueta em e i atribuindo a etiqueta i + a cada elemento não etiquetado e j tal que e i 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ão existe qualquer caminho de aumento. I é o conjunto de cardinalidade máxima. Parar. Nota: C (1) i é o único ciclo (caso exista) de M 1 em I + e i para e i N \ I. C (2) i único ciclo (caso exista) de M 2 em I + e i para e i N \ I. é o Exemplo 3.2 Considere o matroide gráfico M 1 = (E, F 1 ) definido no grafo seguinte: Figura 3.6: Ilustração do grafo G = (V, E). e o matroide M 2 = (E, F 2 ), para E = {e 1, e 2, e 3, e 4, e 5, e 6, e 7, e 8, e 9 } tal que I F 2 se e só se I {e 3, e 4, e 5, e 6, e 8 } 2. 32

48 Comecemos com o conjunto em F 1 F 2 maximal que não é máximo I = {e 2, e 3, e 7, e 8 }. Podemos determinar um caminho de aumento P em relação a I. Cada elemento de P corresponde a elementos dos matroides M 1 e M 2. Cada caminho de aumento contém um elemento de tal modo que e i N\sp 1 (I), i.e, e i pode ser adicionado em I sem formar ciclo em M 1, onde sp 1 (I) = {e 2, e 3, e 7, e 8, e 1, e 9 }. Assim sendo existem três caminhos de aumento com raiz em e 4, e 5 e e 6 respetivamente, cada um deles será construído de forma a passar através de uma alternância entre os elementos que estão no conjunto admissível I e os que não estão. Partindo das raízes e 4, e 5 e e 6, e tendo em conta os ciclos encontrados C e (1) 1 = {e 2, e 3, e 1 } C e (1) 9 = {e 7, e 8, e 9 } C e (2) 4 = {e 3, e 8, e 4 } C e (2) 5 = {e 3, e 8, e 5 } C e (2) 6 = {e 3, e 8, e 6 } o algoritmo procede do seguinte modo: se adicionarmos o elemento e 4 ao conjunto admissível forma ciclo C e (2) 4, o que nos leva a remover e 3 ou e 8. O mesmo acontece ao adicionarmos e 5 ou e 6, forma ciclo C e (2) 5 ou C e (2) 6, respetivamente, mas como e 3 ou e 8 já estão no caminho com raíz em e 4, por isso não se analisam as raízes e 5 e e 6. Vejamos agora o que acontece no matroide M 1 se removemos qualquer um dos elementos e 3 ou e 8 do conjunto I. Removendo e 3 permite que e 1 seja adicionada em I sem formar ciclo em M 1. Por outro lado, removendo e 8 permite adicionar e 9 sem formar ciclo em M 1. Consideremos agora o efeito em M 2 na adição de qualquer um dos elementos e 1, e 8. A adição de qualquer um desses elementos não forma ciclo em M 2. Percorrendo um caminho no sentido contrário, partindo de e 1 e e 9, identificam-se dois caminhos de aumento P 1 = {e 4, e 3, e 1 } e P 2 = {e 4, e 8, e 9 }. Escolhendo arbitrariamente P 1, adicionamos ao I os elementos e 4 e e 1 removendo e 3 para obter uma nova interseção I = {e 1, e 2, e 7, e 8, e 4 }. Este processo pode ser visto de uma forma mais simples como por exemplo, e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e i N\sp 1 (I) e 4 e 5 e 6 e 3 + e 8 + ou ainda usando o grafo auxiliar da Figura

49 Figura 3.7: Ilustração de caminhos de aumento no grafo G aux 34

50 3.4 Interseção de Matroides de Peso Máximo O problema da interseção de matroides de peso máximo também pode ser resolvido em tempo polinomial. O algoritmo aqui apresentado é uma generalização do algoritmo húngaro para determinar uma afetação de peso máximo num grafo bipartido [23]. Sejam (e j ) o peso de um caminho alternado de peso máximo com elemento final e j e k (e j ) o peso de um caminho alternado contendo não mais do que k elementos, com e j como último elemento, e w(i) = j I w j. Uma vez que nenhum caminho alternado contém mais do que n elementos, em que n = N, é evidente que o caminho de aumento de peso máximo tem peso (P ) onde, (P ) = max{ n (e j ) : I p + e j F 2 } e I p o independente de cardinalidade p ou seja, I é p - maximal se I = p e I é de peso máximo com respeito a todas as interseções contendo exatamente p elementos. A ideia é inicialmente etiquetarmos com + todos os elementos e j N \ sp 1 (I p ) e atribuímos a cada caminho alternado de aumento de peso máximo com elemento final e j, o peso dos respectivos elementos j, ou seja, (e j ) = w j. E fazemos (e l ) = para todo e l sp 1 (I p ). Em seguida procuramos um elemento e i etiquetado e dependendo do sinal da sua etiqueta temos o seguinte: Se a etiqueta de tal elemento for + e I + e i forma um ciclo em F 2 atribuímos etiqueta i para todos elementos e j C (2) i e i para os quais (e i ) w j > (e j ) e fazemos (e j ) = (e i ) w j. Se a etiqueta de tal elemento for atribuímos etiqueta i + a todos elementos e j tal que e j C (1) j e (e i ) + w j > (e j ) e fazemos (e j ) = (e i ) + w j. O processo é repetido até todos os elementos serem etiquetados. Assim sendo o algoritmo para interseção de matroides de peso máximo pode ser assim descrito [21]: Algoritmo 3.2 Algoritmos para interseção de matroides de peso máximo Passo 0 Seja I =. (nenhum elemento se encontra etiquetado). Passo 1 (1.0) Para cada e i N \ I encontrar circuitos (caso existam) C (1) i, C (2) i. Fazer (P ) =, (e i ) = para todo e i N \ sp 1 (I). Etiquetar com + todo o elemento em e i N \ sp 1 (I) e fazer (e i ) = w i. (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. 35

51 Caso contrário, determinar o elemento e i 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 e i. Se I {e i } F 2 e (e i ) > (P ) fazer (P ) = (e i ) e k = i. Caso contrário atribuir a etiqueta i a todo o elemento e j C (2) i para o qual (e j ) < (e i ) w j e fazer (e j ) = (e i ) w j. Seguir para (1.1). (1.3) Pesquisar a etiqueta em e i atribuindo a etiqueta i + a cada elemento e j tal que e i C (1) j (e j ) = (e i ) + w j. Voltar a (1.1). e (e i ) + w j > (e j ) e fazer e i Passo 2 Passo 3 Um caminho de aumento P terminado em e k foi identificada. Se (P ) 0 parar.o conjunto I é o conjunto da interseção de peso máximo. Caso contrário incrementar I, remover todas as etiquetas e voltar ao Passo 1. Não existe qualquer caminho de aumento. I é o conjunto de peso máximo e de cardinalidade máxima. Parar. Exemplo 3.3 Consideremos os mesmo matroides do Exemplo 3.1 e associemos a cada elemento e i de N um peso, w(e 1 ) = 3, w(e 2 ) = 2, w(e 3 ) = 12, w(e 4 ) = 5, w(e 5 ) = 4, w(e 6 ) = 6, w(e 7 ) = 10, w(e 8 ) = 7, w(e 9 ) = 8. Desta vez comecemos com o conjunto independente 4-maximal I 4 = {e 3, e 6, e 7, e 9 }, com w(i 4 ) = 36, o que quer dizer que pode-se procurar um caminho de aumento P em relação a I 4, da mesma forma que fizemos para o exemplo anterior, mas tendo em consideração os pesos associados a cada elemento e i. Note-se que sp 1 (I 4 ) = {e 3, e 6, e 7, e 9, e 4, e 8 }, desta forma existem três caminhos de aumento com raiz em e 1, e 2 e e 5, respetivamente. Partindo de uma dessas raízes, fazendo (e i ) = e (P ) = para e i sp 1 (I 4 ), e tendo em conta os ciclos encontrados C e (1) 8 = {e 7, e 9, e 8 } C e (1) 4 = {e 3, e 6, e 7, e 9, e 4 } C e (2) 5 = {e 3, e 6, e 5 } C e (2) 8 = {e 3, e 6, e 8 } o algoritmo procede do seguinte modo: Ao adicionarmos o elemento e 1 ao conjunto admissível não forma ciclo em M 2 então actualizamos (P ) = w(e 1 ) = 3 fazendo k = e 1 e seguimos para e 2, da mesma forma 36

52 acontece ao adicionarmos e 2 ao conjunto admissível não forma ciclo em M 2 mas como (P ) = 3 > (e 2 ) = 2 não atualizamos (P ) e k continua a ser igual ao e 1, e seguimos para e 5. Se adicionarmos o elemento e 5 ao conjunto admissível forma ciclo C e (2) 5, o que nos leva a remover e 3 ou e 6 porque (e 3 ) < (e 5 ) w(e 3 ) e (e 6 ) < (e 5 ) w(e 6 ) logo atualizamos (e 3 ) = (e 5 ) w(e 3 ) = 4 12 = 8 e (e 6 ) = (e 5 ) w(e 6 ) = 4 6 = 2. Vejamos agora o que acontece no matroide M 1 se removermos qualquer um dos elementos e 3 ou e 6 do conjunto I 4. Removendo e 3 permite que e 4 seja adicionado em I 4 porque (e 4 ) < (e 3 )+w(e 4 ) e não forma ciclo em M 1, logo actualizamos (e 4 ) = (e 3 ) w(e 4 ) = = 3. Por outro lado removendo e 6 também permite a adição de e 4 em I 4. Apesar de e 4 já estar etiquetado temos que o caminho alternado até ao e 4 vindo pelo e 6 tem melhor peso, por isso actualizamos (e 4 ) = (e 6 ) + w(e 4 ) = = 3. Consideremos agora o efeito no M 2 com a adição do elemento e 4. Ao adicionarmos e 4 a I 4 não forma ciclo em M 2, mas (e 4 ) = (P ) = 3 por isso não actualizamos (P ). Percorrendo o caminho no sentido contrário, partindo do e 4 temos que o caminho de aumento em relação a I 4 é P = {e 5, e 6, e 4 }. Fazendo I 4 +e 5 e 6 +e 4 obtemos um nova interseção I = {e 3, e 4, e 5, e 7, e 9 } com w(i) = 39. O conjunto I = {e 3, e 4, e 5, e 7, e 9 } encontrado é de peso e de cardinalidade máxima. A forma mas simples de representar este processo é a seguinte (ver caminho de aumento no grafo da Figura 3.8): e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 (3, + ) (2, + ) (, ) (, ) (4, + ) (, ) (, ) (, ) (, ) ( 8, e 5 ) ( 2, e 5 ) ( 3, e + 3 ) (3, e + 6 ) Removendo todas as etiquetas, e recomeçando o processo novamente, vamos verificar que o novo conjunto gerado sp 1 (I) = {e 3, e 4, e 5, e 7, e 9, e 1, e 2, e 6, e 8 } contem todas as arestas de M 1, o que significa que para todo e i sp 1 (I), (e i ) = e (P ) =, logo não existe mais nenhum cominho de aumento. Figura 3.8: Ilustração de caminhos de aumento no grafo G aux. 37

53 3.5 União de matroides Nesta secção vamos fazer uma breve introdução à união de matroides. Definição 3.1 Sejam M 1 = (N 1, F 1 ) e M 2 = (N 2, F 2 ) matroides definidos sobre um mesmo conjunto N. Então M = M 1 M 2 = (N, F) é designado por união ou soma de M 1 e M 2, onde F = {I 1 I 2 : I 1 F 1 e I 2 F 2 } e N = N 1 N 2. Por exemplo sejam M 1 = (N 1, F 1 ) e M 2 = (N 2, F 2 ) matroides definidos sobre os conjuntos N 1 = {1, 2, 3, 4} e N 2 = {4, 5, 6} respetivamente com F 1 = {, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}} e F 2 = {, {4}, {5}, {6}, {4, 5}{4, 6}}. Então a união de M 1 com M 2 é M = (N, F) onde N = N 1 N 2 = {1, 2, 3, 4, 5, 6} e F = {, {1}, {2}, {3}, {4}, {5}, {6}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {2, 3}, {2, 4}, {2, 5}, {2, 6}, {3, 4}, {3, 5}, {3, 6}, {4, 5}, {4, 6}, {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 2, 6}, {1, 3, 4}, {1, 3, 5}, {1, 3, 6}, {1, 4, 5}, {1, 4, 6}, {2, 3, 4}, {2, 3, 5}, {2, 3, 6}, {2, 4, 5}, {2, 4, 6}, {3, 4, 5}, {3, 4, 6}, {1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 3, 6}, {1, 2, 4, 5}, {1, 2, 4, 6}, {1, 3, 4, 5}, {1, 3, 4, 6}, {2, 3, 4, 5}, {2, 3, 4, 6}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 6}}. Proposição 3.2 Um conjunto X N é um independente de M = k i=1 M i se e só se X pode ser particionado em k blocos I 1, I 2,, I k onde I i F i, ou seja, I é um independente em M se e só se I = I 1 I 2 I k, onde I i I j =, i, j : i j. Prova: Seja I = I 1 I 2 I k. Fazendo I 2 = I 2 \I 1, I 3 = I 3 \(I 2 I 1 ),, I k = I k \(I 1 I 2 I k 1 ). Então I = I 1 I 2 I 3 I k e I 1 F 1, I 2 F 2,, I k F k. Por outro lado se I = I 1 I 2 I k onde I j I i = j, i : j i então I M. Vamos agora mostrar que a união de dois matroides é ainda um matroide. Teorema 3.3 (Nash-Williams [1967]) Sejam M 1 e M 2, matroides definidos sobre N. Então M = M 1 M 2 é um matroide. 38

54 Prova: Seguindo [13], para mostrarmos que M é um matroide, suponhamos que I, S F com I < S. Seja I = I 1 I 2 e S = S 1 S 2 onde I 1, S 1 F 1 e I 2, S 2 F 2. Podemos assumir, que I 1 e I 2 são disjuntos, e de igual modo, S 1 e S 2 também são. Finalmente suponhamos que, entre todas as escolha para I 1, I 2, S 1 e S 2 escolhemos a que maximiza I 1 S 1 + I 2 S 2. Como S > I, suponhamos que S 1 > I 1. Então existe j (S 1 \I 1 ) tal que I 1 + j é um independente em M 1. A maximilidade de I 1 S 1 + I 2 S 2 implica que j I 2 (caso contrário considerar I 1 + j e I 2 j). Mas isso implica que I + j F como desejado. Vamos agora descrever a função caraterística da união de matroides. A prova do resultado seguinte (Teorema 3.4), pode ser consultada em [10, 13, 18]. Teorema 3.4 (Nash-Williams [1967]) Sejam M 1 e M 2 matroides com as funções caraterísticas dadas por α 1, α 2, respetivamente, e M a sua união. Então a função caraterística de M é dada por α(x) = min I X ( X\I +α 1(I) + α 2 (I)). A união de matroides pode ser vista como um caso particular da interseção de matroides. Determinar o menor número k de conjuntos independentes em que é possível particionar um independente I de M pode ser reduzido ao problema da determinação do independente de cardinalidade máxima na interseção de independentes. Para o efeito consideremos N 1, N 2,, N k conjuntos não necessariamente disjuntos. Tornamo-los disjuntos fazendo cópias dos elementos repetidos. Suponhamos M o matroide obtido da soma dos k matroides M 1 = (N 1, F 1 ), M 2 = (N 1, F 2 ), M 3 = (N 3, F 3 ),, M k = (N k, F k ). Seja I conjunto a particionar e seja H o matroide de partição no qual cada conjunto independente contém quando muito uma cópia de cada elemento em I e nenhum elemento em N\I. Resolvendo o problema da interseção de cardinalidade máxima concluímos que o independente de cardinalidade máxima é igual a I se e só se a partição existe. Consideremos X = {1, 3, 4}, M = (N, F(M)) matroide obtido da união dos matroides M 1 = (N 1, F 1 ) e M 2 = (N 1, F 2 ) definidos sobre os conjuntos N 1 = {1, 2, 4} e N 2 = {1, 3}, respetivamente, com F 1 = {, {1}, {2}, {4}, {1, 2}, {1, 4}, {2, 4}, {1, 2, 4}} e F 2 = {, {1 }, {3}, {1, 3}} então F(M) = {, {1}, {1 }, {2}, {3}, {4}, {1, 1 }, {1, 2}, {1, 3}, {1, 4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 1, 2}, {1, 1, 4}, {1, 3, 4}, {1, 1, 3}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}, {1, 1, 2, 3}, {1, 1, 2, 4}, {1, 1 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 1, 2, 3, 4}} e H = (N, F(H)) onde F(H) = {, {1}, {1 }, {3}, {4}, {1, 3}, {1, 4}, {3, 4}, {1, 3}, {1, 4}, {1, 3, 4}, {1, 3, 4}}. Facilmente podemos verificar que o conjunto independente X = {1, 3, 4} pertence a ambos os matroides, ou seja, I F(M) F(H) e é de cardinalidade máxima. 39

55 Lema 3.2 I N é um independente de M = k i=1 M i se e só se X I, k α i (X) X. i=1 Prova: Suponhamos que I N. Então I F α(i) = min X I { I\X + k i=1 α(x)} = I X I, I\X + k i=1 α(x) I X I, k i=1 α(x) I I + X X I, k i=1 α(x) X. Por outro lado se B é uma base de M 1 M 2, então B é união de bases dos respectivos matroides [28]. Teorema 3.5 Seja B uma base de M 1 M 2. Então B = B 1 B 2, com B i base de M i, i = 1, 2. Prova: Sejam M 1, M 2 dois matroides e B base de M 1 M 2. Por definição de união, temos que B = I 1 I 2 com I 1 F 1 e I 2 F 2. Sendo I 1 e I 2 independentes de M 1 e M 2 respetivamente, consideremos então B 1 base de M 1 tal que I 1 B 1 e B 2 base de M 2 tal que I 2 B 2. Temos que B 1 B, caso contrário B 1 I 2 seria independente de M 1 M 2, com B 1 I 2 I 1 I 2 = B o que seria absurdo pois B é base de M 1 M 2. Num raciocínio análogo temos que B 2 B, caso contrário B 2 I 1 seria independente de M 1 M 2, com B 2 I 1 I 1 I 2 = B o que seria absurdo pois B é base de M 1 M 2. Logo temos que B B 1 B 2 I 1 I 2 = B, donde prova que B = B 1 B 2. Lema 3.3 C N é um ciclo de M = k i=1 M i se e só se C é um subconjunto minimal de N satisfazendo k α i (C) = C 1. i=1 Prova: [ ] Seja C um ciclo de M = k i=1 M i e seja x um elemento qualquer de C. Como C x F então pelo Lema 3.2, k α i (I) I, I C x i=1 Porém, como C F, pelo Lema 3.2 tem-se k α i (C) C 1. i=1 40

56 Logo [ ] Seja x C. Como C x F, então pelo Lema 3.2 k α i (C x) C x = C 1. i=1 k α i (C) i=1 k α i (C x) C 1. i=1 Como todo conjunto X de N satisfazendo k α i (X) = X 1 (3.5) i=1 é um dependente, temos que C é um ciclo minimal de N satisfazendo a igualdade. Reciprocamente, seja S subconjunto minimal de N que satisfaz a condição da equação (3.5). Pelo Lema 3.2 S é um dependente. Consideremos C um ciclo contido em S, pela implicação direta já provada, vem que C satisfaz equação (3.5). Logo, por definição de S como subconjunto minimal satisfazendo a referida igualdade, temos que C = S. 41

57 Capítulo 4 Poliedros Inteiros e Matroides 4.1 Introdução Uma abordagem possível para problemas de otimização combinatória é usar técnicas (e algoritmos) de programação linear inteira. Nesta secção vão se estabelecer alguns resultados importantes relativos ao estudo de sistemas independentes e matroides através do uso de programação linear e programação linear inteira. Tomemos o matroide M = (N, F). Quando o interesse é encontrar um conjunto independente de peso máximo, existe uma função peso c : N R associada a cada elemento j N. Consideremos as variáveis x j que indicam se o elemento j N pertence ou não ao conjunto independente I F seleccionado. Denotemos por X(F) o conjunto dos vetores de incidência correspondentes aos conjuntos independentes de F e o problema de Programação Inteira (PI) Maximizar j N c jx j, sujeito a x X(F). Como exemplo de X(F), seja X(F) = {x {0, 1} 3 : 2x 1 + 3x 2 + 4x 3 7} o conjunto de soluções admissíveis desta instância de problema de saco-mochila. Então o conjunto dos vetores de incidência X(F) correspondentes aos conjuntos independentes de F = {, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}} é X(F) = 0 0 0, 1 0 0, 0 1 0, 0 0 1, 1 1 0, 1 0 1, Consideremos o poliedro P = P (F) = Conv(X(F)) que é o envolvente convexo de X(F). Então podemos apresentar a seguinte proposição que estabelece que qualquer problema de programação linear inteira pode ser resolvido como um problema de programação linear. 42

58 Proposição 4.1 Se o problema (PI) tem solução óptima então { } { } max c j x j : x X(F) = max c j x j : x P (F). j N j N Prova: Seja x = arg max{ j N c jx j : x X(F)}. Como X(F) Conv(X(F)) então { } max c j x j : x Conv(X(F)) c j x j. j N j N Por outro lado, se x Conv(X(F)) então existem x 1, x 2,, x k X(F) tais que x = k t=1 λ tx t e k t=1 λ t = 1, λ t 0 (ver Apêndice B) o que implica que j N c jx j = j N c k j t=1 λ tx t = k t=1 λ t c j x t k j N c jx j λ t = j N c jx j j N t=1 }{{}}{{} < j N c jx j = 1 o que implica que { } max c j x j : x Conv(X(F)) c j x j. j N j N Pelas duas desigualdades provamos assim que { } { } max c j x j : x X(F) = max c j x j : x P (F) j N j N Podemos usar as técnicas de programação linear para resolver este problema, desde que seja possível descrever o politopo P (F) por um sistema de desigualdades lineares. Na pratica nem sempre é possível encontrar em tempo polinomial todas as desigualdades que descrevem o politopo P (F), e por vezes o número de desigualdades que descrevem P (F) pode ser exponencial. Em todo o caso é de interesse fundamental encontrar classes de desigualdades que definem facetas de P (F) [4, 20]. 4.2 Desigualdade caraterística Dado um sistema independente (N, F) a desigualdade x j α(x) X N (4.1) j X 43

59 é chamada desigualdade caraterística, onde α(x) representa a cardinalidade de um independente de cardinalidade máxima contido em X. Esta desigualdade é sempre válida para X(F) Exemplos da desigualdade caraterística Saco Mochila De um ponto de vista de sistemas independentes as desigualdades de cobertura e as desigualdades de cobertura extendida podem ser vistas como caso particular da desigualdade caraterística. Sejam w j, j N, b inteiros não negativos, e F = {I : j I w j b} o conjunto das soluções do modelo de saco-mochila binário onde n = N. O conjunto C N é uma cobertura se K = j C w j b > 0. E, se por outro lado, w j > K, j C, então C é uma cobertura minimal ou ciclo (em termos de sistema independente (N, F)), ou seja, se removemos qualquer elemento j de C implica que C deixa de ser uma cobertura. Notemos que para C ser uma cobertura minimal α(c) = C 1. Seja x j a variável de decisão tal que { 1, se j pertence à cobertura x j = 0, caso contrário. A desigualdade x j C 1 (4.2) j C é chamada de desigualdade de cobertura (ou ciclo) e é válida para X(F). Uma formulação alternativa para o problema do saco-mochila, como um problema de otimização linear inteira, é a seguinte: Maximizar sujeito a j N c jx j j C x j C 1 C C, x {0, 1} n. 44

60 Exemplo 4.1 Consideremos, por exemplo, o conjunto X(F) = {x j {0, 1} : 2x 1 + 3x 2 + 4x 3 + 4x 4 + 6x 5 + 7x 6 + 9x 7 18}, onde j {1, 2, 3, 4, 5, 6, 7}. Temos como desigualdades de cobertura associadas às coberturas minimais as desigualdades: x 3 + x 5 + x 7 2 x 4 + x 6 + x 7 2 x 5 + x 6 + x 7 2 x 3 + x 6 + x 7 2 x 1 + x 2 + x 5 + x 7 3 x 2 + x 3 + x 4 + x 7 3 x 1 + x 2 + x 3 + x 4 + x 5 4. Definição 4.1 Seja C N uma cobertura, definimos cobertura extendida como CE = C {i N : w i > w j j C}. Se CE é uma cobertura estendida para F, então a desigualdade de cobertura estendida x j C 1 (4.3) j CE é válida para X(F). Notemos que esta desigualdade domina a desigualdade de cobertura se CE\C. Observe-se que em termos de sistema independente α(c) = α(ce) = C 1. Exemplo 4.2 Tomemos a desigualdade de cobertura com C = {1, 2, 3, 4, 5}, x 1 +x 2 +x 3 + x 4 + x 5 4 vista anteriormente no Exemplo 4.1. A desigualdade de cobertura estendida com CE = {1, 2, 3, 4, 5, 6, 7}, é x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 4. Árvore de Suporte de Custo Mínimo Recordemos que uma árvore é um grafo simples e conexo com ν 1 arestas, onde ν = V. Seja G = (V, E) um grafo, onde V é o conjunto de vértices e E o conjunto das arestas do grafo G, e seja w : E R uma função peso associada a cada aresta e E. O PASCM, para o qual existem algoritmos que permitem obter a solução óptima em tempo polinomial, consiste em determinar a árvore que inclui todos os vértices do grafo e cujo 45

61 peso total das arestas escolhidas é mínimo, ou seja, determinar um conjunto T tal que {i,j} T w ij = min T T {i,j} T w ij onde T é o conjunto das árvores de suporte. Consideremos { 1, se a aresta {i, j} faz parte da árvore x ij = 0, caso contrário. Como neste caso a família de conjuntos independentes F está associado a um grafo G = (V, E) temos como o caso particular da desigualdade de caraterística a desigualdade de eliminação de subciclos, {ij} E(S) x ij S 1 para S V que é válida para X(F), onde E(S) é o conjunto de arestas com ambos os extremos em S. Notemos que para X ser uma árvore geradora α(x) = ν 1. A designação, desigualdade de eliminação de subciclos resulta do facto de que um ciclo com S vértices tem exatamente S arestas. O problema da árvore de suporte de custo mínimo pode ser formulado de seguinte forma: Minimizar sujeito a {ij} E w ijx ij {ij} E(S) x ij S 1 S V, 2 S V, {ij} E x ij = ν 1, x {0, 1}. As restrições {ij} E(S) x ij S 1 modelam florestas, i.e, todos os conjuntos independentes do matroide gráfico e a restrição {ij} E x ij = ν 1 obriga a escolher os independentes maximais (bases). Arborescência Num grafo orientado ou digrafo D = (V, A) o problema da determinação da arborescência de custo mínimo consiste em determinar a arborescência, (árvore) orientada a partir do nodo raiz (r), que inclui todos os nodos de V e cuja soma dos pesos dos arcos na solucão é mínima. Para construir um modelo para o PASCM num grafo orientado, considere-se o seguinte conjunto de variáveis binárias: { 1, se o arco (i, j) faz parte da arborescência x ij = 0, caso contrário. 46

62 A formulação do problema de arborescência é dada por: Minimizar (i,j) A w ijx ij sujeito a (i,j) A(S) x ij S 1, S V \r, S 2, (i,j) δ v x ij = 1, v V r, (i,j) δ r x r = 0, x ij {0, 1} onde, δ v representa o conjunto dos arcos convergentes em v, δ v = {(i, j) A : j = v}. A restrição (i,j) δv x ij = 1 designada por restrição de grau inferior, garante que qualquer nodo v V \r que está na solução tenha exatamente um arco de entrada exceto a raiz a partir do qual a arborescência esta orientada. A restrição {ij} δr x r = 0 garante que a raiz não tem nenhum arco de entrada. Visto que na arborescência não existem arcos convergentes na raiz, a sua presença na solução nunca ira criar ciclo, por isso só é necessário garantir a eliminação de subciclos para conjuntos S V \r. Esta restrição, por si só, não garante a conectividade da arborescência mas quando conjugada com a restrição de grau inferior garantem a estrutura da solução. Emparelhamento O problema do emparelhamento de peso e de cardinalidade máxima num grafo bipartido também pode ser formulado como problema de programação inteira. Com efeito, sejam E e V os conjuntos das arestas e dos vértices respetivamente de um grafo G. Sejam { 1, se a aresta {ij} pertence emparelhamento x ij = 0, caso contrário, {ij} E. O problema emparelhamento de cardinalidade máximo pode ser formulado como se segue: Maximizar {i,j} E x ij, sujeito a {i,j} E x ij 1, j V x ij {0, 1}, {i, j} E. A desigualdade {i,j} E x ij 1 obriga que cada vértice do emparelhamento esteja ligado por quanto muito uma aresta, ou seja, para cada vértice v do emparelhamento α(v) 1, onde α(v) é o número de arestas ligado a vértice v (grau de v). 47

63 A formulação do problema de emparelhamento de peso máximo é semelhante à formulação anterior mas com uma pequena diferença na função objectivo, ou seja, adicionamos uma função peso c : E R na função objectivo Maximizar {i,j} E c ijx ij Facetas do Poliedro Conv(X(F)) A desigualdade caraterística não define necessariamente uma faceta do poliedro P (F). Um conjunto Q = {x P : πx = π 0 } é uma faceta se πx π 0 é uma desigualdade válidade para P e adicionalmente dim(q) = dim(p ) 1 (ver Apêndice B). A Figura (4.1) exemplifica o conceito de faceta. Figura 4.1: Ilustração de facetas de um poliedro. Vamos agora definir o que é um conjunto fechado e não separável. Definição 4.2 Um conjunto X N diz-se por fechado se para todo j N\X α(x + j) = α(x) + 1. Definição 4.3 Um conjunto X N é dito não separável se para todo I X, I, I X, tem-se α(x) < α(i) + α(x\i). Note-se que de (2.1) α(i) + α(x\i) α(x), para todo I X, I. Portanto um conjunto é não separável quando a igualdade não é atingida para todo I X. Exemplo 4.3 Consideremos o seguinte exemplo de conjunto fechado e conjunto não separável. Seja X(F) = {x {0, 1} 5 : x 1 + 3x 2 + 6x 3 + 4x 4 + 6x 5 10} o conjunto de solução desta instância de problema de saco mochila, sendo F = {, {1}, {2}, {3}, {4}, {5}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {4, 5}, {1, 2, 3}, {1, 2, 4}, {1, 2, 5}}. 48

64 Tomemos por exemplo o ciclo X = {3, 5}. Ora α(x + j) = α({3, 5, j}) = 2 = = α(x) + 1, para todo j {1, 2, 4}, logo X é fechado. O conjunto X é também não separável isto porque para todo I X, I, I X, α(x) = X 1 = 1, α(i) = I e α(x\i) = X\I. Assim α(x) = 1 < α(i) + α(x\i) = 2. Proposição 4.2 (Edmonds [1971]) Suponha que a desigualdade caraterística x j α(x) j X define uma faceta do poliedro Conv(X(F)). Então, X é fechado e não separável. Prova: (ver Bertsimas and Weismatel [5]) Afim de obter uma contradição, suponhamos primeiramente que X é separável, isto é, I X : α(x) = α(i) + α(x\i). Então todos os pontos x Conv(X(F)) satisfazendo j X x j = α(x), também satisfazem as duas desigualdades válidas lineares independentes j I x j α(i) e j X\I x j α(x\i) como igualdade. Pela Proposição B.3 (ver Apêndice B) o número máximo de pontos independentes afins em Conv(X(F)) satisfazendo j X x j = α(x) é menor ou igual a dim(conv(x(f))) = dim(conv(x(f))) 1, o que contradiz a definição de uma faceta. Se X é não fechado, então j N\X : α(x + j) α(x). Portanto x j + x i α(x + j) α(x) j X é uma desigualdade válida para Conv(X(F)). Alem disso x i 0 é também válida para Conv(X(F)). Uma vez que cada ponto x Conv(X(F)) satisfazendo j X x j = α(x) também satisfaz j X x j + x i α(x) e x i = 0; obtemos uma contradição usando o raciocínio anterior. Tomemos a desigualdade de cobertura x 1 +x 2 +x 3 +x 4 +x 5 4 do Exemplo 4.1. Porém X = {1, 2, 3, 4, 5} é não fechado, pois α(x) 1 = 5 1 = 4 mas α(x +j) = α(x) = 4, j {1, 2}. Apesar da desigualdade α(i) + α(x\i) > α(x) ser uma desigualdade atingível para todo I X, I e I X, o conjunto X não define uma faceta do poliedro Conv(X(F)). 49

65 Consideremos um sistema independente (N, F), a função caraterística α(.) e X um subconjunto de N. Definimos por G X (F) o grafo crítico de F em X, sendo X o conjunto de nós e cujas arestas estão definidas como se segue: dois elementos j e i de X são adjacentes em G X (F) se e só se existe um conjunto independente I satisfazendo: I X, I = α(x), j I, i I e I j + i F. Exemplo 4.4 Seja X(F) = {x {0, 1} 5 : 4x 1 + 2x 2 + 3x 3 + 5x 4 + 6x 5 11} o conjunto das soluções admissíveis deste modelo de saco mochila. Facilmente verificamos que (N, F) é um sistema independente onde, 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, 3}, {1, 2, 4}, {1, 2, 5}, {2, 3, 4}, {2, 3, 5}}. Tomemos X = {1, 2, 3, 5}. Seja I = {1, 2, 3}, I X um independente. Então I {1} + {4} = {2, 3, 4} F, logo existe uma aresta {1, 4} em G X (F). De igual modo se mostra que existe a aresta {3, 4}, mas podemos verificar que I {2} + {4} = {1, 3, 4} F, logo não existe a aresta {2, 4}. Figura 4.2: Ilustração do Grafo crítico G X (F). Teorema 4.1 (Laurent [20]) Seja X um subconjunto de N, fechado e assumamos que o grafo crítico G X (F) de F em X é conexo. Então a desigualdade caraterística (4.1), j X x j α(x), induz um faceta para o politopo P (F). Prova: Seja Q uma face de P (F) induzida pela desigualdade (4.1). Suponhamos que existe uma outra desigualdade válida j N w jx j π de tal modo que Q = {x P : j N w jx j = π} (ver Apêndice B). Vamos provar que j N w jx j e j N x j são idênticas a menos da multiplicação por um escalar positivo, i.e. que w j = 0 para todo j N\X e w j = w i, i, j X. Tomemos o primeiro elemento j N\X. Uma vez que X é um conjunto fechado α(x + j) α(x) + 1. Portanto podemos encontrar um conjunto independente I tal que j I, I X = α(x). Os vetores de incidência x I (onde o elemento j toma valor 1 se j I 50

66 e 0 caso contrário) e x I j (elemento i igual a 1 se i I e 0 caso contrário, para i j) associados aos conjuntos I, I j pertencem à face Q, o que implica que Então i N w i x I i = i N i N w i x I i = π e i N w i x I j i i I w i x I j i = π. w i = i I j w i w j = 0. Tomemos agora o segundo elemento distinto i, j X e suponhamos que eles são adjacentes no G X (F). Então, existe um conjunto I F tal que I X, j I, i I, I = I j + i F e I = I = α(x). Assim, os vetores de incidência x I e x I estão na face Q e temos portanto que j N wxi j = i N wxi i = π o que implica que w j = w i. Podemos também verificar facilmente da conectividade de G X (F) que w j = w i para todo i, j N. No caso do sistema independente definir um matroide, as condições do subconjunto X ser fechado e não separável são também condições necessárias para que a desigualdade caraterística defina uma faceta. A prova do resultado seguinte pode ser consultada em [20]. Proposição 4.3 Seja (N, F) um matroide. A desigualdade caraterística x j α(x) j X define uma faceta do poliedro Conv(X(F)) se e só se X é fechado e não separável. Consideremos o conjunto de soluções admissíveis de um modelo de saco-mochila X(F) = {x {0, 1} 5 : 3x 1 +4x 2 +5x 3 +6x 4 +7x 5 17}. Podemos facilmente verificar que o sistema independente (N, F) define um matroide com 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, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4}, {1, 3, 5}, {1, 4, 5}{2, 3, 4}, {2, 3, 5}, {2, 4, 5}}. Tomemos um ciclo X = {3, 4, 5}. Vejamos que α(x + j) = α({3, 4, 5, j}) = 3 = = α(x)+1 para j = {1, 2}. Logo X é fechado. O conjunto X é também não separável porque para todo I X, I, I X, α(x) = X 1 = 2, α(i) = I e α(x\i) = X\I. Assim α(x) = 2 < α(i) + α(x\i) = 3. Portanto a desigualdade x 3 + x 4 + x 5 3 define uma faceta de Conv(X(F)). 51

67 Se um sistema independente (N, F) é um matroide, então as desigualdades caraterística caraterizam completamente o Conv(X(F)), ou seja, { Conv(X(F)) = x R n + : } x j α(x), X N. j X Além disso, neste caso, podemos identificar exatamente as desigualdades caraterística que definem uma faceta do poliedro Conv(X(F)) (ver [5]). Mais adiante este resultado irá ser estabelecido como um caso particular de um polimatroide. Proposição 4.4 Seja (N, F) um matroide e X um subconjunto de N. afirmações são equivalentes: As seguintes (i) A desigualdade caraterística (4.1) induz uma faceta para Conv(F) (ii) X é fechado e não separável (iii) X é fechado e o grafo crítico G X (F) é conexo. Prova: Para provar as três equivalências basta mostrar que (i) (ii), (ii) (iii), (iii) (i)]. A primeira e a última implicações [(i) (ii), (iii) (i)] já foram provadas (ver prova da Proposição 4.2 e Teorema 4.1). Só temos agora que provar a implicação (ii) (iii). Para isso, vamos mostrar que se o grafo crítico G X (F) não for conexo, então o conjunto X é separável. Suponhamos que G X (F) não é conexo e seja A X o conjunto dos vértices de uma componente conexa de G X (F) e B = X\A, então A, B são não vazios e quaisquer dois vértices que pertencem, respetivamente, a A e B são não adjacentes. Vamos mostrar que α(x) = α(a) + α(b). Seja I subconjunto independente maximal de A. Então verifica-se I = α(a). Pode-se aumentar I de modo a obter um independente máximo K de X. Assim K = I S onde S B e K = α(x). Se S < α(b), então existe um elemento j B\S tal que S + j F. Aplicando o axioma (ii) do Teorema 2.1 para o conjunto S + j e K = S I conclui-se que existe um elemento i K\S = I tal que K i + j F isto implica que por definição i, j são adjacentes em G X (F) contradizendo o facto de j B e i A pertencerem a diferentes componentes conexas de G X (F). Portanto, verifica-se S = α(b) o que implica α(x) = α(a) + α(b), i.e, X é separável. 4.3 Polimatroide Nesta secção vamos considerar uma classe de problema de otimização cujo envolvente convexo do conjunto de solução admissíveis é descrito com base em desigualdades que generalizam as desigualdades caraterística. Este tipo de problemas, que inclui os problemas definidos sobre matroides, pode ser resolvido em tempo polinomial, pois são modelos de programação linear (sem variáveis inteiras), logo podem ser resolvidos por algoritmos polinomiais, como por exemplo, o algoritmo dos elipsóides para programação linear, ver Khachiyan [16, 17], ou algoritmos de pontos interiores, ver Karmarkar [14]. Os problemas 52

68 de otimização sobre interseção de matroides e sobre matroides podem ser resolvidos em tempo polinomial, por isso pode ser feita uma representação linear deles. Consideremos o problema: Maximizar sujeito a n c j x j j=1 x j f(i) I N, (4.4) j I x j Z + j N e seja F a família de conjuntos de independentes correspondentes às soluções admissíveis do problema descrito acima e f : N R. Definição 4.4 Um polimatroide é um politopo do tipo { P (f) = x R n + : x j f(i) j I I N } onde f(i) é submodular e não decrescente. Teorema 4.2 Se a função f é submodular, não decrescente, com valores inteiros, e f( ) = 0, então P (F) = Conv(X(F)) = P. A prova desse resultado (ver [5]) não só estabelece que o poliedro P (F) é inteiro (os pontos extremos são inteiros), mas também define uma solução do problema (4.4). Em particular, constrói explicitamente uma solução óptima inteira. A função caraterística α(.) é um caso particular de uma função nas condições do Teorema 4.2. Seja (N, F) um sistema independente que define um matroide. Proposição 4.5 A função caraterística α é submodular, não decrescente, com valores inteiros e α( ) = 0. Prova: Ver prova do Teorema

69 4.3.1 Exemplos de Polimatroides Mochilas de cardinalidade No caso de mochilas de cardinalidade o poliedro P (F) é um polimatroide definido por U k = P (F) onde F = {I N : I k} para k inteiro não negativo. Para cada conjunto I N a desigualdade x j k j I é sempre válida para P (F) onde x j são os vetores de incidência. Portanto U k pode ser igualmente definido por { } U k = x [0, 1] N : j N x j k. Florestas de Custo Mínimo Para o caso das florestas o poliedro P (F) também é um polimatroide definido por x ij S 1, S V {i,j} E(S) x ij 0, onde E(S) é o conjunto das arestas com extremos em S. {i, j} E Tomemos um grafo não orientado G = (V, E), e o poliedro P definido da seguinte forma: P = x R E : x ij α(x) X E {i,j} X x ij 0 {i, j} E onde α(x) = ν p com ν = V, p o número de componentes conexas do grafo G = (V, X). Seja X um subconjunto de E, e S = V (X) conjunto de vértices que estão ligados por arestas do conjunto X. Se G = (S, X) é conexo, a desigualdade {ij} X x ij α(x) é o somatório das desigualdades x ij α(e(s)) = α(x), {i,j} E(S) 54

70 x ij 0, {ij} E(S)\X. No caso em que o grafo G = (S, X) tem p componentes conexas com p > 1, a desigualdade {i,j} X x ij α(x) é o somatório das desigualdades correspondentes de cada uma das componentes conexas. Nestes casos {i,j} X x ij α(x) não define faceta de P (F) a não ser que X = E(S), para S subconjunto dos vértices de uma componente conexa Interseção de Poliedros Polimatroides Consideremos um conjunto finito N = {1, 2,, n}, e duas funções submodulares, não decrescentes, com valores inteiros, f 1 (I) e f 2 (I) definidas para todo o subconjunto I de N com, f i ( ) = 0, i = 1, 2. Em seguida considere o problema: Maximixar n j=1 c jx j sujeito a Seja F o conjunto das soluções admissíveis, e { P = x 0 : j I j I x j f 1 (I) I N, j I x j f 2 (I) I N, x j Z + j N. x j min{f 1 (I), f 2 (I)}, I N A demonstração do próximo resultado (Teorema 4.3), que pode ser consultado em [5], leva-nos a concluir que o poliedro P é inteiro. Teorema 4.3 Se as funções f i (I), i = 1, 2, são submodulares, não decrescentes, com valores inteiros e f i ( ) = 0 então P (F) = Conv(X(F)). A interseção de três polimatroides não é um poliedro inteiro. Na verdade podemos modelar o problema de caminho hamiltoniano como um problema de interseção de três matroides (ver Secção 3.2). Em geral a interseção de dois polimatroides não é um polimatroide. No entanto, há casos particulares em que a interseção de dois polimatroides é um polimatroide. Consideremos o poliedro do saco-mochila. Sejam b > w n > w n 1 > > w 1 > 0 inteiros não negativos e seja C = {1, 2,, p + 1} tal que p w j > b. j=1 w j < b e j C 55 }.

71 Então a desigualdade de cobertura é dada por j C x j p, onde C é uma cobertura minimal. Logo podemos adicionar a C todos os elementos i N\C : w i > w j j C, então CE = N. A desigualdade de cobertura estendida é dada por j N x j p. Consideremos agora uma cobertura extendida qualquer j CE x j k. Os conjuntos {x {0, 1} n : j N x j p} e {x {0, 1} n : j CE x j k} definem dois matroides com função caraterística f 1 (.) e f 2 (.), respetivamente. Então o poliedro P é dado por P = {x 0 : j I x j min{f 1 (I), f 2 (I)}}. Seja f(i) = min{f 1 (I), f 2 (I)}. Vamos verificar que f(i) é submodular e não decrescente, assim provamos que a interseção destes dois polimatroides é um polimatroide (ver Teorema 2.3). Ora f 1 (I) = { I se I p p se I > p, e f 2 (I) = { I se CE k I\CE +k se CE > k, logo tendo em consideração o conjunto I, a função f(i) pode tomar os seguintes valores: caso a) caso b) caso c) f(i) = I se I p I CE k, f(i) = I\CE +k se I\CE +k p I CE > k, f(i)= p De seguida iremos analisar os diferentes casos: se I\CE +k > p I CE > k ou I > p I CE k. 1 o caso: S 1 e S 2 no caso a), ou seja, S i p S i CE k. f(s 1 ) + f(s 2 ) = S 1 + S 2 = S 1 S 2 + S 1 S 2 = f(s 1 S 2 )+ S 1 S 2 f(s 1 S 2 ) + f(s 1 S 2 ). (4.5) A desigualdade da equação (4.5) é válida porque f(s 1 S 2 ) = S 1 S 2 e S 1 S 2 f(s 1 S 2 ). 2 o caso: S 1 no caso a) e S 2 no caso b), ou seja, S 1 p, S 1 CE k e S 2 \CE +k p S 2 CE > k. f(s 1 ) + f(s 2 ) = S 1 + S 2 \CE +k = S 1 S 2 + S 1 \ S 2 + S 2 \CE +k (4.6) S 1 S 2 + (S 2 S 2 )\CE +k. 56

72 A igualdade da equação (4.6) pode ser vista de uma forma mas simples na Figura 4.3. Figura 4.3: Ilustração da S 1 + S 2 \CE. f(s 1 S 2 ) = pelo que (S 1 S 2 ) \ CE +k f(s 1 S 2 ) f(s 1 S 2 ) = S 1 S 2 porque assim concluímos que { (S1 S 2 )\CE +k se (S 1 S 2 )\CE +k < p p se (S 1 S 2 )\CE +k p. S 1 CE k S 1 S 2 CE k e S 1 p S 1 S 2 p, f(s 1 S 2 ) + f(s 1 S 2 ) = S 1 S 2 +f(s 1 S 2 ) S 1 S 2 + (S 1 S 2 )\CE +k. 3 o caso: S 1 no caso a) e S 2 no caso c), ou seja, S 1 p, S 1 CE k e S 2 \CE +k > p S 2 CE > k ou S 2 > p S 2 CE k. f(s 1 ) + f(s 2 ) = S 1 +p S 1 S 2 +p = f(s 1 S 2 ) + f(s 1 S 2 ) pois p = f(s 1 S 2 ). 4 o caso: S 1 e S 2 no caso b), ou seja, S i \CE +k p, S i CE > k, i {1, 2}. f(s 1 ) + f(s 2 ) = S 1 \CE +k+ S 2 \CE +k = (S 1 S 2 )\CE +k+ (S 1 S 2 )\CE +k (4.7) f(s 1 S 2 )+ (S 1 S 2 )\CE +k. (4.8) A igualdade da equação (4.7) é ilustrada na Figura

73 Figura 4.4: Ilustração de S 1 \CE + S 2 \CE. A desigualdade da equação (4.8) resulta de: { (S1 S f(s 1 S 2 ) = 2 )\CE +k se (S 1 S 2 )\CE +k p p se (S 1 S 2 )\CE +k > p (S 1 S 2 )\CE +k, f(s 1 S 2 ) = { (S1 S 2 )\CE +k se S 1 S 2 CE > k S 1 S 2 se S 1 S 2 CE k (S 1 S 2 )\CE +k. 5 o caso: S 1 no caso b) e S 2 no caso c), ou seja, S 1 \CE +k p, S 1 CE > k e S 2 \CE +k > p S 2 CE > k ou S 2 > p S 2 CE k. isto porque f(s 1 ) + f(s 2 ) f(s 1 S 2 ) + f(s 2 ) f(s 1 S 2 ) + f(s 1 S 2 ), f(s 1 ) f(s 1 S 2 ) e f(s 2 ) = p f(s 1 S 2 ). 6 o caso: S 1 e S 2 no caso c), ou seja, S i \CE +k > p S i CE > k ou S i > p S i CE k, i {1, 2}. f(s 1 ) + f(s 2 ) = 2p f(s 1 S 2 ) + f(s 1 S 2 ) porque f(i) p I. Pela análise de cada um desses casos em particular, concluímos que f(i) = min{f 1 (I), f 2 (I)} é uma função submodular. Como f e não decrescente provámos, assim, que a interseção destes dois polimatroides é ainda um polimatroide. Um caso particular do problema de interseção de polimatroides nas condições acima é apresentado em Amado [2], onde i j=1 w j < b, i+k j=i+1 w j > b e a cobertura extendida é 58

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

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464 / PCC174 Departamento de Computação - UFOP Breve Revisão Programação Linear vs Programação Inteira Modelagem

Leia mais

Aula 19: Lifting e matrizes ideais

Aula 19: Lifting e matrizes ideais Aula 19: Lifting e matrizes ideais Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Branch-and-bound Formulações

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 14: Conjuntos de Corte e Conectividade Preparado a partir do texto: Rangel,

Leia mais

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

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

Noções da Teoria dos Grafos

Noções da Teoria dos Grafos Noções da Teoria dos Grafos André Arbex Hallack Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 7 3 Árvores 11 4 Emparelhamento em grafos 15 5 Grafos planares: Colorindo

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 5 3 Árvores 7 4 Emparelhamento em grafos 11 5 Grafos planares:

Leia mais

3 Sistema de Steiner e Código de Golay

3 Sistema de Steiner e Código de Golay 3 Sistema de Steiner e Código de Golay Considere o sistema de Steiner S(5, 8, 24, chamaremos os seus blocos de octads. Assim, as octads são subconjuntos de 8 elementos de um conjunto Ω com 24 elementos

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Matroides e o método guloso U: conjunto finito arbitrário. C: família

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

Cálculo Diferencial e Integral I

Cálculo Diferencial e Integral I Cálculo Diferencial e Integral I Texto de apoio às aulas. Amélia Bastos, António Bravo Dezembro 2010 Capítulo 1 Números reais As propriedades do conjunto dos números reais têm por base um conjunto restrito

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Tópicos de Matemática. Teoria elementar de conjuntos

Tópicos de Matemática. Teoria elementar de conjuntos Tópicos de Matemática Lic. em Ciências da Computação Teoria elementar de conjuntos Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Tóp. de Matemática - LCC - 2010/2011 Dep. Matemática

Leia mais

Algoritmos de aproximação - Problema do caixeiro viajante

Algoritmos de aproximação - Problema do caixeiro viajante Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli,

Leia mais

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução matemática e divisibilidade. 5 Congruências lineares

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução matemática e divisibilidade. 5 Congruências lineares Programa Matemática Discreta 2007/08 Jorge Manuel L. André FCT/UNL 1 Parte 1 - Conjuntos e Aplicações 1 Conjuntos 2 Relações Binárias 3 Aplicações 4 Indução matemática e divisibilidade 5 Congruências lineares

Leia mais

1 Emparelhamentos em Grafos

1 Emparelhamentos em Grafos 1 Emparelhamentos em Grafos Definição 1.1 Um emparelhamento num grafo G é um conjunto de arestas não adjacentes entre si, isto é, incidentes em pares de vértices disjuntos dois a dois. i) Um vértice incidente

Leia mais

x B A x X B B A τ x B 3 B 1 B 2

x B A x X B B A τ x B 3 B 1 B 2 1. Definição e exemplos. Bases. Dar uma topologia num conjunto X é especificar quais dos subconjuntos de X são abertos: Definição 1.1. Um espaço topológico é um par (X, τ) em que τ é uma colecção de subconjuntos

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

Pontos extremos, vértices e soluções básicas viáveis

Pontos extremos, vértices e soluções básicas viáveis Pontos extremos, vértices e soluções básicas viáveis Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta

Leia mais

Espaços vectoriais reais

Espaços vectoriais reais ALGA - 00/0 - Espaços Vectoriais 49 Introdução Espaços vectoriais reais O que é que têm em comum o conjunto dos pares ordenados de números reais, o conjunto dos vectores livres no espaço, o conjunto das

Leia mais

UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares

UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares Patricia Erthal de Moraes Colégio Pedro II Campo de São Cristóvão, 77 - São Cristóvão -Rio de Janeiro, CEP: 9-44

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Algoritmo Aproximação Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas NP- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),

Leia mais

Programação Linear. Dualidade

Programação Linear. Dualidade Programação Linear Dualidade Dualidade Já vimos em sala que para cada PPL existe um outro PL chamado dual, que consiste em modelar um problema que utiliza os mesmos dados que o original, mas alterando

Leia mais

2.1 Sucessões. Convergência de sucessões

2.1 Sucessões. Convergência de sucessões Capítulo 2 Sucessões reais Inicia-se o capítulo introduzindo os conceitos de sucessão limitada, sucessão monótona, sucessão convergente e relacionando estes conceitos entre si. A análise da convergência

Leia mais

Professor João Soares 20 de Setembro de 2004

Professor João Soares 20 de Setembro de 2004 Teoria de Optimização (Mestrado em Matemática) Texto de Apoio 2A Universidade de Coimbra 57 páginas Professor João Soares 20 de Setembro de 2004 Optimização Linear Considere o problema (1) abaixo, que

Leia mais

Unidade 5 - Subespaços vetoriais. A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa. 10 de agosto de 2013

Unidade 5 - Subespaços vetoriais. A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa. 10 de agosto de 2013 MA33 - Introdução à Álgebra Linear Unidade 5 - Subespaços vetoriais A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa PROFMAT - SBM 10 de agosto de 2013 Às vezes, é necessário detectar, dentro

Leia mais

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6 Lista 6 Exercício. O objetivo deste exercício é modelar o problema de emparelhamento em um grafo bipartido como um problema de fluxo, e verificar que o Teorema de Konig é essencialmente o Teorema de Fluxo

Leia mais

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: Espaços Euclidianos Espaços R n O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: R n = {(x 1,..., x n ) : x 1,..., x n R}. R 1 é simplesmente o conjunto R dos números

Leia mais

Códigos perfeitos e sistemas de Steiner

Códigos perfeitos e sistemas de Steiner CAPÍTULO 7 Códigos perfeitos e sistemas de Steiner Sistemas de Steiner são um caso particular de configurações (ou designs. Neste capítulo pretende-se apenas fazer uma breve introdução aos sistemas de

Leia mais

Valores e vectores próprios

Valores e vectores próprios Valores e vectores próprios Álgebra Linear C (Engenharia Biológica) 0 de Dezembro de 006 Conteúdo Motivação e definições Propriedades 4 3 Matrizes diagonalizáveis 5 Motivação e definições Considere a matriz

Leia mais

Capítulo 1 Conceitos e Resultados Básicos

Capítulo 1 Conceitos e Resultados Básicos Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 1 Conceitos e Resultados Básicos Um grafo é um par ordenado (V, A), onde V e A são conjuntos disjuntos, e cada elemento

Leia mais

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil

Leia mais

3 O Teorema de Ramsey

3 O Teorema de Ramsey 3 O Teorema de Ramsey Nesse capítulo enunciamos versões finitas e a versão infinita do Teorema de Ramsey, além das versões propostas por Paris, Harrington e Bovykin, que serão tratadas no capítulos subseqüentes.

Leia mais

Aulas 6 / 05 de setembro

Aulas 6 / 05 de setembro Gabriel Coutinho DCC5 - Pesquisa Operacional - 7. Simplex Ei-lo. Aulas 6 / 5 de setembro Método Simplex Input: Uma PL e uma base viável de colunas B. Output: Uma solução ótima, ou um certificado de que

Leia mais

3 Extensões dos modelos matemáticos

3 Extensões dos modelos matemáticos 3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através

Leia mais

Teoria dos Grafos AULA 3

Teoria dos Grafos AULA 3 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 3 Trajetos, Caminhos, Circuitos, Grafos Conexos Preparado

Leia mais

1.1 Conjuntos parcialmente ordenados (c.p.o. s)

1.1 Conjuntos parcialmente ordenados (c.p.o. s) Capítulo 1 PRELIMINARES Neste primeiro capítulo podemos encontrar algumas definições e proposições que para além de nos familiarizar com a notação que iremos utilizar também têm como finalidade a referência

Leia mais

Introduzir os conceitos de base e dimensão de um espaço vetorial. distinguir entre espaços vetoriais de dimensão fnita e infinita;

Introduzir os conceitos de base e dimensão de um espaço vetorial. distinguir entre espaços vetoriais de dimensão fnita e infinita; META Introduzir os conceitos de base e dimensão de um espaço vetorial. OBJETIVOS Ao fim da aula os alunos deverão ser capazes de: distinguir entre espaços vetoriais de dimensão fnita e infinita; determinar

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

X - D U A L I D A D E

X - D U A L I D A D E X - D U A L I D A D E 1 - Introdução. Regras de transformação "Primal - Dual" Consideremos os dois problemas P1 e P2 de Programação Linear seguintes: P1 : n Maximizar F = Σ ck. Xk k = 1 n Σ aik. Xk bi

Leia mais

Álgebra Linear e Geometria Anaĺıtica. Espaços Vetoriais Reais

Álgebra Linear e Geometria Anaĺıtica. Espaços Vetoriais Reais universidade de aveiro departamento de matemática Álgebra Linear e Geometria Anaĺıtica Agrupamento IV (ECT, EET, EI) Capítulo 4 Espaços Vetoriais Reais Definição de espaço vetorial real [4 01] O conjunto

Leia mais

Matemática I. 1 Propriedades dos números reais

Matemática I. 1 Propriedades dos números reais Matemática I 1 Propriedades dos números reais O conjunto R dos números reais satisfaz algumas propriedades fundamentais: dados quaisquer x, y R, estão definidos a soma x + y e produto xy e tem-se 1 x +

Leia mais

GABRIEL BUJOKAS

GABRIEL BUJOKAS APLICAÇÕES DE ÁLGEBRA LINEAR À COMBINATÓRIA GABRIEL BUJOKAS (GBUJOKAS@MIT.EDU) A gente vai discutir algumas das aplicações clássicas de álgebra linear à combinatória. Vamos começar relembrando alguns conceitos

Leia mais

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo

Leia mais

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final Tópicos de Matemática Finita Data: 20-06-2003 1 a Época Correcção Código: 1B Nome: Número: Curso: O exame que vai realizar tem a duração de três horas. As respostas às perguntas do grupo I não necessitam

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

Leia mais

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de:

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Planaridade AULA META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir grafo planar e plano; Determinar o dual de um grafo; Caracterizar

Leia mais

Construção dos Números Reais

Construção dos Números Reais 1 Universidade de Brasília Departamento de Matemática Construção dos Números Reais Célio W. Manzi Alvarenga Sumário 1 Seqüências de números racionais 1 2 Pares de Cauchy 2 3 Um problema 4 4 Comparação

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 13: Árvores Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Algoritmos de Aproximação CLRS, Cap. 35 Resumo Algoritmos de aproximação Algoritmos, com complexidade polinomial, que calculam soluções aproximadas para problemas de optimização

Leia mais

Algoritmos de aproximação - Problema de cobertura por conjuntos

Algoritmos de aproximação - Problema de cobertura por conjuntos Algoritmos de aproximação - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de 205 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M.

Leia mais

O grau de saída d + (v) de um vértice v é o número de arcos que tem

O grau de saída d + (v) de um vértice v é o número de arcos que tem Grafos Direcionados Definição (Grau de Entrada) O grau de entrada d (v) de um vértice v é o número de arcos que tem v como cabeça. Definição (Grau de Saída) O grau de saída d + (v) de um vértice v é o

Leia mais

TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS

TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS O conjunto dos números reais,, que possui as seguintes propriedades:, possui uma relação menor ou igual, denotada por O1: Propriedade Reflexiva:

Leia mais

Teoremas de dualidade

Teoremas de dualidade Teoremas de dualidade Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

MAT Resumo Teórico e Lista de

MAT Resumo Teórico e Lista de MAT 0132 - Resumo Teórico e Lista de Exercícios April 10, 2005 1 Vetores Geométricos Livres 1.1 Construção dos Vetores 1.2 Adição de Vetores 1.3 Multiplicação de um Vetor por um Número Real 2 Espaços Vetoriais

Leia mais

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015. Instituto de Computação Universidade Federal Fluminense Notas de Aula de Teoria dos Grafos Niterói, agosto de 2015. Conteúdo 1 Conceitos Básicos 5 1.1 Grafos, vértices, arestas..................... 5 1.2

Leia mais

CAPÍTULO 4. Teoria da Dualidade

CAPÍTULO 4. Teoria da Dualidade CAPÍTULO 4 1. Introdução Uma dos conceitos mais importantes em programação linear é o de dualidade. Qualquer problema de PL tem associado um outro problema de PL, chamado o Dual. Neste contexto, o problema

Leia mais

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS Aula 02 Formalização: definições Max Pereira Ciência da Computação GRAFOS Aula 02 : definições Max Pereira Um grafo G é um par ordenado G = (V, E) onde V é um conjunto finito e não vazio de elementos e E é um conjunto de subconjuntos de dois elementos

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 5: Grafos Conexos Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

O Teorema de Ramsey e o Último Teorema de Fermat em Corpos Finitos.

O Teorema de Ramsey e o Último Teorema de Fermat em Corpos Finitos. O Teorema de Ramsey e o Último Teorema de Fermat em Corpos Finitos. Leandro Cioletti Eduardo A. Silva 12 de setembro de 2011 Resumo O objetivo deste texto é apresentar a prova do Último Teorema de Fermat

Leia mais

CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE

CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE CAPíTULO 2 CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE Neste captulo tratamos de tr^es classes especiais de grafos. Na primeira sec~ao apresentamos a classe dos caminhos e noc~oes que permeiam essa

Leia mais

Álgebra Linear Semana 05

Álgebra Linear Semana 05 Álgebra Linear Semana 5 Diego Marcon 4 de Abril de 7 Conteúdo Interpretações de sistemas lineares e de matrizes invertíveis Caracterizações de matrizes invertíveis 4 Espaços vetoriais 5 Subespaços vetoriais

Leia mais

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52 1 / 52 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 52 Programa 1 Combinatória 2 Aritmética Racional 3 Grafos 3 / 52 Capítulo 1 Combinatória 4 / 52 Princípio

Leia mais

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn 4 Relações 4.1 Preliminares Definição 4.1. Sejam A e B conjuntos. Uma relação binária, R, de A em B é um subconjunto de A B. (R A B) Dizemos que a A está relacionado com b B sss (a, b) R. Notação: arb.

Leia mais

Poliedros na forma padrão

Poliedros na forma padrão Poliedros na forma padrão Marina Andretta ICMC-USP 19 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Cobertura, Coloração

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Matemática Discreta Capítulo 3 Versão preliminar

Matemática Discreta Capítulo 3 Versão preliminar Matemática Discreta Capítulo 3 Versão preliminar Henri Anciaux e Derek Hacon October 25, 2007 1 Generalidades sobre grafos Um grafo G é simplesmente um par de dois conjuntos V e A, o segundo sendo constituído

Leia mais

OBSTRUÇÕES DE COGRAFOS-(K, L)

OBSTRUÇÕES DE COGRAFOS-(K, L) OBSTRUÇÕES DE COGRAFOS-(K, L) Raquel de Souza Francisco COPPE/Sistemas, Universidade Federal do Rio de Janeiro, RJ, 21945-970, Brasil raquelbr@cos.ufrj.br Sulamita Klein IM e COPPE/Sistemas, Universidade

Leia mais

Sistemas de Equações Lineares

Sistemas de Equações Lineares Capítulo 2 Sistemas de Equações Lineares 21 Generalidades Chamamos equação linear nas variáveis (incógnitas) x 1, x 2, x 3,, x n uma igualdade da forma a a 1 x 1 + a 2 x 2 + a 3 x 3 + + a n x n = b Os

Leia mais

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Ana Maria A.C. Rocha e João Luís C. Soares Departamento de Produção e Sistemas Escola de Engenharia Universidade

Leia mais

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares Programa Matemática Discreta 2008/09 Jorge Manuel L. André FCT/UNL 1 Parte 1 - Conjuntos e Aplicações 1 Conjuntos 2 Relações Binárias 3 Aplicações 4 Indução Matemática e Divisibilidade 5 Congruências Lineares

Leia mais

Convergência em espaços normados

Convergência em espaços normados Chapter 1 Convergência em espaços normados Neste capítulo vamos abordar diferentes tipos de convergência em espaços normados. Já sabemos da análise matemática e não só, de diferentes tipos de convergência

Leia mais

Teoria dos Grafos. Árvores

Teoria dos Grafos.  Árvores Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Teoria dos Grafos. Árvores Geradoras

Teoria dos Grafos. Árvores Geradoras Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Fabio Augusto Camargo

Fabio Augusto Camargo Universidade Federal de São Carlos Centro de Ciências Exatas e de Tecnologia Departamento de Matemática Introdução à Topologia Autor: Fabio Augusto Camargo Orientador: Prof. Dr. Márcio de Jesus Soares

Leia mais

Construção de matrizes inteiras com somas das linhas e das colunas prescritas

Construção de matrizes inteiras com somas das linhas e das colunas prescritas Construção de matrizes inteiras com somas das linhas e das colunas prescritas Rosário Fernandes Departamento de Matemática, Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa, Caparica, Portugal

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 18: Coloração de Arestas Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro

Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro Questão 1 Sejam as pessoas representadas por nós e as relações de amizade por arestas. Utilizando o Princípio das Gavetas:

Leia mais

Métodos Exatos para PI - Parte 1: Branch-and-Bound

Métodos Exatos para PI - Parte 1: Branch-and-Bound Introdução à Otimização Combinatória Métodos Exatos para PI - Parte 1: Professora: Rosiane de Freitas (rosiane@icomp.ufam.edu.br) Bruno Raphael Cardoso Dias Prof. Estágio em Docência (bruno.dias@icomp.ufam.edu.br)

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grau de um Vértice O grau d G (v) do vértice v de G é o número de arestas incidentes a v, cada laço sendo contado duas

Leia mais

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto. 7 - Coloração de Arestas e Emparelhamentos Considere o seguinte problema: Problema - Ao final do ano acadêmico, cada estudante deve fazer um exame oral com seus professores. Suponha que existam 4 estudantes

Leia mais

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

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

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

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados

Leia mais

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016 Método Simplex dual Marina Andretta ICMC-USP 24 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

1 Conjuntos, Números e Demonstrações

1 Conjuntos, Números e Demonstrações 1 Conjuntos, Números e Demonstrações Definição 1. Um conjunto é qualquer coleção bem especificada de elementos. Para qualquer conjunto A, escrevemos a A para indicar que a é um elemento de A e a / A para

Leia mais

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30 Programação Linear Inteira Programação Linear Inteira C. Requejo (UA) Métodos de Investigação Operacional MIO 2016 1 / 30 Programação Linear Inteira Programação Linear Inteira Resolução de problemas de

Leia mais

Axiomatizações equivalentes do conceito de topologia

Axiomatizações equivalentes do conceito de topologia Axiomatizações equivalentes do conceito de topologia Giselle Moraes Resende Pereira Universidade Federal de Uberlândia - Faculdade de Matemática Graduanda em Matemática - Programa de Educação Tutorial

Leia mais

Capítulo 1. Aula Conectividade Caminhos

Capítulo 1. Aula Conectividade Caminhos Capítulo 1 Aula 7 1.1 Conectividade Muitos problemas podem ser modelados com caminhos formados ao percorrer as arestas dos grafos. Por exemplo, o problema de determinar se uma mensagem pode ser enviada

Leia mais

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

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

1 Introdução Motivação

1 Introdução Motivação 1 Introdução 1.1. Motivação A programação linear, ao menos na modelagem matemática que se conhece hoje, foi desenvolvida durante a segunda grande guerra quando foi utilizada no planejamento e execução

Leia mais

Produtos de potências racionais. números primos.

Produtos de potências racionais. números primos. MATEMÁTICA UNIVERSITÁRIA n o 4 Dezembro/2006 pp. 23 3 Produtos de potências racionais de números primos Mário B. Matos e Mário C. Matos INTRODUÇÃO Um dos conceitos mais simples é o de número natural e

Leia mais

) a sucessão definida por y n

) a sucessão definida por y n aula 05 Sucessões 5.1 Sucessões Uma sucessão de números reais é simplesmente uma função x N R. É conveniente visualizar uma sucessão como uma sequência infinita: (x(), x(), x(), ). Neste contexto é usual

Leia mais