Você está na página 1de 7

M2007 – Algoritmos em Matemática Discreta Regente: Samuel Lopes

Folha de Problemas N.o 7 2016/17

 Um caminho Hamiltoniano num grafo é um caminho em que ocorrem todos os vértices


(uma e uma só vez). Em particular, um ciclo Hamiltoniano é um ciclo que contém
todos os vértices do grafo.

 Um grafo diz-se Hamiltoniano se possuir algum ciclo Hamiltoniano.

 A altura de uma árvore com raiz é o máximo das alturas das suas folhas (a altura de
uma folha é a sua distância à raiz da árvore).

 Uma árvore de decisão (árvore ordenada com raiz) na qual todo o vértice interno tem no
máximo dois filhos (designados de filho esquerdo e/ou filho direito) diz-se uma árvore
binária. Se cada vértice interno tem exatamente dois filhos, a árvore diz-se uma árvore
binária completa.

1. Neste exercício vamos relacionar o número de arestas e vértices de um grafo com a


existência de ciclos. Seja G = (V, E, φ) um grafo com |V | = v, |E| = e e ω(G)
componente conexas.

(a) Mostre, por indução sobre n ≥ 0, que se G é conexo e e = v + n, então G tem


pelo menos n + 1 ciclos.
(b) Mostre que G tem pelo menos e − v + ω(G) ciclos.
[Sugestão: Use a alínea anterior.]
(c) Mostre que o resultado de (a) é o melhor possível, mesmo assumindo que G
é simples. Isto é, para cada n, construa um grafo simples com e = v + n e
exatamente n + 1 ciclos.

2. Seja T = (V, E) uma árvore.


P
(a) Mostre que v∈V (2 − gr(v)) = 2.
(b) Mostre que se T tem algum vértice de grau m ≥ 2, então tem pelo menos m
folhas.
(c) Para m ≥ 2, dê um exemplo de uma árvore com um vértice de grau m e exata-
mente m folhas.

3. Em cada uma das alíneas, dê um exemplo de um grafo que satisfaça a condição indicada,
ou mostre que não existe um tal grafo.

(a) Uma árvore com 6 vértices e 6 arestas.


Folha de Problemas N.o 7 M2007 – Algoritmos em Matemática Discreta

(b) Uma árvore com pelo menos 3 vértices, duas folhas, e os restantes vértices com
grau 3 ou mais.
(c) Um grafo desconexo com 10 vértices e 8 arestas.
(d) Um grafo desconexo com 12 vértices, 11 arestas e nenhum ciclo.
(e) Uma árvore com 6 vértices e soma do graus de todos os vértices igual a 12.
(f) Um grafo conexo com 6 arestas, 4 vértices e exatamente 2 ciclos.
(g) Um grafo com 6 vértices, 6 arestas e sem ciclos.

