O documento discute problemas de teoria dos grafos, incluindo o número de independência do grafo de Petersen, acoplamentos em grafos, número de dominação, número de acoplamento, número de cobertura de vértices e de arestas. Formula problemas de programação inteira para encontrar esses valores e mostra exemplos com subconjuntos específicos de vértices e arestas.
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. • 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