• Save
Graph Theory - Exercises - Chapter 5
Upcoming SlideShare
Loading in...5
×
 

Graph Theory - Exercises - Chapter 5

on

  • 318 views

Some solved exercises of Graph Theory. The reference book used was: "Grafos - Introdução e Prática".

Some solved exercises of Graph Theory. The reference book used was: "Grafos - Introdução e Prática".

Statistics

Views

Total Views
318
Views on SlideShare
318
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Graph Theory - Exercises - Chapter 5 Graph Theory - Exercises - Chapter 5 Document Transcript

  • Teoria dos Grafos - Exercícios do Capítulo 5 Michel Alves dos Santos ∗ Maio de 2011 Conteúdo Lista de Figuras 2 1 a) Qual o número de independência α(P) do grafo de Petersen, representado a seguir? 2 1.1 Utilize o item (a) para apresentar um acoplamento maximal de P com 3 arestas. . 2 1.2 Use cadeias aumentantes para encontrar um acoplamento maximal de P com 4 arestas. 2 1.3 Encontre um acoplamento máximo de P. Qual o valor de α (P)? . . . . . . . . . . 3 2 Formule o problema de programação inteira que encontra o número de do- minação do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de vértices {x1, x2, x3} e {x2, x3, x6}. 3 2.1 Testando para o subconjunto de vértices {x1, x2, x3}. . . . . . . . . . . . . . . . . 4 2.2 Testando para o subconjunto de vértices {x2, x3, x6}. . . . . . . . . . . . . . . . . 4 3 Formule o problema de programação inteira que encontra o número de aco- plamento do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de arestas {x1x2, x3x6, x5x6} e {x1x2, x3x6, x4x5}. 5 3.1 Testando para o subconjunto de arestas {x1x2, x3x6, x5x6}. . . . . . . . . . . . . . 5 3.2 Testando para o subconjunto de arestas {x1x2, x3x6, x4x5}. . . . . . . . . . . . . . 6 4 Seja o grafo H=(V, E) não orientado, construído da seguinte forma (Veja abaixo). Qual o maior conjunto independente deste grafo? 6 5 Uma cobertura de vértices é um subconjunto de vérices tal que toda aresta é incidente a um vértice do conjunto. O número de cobertura de vértices de um grafo G, notação β(G) é a cardinalidade da menor cobertura de vértices de G. Formule o problema de programação inteira que encontra o número de cobertura do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de vértices {x1, x2, x3} e {x2, x4, x6}. 6 5.1 Testando para o subconjunto de vértices {x1, x2, x3}. . . . . . . . . . . . . . . . . 7 5.2 Testando para o subconjunto de vértices {x2, x4, x6}. . . . . . . . . . . . . . . . . 8 6 Formule o problema de programação inteira que encontra o número de cober- tura de arestas do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de arestas {ab, bc, bd} e {ab, cd, de}. 8 6.1 Testando para o subconjunto de arestas {ab, bc, bd}. . . . . . . . . . . . . . . . . 9 6.2 Testando para o subconjunto de arestas {ab, cd, de}. . . . . . . . . . . . . . . . . . 9 ∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi- chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leo- nardo Viana Pereira. 1
  • 7 O problema das 8 damas consiste em se encontrar um posicionamento para essas peças em um tabuleiro de xadrez, de tal forma que nenhuma dama ataque outra. Diga a qual conceito, dentre os expostos neste capítulo, este problema corresponde. Procure encontrar por inspeção, uma solução para este problema. 9 Lista de Figuras 1 O grafo de Petersen e o conjunto independente máximo em vermelho. . . . . . . . 2 2 O Grafo de Petersen. Acoplamento maximal com 3 arestas. . . . . . . . . . . . . . 2 3 O Grafo de Petersen. Acoplamento maximal com 4 arestas. . . . . . . . . . . . . . 3 4 O Grafo de Petersen. Acoplamento máximo com 5 arestas. . . . . . . . . . . . . . 3 5 Grafo fornecido para que se encontre o seu número de dominação. . . . . . . . . . 3 6 Grafo fornecido para que se encontre o seu número de acoplamento. . . . . . . . . 5 7 Grafo fornecido para que se encontre o seu número de cobertura de vértices. . . . . 6 8 Grafo fornecido para que se encontre o seu número de cobertura de arestas. . . . . 8 9 O Problema das 8 Damas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1 a) Qual o número de independência α(P) do grafo de Pe- tersen, representado a seguir? Figura 1: O grafo de Petersen e o conjunto independente máximo em vermelho. O número α(P) do grafo apresentado é 4. 1.1 Utilize o item (a) para apresentar um acoplamento maximal de P com 3 arestas. As arestas pertencentes ao acoplamento maximal se encontram em vermelho. Este resultado foi obtido por inspeção. Figura 2: O Grafo de Petersen. Acoplamento maximal com 3 arestas. 1.2 Use cadeias aumentantes para encontrar um acoplamento maximal de P com 4 arestas. As arestas pertencentes ao acoplamento maximal se encontram em vermelho tracejado. Este resultado foi obtido por inspeção. 2
  • Figura 3: O Grafo de Petersen. Acoplamento maximal com 4 arestas. 1.3 Encontre um acoplamento máximo de P. Qual o valor de α (P)? As arestas pertencentes ao acoplamento máximo se encontram em vermelho tracejado. Este resultado foi obtido por inspeção. O valor de α (P) é 5. Figura 4: O Grafo de Petersen. Acoplamento máximo com 5 arestas. 2 Formule o problema de programação inteira que encon- tra o número de dominação do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de vértices {x1, x2, x3} e {x2, x3, x6}. Figura 5: Grafo fornecido para que se encontre o seu número de dominação. Começamos por tomar a matriz de incidência B do grafo fornecido. Em um passo seguinte B = X1X2 X1X4 X2X3 X2X5 X3X6 X4X5 X5X6 X1 1 1 0 0 0 0 0 X2 1 0 1 1 0 0 0 X3 0 0 1 0 1 0 0 X4 0 1 0 0 0 1 0 X5 0 0 0 1 0 1 1 X6 0 0 0 0 1 0 1 Tabela 1: Construção da matriz de incidência, que relaciona vértices e arestas. encontramos sua transposta, visualizada logo abaixo: Tomamos agora um conjunto de vértices que suspeitamos que faça parte de um conjunto dominante do grafo fornecido. Construímos um vetor 3
  • Bt = X1 X2 X3 X4 X5 X6 X1X2 1 1 0 0 0 0 X1X4 1 0 0 1 0 0 X2X3 0 1 1 0 0 0 X2X5 0 1 0 0 1 0 X3X6 0 0 1 0 0 1 X4X5 0 0 0 1 1 0 X5X6 0 0 0 0 1 1 Tabela 2: Construção da matriz de incidência transposta, que relaciona vértices e arestas. característico, recebendo 1 se o vértice estiver no conjunto e 0 senão. Chamaremos esse vetor de x. Se multiplicarmos Bt por x, estaremos multiplicando a linha de cada aresta pelo vetor x. Se os dois vértices que aparecem na linha da aresta coincidirem com dois elementos do nosso vetor, é porque o nosso conjunto tem dois vértices adjacentes. Resumimos os nosso problema da seguinte forma: • Minimizar 1 · x • Sujeito a Bt · x 1 • xj ∈ {0, 1} Onde nesse modelo o 1 representa o vetor formado por 1’s. 2.1 Testando para o subconjunto de vértices {x1, x2, x3}. Tomaremos como vetor característico x = (1, 1, 1, 0, 0, 0) e agora procediremos com a multipli- cação Bt · x:           1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1           ∗         1 1 1 0 0 0         =           2 1 2 1 1 0 0           O valor 2 que aparece indica que na lista proposta existem vértices adjacentes, logo esse conjunto não pode ser chamado de dominante. 2.2 Testando para o subconjunto de vértices {x2, x3, x6}. Tomaremos como vetor característico x = (0, 1, 1, 0, 0, 1) e agora procediremos com a multipli- cação Bt · x:           1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1           ∗         0 1 1 0 0 1         =           1 0 2 1 2 0 1           O valor 2 que aparece indica que na lista proposta existem vértices adjacentes, logo esse conjunto também não pode ser chamado de dominante. 4
  • 3 Formule o problema de programação inteira que encon- tra o número de acoplamento do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de arestas {x1x2, x3x6, x5x6} e {x1x2, x3x6, x4x5}. Figura 6: Grafo fornecido para que se encontre o seu número de acoplamento. Começamos por tomar a matriz de incidência B do grafo fornecido. Tomamos agora um B = X1X2 X1X4 X2X3 X2X5 X3X6 X4X5 X5X6 X1 1 1 0 0 0 0 0 X2 1 0 1 1 0 0 0 X3 0 0 1 0 1 0 0 X4 0 1 0 0 0 1 0 X5 0 0 0 1 0 1 1 X6 0 0 0 0 1 0 1 Tabela 3: Construção da matriz de incidência, que relaciona vértices e arestas. conjunto de arestas que suspeitamos que faça parte de um conjunto de acoplamento do grafo fornecido. Construímos um vetor característico, recebendo 1 se a aresta estiver no conjunto e 0 senão. Chamaremos esse vetor de x. Se multiplicarmos B por x, estaremos multiplicando a linha de cada vértice pelo vetor x. Se as arestas que aparecem na coluna da aresta coincidirem com os elementos do nosso vetor, é porque o nosso conjunto tem arestas adjacentes. Resumimos os nosso problema da seguinte forma: • Maximizar 1 · x • Sujeito a B · x 1 • xj ∈ {0, 1} Onde nesse modelo o 1 representa o vetor formado por 1’s. 3.1 Testando para o subconjunto de arestas {x1x2, x3x6, x5x6}. Tomaremos como vetor característico x = (1, 0, 0, 0, 1, 0, 1) e agora procediremos com a multi- plicação B · x:         1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1         ∗           1 0 0 0 1 0 1           =         1 1 1 0 1 2         O valor 2 que aparece indica que na lista proposta existem arestas adjacentes, logo esse conjunto não pode ser dito como um conjunto de acoplamento. 5
  • 3.2 Testando para o subconjunto de arestas {x1x2, x3x6, x4x5}. Tomaremos como vetor característico x = (1, 0, 0, 0, 1, 1, 0) e agora procediremos com a multi- plicação B · x:         1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1         ∗           1 0 0 0 1 1 0           =         1 1 1 1 1 1         Como todos os valores são menores ou iguais a 1, isso significa que estamos diante de um conjunto de acoplamento. 4 Seja o grafo H=(V, E) não orientado, construído da se- guinte forma (Veja abaixo). Qual o maior conjunto inde- pendente deste grafo? • V = conjunto dos números naturais de 2 a 100. • E = { (a,b) | a e b têm um divisor comum} É o conjunto formado pelos números primos situados entre 2 e 100. 5 Uma cobertura de vértices é um subconjunto de vérices tal que toda aresta é incidente a um vértice do conjunto. O número de cobertura de vértices de um grafo G, nota- ção β(G) é a cardinalidade da menor cobertura de vértices de G. Formule o problema de programação inteira que en- contra o número de cobertura do grafo a seguir. Mostre o funcionamento da formulação com os subconjuntos de vértices {x1, x2, x3} e {x2, x4, x6}. Figura 7: Grafo fornecido para que se encontre o seu número de cobertura de vértices. O problema é muito similar aos anteriores. Começamos por tomar a matriz de incidência B do grafo fornecido. Em um passo seguinte encontramos sua transposta, visualizada logo abaixo: Tomamos agora um conjunto de vértices que suspeitamos que faça parte de um conjunto de cobertura do grafo fornecido. Construímos um vetor característico, recebendo 1 se o vértice estiver no conjunto e 0 senão. Chamaremos esse vetor de x. Se multiplicarmos Bt por x, estaremos multiplicando a linha de cada aresta pelo vetor x. Se os dois vértices que aparecem na linha da 6
  • B = X1X2 X1X4 X2X3 X2X5 X3X6 X4X5 X5X6 X1 1 1 0 0 0 0 0 X2 1 0 1 1 0 0 0 X3 0 0 1 0 1 0 0 X4 0 1 0 0 0 1 0 X5 0 0 0 1 0 1 1 X6 0 0 0 0 1 0 1 Tabela 4: Construção da matriz de incidência, que relaciona vértices e arestas. Bt = X1 X2 X3 X4 X5 X6 X1X2 1 1 0 0 0 0 X1X4 1 0 0 1 0 0 X2X3 0 1 1 0 0 0 X2X5 0 1 0 0 1 0 X3X6 0 0 1 0 0 1 X4X5 0 0 0 1 1 0 X5X6 0 0 0 0 1 1 Tabela 5: Construção da matriz de incidência transposta, que relaciona vértices e arestas. aresta coincidirem com dois elementos do nosso vetor, é porque o nosso conjunto tem dois vértices adjacentes, e se isso ocorre a cobertura será prejudicada, ou seja, devemos ter um subconjunto mínimo de vértices não adjacentes de tal forma que toda aresta seja incidente a um vértice desse subconjunto. Mas observe que toda aresta deve ser incidente, logo o resultado da multiplicação deve nos fornecer um vetor onde todas as suas componentes sejam maiores ou iguais a um, e isso garantirá que todas as arestas estam presentes nessa relação. Resumimos os nosso problema da seguinte forma: • Minimizar 1 · x • Sujeito a Bt · x 1 • xj ∈ {0, 1} Onde nesse modelo o 1 representa o vetor formado por 1’s. 5.1 Testando para o subconjunto de vértices {x1, x2, x3}. Tomaremos como vetor característico x = (1, 1, 1, 0, 0, 0) e agora procediremos com a multipli- cação Bt · x:           1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1           ∗         1 1 1 0 0 0         =           2 1 2 1 1 0 0           O valor 2 que aparece indica que na lista proposta existem vértices adjacentes, e o 0 indica que faltam arestas, logo esse conjunto não pode ser dito como de cobertura. 7
  • 5.2 Testando para o subconjunto de vértices {x2, x4, x6}. Tomaremos como vetor característico x = (0, 1, 0, 1, 0, 1) e agora procediremos com a multipli- cação Bt · x:           1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1           ∗         0 1 0 1 0 1         =           1 1 1 1 1 1 1           Como todos os valores são maiores ou iguais a 1, isso significa que estamos diante de um conjunto de cobertura. 6 Formule o problema de programação inteira que encontra o número de cobertura de arestas do grafo a seguir. Mos- tre o funcionamento da formulação com os subconjuntos de arestas {ab, bc, bd} e {ab, cd, de}. Figura 8: Grafo fornecido para que se encontre o seu número de cobertura de arestas. Começamos por tomar a matriz de incidência B do grafo fornecido. Tomamos agora um B = AB AD AE BC BD BE CD DE A 1 1 1 0 0 0 0 0 B 1 0 0 1 1 1 0 0 C 0 0 0 1 0 0 1 0 D 0 1 0 0 1 0 1 1 E 0 0 1 0 0 1 0 1 Tabela 6: Construção da matriz de incidência, que relaciona vértices e arestas. conjunto de arestas que suspeitamos que faça parte de um conjunto de cobertura de arestas do grafo fornecido. Construímos um vetor característico, recebendo 1 se a aresta estiver no conjunto e 0 senão. Chamaremos esse vetor de x. Se multiplicarmos B por x, estaremos multiplicando a linha de cada vértice pelo vetor x. Se as arestas que aparecem na coluna da aresta coincidirem com os elementos do nosso vetor, é porque o nosso conjunto tem arestas adjacentes. Porém o resultado final da multiplicação deve nos fornecer um vetor no qual seus valores sejam maiores ou iguais a 1, com isso teremos certeza que todo vértice foi tocado por uma aresta do conjunto. Resumimos os nosso problema da seguinte forma: • Maximizar 1 · x 8
  • • Sujeito a B · x 1 • xj ∈ {0, 1} Onde nesse modelo o 1 representa o vetor formado por 1’s. 6.1 Testando para o subconjunto de arestas {ab, bc, bd}. Tomaremos como vetor característico x = (1, 0, 0, 1, 1, 0, 0, 0) e agora procediremos com a multiplicação B · x:       1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1       ∗             1 0 0 1 1 0 0 0             =       1 3 1 1 0       Nem todo vértice foi tocado, isso é concluído devido ao aparecimento do valor zero. O vértice E não foi tocado. 6.2 Testando para o subconjunto de arestas {ab, cd, de}. Tomaremos como vetor característico x = (1, 0, 0, 0, 0, 0, 1, 1) e agora procediremos com a multiplicação B · x:       1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1       ∗             1 0 0 0 0 0 1 1             =       1 1 1 2 1       Todos os vértices foram tocados, logo o subconjunto é uma cobertura de arestas. 7 O problema das 8 damas consiste em se encontrar um posicionamento para essas peças em um tabuleiro de xa- drez, de tal forma que nenhuma dama ataque outra. Diga a qual conceito, dentre os expostos neste capítulo, este problema corresponde. Procure encontrar por inspeção, uma solução para este problema. O problema se relaciona ao conceito de Conjuntos Dominantes. Por inspeção, uma solução possível é a seguinte: 9
  • Figura 9: O Problema das 8 Damas. 10