4. A altura de uma árvore com raiz é o máximo das alturas das suas folhas (a altura de
uma folha é a sua distância à raiz da árvore). Uma árvore de decisão (árvore ordenada
Basiccom
Concepts
raiz) na in Graph
qual todo oTheory
vértice interno tem no máximo dois filhos (designados de filho
esquerdo e/ou filho direito) diz-se uma árvore binária. Se cada vértice interno tem
leaf. A rooted
exatamente dois tree in which
filhos, eachdiz-se
a árvore non-leaf
umavertex hasbinária
árvore at mostcompleta.
two children is called
a binary tree. If each non-leaf vertex has exactly two children, the tree is called a
fullProve
(a) binaryque numa árvore binária com ` folhas e altura h, se tem ` ≤ 2h .
tree.
(b)(a)Numa
If a binary
árvoretree has l leaves
binária com `and heightqual
folhas, h prove
é othat
valor 2h . (Taking
l ≤máximo logarithms
possível para a sua
gives log2 (l) ≤ h.)
altura?
(c)(b)Numa
A binary treebinária
árvore has l leaves. What
completa comcan` you say about
folhas, qual é the maximum
o valor value
máximo of h? para
possível
(c)a sua altura?
Given a full binary tree with l leaves, what is the maximum height h?
(d)(d)Numa
Givenárvore bináriatree
a full binary completa com ` what
with l leaves, folhas,
is qual é o valorheight
the minimum mínimoh? possível para
a sua altura?
(e) Given a binary tree of l leaves, what is the minimum height h?
(e) Numa árvore binária com ` folhas, qual é o valor mínimo possível para a sua
altura?
3.5. In each of the following cases, state whether or not such a tree is possible.
5. Em(a)
cada uma das seguintes alíneas, diga se existe ou não uma arvore nessas condições.
A binary tree with 35 leaves and height 100.
(a)(b)Uma árvore
A full binária
binary com2135leaves
tree with folhasand height 100.
e altura 21.
(b)(c)Uma árvoretree
A binary binária completa
with 33 21 folhas
comheight
leaves and 5. e altura 21.
(c)(d)Uma árvoretree
A rooted binária com533
of height folhas
where e altura
every 5. vertex has 3 children and there
internal
(d) Umaare árvore
365 vertices.
com raiz com 365 vertices e altura 5 em que cada vértice interno tem
3 filhos.
3.6. For each of the following graphs:
6. Para cada um dos seguintes grafos:
A B A B A B

D C D C D C
(1) (2) (3)

(a)(a)Determine
Find all spanning
todas astrees.
suas árvores geradoras.
(b)(b)Determine
Find all spanning
todas astrees
suasup to isomorphism.
árvores geradoras a menos de isomorfismo.
(c)(c)Determine
Find all depth-first spanning
todas as suas treesderooted
árvores at A.com raiz A.
Trémaux
(d) Find all depth-first spanning trees rooted at B.
2 2016/17
3.7. For each of the following graphs:
(a) Find all spanning trees.
(b) Find all spanning trees up to isomorphism.
M2007 – (c) Find all depth-first
Algoritmos spanning
em Matemática trees rooted at A.
Discreta Folha de Problemas N.o 7
(d) Find all depth-first spanning trees rooted at B.
(d) Determine todas as suas árvores de Trémaux com raiz B.
3.7. For each of the following graphs:
7. Para cada um dos seguintes grafos:
2 2 2
A B A B A B
1
1 2 2 1 2 1 2
2
2 1 1
D C D C
Section
(1) 4: Rates of
(2)
Growth and DAnalysis
(3)
C
of Algorithms

(c) Among allalldepth-first


(a)(a)Determine
Find spanning
todas as spanning
minimum suas árvores trees rooted
trees.geradoras at A, find those of minimum
minimais.
weight.
(b) Determine todas as suas árvores geradoras minimais a menos de isomorfismo.
(b) Find all minimum spanning trees up to isomorphism.
(d) Among all depth-first
(c) De entre spanning
todas as suas trees
árvores de rooted
Trémaux comatraiz
B, A,find those of
determine as minimum
que têm
GT-36 peso
weight. mínimo.
(d) De entre todas as suas árvores de Trémaux com raiz B, determine as que têm
peso mínimo.
3.8. In the following graph, the edges are weighted either 1, 2, 3, or 4.
8. No seguinte grafo as arestas têm pesos 1, 2, 3 ou 4.
1
2 2
A 2 I
3 2
H B 1 P J
4 1 4 1
3 U 3 T
G C O K
3
2 2 1 3
1 1 1 1 4
F D 3 N L
2 3 M
E Q 2 R 1 S
1 4
2
4

Referring to Theorem
(a) Determine uma 5sua
and the geradora
árvore discussion following
minimail of Kruskal’s
usando o algoritmoalgorithm:
de Prim.
(b) Determine
(a) Find a minimumumaspanning
sua árvoretree
geradora
usingminimail
Prim’s usando o algoritmo de Kruskal.
algorithm
(c) Determine a sua árvore de Trémaux com raiz K usando a ordem total nos vértices
(b) Finddada
a minimum spanning tree using Kruskal’s algorithm.
pela ordem alfabética.
(c) Find a depth-first spanning tree rooted at K.
9. Determine caminhos de distância (pesada) mínima entre o vértice u0 e os restantes
vértices do seguinte grafo com peso nas arestas:

Section 4: Rates of Growth and Analysis of Algorithms

Suppose we have an algorithm and someone asks us “How good is it?” To answer that
question, we need to know what they mean. They might mean “Is it correct?” or “Is it
understandable?” or “Is it easy to program?” We won’t deal with any of these.
They also might mean “How fast is it?” or “How much space does it need?” These
two questions can be studied by similar methods, so we’ll just focus on speed. Even
2016/17
now, the question is not precise enough. Does the person mean “How fast is it on this 3
particular problem and this particular machine using this particular code and this particular
compiler?” We could answer this simply by running the program! Unfortunately, that
Folha de Problemas N.o 7 M2007 – Algoritmos em Matemática Discreta

10. Uma empresa tem sucursais em seis cidades C1 , C2 , C3 , C4 , C5 e C6 . O preço de uma


viagem aérea direta entre Ci e Cj é dado pela entrada (i, j) da seguinte matriz (∞
indica que não há voo direto):
 
0 50 ∞ 40 25 10
 50 0 15 20 ∞ 25 
 
 ∞ 15 0 10 20 ∞ 
 
 40 20 10 0 10 25 
 
 25 ∞ 20 10 0 55 
10 25 ∞ 25 55 0

A empresa está interessada em fazer uma tabela com os preços dos percursos mais
baratos entre pares de cidades. Faça essa tabela.

11. Um lobo, uma cabra e um repolho estão na margem de um rio e um barqueiro quer
levá-los para a outra margem. Como o barco é pequeno, o barqueiro não pode levar
mais do que um deles de cada vez. Por motivos óbvios, o lobo e a cabra não podem
ser deixados sozinhos sem supervisão do barqueiro, e o mesmo se passa com a cabra e
o repolho. Como é que o barqueiro os pode transportar para a outra margem com o
seu barco? Use grafos para modelar e resolver este problema!

12. Dois homens têm três jarros, de capacidades 8, 5 e 3 litros, respetivamente. O jarro de
8 litros está cheio de vinho e os outros dois estão vazios. Qual é a forma mais simples
de dividirem o vinho em partes iguais?

13. Nos exercícios que se seguem G é um grafo simples. Em cada um dos casos diga,
justificando, se as condições indicadas garantem que G é árvore, se garantem que G
não é árvore ou se não garantem nem uma coisa nem a outra.

(a) i. G tem 8 vértices e 10 arestas.


ii. G tem 8 vértices e 7 arestas.
iii. G tem 8 vértices e 7 arestas, todas pontes.
(b) i. G tem 8 vértices e algum caminho a ligar dois quaisquer deles.
ii. G é conexo, tem 8 vértices e não tem pontes.
iii. G tem 8 vértices e todas as arestas são pontes.
(c) i. G é conexo e tem 8 vértices, todos de grau par.
ii. G é conexo e tem 8 vértices, dois de grau ímpar e os restante de grau par.
iii. G é conexo e tem 8 vértices. O grau de cada vértice é 1 ou 3.
(d) i. G é conexo e tem 10 vértices, todos de grau 9.
ii. G é conexo e tem 10 vértices, um dos quais de grau 9 e os restantes de grau
estritamente inferior.
iii. G é conexo e tem 10 vértices, todos de grau 2.
(e) i. G tem 10 vértices, v1 , . . . , v10 , e um único caminho a ligar v1 a v10 .
ii. G tem 10 vértices, v1 , . . . , v10 , e dois caminhos a ligar v1 a v10 .

4 2016/17
M2007 – Algoritmos em Matemática Discreta Folha de Problemas N.o 7

iii. G tem 10 vértices e 9 arestas, todas pontes.

14. Dê um exemplo de dois grafos conexos com a mesma sequência de graus:

(a) ambos árvores mas não isomorfos.


(b) um Hamiltoniano e o outro não.

15. Mostre que um grafo é uma árvore se e só se não contém nenhum ciclo mas qualquer
nova aresta que lhe seja adicionada cria exactamente um ciclo.

16. Quais são as árvores que têm atalhos Eulerianos?

17. Quais são as árvores que têm caminhos Hamiltonianos?

18. Construa, a menos de isomorfismo, todas as árvores com 7 vértices.

19. Mostre que os únicos grafos bipartidos completos que são árvores são as estrelas K1,n .

20. Mostre que qualquer árvore com pelo menos dois vértices é um grafo bipartido.

21. Seja G um grafo com 4 componentes conexas e 24 arestas. Qual é o número máximo
de vértices de G?

22. Um grafo G diz-se unicíclico se for conexo e tiver um único ciclo. Mostre que um grafo
é unicícico se e só se for conexo e tiver tantos vértices como arestas.

23. Seja G uma floresta constituída por k árvores. Qual é o número mínimo de arestas que
é necessário acrescentar a G para obter uma árvore?

24. Encontre uma árvore geradora de cada um dos grafos seguintes:

25. Determine todas as árvores geradoras dos seguintes grafos conexos e determine, em
cada caso, quais delas são não-isomorfas.

2016/17 5
Folha de Problemas N.o 7 M2007 – Algoritmos em Matemática Discreta

26. Seja T uma árvore com pelo menos k ≥ 2 arestas. Quantas componentes conexas é
que tem o subgrafo que se obtém retirando k das arestas de T ?

27. Seja α uma aresta do grafo conexo G.

(a) Mostre que α é uma ponte se e só se pertence a todas as árvores geradoras de G.


(b) Mostre que α é um lacete se e só se não pertence a nenhuma árvore geradora de
G.

28. Seja G um grafo sem lacetes e com uma única árvore geradora. Mostre que G é uma
árvore.

29. Seja G uma árvore com n vértices. Mostre que o comprimento do passeio fechado mais
curto que contém todas as arestas de G pelo menos uma vez é 2(n − 1).

30. Considere os seguintes grafos com função peso nas arestas:

(a) Encontre uma árvore geradora minimal de cada um deles.


(b) Encontre uma árvore geradora maximal de cada um deles (isto é, uma árvore
geradora cuja soma dos pesos das arestas seja máxima).

31. O seguinte algoritmo é mais um exemplo de um algoritmo guloso que determina uma
árvore geradora minimal num grafo conexo G com função peso nas arestas. Vamos
eliminando uma por uma as arestas de G de maior peso, desde que fazê-lo não resulte
num grafo desconexo. O subgrafo obtido quando não for possível prosseguir é uma
árvore geradora minimal de G. Aplique este algoritmo aos grafos do exercício anterior.

32. Considere o grafo completo Kn com vértices {1, . . . , n}, em que o peso da aresta de-
terminada pelos vértices i e j é i + j. Aplique o algoritmo de Kruskal para obter uma
árvore geradora minimal de cada um dos seguintes grafos:

(a) K4 ; (b) K6 ; (c) K8 .

6 2016/17
M2007 – Algoritmos em Matemática Discreta Folha de Problemas N.o 7

33. Repita o exercício anterior assumindo que o peso da aresta de Kn determinado pelos
vértices i e j é |i − j|.

34. Seja G um grafo conexo com função peso nas arestas cujas arestas têm pesos distintos.
Mostre que existe uma única árvore geradora minimal de G.

2016/17 7

Você também pode gostar