Você está na página 1de 103

Alguns T opicos de Matematica Discreta

Ana Paula Tom as


Departamento de Ciencia de Computadores
Faculdade de Ciencias do Porto
2005
Conte udo
1 Conjuntos 1
1.1 Opera c oes com Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Representa c ao de N umeros em Computador 7
2.1 Sistema de Representa c ao Posicional . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Rela c ao entre bin ario, octal e hexadecimal . . . . . . . . . . . . . . . . 11
2.1.2 Adi c ao e multiplica c ao na base b . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Representa c ao de n umeros com um n umero xo de dgitos . . . . . . . 15
2.1.4 Representa c ao de n umeros negativos . . . . . . . . . . . . . . . . . . . 16
2.2 Adi c ao e Subtrac c ao em n Bits . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Adi c ao e subtrac c ao bin aria de inteiros n ao negativos . . . . . . . . . 19
2.2.2 Adi c ao de inteiros em complemento para 2 . . . . . . . . . . . . . . . 20
2.2.3 Subtrac c ao de inteiros em complemento para 2 . . . . . . . . . . . . . 20
2.3 Representa c ao em Vrgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Representa c ao em Vrgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21
3 Algumas No c oes de Divisibilidade 23
3.1 Bases de Numera c ao e Criterios de Divisibilidade . . . . . . . . . . . . . . . . 23
3.2 No c ao de Divisor e de M ultiplo . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Factoriza c ao em Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Determina c ao de primos: crivo de Erast otenes . . . . . . . . . . . . . 27
3.3.2 C alculo de divisores por an alise da factoriza c ao em primos . . . . . . . 28
3.4 M aximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.1 C alculo do m aximo divisor comum pelo algoritmo de Euclides . . . . . 29
3.5 Mnimo M ultiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 Congruencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
i
4 Indu c ao Matem atica 33
4.1 Princpio de Indu c ao Matem atica . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Erros frequentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Indu c ao Forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Outras formula c oes do princpio de indu c ao . . . . . . . . . . . . . . . 42
5 Rela c oes Bin arias 43
5.1 Rela c oes Bin arias de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Opera c oes com rela c oes bin arias . . . . . . . . . . . . . . . . . . . . . 43
5.1.2 Matriz duma rela c ao bin aria . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.3 Fun c oes de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Rela c oes Bin arias Denidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47
5.2.1 Propriedades das rela c oes bin arias denidas em A . . . . . . . . . . . 48
5.2.2 Grafo da rela c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Rela c oes de Compatibilidade e de Equivalencia . . . . . . . . . . . . . . . . . 50
5.3.1 Classes de equivalencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.2 Parti c oes e rela c oes de equivalencia . . . . . . . . . . . . . . . . . . . . 53
5.3.3 Classes de Compatibilidade . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Rela c oes de Ordem Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4.1 Diagrama de Hasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4.2 M aximos, mnimos, supremo, nmo, majorantes e minorantes . . . . 59
5.5 Fechos duma Rela c ao para uma Propriedade . . . . . . . . . . . . . . . . . . . 60
5.5.1 Fecho transitivo e percursos em grafos . . . . . . . . . . . . . . . . . . 62
5.5.2 Fecho transitivo duma rela c ao denida num conjunto nito . . . . . . 68
6 Grafos e Multigrafos 71
6.1 Grafos Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.1.1 Multigrafos dirigidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.1.2 Grafos, Percursos e rela c oes bin arias . . . . . . . . . . . . . . . . . . . 74
6.2 Grafos N ao Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.2.1 Grafos Conexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 Condi c ao necess aria para um grafo ser conexo . . . . . . . . . . . . . . 78
6.3

Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.1

Arvores com raz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.6 Isomorsmo de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
ii
6.7 Colora c ao de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86
6.8.1 Determina c ao da dist ancia mnima . . . . . . . . . . . . . . . . . . . . 87
6.9 Grafos com Smbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93
iii
iv
Prefacio
Estes apontamentos tem por base material elaborado em anos anteriores para disciplinas da
licenciatura em Ciencia de Computadores [5, 6, 7], o qual foi agora revisto e nalguns t opicos
completado para servir de apoio ` a disciplina de Matem atica para Ciencia de Computadores,
no ano lectivo de 2005/06. N ao visam substituir a leitura da bibliograa recomendada pelos
docentes e n ao cobrem actualmente todos os t opicos abordados na disciplina.
v
vi
Captulo 1
Conjuntos
Neste captulo vamos essencialmente recordar ou introduzir alguma da nota c ao que e usada
para conjuntos. Tomamos a no c ao de conjunto como primitiva, convencionando que um
conjunto e constitudo por elementos objectos materiais ou entes abstractos que tem
alguma propriedade em comum (no caso extremo, a de pertencerem todos a esse conjunto).
Os conjuntos podem ser vazios (i.e. sem elementos). Em geral, usamos letras mai usculas
para designar conjuntos e min usculas para referir os seus elementos. Para indicar que a e um
elemento do conjunto A escrevemos a A. Os conjuntos podem ser especicados em extens ao
exibindo todos os elementos que os constituem ou indicando a propriedade que caracteriza
os seus elementos deni c ao em compreens ao. Por exemplo, 1, 2, 3, 4 e n [ n Z
+
n 4.
Nota c ao. Sejam A e B conjuntos.
a A a pertence a A, a e elemento de A
a / A a n ao pertence a A
A = B igualdade de conjuntos (qualquer que seja x,
x A se e s o se x B)
A B A contido em B, A subconjunto de B
(qualquer que seja x, se x A ent ao x B)
A B A contem B, B A
A B A contido propriamente em B,
A subconjunto pr oprio de B
A B A ,= B
A B A contem propriamente B
A ,= B A , B ou B , A
ou conjunto vazio
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
1.1. OPERAC

OES COM CONJUNTOS 2
O conjunto dos subconjuntos de A, representa-se por T(A) ou 2
A
. Qualquer con-
junto A pertence ao seu conjunto de subconjuntos, isto e A T(A). Por exemplo,
T(1, 2, 3) = , 1, 2, 3, 1, 2, 1, 3, 2, 3, 1, 2, 3
O conjunto T(1, 2, 3) tem 2
3
elementos. Tambem se pode vericar que T(T(1, 2, 3))
tem 2
2
3
elementos. Se A tem n elementos, T(A) tem 2
n
elementos.
Nestes apontamentos, N representa o conjunto dos inteiros n ao negativos (incluindo
assim tambem 0).
N inteiros n ao negativos (em vez de N
0
)
Z inteiros
Q racionais
R reais
R
+
0
reais n ao negativos
R
+
reais positivos
R

reais negativos
Um conjunto A n ao vazio e nito se e s o se existir uma bijecc ao de A em x N [ x < n
para algum n N. Nesse caso, n e o cardinal (n umero de elementos) de A. Usamos [A[ (ou,
alternativamente, #A) para designar o cardinal de A. O cardinal do conjunto vazio e zero.
A prop osito de quest oes de nota c ao, e de salientar que
n [ n N
n, com n N
denotam conjuntos diferentes: o primeiro e N e o segundo e constitudo por um unico inteiro
(que est a a ser representado pela letra n).
1.1 Opera c oes com Conjuntos
A intersec c ao de A com B representa-se por A B, e e o conjunto dos elementos que
pertencem a ambos os conjuntos.
A B = x [ x A e x B
A uni ao de A com B que se representa por A B, e o conjunto dos elementos que
pertencem a pelo menos um dos conjuntos.
A B = x [ x A ou x B
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
1.1. OPERAC

OES COM CONJUNTOS 3
O complementar de B em A representa-se por A B, e e o conjunto dos elementos de
A que n ao pertencem a B.
A B = x [ x A e x / B
Quando est a implicto um dado universo |, chama-se complementar de A, e representa-
se por A, ao complementar de A em |, ou seja a | A.
Exemplo 1 Vamos provar que A (BC) = (A B) (A C). Para tal vamos mostrar que
x A (B C) x (A B) (A C), qualquer que seja x.
x A (B C) x A x / B C (por def. de diferen ca)
x A (x / B x / C) (por def. uni ao)
x A B x A C (por def. de diferen ca)
x (A B) (A C) (por def. intersec c ao)
Exemplo 2 Quaisquer que sejam os conjuntos A, B |, tem-se A B = A B. De facto,
se x A B ent ao, por deni c ao de complementar, x / A B. Logo, x / A e x / B. Mas,
x / A sse x A. E, x / B sse x B. Ent ao, x A e x B. Donde, x AB. Mostr amos
assim que A B A B. Reciprocamente,
x A B = (x A x B) (por def. )
= (x / A x / B) (por def. complementar)
= x / (A B) (por def. )
= x A B (por def. complementar)
ou seja, A B A B.
Exerccio 1.1.1 Suponha que os conjuntos indicados s ao subconjuntos do universo |. Sendo
A, B e C subconjuntos de | quaisquer, mostre cada uma das propriedades:
(a) A B = A B = B A (j) = | (r) | =
(b) A B = sse A B (k) A A = (s) A = A
(c) A B = A sse A B = (l) A = A (t) A | = |
(d) (A B) (B A) = (A B) (B A) (m) A A = | (u) A A =
(e) (A B) C = A (B C) (n) A | = A (v) A A = A
(f) (A B) C = A (B C) (o) A = A
(g) (A B) C = (A C) (B C)
(h) (A B) C = (A C) (B C) (p) A B = A B
(i) A (B C) = (A B) (A C) (q) A B sse B A
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
1.1. OPERAC

OES COM CONJUNTOS 4
Exemplo 3 A ttulo de exemplo, vamos analisar a veracidade ou falsidade das arma c oes
seguintes e justic a-la.
1. Qualquer que seja x Z, existe y Z tal que x y e x ,= y.
x Z y Z (x y x ,= y)
A arma c ao e verdadeira porque, sendo o conjunto dos inteiros innito, se x e inteiro,
x + 1 tambem e um inteiro e x + 1 e superior a x. Ou seja, dado um x qualquer, se
considerarmos que y e x + 1, satisfazemos a condi c ao (x y x ,= y). Note que y
depender a de x.
2. Existe y Z tal que para todo x Z se tem x y.
y Z x Z x y
A arma c ao e falsa porque em particular se x fosse y+1 ent ao teriamos que ter y+1 y,
que n ao e satisfazvel (j a que e equivalente a 1 0).
3. Existe um inteiro n ao negativo que n ao excede qualquer outro inteiro n ao
negativo.
x Z
+
0
y Z
+
0
x y
A arma c ao e verdadeira. O inteiro 0 e menor ou igual que cada um dos inteiros n ao
negativos. Aqui, Z
+
0
denota o conjunto dos inteiros n ao negativos, o qual identic amos
tambem por N.
4. Existe x Z tal que x e maior do que qualquer outro inteiro y.
x Z y Z x > y
A arma c ao e falsa (an aloga ` a 2).
5. Para todo A Z, tem-se T(A) = .
A arma c ao e falsa, porque 1 e um subconjunto de Z e T(1) = , 1 ,= .
6. Para todo A Z, se A = ent ao T(A) = .
A arma c ao e verdadeira. S o existe um subconjunto de Z que e vazio, e T() = .
Note que e um conjunto que tem um elemento. Esse elemento e , ou seja, e o
conjunto vazio.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
1.1. OPERAC

OES COM CONJUNTOS 5
7. Tem-se T(A) = , para algum A Z.
A (A Z T(A) = )
A arma c ao e falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio e
um elemento de T(A).
8. Quaisquer que sejam x, y Z, tem-se x y ou y x.
x Z y Z (x y y x)
Dizer que x y equivale a dizer que existe um inteiro n ao negativo z tal que y = x +z.

E verdade que (x y y x), quaisquer que sejam os inteiros x e y.


Como x y e inteiro, quaisquer que sejam x e y, se x y e n ao negativo, ent ao y x
pois x = y + (x y). Se x y e negativo, ent ao y x e um inteiro positivo, e como
y = x + (y x), tem-se x y.
9. Qualquer que seja A Z, se A ,= 1, 2, 3 ent ao 4 A.
A ( (A Z A ,= 1, 2, 3) 4 A) )
Falso. Existe um subconjunto de Z que e diferente de 1, 2, 3 e que n ao tem o 4. Por
exemplo, o conjunto vazio.
10. Quaisquer que sejam A, B Z, se 5 A B ent ao 5 A.
A B( (A Z B Z 5 A B) 5 A)
A arma c ao e verdadeira. Quaisquer que sejam os subconjuntos A e B de Z, tem-se
5 A B se e s o se 5 A e 5 / B. Logo, se 5 A B ent ao 5 A.
11. Para todo o x Z, e quaisquer que sejam A, B Z, se x A B ent ao x A.
A arma c ao e verdadeira. A justica c ao e semelhante ` a dada para a arma c ao anterior
(claro que e necess ario falar em x e n ao em 5!).
12. Existe x Z tal que x A B, quaisquer que sejam A, B Z.
Esta arma c ao pode ser traduzida pela express ao l ogica
x(x Z ( AB ( (B Z A Z) x A B) ))
a qual escrevemos por vezes como
x Z A ZB Z (x A B)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
1.1. OPERAC

OES COM CONJUNTOS 6
que e falsa. Quaisquer que sejam os conjuntos A e B se A = B ent ao AB = . Assim,
se tomarmos, por exemplo, A = B = 1, os conjuntos A e B s ao subconjuntos de Z e
n ao existe qualquer inteiro x tal que x A B.
13. 2 + 2 = 4 ou

2 Z.
A arma c ao e verdadeira porque embora

2 / Z, e verdade que 2 + 2 = 4.
14. Se 2 + 2 ,= 4 ent ao

2 Z.
A arma c ao e equivalente a 2 + 2 = 4 ou

2 Z.
15. Se

2 Z ent ao 2 + 2 ,= 4.
A arma c ao e equivalente a

2 / Z ou 2 + 2 ,= 4, e como

2 / Z, a arma c ao e
verdadeira.
16.

2 , Z ou 2 + 2 ,= 4.
A arma c ao e verdadeira porque

2 , Z.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Captulo 2
Representa cao de N umeros em
Computador
Do mesmo modo que 5692 segundos, 94 minutos e 52 segundos, 1 hora, 34 minutos e 52
segundos s ao designa c oes ou representa c oes diferentes da mesma entidade, tambem 5692
(10)
,
13074
(8)
e 1011000111100
(2)
o s ao. De facto,
1 34 52
(60)
1h34

52

1 60
2
+ 34 60
1
+ 52 60
0
5 6 9 2
(10)
5 10
3
+ 6 10
2
+ 9 10
1
+ 2 10
0
1 3 0 7 4
(8)
1 8
4
+ 3 8
3
+ 0 8
2
+ 7 8
1
+ 4 8
0
1 0 1 1 0 0 0 1 1 1 1 0 0
(2)
1 2
12
+ 0 2
11
+ 1 2
10
+ 1 2
9
+ 0 2
8
+ 0 2
7
+
0 2
6
+ 1 2
5
+ 1 2
4
+ 1 2
3
+ 1 2
2
+ 0 2
1
+ 0 2
0
dizendo-se que 60, 10, 8 e 2 s ao as bases de numera c ao, respectivas. Habitualmente, escreve-se
5692 em vez de 5692
(10)
, porque a base mais usual para representa c ao de inteiros e a base 10,
designada por decimal. As bases 8 e 2 s ao designadas por octal e bin aria. Se considerarmos
as potencias de 2,
2
12
2
11
2
10
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
4096 2048 1024 512 256 128 64 32 16 8 4 2 1
podemos observar que 5692 = 4096+1596 = 4096+(1024+572) = 4096+1024+(512+60) =
. . . = 4096 + 1024 + 512 + 32 + 16 + 8 + 4 = 1011000111100
(2)
.
Analogamente, se considerarmos as potencias de 3,
3
8
3
7
3
6
3
5
3
4
3
3
3
2
3
1
3
0
6561 2187 729 243 81 27 9 3 1
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 8
podemos vericar que 5692 = 21210211
(3)
. De facto, 5692 = 2 2187 + 1318 = 2 2187 +
(1 729 +589) = 2 2187 +1 729 +(2 243 +103) = . . . = 2 2187 +1 729 +2 243 +
1 81 + 2 9 + 1 3 + 1 = 21210211
(3)
.
2.1 Sistema de Representa cao Posicional
Num sistema de numera c ao de base b usam-se b smbolos diferentes para b dgitos (de 0 a
b 1). Os n umeros s ao representados por uma sequencia de dgitos.
Os dgitos na base 10 s ao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os dgitos na base 2 s ao 0 e 1, e
normalmente s ao designados por bits. Por exemplo,
101110
2
= 1 2
5
+ 0 2
4
+ 1 2
3
+ 1 2
2
+ 1 2
1
+ 0 2
0
Se a = r
m
b
m
+ r
m1
b
m1
+ . . . + r
2
b
2
+ r
1
b
1
+ r
0
b
0
com r
m
,= 0 e 0 r
i
b 1 para
0 i m ent ao
a r
m
. . . r
2
r
1
r
0 (b)
e a representa c ao de a na base b. Os coecientes r
0
, r
1
, r
2
, . . . r
m
chamam-se dgitos de repre-
senta c ao de a na base b, sendo r
0
o dgito menos signicativo e r
m
o dgito mais signicativo.
A representa c ao e unica, o que e consequencia da unicidade do quociente e resto da divis ao
inteira.
Proposi c ao 1 (divis ao euclideana de inteiros) Quaisquer que sejam a Z e b Z
+
existe
um e um s o q Z e um e um s o r Z tal que b = aq +r e 0 r < b.
A q chama-se quociente e a r resto da divis ao inteira de a por b, sendo importante a
condi c ao 0 r < b para garantir a unicidade.
Corol ario 1.1 Quaisquer que sejam a Z
+
e b Z
+
1, existem inteiros unicos r
0
, r
1
,
r
2
, . . . r
m
tais que a = r
m
b
m
+r
m1
b
m1
+. . . +r
2
b
2
+r
1
b
1
+r
0
b
0
, r
m
,= 0 e 0 r
i
b 1
para 0 i m.
Prova: Sejam a e b inteiros com a > 0 e b > 1. Tem-se ou a < b ou a b.
Se a < b ent ao a = 0b +a. Portanto, 0 < r
0
= a.
Se a b ent ao, por deni c ao de divis ao inteira, existem q
0
e r
0
unicos tais que a = bq
0
+r
0
,
com 0 r
0
< b. Se q
0
< b, toma-se r
1
= q
0
e obtem-se a = r
1
b + r
0
. Se q
0
b, ent ao o
processo repete-se agora para q
0
. Ou seja, q
0
= bq
1
+r
1
, com 0 r
1
< b. Logo,
a = bq
0
+r
0
= b(bq
1
+r
1
) +r
0
= b
2
q
1
+br
1
+r
0
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 9
Se q
1
< b, toma-se r
2
= q
0
e obtem-se a = b
2
r
2
+br
1
+r
0
. Se q
1
b, ent ao o processo repete-se
agora para q
1
, e sucessivamente. O processo termina porque a > q
0
> q
1
> . . . e qualquer q
i
e um inteiro n ao negativo. .
Esta prova indica um algoritmo para determina c ao da representa c ao dum inteiro a numa
base b.
Exemplo 4 Tem-se 125
(10)
= 5
3
= 1000
(5)
= 2
6
+ 2
5
+ 2
4
+ 2
3
+ 2
2
+ 2
0
= 1111101
(2)
=
175
(8)
= 7D
(16)
. De facto,
125 5
0 25 5
r
0
0 5 5
r
1
0 1
r
2
r
3
125 2
1 62 2
r
0
0 31 2
r
1
1 15 2
r
2
1 7 2
r
3
1 3 2
r
4
1 1
r
5
r
6
125 8
5 15 8
r
0
7 1
r
1
r
2
125 16
13 7
r
0
r
1
No entanto, quando se conhecem potencias da base, pode ser mais f acil determinar a
representa c ao por outro metodo. Por exemplo, para a base 2,
46
(10)
= 32
(10)
+ 8
(10)
+ 4
(10)
+ 2
(10)
= 101110
(2)
enquanto se se aplicar o algoritmo dado pela prova anterior teria
46 2
0 23 2
r
0
1 11 2
r
1
1 5 2
r
2
1 2 2
r
3
0 1
r
4
r
5
46
(10)
= 23 2 + 0 = (11 2 + 1) 2 + 0 = ((5 2 + 1) 2 + 1) 2 + 0
= (((2 2 + 1) 2 + 1) 2 + 1) 2 + 0
= ((((2 1 + 0) 2 + 1) 2 + 1) 2 + 1) 2 + 0
= 1 2
5
+ 0 2
4
+ 1 2
3
+ 1 2
2
+ 1 2
1
+ 0 2
0
= 101110
(2)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 10
Pode interessar tambem saber qual a representa c ao decimal dum inteiro dado
numa base b. Para a obter, bastar a aplicar a deni c ao e efectuar os c alculos na base 10.
101110
(2)
= 1 2
5
+ 0 2
4
+ 1 2
3
+ 1 2
2
+ 1 2
1
+ 0 2
0
= 32 + 8 + 4 + 2 = 46
(10)
101110
(3)
= 1 3
5
+ 0 3
4
+ 1 3
3
+ 1 3
2
+ 1 3
1
+ 0 3
0
= 162 + 27 + 9 + 3 = 201
(10)
Para alem da base 2, s ao bastante usadas em Computa c ao as bases 8 (octal) e 16 (hexa-
decimal). Os dgitos em octal s ao 0, 1, 2, 3, 4, 5, 6 e 7. Embora os restos da divis ao por 16
sejam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,. . . , 15, por conven c ao, os dgitos em hexadecimal
a partir de 10 s ao representados pelas letras mai usculas de A a F. Deste modo n ao haver a
qualquer ambiguidade de representa c ao (por exemplo, ca claro que o hexadecimal 15 designa
o decimal 116+5 e F o decimal 15). Os n umeros representados na base octal s ao por vezes
indexados por (o), por exemplo 235
(o)
, e os representados na base hexadecimal por (h), por
exemplo F15A
(h)
.
Designa c ao Base Dgitos
Bin ario 2 0 a 1
Octal 8 (=2
3
) 0 a 7
Hexadecimal 16 (=2
4
) 0 a 9, A, B, C, D, E, F
Decimal 10 0 a 9
Exemplo 5 A sequencia 78412 n ao pode representar nenhum inteiro na base 4 porque 7, 8 e 4
n ao s ao dgitos base 4. A sequencia 001231 n ao e representa c ao numa base de numera c ao,
no sentido acima denido, porque teria zeros n ao signicativos. A sequencia 123100 pode
representar um inteiro em qualquer base b superior a 4.
Exerccio 2.1.1 Converter para bin ario: 153
(10)
, 153
(6)
, 153
(8)
, 153
(16)
.
Exerccio 2.1.2 Converter para hexadecimal: 153
(10)
, 151323
(10)
, 153
(8)
, 1010101111
(2)
.
Exerccio 2.1.3 Converter para octal: 1123
(4)
, 151323
(10)
, 153
(8)
, 1010101111
(2)
.
Exerccio 2.1.4 Converter para a base 251 e 666 os seguintes n umeros em decimal:
1383, 1498, 1500, 1580, 1640
Exerccio 2.1.5 Represente x, x
n
e x
n
1 na base x, para x > 1 e n N.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 11
2.1.1 Rela cao entre binario, octal e hexadecimal
Seja por exemplo, 101011110
(2)
um bin ario que se pretende converter para octal. Como foi
visto, o inteiro que esse bin ario representa e
1 2
8
+ 0 2
7
+ 1 2
6
+ 0 2
5
+ 1 2
4
+ 1 2
3
+ 1 2
2
+ 1 2 + 0
ou seja 350. A representa c ao octal correspondente pode ser obtida agrupando os dgitos
bin arios 3 a 3: uma vez que 8 = 2
3
e 8
2
= 2
6
, tem-se
2
6
(12
2
+02+12)+2
3
(02
2
+12+1)+(12
2
+12+0) = 8
2
5+83+6 = 536
(2)
Em geral se a
k
. . . a
5
a
4
a
3
a
2
a
1
a
0(2)
, sendo k 0, representa o inteiro
a
k
2
k
+. . . +a
5
2
5
+a
4
2
4
+a
3
2
3
+a
2
2
2
+a
1
2
1
+a
0
2
0
ent ao a representa c ao em octal do mesmo inteiro pode ser obtida da forma descrita:
a
k
2
k
+. . . + 2
3
(a
5
2
2
+a
4
2
1
+a
3
2
0
) + (a
2
2
2
+a
1
2
1
+a
0
2
0
) =
a
k
2
k
+. . . + 8(a
5
2
2
+a
4
2
1
+a
3
2
0
) + (a
2
2
2
+a
1
2
1
+a
0
2
0
)
Notar que na express ao resultante, qualquer potencia de 8 tem por coeciente
a
i+2
2
2
+a
i+1
2 +a
i
para algum i, o qual e sempre n ao negativo e inferior a 8, podendo assim ser dgito da
representa c ao octal. A cada dgito octal correspondem 3 dgitos em bin ario. Do mesmo
modo, a cada dgito hexadecimal correspondem 4 dgitos em bin ario. Assim, para converter
um bin ario a hexadecimal, agrupam-se os seus dgitos em grupos de 4 (da direita para a
esquerda) correspondendo a cada um desses grupos um dgito hexadecimal. Por exemplo,
101011110
(2)
1 [ 0101 [ 1110 1 [ 5 [ E 15E
(h)
Para converter um bin ario a octal procede-se de modo identico mas formando grupos de 3.
Por exemplo,
101011110
(2)
101 [ 011 [ 110 5 [ 3 [ 6 536
(o)
Inversamente, se se pretender converter de hexadecimal a bin ario basta associar a cada um
dos dgitos hexadecimal o grupo de 4 dgitos bin arios correspondente. Por exemplo,
3AC3A
(h)
0011 [ 1010 [ 1100 [ 0011 [ 1010
11 [ 1010 [ 1100 [ 0011 [ 1010 111010110000111010
(2)
Notar a elimina c ao dos zeros n ao signicativos. O que se acaba de ilustrar e um caso particular
da proposi c ao seguinte.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 12
Proposi c ao 2 Se z e um inteiro positivo, a cada dgito (com possvel excep c ao do mais signi-
cativo) da representa c ao de z na base b
n
corresponde um grupo de n dgitos na representa c ao
de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se
a
k
a
k1
. . . a
tn
a
tn1
. . . a
2n
a
2n1
. . . a
n
a
n1
. . . a
1
a
0
com k 0 e a representa c ao na base b de um inteiro positivo z ent ao, a representa c ao do
mesmo inteiro na base b
n
e
w
t
w
t1
. . . w
1
w
0
sendo t +1 o n umero de blocos de n dgitos da representa c ao de z na base b (podendo o ultimo
ser completado por zeros n ao signicativos), e w
i
(i t) o dgito da base b
n
que representa o
inteiro a
2in1
. . . a
in+1
a
in(b)
(representa c ao base b a menos de zeros n ao signicativos).
Exemplo 6 Por exemplo, para converter 100313210
(4)
para a base 16, agrupam-se os dgitos
2 a 2, da direita para a esquerda, pois 16 = 4
2
.
100313210
(4)
= 01 [ 00 [ 31 [ 32 [ 10 = 10DE4
(16)
Exerccio 2.1.6 Repita os exerccios 2.1.1 a 2.1.3.
Exerccio 2.1.7 Mostre a proposi c ao anterior. Comece por mostrar que w
t
w
t1
. . . w
1
w
0
conforme descrito pode ser representa c ao base b
n
de z; use em seguida o facto da representa c ao
numa base ser unica para concluir que w
t
w
t1
. . . w
1
w
0
e a representa c ao de z. Mostre depois
que se w
t
w
t1
. . . w
1
w
0
representa z na base b
n
, a representa c ao de z na base b e
a
k
a
k1
. . . a
tn
a
tn1
. . . a
2n
a
2n1
. . . a
n
a
n1
. . . a
1
a
0
2.1.2 Adi cao e multiplica cao na base b
Recorde como se adicionam dois inteiros representados na base 10, calculando por exemplo
987654 + 73561.
987654
+ 73561
. . . 5
(vai 0)
987654
+ 73561
. . . 15
(vai 1)
987654
+ 73561
. . . 215
(vai 1)
987654
+ 73561
. . . 1215
(vai 1)
987654
+ 73561
. . . 61215
(vai 1)
987654
+ 73561
. . . 061215
(vai 1)
987654
+ 73561
1061215
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 13
Algoritmo para Adi c ao (base 10). Se x e y s ao inteiros positivos representados na
base 10 por x
k
x
k1
. . . x
1
x
0
e y
m
y
m1
. . . y
1
y
0
respectivamente ent ao a representa c ao na
base 10 de x +y, digamos s
p
s
p1
. . . s
1
s
0
, pode ser obtida da forma seguinte.
x
k
x
k1
. . . x
1
x
0
+ y
m
y
m1
y
m2
. . . y
1
y
0
. . . s
0
Caso x
0
+ y
0
< 10, toma-se s
0
= x
0
+y
0
e repete-se o processo para os dgitos seguintes.
Sen ao, s
0
e tal que x
0
+y
0
= 1s
0
, adicionando-se 1 a x
1
+y
1
repetindo-se o processo (global)
para os dgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar x
i
= 0,
i k (respectivamente y
i
= 0, i m). Notar que p = max(k, m) ou p = max(k, m) + 1
sendo neste ultimo caso s
p
= 1.
Adi c ao (base 3). 2102
(3)
+21
(3)
= (2 3
3
+1 3
2
+0 3
1
+2 3
0
) +(2 3
1
+1 3
0
) =
23
3
+13
2
+(0+2) 3
1
+(2 + 1) 3
0
= 23
3
+13
2
+(0+2) 3
1
+(1 3 + 0) 3
0
=
2 3
3
+ 1 3
2
+ (0 + 2 + 1) 3
1
+ 0 3
0
= 2 3
3
+ (1 + 1) 3
2
+ 0 3
1
+ 0 3
0
=
2 3
3
+ 2 3
2
+ 0 3
1
+ 0 3
0
.
2102
(3)
+ 21
(3)
. . . 0
(3)
(vai 1)
2102
(3)
+ 21
(3)
. . . 00
(3)
(vai 1)
2102
(3)
+ 21
(3)
. . . 200
(3)
(vai 0)
2102
(3)
+ 21
(3)
2200
(3)
Exerccio 2.1.8 Justique que se x e y s ao inteiros positivos representados na base b por
x
k
x
k1
. . . x
1
x
0
e y
m
y
m1
. . . y
1
y
0
respectivamente ent ao s
p
s
p1
. . . s
1
s
0
, a representa c ao na
base b de x+y, pode ser obtida por um processo an alogo ao descrito acima, ou seja, seguindo
o algoritmo habitual. Comece por notar que quando soma x
i
com y
i
o resultado e sempre
menor ou igual que 2b 2, e portanto tanto x
i
+ y
i
como x
i
+ y
i
+ 1 se representa como
0s
i
ou 1s
i
(pelo que ou vai 0 ou vai 1), qualquer que seja i. Depois, use a deni c ao de
representa c ao na base b, ` a semelhan ca do que se fez acima para b = 3.
Os algoritmos usuais para adi c ao e multiplica c ao base 10 s ao v alidos quando se usam
representa c oes em qualquer outra base b, embora sejam obviamente diferentes as tabuadas
dessas opera c oes se escrevermos os resultados na base b. O mesmo se pode dizer para a
subtrac c ao (quando o aditivo e maior do que subtractivo) e para a divis ao inteira.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 14
Tabuadas de adi c ao e multiplica c ao para bin ario:
+
2
0 1
0 0 1
1 1 10

2
0 1
0 0 0
1 0 1
Tabuadas de adi c ao e multiplica c ao para base 3:
+
3
0 1 2
0 0 1 2
1 1 2 10
2 2 10 11

3
0 1 2
0 0 0 0
1 0 1 2
2 0 2 11
Tabuadas de adi c ao e multiplica c ao para octal:
+
8
0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16

8
0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 . . . . . . . . . . . . . . .
6 0 6 . . . . . . . . . . . . . . . . . . . . . . . .
7 0 7 . . . . . . . . . . . . . . . . . . . 61
Exerccio 2.1.9 Complete a tabuada de multiplica c ao base 8 e determine as tabelas para a
base hexadecimal.
Assim, por exemplo, 1021
(3)
211
(3)
= 1000201
(3)
, ou seja, 34
(10)
22
(10)
= 748
(10)
,
porque:
1 0 2 1
(3)
2 1 1
(3)
1 0 2 1
1 0 2 1
+ 2 1 1 2
1 0 0 0 2 0 1
(3)
3 4
(10)
2 2
(10)
6 8
+ 6 8
7 4 8
(10)
`
A esquerda, todos os valores intermedios est ao representados na base 3 e ` a direita na base 10
(visando recordar o algoritmo da multiplica c ao e estabelecer a compara c ao).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 15
Exerccio 2.1.10 Calcule:
(i) 1110010
(2)
+ 111001111
(2)
em bin ario.
(ii) 1F5
(h)
+ 111001111
(2)
em hexadecimal.
(iii) 1330
(4)
+ 123
(4)
em octal.
(iv) 1F5
(h)
+ABCD
(h)
+ 1FB
(h)
em hexadecimal.
(v) ABCD
(h)
1FB
(h)
em hexadecimal.
(vi) 73542
(o)
27
(10)
em octal.
(vii) 73542
(o)
/27
(10)
em octal.
(viii) 111000010
(2)
/111
(2)
em bin ario.
2.1.3 Representa cao de n umeros com um n umero xo de dgitos
Num computador cada inteiro e representado por um n umero xo de bits. Em 8 bits, 13 seria
representado por 00001101. Isto e, introduzem-se 0s ` a esquerda sempre que o n umero de bits
da representa c ao do inteiro seja menor que o n umero de bits que se xou.
Se n representar o n umero de bits que se xou para a representa c ao, os bits s ao numerados
da esquerda para a direita por bit
n1
, bit
n2
, . . . , bit
1
e bit
0
. O bit
n1
diz-se o bit mais
signicativo e bit
0
e o menos signicativo.
Quando se xa o n umero de bits da representa c ao, limita-se tambem os valores que podem
ser representados. Se, por exemplo, o n umero de bits for 8 ent ao o maior inteiro positivo que
se pode representar e:
1 1 1 1 1 1 1 1
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
cujo valor e
2
7
1 + 2
6
1 + 2
5
1 + 2
4
1 + 2
3
1 + 2
2
1 + 2
1
1 + 2
0
1 = 255 = 2
8
1
Em geral, com n bits podemos representar n umeros inteiros positivos de 0 a 2
n
1.
Proposi c ao 3 O maior inteiro positivo que se consegue representar na base b com n dgitos
e b
n
1.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 16
Prova: Suponhamos que A e representado com n dgitos na base b por a
n1
a
n2
. . . a
1
a
0
com a
i
0, . . . , b 1. Ent ao,
A = a
n1
b
n1
+a
n2
b
n2
. . . a
1
b
1
+a
0
b
0
=
n1

i=0
a
i
b
i
Ora,
n1

i=0
a
i
b
i

n1

i=0
(b 1)b
i
= (b 1)
n1

i=0
b
i
= (b 1)
b
0
b b
n1
1 b
(soma de termos de progress ao geometrica)
= (b 1)
1 b
n
1 b
= b
n
1
.
Observa c ao:

n1
i=0
u
i
e uma nota c ao abreviada para u
0
+ u
1
+ + u
n1
, podendo-se ler
somat orio para i desde 0 ate n 1 de u
i
.
Exerccio 2.1.11 Qual e o n umero mnimo de bits necess ario para representar 1125? Qual
o valor m aximo que pode ser representado com esse n umero de bits?
Normalmente o n umero de bits usados s ao 8, 16, 32 ou 64. Com 8 bits podemos representar
inteiros entre 0 e 255, com 16 bits entre 0 e 65535, com 32 bits entre 0 a 4294967295, etc.
2.1.4 Representa cao de n umeros negativos
Para representar n umeros inteiros positivos e negativos numa base b e com um n umero xo
de dgitos e necess ario codicar o sinal e encontrar um processo eciente de determinar se
um n umero e positivo ou negativo. Normalmente e reservado um dgito para indicar o sinal.
Por exemplo, em n dgitos, sendo A = a
n1
a
n2
. . . a
1
a
0
(b)
, se a
n1
= 0 ent ao A e positivo,
se a
n1
= b 1 o n umero e negativo.
Vamos considerar tres formas introduzidas para representar n umeros inteiros positivos e
negativos e que obedecem ` a condi c ao de sinal apresentada. Vamos supor que a base e 2 e que
o n umero de dgitos e n, embora os resultados possam ser generalizados para qualquer base b.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 17
Representa c ao com bit de sinal. Reserva-se o bit mais ` a esquerda para o sinal e os
restantes para o m odulo do n umero.
n bits
..
n1 n2 . . . . . . . . 0
sinal m odulo
O bit de sinal e 0 para os positivos e e 1 para os negativos. Assim, um n umero positivo
e da forma A = 0a
n2
. . . a
1
a
0
e um negativo e da forma A = 1a
n2
. . . a
1
a
0
. Com n bits
podemos representar n umeros positivos de 0 a 2
n1
1 e negativos (2
n1
1) a 0.
As representa c oes de dois n umeros com o mesmo m odulo diferem apenas no bit de sinal.
Se n = 3 temos o quadro seguinte:
Valor 0 1 2 3 0 1 2 3
Representa c ao com bit de sinal 000 001 010 011 100 101 110 111
Podemos observar que zero tem duas representa c oes: +0 e 0. Para efectuar adi c oes
de n umeros com sinais diferentes e necess ario primeiro determinar qual e o maior e qual o
sinal do resultado. O mesmo problema surge para a subtrac c ao, a qual pode ser tratada como
a adi c ao associando o sinal negativo ao subtraendo, x y = x + (y).
Representa c ao em Complemento para 1. A utiliza c ao desta representa c ao para inteiros
apresenta o mesmo problema da anterior, isto e, zero ter a duas representa c oes +0 e 0. Para
uma representa c ao em n bits, chama-se complemento para 1 de A ao valor (2
n
1) A.
O bit mais signcativo d a indica c ao sobre o sinal do n umero (se for 1, o n umero e negativo).
O n umero negativo x ser a representado por (2
n
1) x. Por exemplo, para n = 3, temos
o quadro seguinte:
Valor +0 +1 +2 +3 3 2 1 0
Complemento para 1 000 001 010 011 100 101 110 111
Estas representa c oes podem ser obtidas por troca de 1s por 0s e 0s por 1s na repre-
senta c ao de x em n bits, o que resulta de 2
n
1 ser representado por n 1s. Por exemplo, -14
e representado em complemento para 1 em 8 bits por:
1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 0
1 1 1 1 0 0 0 1
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.1. SISTEMA DE REPRESENTAC

AO POSICIONAL 18
Representa c ao em Complemento para 2. Neste caso, zero ter a uma s o representa c ao:
Exactamente metade dos n umeros representados s ao n ao negativos e a outra metade n umeros
negativos.
De 0 a 2
n1
1 encontram-se os n umeros n ao negativos e de 2
n1
a 2
n
1 n umeros
negativos.
Para os positivos a representa c ao coincide com a representa c ao anterior. Os n umeros nega-
tivos s ao complementos para a base. Por deni c ao, o complemento para 2 de A numa
representa c ao de n bits e o inteiro 2
n
A.
Exemplo 7 Para n = 3 ent ao -1 e representado por 111 pois 2
3
1 = 7. Se n = 8, o
inteiro -1 e representado por 11111111 em complemento para 2. Nnuma representa c ao em 8
bits usando complemento para 2 o inteiro 3 e o bin ario correspondente a 2
8
3, ou seja
253 = 11111101.
Em resumo, temos o quadro seguinte para n = 3:
Valor 0 +1 +2 +3 4 3 2 1
Complemento para 2 000 001 010 011 100 101 110 111
Usando a deni c ao de complemento para 2, pode-se concluir que 2
n1
representa 2
n1
pois 2
n
2
n1
= 2
n1
. Por outro lado, 2
n
1 representa 1.
Proposi c ao 4 No sistema de representa c ao com n bits e complemento para 2 os valores
possveis dos inteiros represent aveis variam de 2
n1
a 2
n1
1. De 0 a 2
n1
1 tem-se
n umeros n ao negativos e de 2
n1
a 2
n
1 n umeros negativos.
Para alem de s o haver um zero, neste caso todos os negativos tem 1 como bit mais
signicativo, o qual funciona assim como bit de sinal. As adi c oes podem ser efectuadas
sem analisar o sinal dos operandos e nas subtrac c oes basta calcular o complemento para 2 do
subtraendo e adicionar o valor resultante ao subtractivo, como se ver a adiante.
Para determinar representa c ao em complemento para 2 dum n umero e util observar
a sua rela c ao com a representa c ao em complemento para 1.
Como 2
n
A = (2
n
1 A) + 1 e 2
n
1 A e a representa c ao em complemento para 1,
podemos obter a representa c ao em complemento para 2 complementando todos os dgitos
de A (isto e trocando os uns com os zeros e os zeros com os uns) e adicionando depois uma
unidade.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.2. ADIC

AO E SUBTRACC

AO EM N BITS 19
Exemplo 8 Para determinar a representa c ao de -17 em complemento para 2 em 8 bits,
toma-se 00010001, troca-se 0s por 1s, obtendo 11101110, e soma-se 1, resultando 11101111.
Inversamente, se se pretender determinar o valor (em decimal) do inteiro que e dado em
complemento para 2 por A = a
n1
a
n2
. . . a
1
a
0
, basta considerar que a parcela a
n1
2
n1
e
negativa. Por exemplo,
110
(2)
= 1 (2
2
) + 1 2
1
+ 0 2
0
= 4 + 2 + 0 = 2
(10)
Exerccio 2.1.12 Represente em complemento para 2 e com 8 bits os n umeros inteiros se-
guintes:
(i) 25, -25, 41, 56, 19, -31, -87;
(ii) a soma dos anteriores e verique se o resultado de somar as representa c oes est a correcto.
Exerccio 2.1.13 Suponha que a representa c ao em complemento para dois com 4 dgitos de
um inteiro e 1101. Como e a representa c ao com:
(i) 6 dgitos
(ii) 8 dgitos
(iii) n dgitos, com n 4.
Exerccio 2.1.14 Suponha agora que, em 4 dgitos, a representa c ao em complemento para
dois e 0101. Como responderia ` as alneas anteriores? Em geral, dado um inteiro x represen-
tado em n dgitos como procederia para obter a sua representa c ao com mais dgitos?
2.2 Adi cao e Subtrac cao em n Bits
2.2.1 Adi cao e subtrac cao binaria de inteiros nao negativos
Adi c ao: Segue o algoritmo habitual de adi c ao bin aria; se se tiver uma representa c ao de
m bits e a soma for superior a 2
m
1 (o maior inteiro positivo com m bits) diz-se que
h a transporte (carry); Por exemplo: a soma em 8-bits dos inteiros positivos 10010000
e 11111101 e 10001101, o que est a errado (tem transporte 1).
Subtrac c ao: Segue algoritmo habitual de subtrac c ao bin aria; se o valor da diferen ca for
inferior a zero, diz-se que h a transporte (borrow); Por exemplo: a diferen ca em 8-bits
10010000 11111101 = 10010011 o que est a errado (tem transporte 1).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.2. ADIC

AO E SUBTRACC

AO EM N BITS 20
2.2.2 Adi cao de inteiros em complemento para 2
Se os inteiros s ao n ao negativos, a soma e calculada pelo algoritmo habitual. Se a repre-
senta c ao tiver m bits e a soma for superior a 2
m1
1 (o maior inteiro positivo com m bits
num sistema de complemento para 2) diz-se que h a overow, sendo indica c ao de que o valor
obtido est a errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 01111111 com 00000001 e
10000000 ou seja, a soma de +127 com +1 e 128(!). Neste caso, h a overow.
Se os inteiros s ao ambos negativos (em complemento para 2) a soma e calculada pelo
algoritmo habitual desprezando-seo transporte. Se se usa uma representa c ao em m bits,
o desprezaro transporte corresponde a subtrair ao resultado obtido 2
m
. Basta notar que
quando se efectua (x) + (y) se pretende obter o complemento para 2 de x + y, isto e
2
m
(x +y). A rela c ao desse n umero com os complementos para 2 de x e y e 2
m
(x +y) =
(2
m
x) + (2
m
y) 2
m
. Ou seja, para obter a representa c ao em complemento para 2 de
(x) + (y) adicionam-se as representa c oes de (x) e (y) e subtrai-se 2
m
.
Se a representa c ao tiver m bits e a soma for inferior a 2
m1
(o menor inteiro negativo
com m bits num sistema de complemento para 2) diz-se que h a underow, sendo indica c ao
de que o valor obtido est a errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 10000000 com 11111111 seria
01111111 ou seja, 128 + (1) = +127 (!). Neste caso, h a underow.
Analogamente, a soma dum inteiro positivo com um inteiro negativo e o bin ario correspon-
dente ` a adi c ao das representa c oes dos operandos, desprezando-seo transporte se o houver.
N ao haver a overow nem underow.
2.2.3 Subtrac cao de inteiros em complemento para 2
A subtrac c ao bin aria de inteiros representados em complemento para 2 pode-se reduzir ` a
adi c ao de inteiros.
Exemplos
(-x)-(-y) = (-x)+y 10010000-11111101=10010000+00000011=10010011
(-x)-y=(-x)+(-y) 10010000-00000011=10010000+11111101=10001101
y-(-x)=y+x 00000011-10010000=00000011+ 01110000=01110011
y-x=y+(-x) 00000011-00010000=00000011+11110000=11110011
Exerccio 2.2.1 Quais das seguintes somas est ao correctas (se truncadas a 8 bits) caso as
representa c oes indicadas sejam representa c oes em complemento para 2 e caso sejam repre-
senta c oes s o para inteiros n ao negativos?
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.3. REPRESENTAC

AO EM V

IRGULA FIXA 21
negativos negativo e positivo positivos
10010000
+ 11111101
1 10001101
00010000
+ 11111111
1 00001111
00010000
+ 00111101
0 01001101
positivos negativos
01111010
+ 01110001
0 11101011 < 0
10000110
+ 10001111
1 00010101 > 0
overow underow
2.3 Representa cao em Vrgula Fixa
A representa c ao posicional de inteiros pode ser generalizada para representar n umeros racio-
nais considerando-se potencias negativas da base. Por exemplo, na base 10:
344.45 = 3 10
2
+ 4 10
1
+ 4 10
0
+ 4 10
1
+ 5 10
2
Podemos ainda escrever:
344.45 = 34445. 10
2
= (3 10
4
+ 4 10
3
+ 4 10
2
+ 4 10
1
+ 5 10
0
) 10
2
Se se xar a posi c ao da vrgula (neste caso o factor e 10
2
), o n umero pode ser tratado
como um inteiro. Assim as opera c oes com n umeros racionais podem ser feitas internamente
como opera c oes com inteiros, desde que os factores de ajuste sejam guardados para que o
resultado nal seja correctamente calculado.
Note-se em particular que as representa c oes de inteiros em computadores estudadas anteri-
ormente s ao representa c oes em vrgula xa, com a vrgula ` a direita do bit menos signicativo.
No caso geral, os ajustes da posi c ao da vrgula e o seu armazenamento car ao a cargo do
programador.
Contudo, actualmente, a representa c ao em computadores dos n umeros racionais e feita,
geralmente, em vrgula utuante.
2.4 Representa cao em Vrgula Flutuante
A representa c ao dum n umero racional em vrgula utuante, contrariamente ` a representa c ao
em vrgula xa, e feita atraves de um par de inteiros que representam respectivamente a
mantissa m e o expoente e de forma que para uma determinada base b, o seu valor e:
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
2.4. REPRESENTAC

AO EM V

IRGULA FLUTUANTE 22
F = m b
e
Por exemplo, 673 10
14
.
A designa c ao vrgula utuante resulta do facto de que a posi c ao da vrgula depender do
expoente e portanto n ao ser xada previamente.
A nota c ao mais usada para vrgula utuante e a do IEEE (Institute of Electrical and
Electronics Engineers). A base e a bin aria. Em precis ao simples cada n umero e representado
com 32 bits:
S E (8 bits) M (23 bits)
O sinal da mantissa e representado pelo bit S, que por quest oes de eciencia e separado
da representa c ao do m odulo da mantissa o qual e constitudo pelos 23 bits mais ` a direita. O
valor do m odulo da mantissa e normalmente dado por 1.M
(2)
, isto e, 1 mais o valor de M
considerado como n umero racional bin ario, com a vrgula ` a esquerda do bit mais signicativo.
Os oito bits restantes s ao interpretados como um inteiro positivo E e representam o expoente
cujo valor e E 127. O valor representado e
F = (1)
S
(2
E127
)(1.M)
(2)
excepto se E for 0000000 ent ao F = (1)
S
(2
127
)(.M
(2)
) e se M tambem e zero ent ao F = 0.
A sequencia 1 10000111 10100000000000000000000 representaria um n umero negativo,
dado que S = 1. Como 10000111
(2)
= 135
(10)
, o expoente e 135 127 = 8; e o m odulo da
mantissa e
1 + 0.101
(2)
= 1 + 1 2
1
+ 1 2
3
= 1 + (5/8) = 1 + 0.625 = 1.625
O valor representado e 2
8
1.625 = 416.
Existem outras representa c oes em vrgula utuante IEEE, como a precis ao dupla em que
s ao usados 64 bits e a qu adrupla em que s ao usados 128 bits.
Exerccio 2.4.1 Determine qual o maior n umero que e represent avel em precis ao simples,
segunda a norma do IEEE.
Exerccio 2.4.2 Indique o valor das seguintes representa c oes em precis ao simples segunda a
norma do IEEE:
(i) 0 01110101 01010100000000000000000000
(ii) 1 00101010 11100000000000000000000000
Exerccio 2.4.3 Exprima o mais exactamente possvel os seguintes n umeros em precis ao
simples IEEE: 2.5, .0005, 2
40
e 256
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Captulo 3
Algumas No c oes de Divisibilidade
Por deni c ao, um inteiro a e divisvel por um inteiro b se e s o se a = bq para algum inteiro q.
Nesse caso, escreve-se b [ a, lendo-se b divide a. Tambem se diz que b e divisor de a e
que a e m ultiplo de b. O inteiro q e o quociente da divis ao inteira de a por b. Atendendo
` a deni c ao de divisor, se a = bq ent ao tanto b como q s ao divisores de a. Por exemplo, os
divisores positivos de 30 s ao 1, 2, 3, 5, 6, 10, 15 e 30, encontrando-se emparelhados.
1
30
2 15
3 10
5 6
Na procura de divisores de a, para a positivo, n ao e necess ario ultrapassar

a, pois qualquer
divisor que seja superior a

a ter a que emparelhar com algum divisor que e inferior a

a.
3.1 Bases de Numera cao e Criterios de Divisibilidade

E conhecido que, um inteiro positivo representado na base 10 e divisvel por 100 se e s o se a


sua representa c ao terminar por 00 (pois os restos da divis ao por 10 e 10
2
s ao 0).

E divisvel
por 1000 sse tal representa c ao terminar em 000. De modo an alogo se pode concluir que um
inteiro (positivo) representado na base 2 e divisvel por 4 (isto e, por 2
2
) se a sua representa c ao
em bin ario terminar por 00 e e divisvel por 8 (isto e, por 2
3
) sse terminar em 000.
Proposi c ao 5 Um inteiro (positivo) x representado numa certa base b e divisvel por b
k
,
sendo k inteiro positivo xo, se e s o a representa c ao de x na base b terminar por k zeros.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.1. BASES DE NUMERAC

AO E CRIT

ERIOS DE DIVISIBILIDADE 24
Ideia da prova: Para que x seja divisvel por b
k
ent ao ter a que ser divisvel tambem por
b
1
, b
2
, . . . , b
k1
, o que quer dizer que se efectuar k divis oes sucessivas por b ter a k restos 0.
Ou seja, x = b(x/b) + 0. Depois, k > 1, tambem (x/b) = b((x/b)/b) + 0, . . . .
Analisando a deni c ao de representa c ao base 10, podemos justicar o seguinte criterio de
divisibilidade por 9.
Proposi c ao 6 Um inteiro e divisvel por 9 sse a soma dos dgitos da sua representa c ao na
base 10 for divisvel por 9.
Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representa c ao
base 10 e a
n
a
n1
. . . a
1
a
0
. Isto quer dizer que,
x = a
n
10
n
+a
n1
10
n1
+ +a
1
10 +a
0
Como
10 = 9 + 1 um m ultiplo de 9 mais uma unidade
100 = 99 + 1 um m ultiplo de 9 mais uma unidade
1000 = 999 + 1 um m ultiplo de 9 mais uma unidade
.
.
.
10
n
= 99 . . . 9
. .
9 repetido n vezes
+1 um m ultiplo de 9 mais uma unidade
ent ao x = (

9 + 1) a
n
+ (

9 + 1) a
n1
+ + (

9 + 1) a
1
+a
0
, ou seja
x =

9 + (a
n
+a
n1
+ +a
1
+a
0
)
em que

9 e abreviatura de um m ultiplo de 9 (nesta igualdade, cada ocorrencia de

9 designa
um m ultiplo diferente). Na simplica c ao da igualdade, us amos tambem o facto da soma
de m ultiplos de 9 ser um m ultiplo de 9 e do produto dum n umero qualquer por um m ultiplo
de 9 ser um m ultiplo de 9. Observando que x =

9 + (a
n
+ a
n1
+ + a
1
+ a
0
), concluimos
que x e m ultiplo de

9 se e s o se a
n
+a
n1
+ +a
1
+a
0
for m ultiplo de

9. .
O exerccio seguinte pode ser resolvido por aplica c ao dum raciocnio an alogo, agora obser-
vando que 10 =

111, 100 =

11+1, 1000 =

111, 1000 = 100010 = (

111)(

111) =

11+1,
10000 = (

11 + 1) 10 =

11 1, . . .
Exerccio 3.1.1 Mostre que um inteiro e divisvel por 11 sse a soma dos dgitos de ordem
par da sua representa c ao na base 10 for igual ` a soma dos dgitos de ordem mpar.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.2. NOC

AO DE DIVISOR E DE M

ULTIPLO 25
Exerccio 3.1.2 Mostre que um inteiro
(i) e divisvel por 5 sse a sua representa c ao decimal terminar em 0 ou 5;
(ii) e divisvel por 3 sse a soma dos dgitos da sua representa c ao decimal for divisvel por 3.
(iii) e divisvel por 2 sse o dgito menos signicativo da sua representa c ao decimal for par.
3.2 No cao de Divisor e de M ultiplo
O conjunto
1
dos divisores dum inteiro a e constitudo por todos os inteiros positivos tais que
se b [ a e os seus simetricos.
divisores de a = b : b Z e b divide a
Frequentemente, o termo divisor e usado para referir divisor positivo.
O conjunto dos m ultiplos de b e constitudo pelos inteiros da forma bz para z inteiro, ou
seja
m ultiplos de b = bz : z Z.
Para mostrar formalmente o resultado seguinte basta usar a deni c ao de m ultiplo e de
divisor que acab amos de apresentar. Este resultado foi utilizado na sec c ao anterior, devendo
ser bem conhecido.
Proposi c ao 7 A soma, a diferen ca e o produto de dois m ultiplos de b e um m ultiplo de b.
O produto dum m ultiplo de b por qualquer inteiro e um m ultiplo de b.
Prova: Sejam m
1
e m
2
m ultiplos de b. Ent ao existem inteiros z
1
e z
2
tais que m
1
= bz
1
e m
2
= bz
2
. Logo, m
1
+m
2
= bz
1
+bz
2
= b(z
1
+z
2
) e como a soma de inteiros e um inteiro,
conclui-se que z
1
+z
2
Z, pelo que m
1
+m
2
e da forma bz, para algum z Z (concretamente,
para z = z
1
+z
2
). Portanto, a soma de m ultiplos de b e m ultiplo de b.
Para mostrar que a diferen ca de dois m ultiplos de b (isto e, m
1
m
2
) e m ultiplo de b
procede-se analogamente.
Para mostrar que m
1
m
2
e m ultiplo de b, isto e, que o produto de dois m ultiplos de b e
m ultiplo de b, observe-se que m
1
m
2
= (bz
1
)(bz
2
) = b(bz
1
z
2
) e como bz
1
z
2
Z, conclui-se que
m
1
m
2
e produto de b por um inteiro, ou seja, e m ultiplo de b.
Do mesmo modo, para concluir que o produto dum m ultiplo de b (por exemplo, m
1
) por
um qualquer inteiro x e m ultiplo de b, basta notar que m
1
x = (bz
1
)x = b(z
1
x) e z
1
x Z. .
1

E usual representar o conjunto dos xs tais que x satisfaz condi c ao. . . por {x | x satisfaz condi c ao . . . }.
Neste captulo, usaremos a nota c ao alternativa {x : x satisfaz condi c ao . . . }, para evitar usar | com duplo
signicado, reservando | para divide.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.3. FACTORIZAC

AO EM PRIMOS 26
Exerccio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir
y +z ent ao tambem divide z.
3.3 Factoriza cao em Primos
Um n umero p e primo se e s o se tem exactamente quatro divisores (inteiros), nomeadamente,
p, p, 1 e 1. Assim, um n umero e primo se e s o se tem exactamente dois divisores positivos.
Proposi c ao 8 Qualquer inteiro maior do que 1 e ou primo ou produto de primos.
Prova: Pela deni c ao de primo, tem-se 2 e primo.
Seja x N tal que x > 2. Suponhamos que j a mostr amos que todo y N tal que 2 y < x
e ou primo ou produto de primos. Vamos mostrar que ent ao tambem podemos concluir que
x e primo ou produto de primos. De facto, se x n ao for primo, existem x
1
, x
2
N 0, 1
tais que x = x
1
x
2
. Como 2 x
1
< x e 2 x
2
< x, sabemos j a que x
1
e primo ou produto de
primos e x
2
e primo ou produto de primos.
Analisando os quatro casos (a) x
1
e x
2
primos, (b) x
1
e x
2
produtos de primos, (c) x
1
primo e x
2
produto de primos, e (d) x
1
produto de primos e x
2
primo, concluimos que se
x = x
1
x
2
ent ao x pode escrever-se como produto de primos. Logo, se x n ao e primo ent ao x
e um produto de primos, ou seja, x e primo ou produto de primos. .
A tecnica utilizada na prova anterior designa-se por indu c ao matem atica. Como
hip otese de indu c ao supusemos que j a se tinha mostrado que todo y N tal que 2 y < x ou
e primo ou e produto de primos. Como x est a xo (e e nito), essa prova pode ser realmente
reconstruda. Por exemplo, se x fosse 24, estariamos a assumir que j a tinhamos vericado que
2, 3, 5, 7, 11, 13, 17, 19 e 23 s ao primos e que 4 = 2 2, 6 = 2 3, 8 = 2 2 2, 9 = 3 3,
10 = 2 5, 12 = 2 2 3, 14 = 2 7, 15 = 3 5, 16 = 2 2 2 2, 18 = 2 3 3,
20 = 2 2 5, 21 = 3 7 e 22 = 2 11. Como 24 n ao e primo porque, por exemplo,
24 = 4 6, ent ao podemos concluir que e produto de primos, por substitui c ao de 4 e 6 (que
correspondem a x
1
e x
2
) pelas suas factoriza c oes em primos: 24 = (2 2) (2 3).
Usualmente, escreve-se 24 = 2
3
3, sendo esta a factoriza c ao de 24 primos. Em geral,
para qualquer n umero natural n n ao inferior a 2, existem primos p
1
, . . . p
k
unicos e tal que n
se pode factorizar de forma unica como p

1
1
p

k
k
sendo
i
,= 0 e p
i
< p
j
se i < j, para
todo i k e todo j k. Por exemplo, 37268 = 2
2
7
1
11
3
e 500 = 2
2
5
3
.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.3. FACTORIZAC

AO EM PRIMOS 27
Corol ario 8.1 Seja x um inteiro tal que x 2 e x n ao e primo. A factoriza c ao de x em
primos e unica, a menos de reordena c ao dos factores.
Ideia da prova: An aloga ` a anterior, supondo como hip otese j a se provou que todo
y N tal que 2 y < x ou e primo ou se escreve de forma unica como produto de primos (a
menos de reordena c ao de factores). .
Corol ario 8.2 Qualquer inteiro maior do que 1 que n ao e primo e divisvel por algum primo.
Prova: Seja x um inteiro qualquer maior do que 1. Se x n ao e primo ent ao x e produto
de primos. Consequentemente, algum primo e seu divisor. .
Proposi c ao 9 O conjunto dos inteiros n ao negativos que s ao primos e innito.
Prova: Suponhamos que s o existiam n primos, sendo n um certo inteiro xo. Ou seja,
suponhamos que o conjunto dos primos era nito e que tinha exactamente n elementos, os
quais vamos denotar por p
1
, p
2
, . . . , p
n
. Ent ao, o inteiro positivo
1 +
n

i=1
p
i
n ao seria primo, j a que e maior do que qualquer um dos primos p
1
, p
2
, . . . , p
n
.
Mas se 1 + p
1
p
2
. . . p
n
n ao e primo, ent ao algum dos primos o divide (ou seja, e m ultiplo
de algum dos primos). Suponhamos que p
k
divide 1 + p
1
p
2
p
n
, sendo k um inteiro xo,
1 k n. Como p
k
divide

n
i=1
p
i
isto e, p
k
divide o produto 1+p
1
p
2
p
n
, pode-se concluir
que se p
k
dividir 1 + p
1
p
2
p
n
ent ao p
k
divide 1. Mas nenhum primo divide 1. O absurdo
resultou de se ter suposto que o conjunto dos primos era nito. Logo, o conjunto dos primos
e innito. .
3.3.1 Determina cao de primos: crivo de Erast otenes
Descreve-se a seguir um algoritmo para determina c ao de todos os primos n ao superiores a
um n umero n dado. Tal algoritmo e conhecido como metodo do crivo. Parte-se duma tabela
contendo todos os n umeros n ao superiores n. O algoritmo resume-se a seleccionar o menor
inteiro na tabela (ainda n ao seleccionado) e apagar todos os seus m ultiplos ate todos os valores
estarem ou seleccionados ou apagados.
2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.4. M

AXIMO DIVISOR COMUM 28


2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
2 3 5 7
11 13 17 19
23 25 29
31 35 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47
O processo continua . . . Os valores que carem na tabela s ao os primos, neste caso, n ao
superiores a 50 (o valor de n neste exemplo).
3.3.2 Calculo de divisores por analise da factoriza cao em primos
A partir da factoriza c ao dum n umero em primos e possvel determinar todos os seus divisores.
Por exemplo, os divisores de 30, que e dado por
30 = 2
1
3
1
5
1
s ao:
2
0
3
0
5
0
= 1 2
1
3
0
5
0
= 2 2
0
3
1
5
0
= 3
2
0
3
0
5
1
= 5 2
1
3
1
5
0
= 6 2
1
3
0
5
1
= 10
2
0
3
1
5
1
= 15 2
1
3
1
5
1
= 30
Em geral, se p

1
1
p

k
k
for a decomposi c ao de x em primos ent ao o conjunto dos divisores
positivos de x e
p

1
1
p

k
k
: 0
i

i
para i = 1, . . . , k
concluindo-se que o n umero de divisores de p

1
1
p

k
k
e

k
i=1
(
i
+ 1).
3.4 Maximo Divisor Comum
Sabemos que 1 e divisor de qualquer inteiro e que o maior divisor de qualquer inteiro positivo x
e o pr oprio x. Dados inteiros positivos a e b, podemos falar do seu m aximo divisor comum,
o qual representamos por mdc(a, b). O m aximo divisor comum e o maior dos divisores comuns:
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.4. M

AXIMO DIVISOR COMUM 29


d e mdc(a, b) sse d [ a, d [ b e d

[ d qualquer que seja d

tal que d

[ a e d

[ b. Por deni c ao de
mdc(a, b), cada divisor comum de a e b e divisor de mdc(a, b).
Por exemplo, por an alise da decomposi c ao de 30 e 500 em primos, 30 = 2 3 5 e
500 = 2
2
5
3
, podemos concluir que mdc(30, 500) = 10.
Dois inteiros a e b chamam-se primos entre si se e s o se mdc(a, b) = 1.
Proposi c ao 10 Os inteiros a/mdc(a, b) e b/mdc(a, b) s ao primos entre si.
Prova: Queremos mostrar que mdc(
a
mdc(a,b)
,
b
mdc(a,b)
) = 1. Para isso vamos provar que
se mdc(
a
mdc(a,b)
,
b
mdc(a,b)
) = d ent ao mdc(a, b)d tambem divide a e b. Podemos depois concluir
que necessariamente d = 1 pois se d fosse maior do que 1 ent ao mdc(a, b)d > mdc(a, b),
mdc(a, b)d seria um divisor comum a a e b, maior do que o m aximo divisor comum, o que,
por deni c ao de mdc(a, b) e impossvel. Para completar os detalhes da prova, resta mostrar
que mdc(a, b)d e divisor de a e de b se d [
a
mdc(a,b)
e d [
b
mdc(a,b)
. De facto, basta notar que:
a = mdc(a, b)
a
mdc(a, b)
= mdc(a, b)d
a
mdc(a, b)d
e
b = mdc(a, b)
b
mdc(a, b)
= mdc(a, b)d
b
mdc(a, b)d
.
.
Tem-se mdc(3
20
5
7
11
27
31
2
, 2
4
3
6
5
25
) = 3
6
5
7
, porque o m aximo divisor comum
e dado por
2
min(0,4)
3
min(20,6)
5
min(7,25)
11
min(27,0)
31
min(2,0)
ou seja, por 2
0
3
6
5
7
11
0
31
0
. Este metodo pode ser sempre aplicado se forem conhecidas as
factoriza c oes dos n umeros a e b. Quando n ao se conhecem, o algoritmo de Euclides
permite calcular mdc(a, b) ecientemente.
3.4.1 Calculo do maximo divisor comum pelo algoritmo de Euclides
A correc c ao do algoritmo de Euclides para c alculo do mdc(a, b) decorre do seguinte resultado.
Lema 1 Sejam a e b inteiros positivos tais que a < b e seja r o resto da divis ao de a por b.
Ent ao, mdc(a, b) = mdc(b, r).
Prova: Represente-se por d o m aximo divisor comum de a e b. Por deni c ao de divis ao
inteira, r e o resto da divis ao de a por b sse 0 r < b e a = bq + r para algum q Z. Por
outro lado, por deni c ao de m aximo divisor comum, d[a e d[b. Portanto, d[(a bq). Ou seja,
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.4. M

AXIMO DIVISOR COMUM 30


d[r. Logo, d e um divisor comum de b e r. Seja d

um outro divisor comum de b e de r.


Resta-nos mostrar que d

ter a que dividir d para poder concluir que d e mdc(b, r). Para isso,
basta notar que se d

[b e d

[r ent ao d

[(bq +r) e portanto d

[a. Logo, d

e um divisor comum
a a e b, e portanto d

[mdc(a, b), isto e, d

[d. .
Algoritmo de Euclides para determina c ao de mdc(a, b). Sendo a e b inteiros positivos,
podemos denir mdc(a, b) recursivamente por
mdc(a, 0) = a se a > 0
mdc(a, b) = mdc(b, a%b) se a > b > 0
mdc(a, b) = mdc(b, a) se a < b
em que a%b denota o resto da divis ao de a por b.
Por exemplo, mdc(30, 500) = mdc(500, 30) = mdc(30, 500%30) = mdc(30, 20) = mdc(20, 10) =
mdc(10, 0) = 10.
500 30
20 16
30 20
10 1
20 10
0 2
Observe-se que mdc(500, 30) = 17 30 1 500 j a que
10 = 30 1 20 = 30 (500 16 30) = 17 30 1 500
ou seja, mdc(500, 30) pode-se escrever na forma 500x + 30y para x, y Z apropriados.
Lema 2 Quaisquer que sejam a, b Z
+
, existem inteiros x e y tais que ax +by = mdc(a, b),
ou seja, mdc(a, b) e combina c ao linear inteira de a e b.
Para escrever mdc(100, 17) (isto e, 1) como combina c ao de 100 e 17, observe-se que:
100 17
15 5
17 15
2 1
15 2
1 7
2 1
0 2
Efectuando an alise para tr as, substituindo sucessivamente os restos de forma a conseguir
fazer aparecer 100 e 17 (a e b iniciais) obtem-se a combina c ao procurada: 1 = 15 7 2 =
15 7(17 1 15) = 8 15 7 17 = 8(100 5 17) 7 17 = 8 100 47 17.
Proposi c ao 11 Sendo a, b e c constantes inteiras, a equa c ao ax +by = c com x, y Z, tem
solu c ao se e s o se mdc(a, b) [ c.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.5. M

INIMO M

ULTIPLO COMUM 31
Prova: Como mdc(a, b) divide a e divide b, tambem divide ax +by quaisquer que sejam
x, y Z. Portanto, para que ax +by = c tenha solu c ao e necess ario que mdc(a, b) divida c.
Por outro lado, usando o facto de mdc(a, b) se poder escrever como combina c ao inteira
de a e de b, temos mdc(a, b) = am
a
+bm
b
para m
a
e m
b
inteiros adequados. Se mdc(a, b) [ c,
ent ao c = mdc(a, b)
c
mdc(a,b)
e
c
mdc(a,b)
Z. Multiplicando mdc(a, b) = am
a
+bm
b
por
c
mdc(a,b)
obtem-se mdc(a, b)
c
mdc(a,b)
= a(m
a
c
mdc(a,b)
) + b(m
b
c
mdc(a,b)
). Assim, vemos que se tomarmos
x = m
a
c
mdc(a,b)
e y = m
b
c
mdc(a,b)
temos uma solu c ao inteira de ax +by = c. .
Pode-se provar que (x, y) Z
2
e solu c ao de ax + by = c sse x = m
a
c
mdc(a,b)
+ k
b
mdc(a,b)
e
y = m
b
c
mdc(a,b)
k
b
mdc(a,b)
, com k Z qualquer.
3.5 Mnimo M ultiplo Comum
Dados inteiros positivos a e b sabemos que ab e um m ultiplo de a e de b, fazendo sentido
determinar o menor inteiro positivo que e m ultiplo comum a a e b, ou seja o mnimo m ultiplo
comum, mmc(a, b). Por deni c ao m e mmc(a, b) sse a [ m, b [ m e m[ m

para todo m

tal
que a [ m

e b [ m

. Assim, mmc(a, b) e um divisor de todos os m ultiplos comuns de a e b.


Exemplo 9 mmc(3
20
5
7
11
27
31
2
, 2
4
3
6
5
25
) = 2
max(0,4)
3
max(20,6)
5
max(7,25)
11
max(27,0)
31
max(2,0)
=
2
4
3
20
5
25
11
27
31
2
.
Como
a
mdc(a, b)
e
b
mdc(a, b)
s ao primos entre si, podemos mostrar a Proposi c ao 12.
Proposi c ao 12 Quaisquer que sejam a, b Z
+
, mmc(a, b) =
ab
mdc(a, b)
.
Prova:
ab =
_
mdc(a, b)
a
mdc(a, b)
__
mdc(a, b)
b
mdc(a, b)
_
=
_
mdc(a, b)
a
mdc(a, b)
b
mdc(a, b)
_
. .
mmc(a,b)
mdc(a, b)
Para ver que mdc(a, b)
a
mdc(a,b)
b
mdc(a,b)
e mmc(a, b), notemos que e m ultiplo de a e de b. Por
outro lado, para vericar que divide qualquer outro m ultiplo m

de a e de b, escrevamos
m

= k
1
a e m

= k
2
b para inteiros k
1
e k
2
apropriados. Ent ao, m

= k
1
mdc(a, b)
a
mdc(a,b)
e m

=
k
2
mdc(a, b)
b
mdc(a,b)
, pelo que k
1
a
mdc(a,b)
= k
2
b
mdc(a,b)
. Como
b
mdc(a,b)
e
a
mdc(a,b)
s ao primos entre
si,
b
mdc(a,b)
tem que dividir k
1
. Assim, k
1
=
b
mdc(a,b)
k

1
para algum k

1
e consequentemente, m

=
b
mdc(a,b)
k

1
mdc(a, b)
a
mdc(a,b)
e portanto m

e m ultiplo de mdc(a, b)
b
mdc(a,b)
a
mdc(a,b)
. Conclui-se
que mdc(a, b)
b
mdc(a,b)
a
mdc(a,b)
e mmc(a, b). .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
3.6. CONGRU

ENCIAS 32
3.6 Congruencias
Dados b Z
+
e x, y Z dizemos que x e y s ao congruentes m odulo b se e s o se x y for
m ultiplo de b, escrevendo x y (mod b). Tal e equivalente a dizer que x e y d ao o mesmo
resto quando divididos por b. De facto, se x = q
x
b + r
x
e y = q
y
b + r
y
com 0 r
x
< b e
0 r
y
< b, ent ao x y = (q
x
q
y
)b + (r
x
r
y
) e portanto x y e m ultiplo de b se e s o se
r
x
r
y
o for. Mas, como 0 r
x
< b e 0 r
y
< b, podemos concluir que b < r
x
r
y
< b, e
consequentemente r
x
r
y
e m ultiplo de b se e s o se for zero. Portanto, x y (mod b) sse os
restos da divis ao de x e y por b s ao iguais. (Escrevemos q
x
, q
y
e r
x
, r
y
em vez de q
1
, q
2
e r
1
, r
2
para indicar que esses quocientes e restos dependem de x e y respectivamente.)
As rela c oes de congruencias tem algumas propriedades interessantes (e importantes). Por
exemplo, a congruencia m odulo 2 decomp oe os inteiros em dois conjuntos:
x : x Z, x 0 (mod 2) = 2k : k Z = pares
x : x Z, x 1 (mod 2) = 1 + 2k : k Z = mpares
A rela c ao de congruencia m odulo b (para b Z
+
) decomp oe os inteiros em b conjuntos
x : x Z, x 0 (mod b) e x : x Z, x 1 (mod b), . . . , x : x Z, x b 1 (mod b),
sendo cada um identicado por um dos b restos possveis.
Outra das propriedades interessantes da rela c ao de congruencia e ser preservada pelas
opera c oes de soma, subtrac c ao e produto, ou seja, se x
1
y
1
(mod b) e x
2
y
2
(mod b) ent ao
x
1
x
2
y
1
y
2
(mod b) e x
1
x
2
y
1
y
2
(mod b).
O exemplo seguinte ilustra uma das aplica c oes de congruencias.
Exemplo 10 Suponha que se quer resolver 5x + 3y = 1 para x, y Z. Como 5x +3y = 1
5x 1 = 3(y) podemos come car por resolver 5x 1 (mod 3). Tem-se 5x 1 (mod 3)
2x 1 (mod 3). Por outro lado, 2x 1 (mod 3) (1)x 1 (mod 3), ou seja x (1) (mod 3),
isto e x 2 (mod 3). Assim, 5x 1 (mod 3) se e s o se x = 2 + 3k para algum k Z.
Voltando ` a equa c ao inicial, temos 5x + 3y = 1 5(2 + 3k) + 3y = 1 y = 3 5k
concluindo-se que as solu c oes de 5x + 3y = 1 s ao os pontos (x, y) da forma x = 2 + 3k e
y = 3 5k, com k Z.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Captulo 4
Indu cao Matematica
O metodo de demonstra c ao por indu c ao matem atica (ou indu c ao nita) ser a bastante usado
durante o curso pelo que e conveniente introduzi-lo (ou record a-lo).
4.1 Princpio de Indu cao Matematica
Imagine uma escada com uma innidade de degraus. N ao e uma escada com um n umero
enorme de degraus! Esta escada, tem sempre um degrau acima de qualquer outro que consi-
dere. Suponha que e verdade (4.1).
Se conseguir chegar ate um degrau, ent ao tambem consigo chegar ao seguinte. (4.1)
Se nada mais for dito, n ao pode concluir que consegue chegar ao 16
o

degrau.
Suponha agora n ao s o (4.1) mas tambem (4.2).
Consigo chegar ao 13
o

degrau (4.2)
O que pode concluir? Como consegue chegar ao 13
o

e e verdade (4.1), ent ao consegue chegar


ao 14
o

. Como consegue chegar ao 14


o

e e verdade (4.1), ent ao consegue chegar ao 15


o

. Como
consegue chegar ao 15
o

e e verdade (4.1), ent ao consegue chegar ao 16


o

. De (4.1) e (4.2),
conclui-se (4.3).
Consegue chegar ao n-esimo degrau, qualquer que seja n 13. (4.3)
Como n ao e dito sobre de que forma chegou ao 13
o

degrau, nada pode concluir sobre a


possibilidade de chegar ao degrau n, para n < 13.
Mas, suponha agora que (4.4) e verdade.
Consigo chegar ao 1
o

degrau. (4.4)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 34
Do mesmo modo que anteriormente, se supuser (4.1) e (4.4) ent ao pode concluir (4.5).
Consegue chegar ao n-esimo degrau, qualquer que seja n 1. (4.5)
Proposi c ao 13 (Princpio de Indu c ao Matem atica) Escrevamos P(n) como abreviatura
de o inteiro n ao negativo n satisfaz a propriedade/condi c ao P. Tem-se n N P(n), se
forem satisfeitas as duas condi c oes (i) e (ii) seguintes.
(i) P(0) e verdade;
(ii) k N ( P(k) P(k + 1) ), isto e para todo k N, se P(k) ent ao P(k + 1);
P(0) diz-se (caso de) base de indu c ao. Em P(k) P(k+1), chamamos a P(k) a hip otese
de indu c ao e a P(k + 1) a tese.
Exemplo 11 Seja A
n
a area dum quadrado de lado 2
n
, com n 1 (inteiro). Vamos mostrar
que o resto da divis ao de A
n
por 3 e 1, qualquer que seja n 1.
(i) (Caso de base) Como A
1
e 4 e sabemos que o resto da divis ao de 4 por 3 e 1, e verdade
que a condi c ao se verica para n = 1.
(ii) (Hereditariedade) Mostremos que qualquer que seja k 1, se A
k
for da forma 3p+1 para
algum inteiro n ao negativo p, ent ao A
k+1
= 3q + 1 para algum inteiro n ao negativo q.
Ora, se A
k
= 3p+1, ent ao A
k+1
= (2
k+1
)
2
= 4(2
k
)
2
= 4A
k
= 4(3p+1) = 3(4p+1) +1.
Ou seja, A
k+1
= 3q + 1 para algum inteiro n ao negativo, j a que se p Z e p 0 ent ao
4p + 1 Z e 4p + 1 0.
Usando (ii) e (i) podemos concluir que qualquer que seja n 1, a area do quadrado de
lado 2
n
excede numa unidade um m ultiplo de 3.
Observe que, se nos fosse pedido, podiamos apresentar a dedu c ao de que A
6
excede numa
unidade um m ultiplo de 3:
Por (i), sabemos que o resto da divis ao de A1 por 3 e 1;
De (i) e (ii), concluimos que o resto da divis ao de A2 por 3 e 1;
Como o resto da divis ao de A2 por 3 e 1, concluimos, por (ii), que o resto da divis ao de A3 por 3 e 1;
Como o resto da divis ao de A3 por 3 e 1, concluimos, por (ii), que o resto da divis ao de A4 por 3 e 1;
Como o resto da divis ao de A4 por 3 e 1, concluimos, por (ii), que o resto da divis ao de A5 por 3 e 1;
Como o resto da divis ao de A5 por 3 e 1, concluimos, por (ii), que o resto da divis ao de A6 por 3 e 1.
Do mesmo modo que conseguimos mostrar que A
6
d a resto 1 quando dividido por 3,
podiamos, dado um n 1, apresentar a dedu c ao de que A
n
d a resto 1 quando dividido por 3,
se tal nos fosse pedido.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 35
Proposi c ao 14 (Vers ao geral do Princpio de Indu c ao) Seja n
0
Z, e suponha que
P(n) denota o inteiro n satisfaz a propriedade P. Se forem satisfeitas as duas condi c oes (i)
e (ii) seguintes, ent ao, para todo o inteiro n n
0
tem-se P(n).
(i) P(n
0
) e verdade;
(ii) k n
0
( P(k) P(k + 1) ), isto e, para todo inteiro k tal que k n
0
, se P(k)
ent ao P(k + 1);
Exemplo 12 Vamos mostrar que qualquer que seja n 1 e quaisquer que sejam a, b R
+
,
se tem (a +b)
n
< 2
n
(a
n
+b
n
).
Podemos concluir isso se mostrarmos que as duas condi c oes de aplicabilidade do princpio
de indu c ao matem atica se vericam neste caso.
(i) Para n=1, (a +b)
1
= a +b < 2(a +b) = 2
1
(a
1
+b
1
), porque a, b R
+
.
(ii) Suponhamos agora que para um dado k 1 se tem (a+b)
k
< 2
k
(a
k
+b
k
), para a, b R
+
quaisquer, e vamos mostrar que ent ao (a +b)
k+1
< 2
k+1
(a
k+1
+b
k+1
).
Como (a +b)
k+1
= (a +b)
k
(a +b), e por hip otese
(a +b)
k
< 2
k
(a
k
+b
k
),
concluimos que
(a +b)
k+1
< 2
k
(a
k
+b
k
)(a +b) = 2
k
(a
k+1
+b
k+1
+a
k
b +b
k
a).
Como
2
k
(a
k+1
+b
k+1
+a
k
b +b
k
a) = 2
k
(a
k+1
+b
k+1
) + 2
k
(a
k
b +b
k
a),
para concluir que (a +b)
k+1
< 2
k+1
(a
k+1
+b
k+1
) vamos mostrar que
a
k
b +b
k
a a
k+1
+b
k+1
quaisquer que sejam a, b reais positivos. Tem-se
a
k
b +b
k
a a
k+1
b
k+1
= (a
k
b
k
)(a b) 0,
j a que quaisquer que sejam x, y R
+
, se x y ent ao x
p
y
p
, para todo p 1 (relembre
que as fun c oes f
p
(x) = x
p
, s ao estritamente crescentes em R
+
).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 36
Exerccio 4.1.1 Aplique o princpio de indu c ao matem atica para resolver os problemas se-
guintes.
a) Mostrar que [sen(nx)[ n[sen(x)[, para todo x R e todo n N.
b) Mostrar que 4
n
+ 15n 1 e m ultiplo de 9, para todo n 1.
Exemplo 13 Considere o seguinte algoritmo (imagine que Y e uma caixa
1
).
1. Coloque em Y o valor 0.
2. Escolha um inteiro (vamos referi-lo por X).
3. Se X = 0 ent ao fa ca 7.
4. Se X > 0 ent ao volte a 2.
5. Substitua o valor em Y pela soma do valor que l a estava com dois.
6. Volte a 2.
7. Indique o valor que guarda em Y, e p are.
O valor em Y quando se executa 7. e o dobro do n umero de inteiros negativos nos valores
escolhidos. Para o provar, vamos mostrar que tal propriedade caracteriza o valor de Y em
cada itera c ao do ciclo (ou seja, e um invariante do ciclo). Usamos indu c ao sobre o n umero
de itera c oes efectuadas.
O valor que est a guardado em Y quando est a a executar 2. pela 2
a

vez e 0 se o primeiro
valor escolhido em 2. for positivo, e e 2 se tal valor for negativo.
Quando est a a executar 2. pela 3
a

vez, o valor em Y e 4 se ambos os valores escolhidos


anteriormente forem negativos, e 2 se um for negativo e o outro positivo, e e 0 se ambos forem
positivos.
Suponhamos que para um dado k 1, quando se se est a a executar 2. pela k
a

vez, o valor
em Y e o dobro do n umero de inteiros negativos nos k 1 valores escolhidos anteriormente.
Ent ao, por an alise do algoritmo, concluimos que se se estiver a executar 2. pela (k + 1)
a

vez, o valor em Y e igual ao valor anterior se tivermos dado mais um n umero positivo, ou foi
incrementado de duas unidades, se tivermos dado mais um n umero negativo. Portanto, se
quando se estiver a executar 2. pela k
a

vez, o valor em Y e o dobro do n umero de inteiros


negativos nos k1 valores escolhidos anteriormente, ent ao quando se estiver a executar 2. pela
(k + 1)
a

vez, valor em Y e o dobro do n umero de inteiros negativos nos k valores escolhidos


anteriormente.
Consequentemente, por indu c ao matem atica, podemos concluir que o valor em Y quando
se executa 7. e o dobro do n umero de inteiros negativos nos valores escolhidos.
1
Na terminologia de linguagens de programa c ao, X e Y s ao vari aveis de programa c ao.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 37
4.1.1 Erros frequentes

E necess ario mostrar as duas condi c oes de aplicabilidade do princpio de indu c ao, sem o que
as provas n ao cam completas e, no pior dos casos, os resultados mal demonstrados s ao
mesmo falsos.
O exemplo seguinte serve para ilustrar o facto de certas propriedades, n ao observ aveis,
poderem ser heredit arias. Heredit arias, no sentido de se um dado inteiro as satiszer, tambem
o inteiro seguinte as satisfaz.
Exemplo 14 Considere a seguinte demonstra c ao (claramente, errada!) de que entre dois
inteiros consecutivos existe uma innidade de inteiros.
Prova: Para todo x R (em particular para x inteiro) se k x k + 1 ent ao
k + 1 x + 1 k + 2, qualquer que seja k N. Assim, se entre k e k + 1 existir
uma innidade de inteiros, ent ao entre k+1 e k+2 tambem existe uma innidade
de inteiros. De facto, a cada inteiro x no intervalo [k, k +1] podemos associar um
inteiro x

no intervalo [k + 1, k + 2], a saber, por exemplo x

e x + 1.
Logo, por indu c ao matem atica sobre k, concluimos que entre dois inteiros conse-
cutivos existe uma innidade de inteiros. .
Como entre dois inteiros consecutivos n ao h a qualquer outro inteiro, a prova tem que estar
errada. O erro est a na conclus ao precipitada. N ao se mostrou que existia um intervalo
[k, k +1] que tinha uma innidade de inteiros. Apenas se mostrou a condi c ao (ii) do princpio
de indu c ao. A condi c ao (i) n ao foi provada, nem se pode provar!
Exemplo 15 A demonstra c ao seguinte est a obviamente errada dado que permite concluir
que todos os cavalos s ao brancos (e, todos sabemos que h a cavalos doutras cores).
Vamos mostrar que qualquer que seja o n umero de cavalos que estejam numa
cerca, se existir algum cavalo branco entre eles ent ao todos os cavalos nessa cerca
s ao brancos.
Prova: Para isso vamos mostrar que as duas condi c oes (i) e (ii) do princpio de
indu c ao se vericam nessa situa c ao.
(i) Como deve estar pelo menos um cavalo branco na cerca, podemos armar
que se s o existir um cavalo na cerca e branco.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 38
(ii) Fixemos um k N, e suponhamos que se existirem k cavalos numa cerca
qualquer, estando pelo menos um cavalo branco entre eles, ent ao todos os
demais s ao brancos. Consideramos agora uma cerca onde est ao k + 1 cavalos
sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando
car o branco. Dado que est ao k cavalos na cerca, estando um branco entre
eles, segue pela hip otese de indu c ao, que os k cavalos na cerca s ao brancos.
Resta mostrar que o cavalo que retir amos primeiramente tambem era branco.
Retiremos um dos cavalos que est a na cerca (e indiferente qual se retira
porque de facto todos s ao brancos), e voltemos a colocar o que retir amos
primeiramente. Mais uma vez, pela hip otese, podemos concluir que todos os
cavalos que est ao agora na cerca s ao brancos.
Assim, pelo princpio de indu c ao matem atica segue a validade da proposi c ao que
queriamos mostrar. .
Sabemos que se existir algum cavalo branco numa cerca, tambem l a podem estar cavalos
doutras cores. Logo, a arma c ao que mostr amos por indu c ao e falsa. Mas, como o sistema
dedutivo que estamos a seguir e consistente, n ao podemos deduzir proposi c oes falsas, pelo
que h a que encontrar um erro (vcio) na prova dada.
Sabemos que se estiverem dois cavalos numa cerca e um deles for branco, ent ao isso n ao
implica que o outro tambem seja branco. Por outras palavras, e falso P(1) P(2).
Para localizarmos o erro, vamos ent ao seguir em detalhe a prova de (ii) para k = 1.
Fixemos k = 1. Suponhamos (podemos sempre supor o que quisermos) que e
sempre branco o cavalo que estiver s ozinho numa cerca em que h a pelo menos
um cavalo branco. Consideramos agora uma cerca onde est ao dois cavalos sendo
branco pelo menos um deles. Retiremos um cavalo da cerca deixando car o
branco. Dado que est a um s o cavalo na cerca, estando um branco na cerca, segue
pela hip otese de indu c ao, que o cavalo na cerca e branco. Resta mostrar que
o cavalo que retir amos primeiramente tambem era branco. Retiremos o cavalo
que est a na cerca, e voltemos a colocar o que retir amos primeiramente. Agora
n ao podemos aplicar a hip otese, pois s o est a na cerca o cavalo que acab amos de
l a colocar, e n ao sabemos de que cor e (por isso n ao podemos armar que haja
algum cavalo branco na cerca).
Note que a prova de (ii) e v alida para k 2, ou seja e verdade que qualquer que seja
k 2, se forem brancos os k cavalos que estiverem numa qualquer cerca onde est a pelo menos
um branco, ent ao s ao brancos os k + 1 cavalos que estiverem numa qualquer cerca onde est a
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.1. PRINC

IPIO DE INDUC

AO MATEM

ATICA 39
pelo menos um branco. Conclus ao: s o n ao conseguimos mostrar que todos os cavalos s ao
brancos porque P(1) , P(2).
No exemplo
2
que se segue, a prova est a errada, mas o resultado e v alido.
Exemplo 16 Pretendemos mostrar que qualquer que seja n 1, o quadrado de lado 2
n
pode
ser coberto por pe cas da forma seguinte, cando apenas um quadrado 1 1 por cobrir.
A propriedade verica-se para n = 1, por exemplo:
Para concluir, por indu c ao, que a propriedade e v alida para todo n 1, resta
mostrar que qualquer que seja k 1, se os quadrados de lado 2
k
admitem a
cobertura descrita, ent ao os quadrados de lado 2
k+1
tambem admitem.
Dado um quadrado de lado 2
k+1
podemos dividi-lo em quatro quadrados de lado 2
k
como se ilustra na gura abaixo. Por hip otese, cada quadrado de lado de 2
k
pode
ser coberto por pe cas da forma descrita acima. Fazemos para cada um dos quatro
uma tal cobertura de forma a carem a descoberto os quadrados 1 1 indicados
na gura. Vericamos que os tres quadrados 1 1 (ao centro) podem ser cobertos
por uma pe ca, pelo que s o ca um quadrado 1 1 por cobrir.
2
k+1
2
k
2
k
1
1
Esta prova n ao est a correcta! Porque? Na demonstra c ao supusemos que o quadrado por
cobrir, podia estar num canto, mas o quadrado que deix amos depois a descoberto n ao cou
num canto. No entanto, podemos corrigir a prova, mostrando um resultado mais forte do que
o enunciado inicialmente. . . a cobertura pode ser tal que o quadrado 1 1 a descoberto ca
num canto. Para isso, basta notar que caso n = 1, o quadrado por cobrir est a num canto, e
que para mostrar que n (P(n) P(n + 1)) podemos fazer o seguinte.
2
de Maggie Johnson, Introducton to Induction, Lecture Notes CS109, 1998.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.2. INDUC

AO FORTE 40
2
k+1
2
k
2
k
4.2 Indu cao Forte
Em certos casos e util refor car a hip otese de indu c ao.
Exemplo 17 Para mostrar que qualquer inteiro maior do que 1 e ou primo ou produto de
primos, xado um k, e conveniente assumir que j a se mostrou que todo i N tal que 2 i k
ou e primo ou e produto de primos porque n ao basta ter a decomposi c ao de k em primos para
construir a decomposi c ao de k + 1. A prova caria ent ao:
Pela deni c ao de primo, 2 e primo.
Seja k N tal que k 2. Suponhamos que j a mostr amos que todo i N tal que
2 i k e ou primo ou produto de primos. Vamos mostrar que ent ao tambem
podemos concluir que k + 1 e primo ou produto de primos. De facto, se k + 1 n ao for
primo, existem i
1
, i
2
N 0, 1 tais que k + 1 = i
1
i
2
. Como 2 i
1
k e 2 i
2
k,
sabemos j a que i
1
e primo ou produto de primos e i
2
e primo ou produto de primos.
Analisando os quatro casos (a) i
1
e i
2
primos, (b) i
1
e i
2
produtos de primos, (c) i
1
primo e i
2
produto de primos, e (d) i
1
produto de primos e i
2
primo, concluimos que se
k + 1 = i
1
i
2
ent ao k + 1 pode-se escrever como produto de primos. Logo, se k + 1 n ao
e primo, k + 1 e um produto de primos, ou seja, k + 1 e primo ou produto de primos.
Mostr amos que 2 e primo (ou produto de primos) e que qualquer que seja k 2 se todo i tal
que 2 i n for primo ou produto de primos ent ao k + 1 e primo ou produto de primos.
Portanto, por indu c ao, n e primo ou produto de primos, qualquer que seja n 2.
Proposi c ao 15 (Vers ao forte do princpio de indu c ao) Seja P(n) uma condi c ao na
vari avel n Z. Dado n
0
Z, se forem satisfeitas as duas condi c oes (i) e (ii) seguintes, ent ao
n n
0
P(n).
(i) P(n
0
) e verdade;
(ii) para todo k Z, se se tem P(i) para todo i Z com n
0
i k, tem-se P(k + 1).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.2. INDUC

AO FORTE 41
Exemplo 18 Seja QS (e conhecido por quick-sort) o algoritmo seguinte.
0. Sup oe-se dada uma sequencia nita de inteiros (pode n ao ter elementos).
1. Se a sequencia n ao tem qualquer elemento ent ao indicar como resultado a
pr opria sequencia.
2.1 Sen ao seja X o primeiro elemento na sequencia dada.
2.2 Separar os restantes elementos da sequencia formando a subsequencia dos
menores do que X e a subsequencia dos maiores ou iguais que X.
2.3 Aplicar QS a cada uma das subsequencias: sejam R
<
e R

as sequencias
resultantes (respectivamente).
2.4. Dar como resultado os elementos de R
<
, seguidos de X, seguidos dos
elementos de R

.
O algoritmo QS ordena por ordem crescente a sequencia nita de inteiros dada. Para o
provar, vamos usar indu c ao sobre o n umero de elementos na sequencia dada.
(i) Se a sequencia dada n ao tem elementos, ent ao podemos dizer que a sequencia resultante,
que e igual ` a dada (por 1.) est a ordenada por ordem crescente.
(ii) Seja S uma qualquer sequencia de inteiros, e seja n (n 1 xo) o seu n umero de
elementos. Suponhamos agora, como hip otese de indu c ao, que quando aplicamos QS
a uma qualquer sequencia W de inteiros cujo n umero de elementos e menor do que n,
obtemos os elementos de W por ordem crescente.
Queremos mostrar que QS quando aplicado a S, ordena S por ordem crescente.
Como S tem elementos, aplicam-se as instru c oes 2.12.4. Uma vez que nas sub-
sequencias formadas em 2.2 n ao entra o primeiro elemento de S, cada uma delas tem
menos elementos do que S. Assim, por hip otese de indu c ao, QS quando aplicado a
cada uma dessas subsequencias, ordena-as por ordem crescente. Ent ao, as sequencias
referidas por R
<
e R

(em 2.3) s ao respectivamente as sequencias de elementos menores


do que X e maiores ou iguais a X, ordenadas por ordem crescente. Portanto, o resultado
indicado em 2.4 n ao e mais do que a sequencia S ordenada por ordem crescente. .
Proposi c ao 16 Os princpios de indu c ao forte e fraca s ao equivalentes, ou seja se existir
uma prova de n N P(n) por indu c ao fraca ent ao tambem existe uma prova por indu c ao
forte. E vice-versa, se existir uma prova por indu c ao forte ent ao existe uma prova por indu c ao
fraca.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
4.2. INDUC

AO FORTE 42
Prova:

E trivial que se existir uma prova dum dado resultado por indu c ao fraca ent ao
existe uma prova por indu c ao forte, pois a mesma prova serve!
Portanto, resta-nos mostrar que se existir uma prova por indu c ao forte ent ao existe uma
prova por indu c ao fraca. Para tal, vamos mostrar que se existe uma prova de n Z
+
P(n)
por indu c ao forte, ent ao existe uma prova por indu c ao fraca de n Z
+
(i n P(i)).
Podemos depois concluir que existe uma prova por indu c ao fraca de n Z
+
P(n) porque
(n Z
+
(i n P(i))) n Z
+
P(n).
Seja Q(n) a condi c ao i n P(i).
Mostrar que Q(1) e verdade, e mostrar que i 1 P(i), o que equivale a mostrar que
P(1) e verdade. Como para mostrar que n P(n) por indu c ao forte, teve que se justicar
que P(1) era verdade, basta-nos reproduzir essa justica c ao.
Para mostrar que n ( Q(n) Q(n + 1) ), ou seja que
n ( (i n P(i)) (i n + 1 P(i)) )
e util recordar que existe uma prova de
n ( (i n P(i)) P(n + 1) )
que teve de ser feita para mostrar a proposi c ao n P(n) por indu c ao forte. E, como
n ((i n P(i)) (i n P(i)))
tem-se n ((i n P(i)) (P(n+1)(i n P(i)))). Ou seja, n Z
+
(Q(n) Q(n+1)).
Assim, mostr amos que Q(1) era verdade e n Z
+
(Q(n) Q(n + 1)). Consequente-
mente, pelo princpio de indu c ao fraca, concluimos n Z
+
Q(n). .
4.2.1 Outras formula c oes do princpio de indu cao
Proposi c ao 17 Seja A = n N [ P(n), onde P(n) denota n satisfaz a propriedade P.
Se A satiszer as condi c oes (i) e (ii) seguintes, ent ao A = N.
(i) 0 A
(ii) k N (k A k + 1 A)
Proposi c ao 18 Seja A = n N [ P(n), onde P(n) denota n satisfaz a propriedade P.
Se A satiszer as condi c oes (i) e (ii) seguintes, ent ao A = N.
(i) 0 A
(ii) kN ( (i k iA) k + 1 A)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Captulo 5
Rela c oes Binarias
5.1 Rela c oes Binarias de A em B
Sejam A e B conjuntos. Designa-se por produto cartesiano de A por B, e denota-se por
AB , o conjunto dos pares ordenados (a, b) tais que a A e b B , ou seja
AB = (a, b) [ a A e b B
Qualquer subconjunto R do produto cartesiano de A por B diz-se rela c ao bin aria de A
em B. A nota c ao a Rb ser a usada com o mesmo signicado de (a, b) R.
Exemplo 19 Seja A o conjunto dos alunos, P o conjunto dos docentes, L o conjunto das
licenciaturas e C o conjunto das disciplinas das licenciaturas da FCUP.
R = (x, y) A A [ x e y s ao alunos da mesma licenciatura AA
S = (x, y) P C [ x e professor da disciplina y P C
T = (x, y) A C [ x est a inscrito na disciplina y AC
U = (x, y) A L [ x e aluno da licenciatura y A L
Os conjuntos R, S, T e U s ao rela c oes bin arias.
5.1.1 Opera c oes com rela c oes binarias
Como as rela c oes bin arias s ao conjuntos (de pares ordenados), podemos denir a uni ao e a
intersec c ao de rela c oes bin arias e ainda a rela c ao complementar. Sendo R, S A B:
R S = (a, b) AB [ (a, b) R (a, b) S
R S = (a, b) AB [ (a, b) R (a, b) S
R = (a, b) AB [ (a, b) / R = (A B)R
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.1. RELAC

OES BIN

ARIAS DE A EM B 44
Para alem destas opera c oes, denimos tambem a no c ao de inversa e de composta. A
rela c ao inversa de R, representada por R
1
, e a rela c ao de B em A denida pelo conjunto
R
1
= (b, a) [ (a, b) R
Dadas duas rela c oes R A B e S B C, diz-se rela c ao composta de R e S, e
representa-se por RS , a rela c ao bin aria de A em C denida por
RS = (a, c) [ existe b B tal que (a, b) R e (b, c) S
Em alternativa podiamos escrever S R, que se le S ap os R, ` a semelhan ca da nota c ao
usual para composi c ao de fun c oes. Na sec c ao 5.1.3, veremos que as fun c oes correspondem a
rela c oes bin arias que satisfazem condi c oes adicionais. A rela c ao inversa corresponde ` a no c ao
de imagem recproca, que associa a cada transformado os elementos do domnio que o tem
por imagem.
Exemplo 20 Seja A = 1, 2, 3, B = 1, 2, 3, 4, 5, C = 1, 2,
R = (1, 2), (1, 3), (2, 2), (3, 4), (3, 5)
S = (1, 1), (3, 2), (5, 1), (5, 2)
A rela c ao R
1
e (2, 1), (3, 1), (2, 2), (4, 3), (5, 3).
R S
1

_
_
_
_
_
_
_
_
_
_
_
_
_
_
2
2

.
.
.
.
.
.
.
.
.
.
.
.
.
.
3

2
3

_
_
_
_
_
_
_
_
_
_
_
_
_

.
.
.
.
.
.
.
.
.
.
.
.
.
1

1
4
RS = (1, 2), (3, 1), (3, 2), j a que: (1, 2) RS pois (1, 3) R (3, 2) S; (3, 1) RS
porque (3, 5) R (5, 1) S; (3, 2) RS porque (3, 5) R (5, 2) S; (1, 1) / RS porque
y B (1, y) / R (y, 1) / S (de facto, y B (1, y) R y = 2 y = 3, mas
(2, 1) / S (3, 1) / S); Do mesmo modo se verica que, (2, 1) / RS, (2, 2) / RS.
Como RS 1, 2, 31, 2, o que acab amos de fazer foi uma an alise exaustiva dos pares
possveis, justicando se pretenciam ou n ao a RS. Mais adiante, ser ao apresentados alguns
resultados te oricos que facilitar ao a determina c ao da composta.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.1. RELAC

OES BIN

ARIAS DE A EM B 45
Exemplo 21 Voltemos a considerar o Exemplo 19. Podemos vericar que:
(x, y) AP [ x e aluno duma disciplina de que y e professor = TS
1
R = (x, y) AA [ x e y s ao alunos da mesma licenciatura = UU
1
5.1.2 Matriz duma rela cao binaria
Sejam A e B conjuntos nitos e n ao vazios, tais que [A[ = n e [B[ = m. Podemos identicar A
com a
i
[ 1 i n e B com b
j
[ 1 j m. Qualquer rela c ao R de A em B pode
ser representada por uma tabela matriz da rela c ao do modo seguinte. O elemento que
est a na linha i e coluna j e 1 se (a
i
, b
j
) R, e e 0 se (a
i
, b
j
) / R. Ou seja, se M
R
for tal
matriz, e M
R
[i, j] representar o elemento na linha i e coluna j ent ao tem-se
M
R
[i, j] = 1 se e s o se (a
i
, b
j
) R
M
R
[i, j] = 0 se e s o se (a
i
, b
j
) / R
com 1 i n e 1 j m.
Exemplo 22 Seja A = 1, 2, 3, B = 1, 2, 3, 4, 5 e R AB,
R = (1, 2), (1, 3), (2, 2), (3, 4), (3, 5)
Ent ao,
M
R
=
_

_
0 1 1 0 0
0 1 0 0 0
0 0 0 1 1
_

_
Matriz da inversa
Sejam A = a
1
, . . . , a
n
e B = b
1
, . . . , b
m
, m, n Z
+
(xos) e R A B. Ent ao
M
R
1 [i, j] = 1 (b
i
, a
j
) R
1
(a
j
, b
i
) R M
R
[j, i] = 1
M
R
1 [i, j] = 0 (b
i
, a
j
) / R
1
(a
j
, b
i
) / R M
R
[j, i] = 0
com 1 i m e 1 j n, pelo que a matriz da inversa de R e a transposta da matriz
de R (cada linha da transposta de R e uma coluna da matriz R).
Exemplo 23 Para R como no Exemplo 22, R
1
= (2, 1), (3, 1), (2, 2), (4, 3), (5, 3). Ent ao,
M
R
1 =
_

_
0 0 0
1 1 0
1 0 0
0 0 1
0 0 1
_

_
=
_

_
0 1 1 0 0
0 1 0 0 0
0 0 0 1 1
_

_
t
= M
t
R
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.1. RELAC

OES BIN

ARIAS DE A EM B 46
Matriz da composta
Sejam A, B, e C conjuntos nitos e n ao vazios tais que [A[ = n, [B[ = m e [C[ = p. Dadas
duas rela c oes R e S tais que R A B e S B C, a matriz da rela c ao composta
RS tem n linhas e p colunas e
M
RS
[i, j] =

1km
(M
R
[i, k] M
S
[k, j]), 1 i n, 1 j p
Notar que por deni c ao da rela c ao composta tem-se a
i
RSc
j
se e s o se existe b
k
tal que
a
i
Rb
k
b
k
Sc
j
. Ou seja, M
RS
[i, j] = 1 se e s o se M
R
[i, k] = 1 M
S
[k, j] = 1 para algum k.
Ou seja, M
RS
[i, j] = 1 se e s o se M
R
[i, 1] = 1M
S
[1, j] = 1 ou M
R
[i, 2] = 1M
S
[2, j] = 1
ou . . . ou M
R
[i, m] = 1M
S
[m, j] = 1, o que justica a deni c ao dada para M
RS
[i, j]. Assim,
M
RS
= M
R
M
S
e um produto
1
de matrizes cujos elementos pertencem ao corpo (0, 1, , ).
Relembre que e denotam ou e e respectivamente e 0 e 1 representam os
valores l ogicos falso e verdadeiro.
0 1
0 0 1
1 1 1
0 1
0 0 0
1 0 1
Exemplo 24 Seja A = 1, 2, 3, B = 1, 2, 3, 4, 5, C = 1, 2,
R = (1, 2), (1, 3), (2, 2), (3, 4), (3, 5)
M
R
=
_

_
0 1 1 0 0
0 1 0 0 0
0 0 0 1 1
_

_
S = (1, 1), (3, 2), (5, 1), (5, 2)
M
S
=
_

_
1 0
0 0
0 1
0 0
1 1
_

_
M
RS
=
_

_
0 1
0 0
1 1
_

_ =
_

_
0 1 1 0 0
0 1 0 0 0
0 0 0 1 1
_

_
_

_
1 0
0 0
0 1
0 0
1 1
_

_
donde, RS = (1, 2), (3, 1), (3, 2) AC
1
Deve car claro quando estudar corpos e matrizes na disciplina de Elementos de

Algebra Linear. Para
matrizes cujos elementos pertencem ao corpo dos reais (R, +, ), se M tem n linhas e m colunas e N tem m
linhas e p colunas, a matriz MN tem n linhas e p colunas, sendo MN[i, j] =
P
m
k=1
(A[i, k] B[k, j]), para
1 i n e 1 j p (dado pelo produto escalar da linha i de M pela coluna j de N). Quando os elementos
pertencem a ({0, 1}, , ), a disjun c ao substitui a soma + e a conjun c ao substitui o produto .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.2. RELAC

OES BIN

ARIAS DEFINIDAS NUM CONJUNTO 47


5.1.3 Fun c oes de A em B
Designa-se por fun c ao de A em B qualquer rela c ao bin aria f de A em B tal que para todo
a A existe um unico b B tal que a f b, ou seja,
a A
1
b B a f b.
Se a f b ent ao escreve-se f(a) = b e diz-se que b e a imagem de a por f.
O conjunto A e o domnio da fun c ao, e o conjunto B e o conjunto de chegada. O
subconjunto de B formado pelas imagens dos elementos de A diz-se imagem de A por f,
ou contradomnio de f. A imagem de A por f denota-se por f(A).
Uma fun c ao e injectiva se e s o se cada elemento de B e imagem quando muito dum
elemento de A, ou seja
f injectiva sse a
1
, a
2
A ( f(a
1
) = f(a
2
) a
1
= a
2
)
Uma fun c ao e sobrejectiva se e s o qualquer elemento de B e imagem de algum elemento
de A, ou seja f(A) = B.
Uma fun c ao que e sobrejectiva e injectiva diz-se bijectiva. Assim, f A B e uma
fun c ao bijectiva se e s o se
a A
1
b B f(a) = b (fun c ao), e
b B
1
a A f(a) = b (bijectiva)
Desta observa c ao resulta trivialmente a proposi c ao seguinte.
Proposi c ao 19 Seja f A B uma fun c ao. Ent ao f
1
B A e fun c ao se e s o se f e
bijectiva.
Uma fun c ao diz-se invertvel se a sua inversa e uma fun c ao.
Uma fun c ao parcial de A em B e uma rela c ao bin aria f de A em B tal que se um elemento
a A tem imagem por f ent ao essa imagem e unica. Notar que a diferen ca relativamente
` a deni c ao de fun c ao e n ao se impor a condi c ao de que todos os elementos de A tenham
imagens por f.
5.2 Rela c oes Binarias Denidas num Conjunto
Seja A um conjunto. Chama-se rela c ao bin aria denida em A ou simplesmente rela c ao
bin aria em A a qualquer rela c ao bin aria de A em A.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.2. RELAC

OES BIN

ARIAS DEFINIDAS NUM CONJUNTO 48


5.2.1 Propriedades das rela c oes binarias denidas em A
Qualquer rela c ao R denida em A pode gozar ou n ao das propriedades seguintes.
reexividade: R e reexiva sse x A xRx, ou seja n ao existe x tal que x A e (x, x) / R.
simetria: R e simetrica sse x, y A (xRy yRx), ou seja n ao existem x, y tais que
x, y A e (x, y) R e (y, x) / R.
antissimetria: R e antissimetrica sse x, y A ((xRyyRx) x = y), ou seja, n ao existem
x, y A tais que x ,= y, xRy e yRx.
transitividade: R e transitiva sse x, y, z A (xRy yRz) xRz, ou seja n ao existem
x, y, z tais que x, y, z A, xRy, yRz e (x, z) / R.
Exemplo 25 Seja A = 1, 2, 3, 4, 5, e , , , e rela c oes bin arias em A, assim denidas
= (1, 1), (2, 2), (3, 3), (4, 4), (5, 5)
= (1, 1), (1, 3), (3, 1)
= (1, 1), (1, 3)
= AA
A rela c ao e reexiva, simetrica, transitiva, e antissimetrica. De facto, uma vez que
= (x, x) [ x A, e claro que x A (x, x) , ou seja e reexiva. Por deni c ao
de tem-se
x, y A ( (x, y) x = y ). (5.1)
Donde, x, y A ( (x, y) (y, x) ) ou seja, e simetrica. Do mesmo modo, por
(5.1) conclui-se x, y, z A ( (x, y) (y, z) (x, z) ) ou seja e transitiva.
E ainda, x, y A ( (x, y) (y, x) x = y ) ou seja, e antissimetrica.
n ao e reexiva (porque por exemplo 5 A (5, 5) / ), e simetrica (porque (1, 3)
mas (3, 1) ), n ao antissimetrica (porque 1 ,= 3 (1, 3) (3, 1) ), e n ao transitiva
(porque (3, 1) (1, 3) (3, 3) / ).
e transitiva, antissimetrica, n ao reexiva, e n ao simetrica (Justicar!).
e reexiva, simetrica, transitiva e n ao antissimetrica.
5.2.2 Grafo da rela cao
As rela c oes em A podem ser representadas por grafos dirigidos os quais s ao constitudos
por um conjunto de vertices (que representam os elementos de A) e um conjunto de ramos
(que correspondem aos pares ordenados que pertencem ` a rela c ao).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.2. RELAC

OES BIN

ARIAS DEFINIDAS NUM CONJUNTO 49


Exemplo 26 Para as rela c oes consideradas no Exemplo 25:
O grafo da rela c ao :
1
GFED BC

2
GFED BC

3
GFED BC

4
GFED BC

5
GFED BC

O grafo da rela c ao :
1
BC @A GF

4 5 2
Exemplo 27 Seja R a seguinte rela c ao denida em Z
+
por
R = (x, y) [ y 9, y e m ultiplo de x, y ,= x (1, 1)
R em extens ao
R = (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7),
(1, 8), (2, 4), (2, 6), (2, 8), (3, 6), (3, 9), (4, 8)
o grafo de R
1
@A GFED

_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_

5 7
8 4

6 9
a matriz de R
_

_
1 1 1 1 1 1 1 1 1
0 0 0 1 0 1 0 1 0
0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
_

_
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 50
Exemplo 28 Seja A o conjunto dos alunos da FCUP. Sejam R, S A A as rela c oes
bin arias em A assim denidas
R = (x, y) AA [ x e y s ao alunos da mesma licenciatura da FCUP
S = (x, y) AA [ x e y est ao inscritos numa mesma disciplina
R e reexiva porque qualquer aluno da FCUP e aluno da mesmo curso que si pr oprio.

E
simetrica porque se um aluno x da FCUP frequenta o mesmo curso que um aluno y, ent ao y
frequenta o mesmo curso que x. N ao e antissimetrica, j a que se o fosse cada licenciatura da
FCUP seria frequentada quando muito por um aluno (o que e trivialmente falso).

E transitiva
porque se um aluno x frequenta o mesmo curso que um aluno y, e y frequenta o mesmo curso
que z, ent ao x e z frequentam o mesmo curso, j a que cada aluno est a inscrito num e num s o
curso.
S e reexiva, simetrica, n ao antissimetrica, e n ao transitiva (alunos de cursos/anos dife-
rentes podem partilhar disciplinas, pelo que existem alunos x, y e z tais que x e y frequentam
uma mesma disciplina, e y e z frequentam uma mesma disciplina, e x e z n ao tem qualquer
disciplina em comum).
5.3 Rela c oes de Compatibilidade e de Equivalencia
Diz-se rela c ao de compatibilidade em A toda rela c ao bin aria em A que e reexiva e
simetrica. Qualquer rela c ao de compatibilidade em A que seja ainda transitiva diz-se rela c ao
de equivalencia em A (ou seja, e uma rela c ao reexiva, simetrica, e transitiva).
Exemplo 29 Considere o Exemplo 28. Como R e S s ao reexivas e simetricas, R e S s ao
rela c oes de compatibilidade. R e reexiva, simetrica e transitiva, pelo que e de equivalencia.
S n ao e de equivalencia porque n ao e transitiva.
Se uma rela c ao de compatibilidade em A e x A e y A, diz-se que x e y s ao elementos
compatveis para se e s o se xy. Se (x, y) / ent ao x e y dizem-se incompatveis
para . Analogamente, se e uma rela c ao de equivalencia em A e xy, ent ao x e y dizem-se
equivalentes (para ).
Seja uma qualquer rela c ao de compatibilidade em A. Seja x um elemento qualquer de A
e considere-se o conjunto C
x
de todos os elementos de A compatveis com x (para ), ou seja
C
x
= y A [ (x, y) .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 51
Exemplo 30 Para A = 1, 2, 3, 4 e = (1, 1), (2, 2), (3, 3), (4, 4), (1, 2), (2, 3), (2, 1), (3, 2)
tem-se:
C
1
= 1, 2 C
2
= 1, 2, 3
C
3
= 2, 3 C
4
= 4
Repare-se que C
2
tem elementos incompatveis, j a que (1, 3) / . A rela c ao e de compati-
bilidade mas n ao e de equivalencia.
5.3.1 Classes de equivalencia
Pode acontecer, para certas rela c oes de compatibilidade , que existam elementos u e v em
C
x
que sejam incompatveis. No entanto, pode-se mostrar a proposi c ao seguinte:
Proposi c ao 20 Seja uma rela c ao de compatibilidade em A. A rela c ao e de equivalencia
se e s o se para todo x A, o conjunto C
x
= y A [ (x, y) n ao tem elementos
incompatveis.
Prova: Seja de compatibilidade em A. Vamos mostrar que
transitiva x A y, t C
x
yt.
Por deni c ao de C
x
, se y, t C
x
ent ao xt e xy. Como e simetrica, se xy tambem yx.
Ent ao, se xt e xy, tambem yx e xt. Logo, pela transitividade de , deduz-se yt.
Reciprocamente, se se vericar (5.2)
x A y, t C
x
yt (5.2)
ent ao e transitiva. De facto, se a, b, c A s ao tais que ab e bc ent ao, pela simetria de
e por deni c ao de C
b
, deduz-se c C
b
e a C
b
. Mas por (5.2), (c C
b
a C
b
) ac.
Ent ao a, b, c A ((ab bc) ac), ou seja e transitiva. .
Sendo de equivalencia em A, cada conjunto C
x
chama-se classe de equivalencia de .
Concretamante, ser a a classe de equivalencia do elemnto x, ou seja, o conjunto dos elementos
de A que s ao equivalentes a x (em ).
Proposi c ao 21 Se e uma rela c ao de equivalencia em A ent ao cada elemento de A pertence
a uma e uma s o classe de equivalencia de .
Qualquer elemento de uma classe de equivalencia pode ser usado para identicar a
classe.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 52
Exemplo 31 Seja A = x [ x e aluno da FCUP, e
R = (x, y) A A [ x e y s ao alunos da mesma licenciatura
que como vimos e de equivalencia. Eis algumas das classes de equivalencia de R (actualmente
existem 19 classes):
x A [ x e aluno de Matem atica
x A [ x e aluno de Geologia
x A [ x e aluno de Ciencia de Computadores
x A [ x e aluno de Engenharia de Redes e Sistemas Inform aticos
x A [ x e aluno de Bioqumica
x A [ x e aluno de Engenharia das Ciencias Agr arias
x A [ x e aluno de Matem atica Aplicada ` a Tecnologia
Exemplo 32 Seja
5
a rela c ao denida no conjunto dos inteiros por
x
5
y sse x y e m ultiplo (inteiro) de 5
quaisquer que sejam x, y Z.

5
e reexiva porque qualquer que seja x Z tem-se x x = 0 = 0 5.

E simetrica
porque para quaisquer x, y Z tem-se
x
5
y (k Z x y = 5k) (k

Z y x = 5k

)
(toma-se k

= k). Logo, x, y Z ( x
5
y y
5
x), ou seja
5
e simetrica. Mostrar
que
5
e transitiva e mostrar que x, y, z Z [ (x
5
y y
5
z) x
5
z ]. Se
x
5
y y
5
z ent ao existem k, k

Z tais que x y = 5k y z = 5k

. Assim,
x z = (x y) + (y z) = 5(k +k

). Logo, x
5
z.
S ao 5 as classes de equivalencia de
5
, a saber:
C
0
= x Z [ 0
5
x = x Z [ k Z x = 5k
C
1
= x Z [ 1
5
x = x Z [ k Z x = 5k + 1
C
2
= x Z [ k Z x = 5k + 2
C
3
= x Z [ k Z x = 5k + 3
C
4
= x Z [ k Z x = 5k + 4
A rela c ao podia tambem ser denida assim
x
5
y sse s ao iguais os restos da divis ao inteira de x e y por 5
A nota c ao mais habitual e x y (mod 5).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 53
Proposi c ao 22 (Caracteriza c ao das classes de equivalencia) Seja de equivalencia
em A, conjunto n ao vazio. Para cada x A, seja C
x
= y A [ xy. Ent ao,
(i) qualquer que seja a A, o conjunto C
a
e n ao vazio.
(ii) se C
a
C
b
,= ent ao C
a
= C
b
.
(iii) o conjunto A e a uni ao dos conjuntos C
a
, com a A.
Prova:
(i) a A aa, pela reexividade de . Assim, a A a C
a
. Logo, C
a
,= .
(ii) Vamos agora mostrar que se C
a
C
b
,= ent ao C
a
C
b
, e C
a
C
b
, pelo que C
a
= C
b
.
Como C
a
C
b
,= , existe c A tal que c C
a
C
b
. Seja x um qualquer elemento de
C
a
. Vamos mostrar que x C
b
. Para isso basta mostrar que xb. Ora, pela Proposi c ao
20, (x C
a
c C
a
) xc. E como cb (pois c C
b
), conclui-se por transitividade
que xb. Donde C
a
C
b
. De modo an alogo se verica que x C
b
x C
a
(iii) A

aA
C
a
, j a que C
a
A para todo a A. Por outro lado, vericou-se em (i) que
para todo a A, a C
a
. Pelo que A

aA
C
a
.
Exerccio 5.3.1 Considere a rela c ao em Z Z
+
assim denida:
(p, q) (p

, q

) sse pq

= qp

.
Vericar que e de equivalencia. Notar que cada classe de equivalencia de corresponde a
um e um s o racional no sentido seguinte: C
(p,q)
= (x, y) Z Z
+
[ x/y = p/q.
5.3.2 Parti c oes e rela c oes de equivalencia
Designa-se por parti c ao de A um conjunto de subconjuntos de A que s ao n ao vazios, disjuntos
dois a dois, e cuja uni ao e o conjunto A.
Exemplo 33 Para A = 1, 2, 3, 4, o conjunto P
1
= 1, 2, 3, 4 dene uma parti c ao de
A mas P
2
= 1, 2, 3, 2, 4 n ao, j a que 1, 2 3, 2 ,= . Tambem, P
3
= 1, 2, 3
n ao dene parti c ao de A j a que 4 A e 4 n ao pertence a nenhum dos subconjuntos de A que
constituem P
3
.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 54
Corol ario 22.1 Se e uma rela c ao de equivalencia em A ent ao o conjunto das classes de
equivalencia de e uma parti c ao do conjunto A.
O conjunto das classes de equivalencia de uma rela c ao de equivalencia denida em A
diz-se conjunto quociente de A por , e representa-se por A/.
Exemplo 34 Para
5
, denida no Exemplo 32, o conjunto quociente e:
Z/
5
= C
0
, C
1
, C
2
, C
3
, C
4
.
Proposi c ao 23 Seja A um conjunto n ao vazio e seja uma parti c ao de A. Existe uma e
uma s o rela c ao de equivalencia em A tal que A/ = . Essa rela c ao e
(x, y) AA [ x e y pertencem a um mesmo elemento de
Prova: Seja a rela c ao denida em A tal que
= (x, y) AA [ x e y pertencem a um mesmo elemento de
Vamos mostrar que e rela c ao de equivalencia em A.
A rela c ao e reexiva, porque sendo uma parti c ao de A, todo elemento de a A
pertence a algum subconjunto em , pelo que a A aa. Mostrar que e simetrica, e
mostrar que
a, b A ( ab ba),
o que segue trivialmente da deni c ao de .

E transitiva porque quaisquer que sejam a, b, c A,
se a e b s ao elementos dum mesmo conjunto em , e b e c s ao elementos dum mesmo conjunto
em , ent ao esses conjuntos s ao iguais (uma vez que os elementos de s ao disjuntos dois a
dois). Logo, se ab e bc ent ao ac. Concluimos assim que e de equivalencia.
Vamos mostrar que A/ = . Seja x A, e C
x
a classe de equivalencia de x para .
Seja P
x
tal que x P
x
. Vamos mostrar que C
x
= P
x
. Por deni c ao de , e claro que
P
x
C
x
. Por outro lado, se C
x
, P
x
ent ao existiria y C
x
tal que y / P
x
. Mas, y C
x
sse yx, ou seja sse y e x pertencem a um mesmo conjunto em . Ent ao existiria P

,= P
x
,
P

tal que x P
x
P

, o que e absurdo, pois P


x
e P

s ao elementos duma parti c ao,


P

,= P
x
, sendo por isso disjuntos. Logo, tambem C
x
P
x
. Cada conjunto em A/ (assim
como cada conjunto em ) ca perfeitamente identicado com a indica c ao dum elemento x
que lhe perten ca. Consequentemente, acab amos de mostrar que A/ = .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 55
Seja uma rela c ao de equivalencia em A tal que A/ = . J a vimos que uma tal rela c ao
existe sempre, j a que e um exemplo. Vamos mostrar agora que existe uma s o rela c ao nessas
condi c oes, ou seja
AA [ ( de equivalencia A/ = ) =
Como rela c oes bin arias s ao, por deni c ao, conjuntos, para mostrar que = , vamos
mostrar que .
Sejam x e y elementos de A. Se (x, y) ent ao, por deni c ao de conjunto quociente
A/, existe um e um s o subconjunto em , seja C
x
tal que x, y C
x
. Mas, por deni c ao de
, tem-se x, y C
x
sse (x, y) . Logo .
Veriquemos agora que . Se (x, y) ent ao existe P tal que x, y P. Como
e o conjunto das classes de equivalencia de , se x, y P ent ao xy. .
5.3.3 Classes de Compatibilidade
Se e de compatibilidade em A podemos considerar subconjuntos de A, n ao vazios, e que n ao
tenham elementos incompatveis. Ou seja, subconjuntos C de A que satisfa cam as condi c oes
(i) e (ii) seguintes:
(i) C ,=
(ii) quaisquer que sejam a e b pertencentes a C tem-se ab.
Um tal conjunto C designa-se por classe de compatibilidade de . Algumas classes de
compatibilidade de podem estar contidas propriamente noutras classes de compatibilidade
de . Diz-se classe m axima de compatibilidade de qualquer classe de compatibilidade
de que n ao est a contida propriamente noutra classe de compatibilidade de . Assim, C A
e classe m axima de compatibilidade se e s o se C satisfaz as condi c oes (i) e (ii) anteriores e
ainda (iii):
(i) C ,=
(ii)
a,bC
ab.
(iii) Se C

e uma classe de compatibilidade tal que C C

, ent ao C = C

.
Exemplo 35 Seja O = o
1
, o
2
, o
3
, o
4
, o
5
, o
6
, o
7
um conjunto de objectos, e seja
R = (o
1
, verde, amarelo), (o
2
, azul, verde), (o
3
, azul, vermelho), (o
5
, branco),
(o
4
, verde, castanho), (o
6
, branco, castanho, amarelo), (o
7
, preto)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.3. RELAC

OES DE COMPATIBILIDADE E DE EQUIVAL

ENCIA 56
uma fun c ao do conjunto O no conjunto dos subconjuntos das cores, que indica quais as cores
de cada objecto. A rela c ao denida em O por
xy sse x e y tem uma cor em comum
e de compatibilidade. As classes de compatibilidade de s ao:
o
1
o
2
o
3
o
4
o
5
o
6
o
7

o
1
, o
2
o
1
, o
4
o
1
, o
6
o
2
, o
3
o
4
, o
6
o
5
, o
6

o
1
, o
2
, o
4
o
1
, o
4
, o
6

As classes de m axima compatibilidade s ao:


o
1
, o
2
, o
4
, o
1
, o
4
, o
6
, o
2
, o
3
, o
5
, o
6
, o
7

Exerccio 5.3.2 Mostrar que:


a) Se e de equivalencia em A ent ao para todo x A, a classe de equivalencia de x e uma
classe de compatibilidade de .
b) Se e de compatibilidade em A ent ao todo x A pertence a alguma classe m axima de
compatibilidade de .
c) Se e uma rela c ao de compatibilidade em A, ent ao a uni ao das classes m aximas de
compatibilidade de e o conjunto A.
d) Se e de equivalencia em A, ent ao o conjunto das classes m aximas de compatibilidade
de e o conjunto quociente A/.
e) Se e de compatibilidade em A e (

(A) e o conjunto das classes m aximas de compati-


bilidade de , ent ao =
1
em que A(

(A) e assim denida


xC sse x C,
quaisquer que sejam x A, e C (

(A).
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.4. RELAC

OES DE ORDEM PARCIAL 57
5.4 Rela c oes de Ordem Parcial
Uma rela c ao de ordem parcial denida num conjunto A e uma rela c ao bin aria reexiva,
antissimetrica e transitiva.
A rela c ao denida nos conjunto dos n umeros reais por
x y sse r R
+
0
y = x +r
e de ordem parcial em R porque:
e reexiva porque x R x = x + 0, pelo que x R x x.
e antissimetrica porque quaisquer que sejam x, y R se x y e y x ent ao existem
z
1
, z
2
R
+
0
tais que y = x + z
1
e x = y + z
2
. Logo, x = (x + z
1
) + z
2
, pelo que
z
1
+ z
2
= 0. Mas como z
1
, z
2
R
+
0
, vem z
1
= z
2
= 0, pelo que x = y. Assim,
x, y R ((xRy yRx) x = y), ou seja R e antissimetrica.
e transitiva porque quaisquer que sejam x, y, z R se x y e y z ent ao existem
z
1
, z
2
R
+
0
tais que y = x + z
1
e z = y + z
2
. Logo, z = (x + z
1
) + z
2
= x + (z
1
+ z
2
),
com z
1
+z
2
R
+
0
, concluindo-se que x z (pela deni c ao).
A sua inversa
1
, que se denota por , e tambem de ordem parcial em R. O prolonga-
mento natural de a R
n
assim denido
(x
1
, . . . , x
n
)
n
(y
1
, . . . , y
n
) sse 1 i n x
i
y
i
e tambem de ordem parcial.
Mais alguns exemplos:
A ordem lexicogr aca em R
n
denida por
(x
1
, . . . , x
n
)
lex
(y
1
, . . . , y
n
) sse (
i
x
i
= y
i
) ou (k = mini [ x
i
,= y
i
x
k
y
k
)
A ordem do dicion ario (de Portugues) e um exemplo duma ordem lexicogr aca no
conjunto das palavras de alfabeto a, b, c, . . . , z .
A rela c ao denida nos inteiros positivos pelos pares (m, n) tais que n e m ultiplo de m
tambem e de ordem parcial em Z
+
.
Qualquer que seja o conjunto A, a rela c ao de inclus ao em 2
A
(conjunto dos subcon-
juntos de A) e de ordem parcial. A rela c ao inversa e , tambem e de ordem parcial.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.4. RELAC

OES DE ORDEM PARCIAL 58

E usual representar as rela c oes de ordem parcial por _. Um conjunto parcialmente


ordenado e um par (A, _) em que A e um conjunto e _ uma rela c ao de ordem parcial
em A. Um conjunto parcialmente ordenado (A, _) diz-se conjunto totalmente ordenado
sse quaisquer que sejam x e y de A se tem x _ y ou y _ x.
Exemplo 36 (R, ) e totalmente ordenado, j a que x, y R ( x y y x).
(Z
+
, [) n ao e totalmente ordenado, sendo [ a rela c ao divide. Recorde que:
m[n sse p Z
+
n = mp
ou seja m[n sse n e m ultiplo de m. De facto, existem x, y Z
+
tais que x n ao divide y nem
y divide x. Por exemplo, (2, 3) / [, e (3, 2) / [.
Seja T = x Z
+
[ x divide 64. Ent ao a restri c ao de [ a T e uma ordem total, ou seja
(T, [) e totalmente ordenado.
(2
A
, ) n ao e totalmente ordenado, se A tiver pelo menos dois elementos. Por exemplo,
A = 1, 2, 2
A
= , 1, 2, A, e 2 , 1 e 1 , 2.
(R
n
,
lex
) e totalmente ordenado. Mas, (R
n
,
n
), para n 2 (xo), n ao est a totalmente
ordenado.
Exerccio 5.4.1 Mostrar que se R e de ordem parcial (total) em A ent ao R
1
tambem e de
ordem parcial (total) em A.
5.4.1 Diagrama de Hasse
Uma rela c ao de ordem parcial denida num conjunto nito, representa-se gracamente por
um Diagrama de Hasse.

E um grafo n ao dirigido que se obtem por simplica c ao do grafo
da rela c ao removendo todos os lacetes e todos os ramos que podem ser deduzidos pela transiti-
vidade da rela c ao. Convenciona-se ainda que se um elemento precede (na rela c ao _ denida)
um outro elemento, ent ao o vertice do primeiro car a situado mais abaixo na gura, e por
isso pode-se substituir setas (ramos orientados) por segmentos (ramos n ao orientados).
Exemplo 37
`
A esquerda apresenta-se o diagrama de Hasse da restri c ao da rela c ao divide
ao conjunto dos divisores de 16.
`
A direita encontra-se o diagrama de Hasse para a restri c ao
da mesma rela c ao ao conjunto dos divisores de 30.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.4. RELAC

OES DE ORDEM PARCIAL 59
16
8
4
2
1
30

10

15
.
.
.
.
.
.
2

3 5
.
.
.
.
.
.
.
1
Exemplo 38 O diagrama de Hasse seguinte representa o conjunto parcialmente ordenado
(A, ) para A = , 1, 2, 3, 4, 1, 2, 1, 3, 2, 3, 2, 4, 3, 4, 2, 3, 4.
1, 2

1, 3

2, 3, 4
.
.
.
.
.
.
.

2, 3

3, 4
.
.
.
.
.
.
.
.
2, 4
...............................
.
.
.
.
.
.
.
.
1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_ 2

3 4

Os elementos 1, 2, 1, 3 e 2, 3, 4 dizem-se elementos maximais. O elemento diz-se


mnimo.
O conjunto parcialmente ordenado ( (A1, 2, 3, 4) , ) n ao tem mnimo, mas
tem m aximo. Os elementos 1, 2, 3 e 4 s ao elementos minimais.
1, 2, 3, 4

1, 2

1, 3

2, 3, 4
.
.
.
.
.
.
.

2, 3

3, 4
.
.
.
.
.
.
.
.
2, 4
..................................
.
.
.
.
.
.
.
.
1 2 3 4
5.4.2 Maximos, mnimos, supremo, nmo, majorantes e minorantes
Seja _ uma rela c ao de ordem parcial em A e seja S um subconjunto de A:
m A e majorante de S sse a S a _ m;
m A e minorante de S sse a S m _ a
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 60
s A e supremo de S sse s e majorante de S e para qualquer s

majorante de S temos
s _ s

. Se s S, ent ao s designa-se por m aximo de S.


i A e nmo de S sse i e minorante de S e para qualquer i

minorante de S temos
i

_ i. Se s S, ent ao s designa-se por mnimo de S.


m S e elemento maximal de S se n ao existe s

S tal que s

,= s e s _ s

.
m S e elemento minimal de S se n ao existe s

S tal que s

,= s e s

_ s.
Um conjunto parcialmente ordenado (A, _) diz-se reticulado se quaisquer que sejam
x, y A, o conjunto xy tem supremo e nmo. Para referir o supremo (resp., o nmo)
de x y escrevemos sup(x, y) (respectivamente inf(x, y)).
Exemplo 39 Os conjuntos parcialmente ordenados representados pelos diagramas de Hasse
seguintes s ao reticulados.
16
8
4
2
1
1, 2, 3
.
.
.
.
.
.
.

1, 2

1, 3
.
.
.
.
.
.
.
.

2, 3
.
.
.
.
.
.
.
.
1

2 3

O conjunto parcialmente ordenado (Z


+
, [) e um reticulado, sendo [ a rela c ao divide.
Neste caso, sup(x, y) = mmc(x, y) e inf(x, y) = mdc(x, y), quaisquer que sejam x, y Z
+
(mmc designa o mnimo m ultiplo comum e mdc o m aximo divisor comum).
(2
A
, ) e um reticulado. Neste caso, sup(X, Y ) = XY e inf(X, Y ) = XY , quaisquer
que sejam X, Y 2
A
.
5.5 Fechos duma Rela cao para uma Propriedade
Seja R uma rela c ao bin aria em A. Se existir alguma rela c ao bin aria em A que contenha R
e goze da propriedade P, ent ao a menor (no sentido da inclus ao de conjuntos) das rela c oes
satisfazendo tal condi c ao designa-se por fecho da rela c ao R para a propriedade P. Ou
seja, se R
P
for o fecho da rela c ao R para a propriedade P ent ao
(i) R R
P
AA, e
(ii) toda rela c ao S AA que goze da propriedade P e contenha R, contem tambem R
P
.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 61
Por exemplo, se R
sim
denotar o fecho simetrico de R ent ao
R R
sim
A A, e
S AA ((R S S simetrica) S R
sim
), ou seja, qualquer rela c ao S denida
em A que seja simetrica e contenha R, contem tambem R
sim
.
Exemplo 40 Seja A = 1, 2, 3, 4, 5 e sejam e rela c oes bin arias em A e assim denidas:
= (1, 1), (2, 2), (3, 3), (1, 2)
= (1, 1), (1, 2), (2, 1), (4, 1)
O grafo de :
1
@A GFED

2
GFED BC

3
GFED BC

4 5
O grafo de :
1
@A GFED

3 5
4

O fecho reexivo de e (4, 4), (5, 5). O fecho simetrico (2, 1), e o fecho
transitivo e porque e transitiva.
O grafo do fecho reexivo de :
1
@A GFED

2
GFED BC

3
GFED BC

4
GFED BC

5
GFED BC

O grafo do fecho simetrico de :


1
@A GFED

GFED BC

3
GFED BC

4 5
O fecho reexivo de e (2, 2), (3, 3), (4, 4), (5, 5). O fecho simetrico (1, 4) e
o transitivo e (2, 2), (4, 2).
O grafo do fecho reexivo de :
1
@A GFED

GFED BC

3
BC ED GF

5
BC ED GF

GF @ABC

c A. P. Tom as Dep. de Ciencia de Computadores FCUP


5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 62
O grafo do fecho simetrico de :
1
@A GFED

3 5
4

O grafo do fecho transitivo de :


1
@A GFED

GFED BC

3 5
4

O fecho simetrico e transitivo de e (2, 2), (4, 2), (1, 4), (2, 4), (4, 4).
1
@A GFED

GFED BC

3 5
4

GF @ABC

N ao faz sentido falar em fecho antissimetrico. Se uma rela c ao n ao e antissimetrica,


ent ao qualquer rela c ao que a contenha tambem n ao e antissimetrica.
5.5.1 Fecho transitivo e percursos em grafos
Dada uma rela c ao R A A, dene-se, para cada i Z
+
, a rela c ao R
i
do modo seguinte:
R
1
= R
R
i
= RR
i1
, i 2 (composta de R e R
i1
)
Proposi c ao 24 Uma rela c ao bin aria R denida em A e transitiva se e s o se R
2
R.
Prova: Se R
2
, R ent ao existiam x, y A tais que (x, y) R
2
e (x, y) / R. Por
deni c ao R
2
= RR, donde xR
2
y se e s o se existe z A tal que xRz e zRy. Ou seja,
x, y, z A (x, z) R (z, y) R (x, y) / R, pelo que R n ao seria transitiva. Logo, se R
e transitiva ent ao R
2
R.
A prova do recproco, deduz-se trivialmente do Corol ario 25.1, o qual s o ser a demonstrado
` a frente. De facto, desse Corol ario, podemos concluir que se R
2
R ent ao R
+
= R. Assim,
como R
+
(fecho transitivo de R) e transitiva, R e transitiva. .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 63
Se A for nito, podemos desenhar o grafo de R. Dados dois vertices u, v A, chama-se
percurso de u para v no grafo a qualquer sequencia nita formada por um ou mais ramos do
grafo, tal que o extremo nal de qualquer ramo da sequencia coincide com o extremo inicial
do ramo seguinte na sequencia. O comprimento do percurso e n umero de arcos no percurso.
Dizer que uR
i
v equivale a dizer que existe um percurso com i ramos de u para v no grafo
de R, como se deduz do Lema 3. Vamos mostrar mais adiante que o fecho transitivo de R,
que se denota por R
+
, e dado por
iZ
+R
i
, concluindo-se que uR
+
v se e s o se existir um
percurso de u para v no grafo de R.
Lema 3 Seja R uma rela c ao denida em A. Para quaisquer elementos x e y de A, e qualquer
inteiro positivo k tem-se xR
k+1
y se e s o se existem k elementos de A, sejam x
1
, . . . x
k
, tais
que xRx
1
. . . x
i
Rx
i+1
. . . x
k
Ry.
Prova: Mostremos, por indu c ao sobre k, que para todo k Z
+
e quaisquer x, y A
xR
k+1
y sse x
1
, . . . , x
k
A (xRx
1
. . . x
k
Ry) (5.3)
Mostrar que (5.3) e v alida para k = 1, equivale a mostrar que xR
2
y se e s o se existe x
1
tal que xRx
1
x
1
Ry, o que e trivialmente v alido por deni c ao de R
2
.
Provemos agora que se (5.3) e v alida para um dado k Z
+
ent ao e v alida para k + 1.
Sejam x, y A tais que xR
(k+1)+1
y. Ent ao, usando a deni c ao de R
(k+1)+1
, vem
xR
(k+1)+1
y sse z A xRz zR
k+1
y
Mas, por hip otese de indu c ao,
zR
k+1
y sse y
1
. . . y
k
A (zRy
1
. . . y
k
Ry)
Assim,
xR
(k+1)+1
y sse z, y
1
. . . y
k
A (xRz zRy
1
. . . y
k
Ry)
Se zermos x
1
= z, x
2
= y
1
, . . . , x
k+1
= y
k
vem
xR
(k+1)+1
y sse x
1
, x
2
. . . x
k+1
A (xRx
1
x
1
Rx
2
. . . x
k+1
Ry).
Logo, mostr amos que (5.3) est a nas condi c oes do princpio de indu c ao. Logo, por tal princpio,
(5.3) e v alida para todo k Z
+
. .
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 64
Exemplo 41 Seja R a rela c ao bin aria em 1, 2, 3, 4, 5, 6, 7 representada pelo grafo seguinte.
1

2

5

6

Tem-se:
(1, 4) R
3
pois (1, 2) R (2, 3) R (3, 4) R.
(1, 1) R
4
pois (1, 4) R
3
(4, 1) R.
(3, 3) R
4
pois 3 R4 4 R1 1 R2 2 R3.
(5, 5) R
+
pois (5, 5) R
2
j a que 5 R6 6 R5.
Como 3 R4 4 R1 1 R2 2 R5 5 R6 6 R7, tem-se (3, 7) R
6
R
+
.
M
R
+ =
_

_
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
0 0 0 0 1 1 1
0 0 0 0 1 1 1
0 0 0 0 1 1 1
_

_
A sequencia de ramos (3, 4), (4, 1), (1, 2), (2, 5), (5, 6), (6, 7) e um percurso de 3 para 7.
Exerccio 5.5.1 Seja H = x [ x e ser humano e sejam m~ ae e pai rela c oes bin arias
denidas em H por:
(x, y) m~ ae sse x e m ae de y
(x, y) pai sse x e pai de y
Qual e a composta de m~ ae com pai? Qual e a composta de pai com m~ ae? Qual e a composta
de pai m~ ae com pai m~ ae? Qual e o fecho transitivo de pai m~ ae? Qual e a inversa de
(pai m~ ae)
+
?
Resposta: x e av o paterna de y, x e av o materno de y, x e av o ou av o de y, x e ascendente de y, e x e
descendente de y.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 65
Lema 4 A composi c ao de rela c oes bin arias e associativa.
Prova: Sejam AB, B C e C D rela c oes bin arias. Ent ao,
x()y z B xz z()y (por def. composta ())
z B w C xz zw wy (por def. composta )
w C xw wy (por def. )
x()y (por def. ())
ou seja, x A y D (x()y x()y). Logo, () = () ou seja a composi c ao
e associativa. .
Lema 5 Seja R uma rela c ao denida num conjunto A. Ent ao, quaisquer que sejam os in-
teiros positivos n e k tem-se R
n+k
= R
n
R
k
.
Prova: Seja R A A. Vamos mostrar por indu c ao sobre n Z
+
que
n Z
+
k Z
+
R
n+k
= R
n
R
k
. (5.4)
Se n = 1 ent ao por deni c ao de R
i
tem-se R
1+k
= RR
k
para todo k Z
+
, pelo que a
proposi c ao e verdade para n = 1. Vamos mostrar agora que qualquer que seja n Z
+
,
( k Z
+
R
n+k
= R
n
R
k
= k Z
+
R
n+1+k
= R
n+1
R
k
).
Sejam k, n quaisquer em Z
+
. Tem-se,
R
n+1+k
= RR
n+k
(por deni c ao de R
i
)
= R(R
n
R
k
) (por hip otese de indu c ao)
= (RR
n
)R
k
(pela associatividade da composi c ao)
= (R
n+1
)R
k
(por deni c ao de R
i
)
Mostr amos que as condi c oes do princpio de indu c ao se vericam, pelo que se conclui por esse
princpio a validade de (5.4) .
.
Proposi c ao 25 (Caracteriza c ao dos fechos) Seja R uma rela c ao bin aria em A ,= . O
fecho reexivo de R e RI
A
, sendo I
A
a rela c ao identidade em A (i.e., I
A
= (a, a) : a A).
O fecho simetrico de R e R R
1
. O fecho transitivo de R e

iZ
+ R
i
.
Prova: Qualquer rela c ao bin aria em A que seja reexiva ter a que conter
(a, a) [ a A
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 66
ou seja, I
A
. Por deni c ao, o fecho reexivo de R, seja R
ref
, e uma rela c ao reexiva, pelo que
R
ref
I
A
. Ainda por deni c ao, R
ref
R. Assim, R
ref
R I
A
. R I
A
e reexiva, e
qualquer rela c ao denida em A que seja reexiva e contenha R, contem RI
A
. Logo, RI
A
e o fecho reexivo de R.
RR
1
contem R e e simetrica. Se (x, y) RR
1
ent ao (x, y) R(x, y) R
1
. Por
deni c ao de inversa, se (x, y) R ent ao (y, x) R
1
, e se for (x, y) R
1
ent ao (y, x) R.
Portanto, se (x, y) RR
1
ent ao (y, x) R
1
(y, x) R, ou seja (y, x) RR
1
, o que
prova a simetria de R R
1
. Se mostrarmos que qualquer rela c ao S denida em A que seja
simetrica e contenha R, contem R R
1
, concluimos que R R
1
e o fecho simetrico de R
(por deni c ao de fecho simetrico). Ora, se S e simetrica e S R, ent ao S R
1
. De facto,
(x, y) R
1
(y, x) R (por deni c ao de R
1
)
(y, x) S (por S R)
(x, y) S (pela simetria de S)
Logo S R
1
, e como S R, conclui-se S R R
1
.
Resta-nos provar que o fecho transitivo de R, que denotaremos por R
+
, e
R
+
=
_
iZ
+
R
i
ou seja
R
+

_
iZ
+
R
i
(5.5)
R
+

_
iZ
+
R
i
(5.6)
Come camos pela primeira inclus ao. Vamos provar que

iZ
+ R
i
( A A) e transitiva
e contem R, pelo que por deni c ao de fecho transitivo se concluir a (5.5). Como R = R
1
(por deni c ao de R
1
), segue trivialmente R

iZ
+ R
i
. Para justicar que

iZ
+ R
i
e
transitiva, sejam x, y, z A, e suponhamos que
(x, y)
_
iZ
+
R
i
e (y, z)
_
iZ
+
R
i
.
Por deni c ao de uni ao de rela c oes, se (x, y)

iZ
+ R
i
ent ao existe k Z
+
tal que xR
k
y.
E analogamente, (y, z)

iZ
+ R
i
p Z
+
yR
p
z. Ou seja,
((x, y)
_
iZ
+
R
i
(y, z)
_
iZ
+
R
i
) p, k Z
+
xR
k
y yR
p
z,
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 67
o que implica p, k Z
+
xR
k
R
p
z. Ent ao, pelo Lema 5, vem xR
k+p
z, isto e (x, z) R
k+p
.
Donde, (x, z)

iZ
+ R
i
. Logo,

iZ
+ R
i
e transitiva.
Mostremos agora que tambem (5.6). Para tal, vamos usar indu c ao sobre n Z
+
para
provar que
n Z
+
R
+

_
1in
R
i
o que implica a validade de (5.6). Se n = 1 ent ao

1in
R
i
= R. E, R R
+
por deni c ao
de fecho. Supondo agora que R
+


1ik
R
i
, vamos mostrar que ent ao R
+


1ik+1
R
i
.
Sejam x, y A tais que (x, y)

1ik+1
R
i
. Queremos concluir que ent ao (x, y) R
+
.
Por deni c ao de uni ao, (x, y)

1ik+1
R
i
se e s o se (x, y)

1ik
R
i
ou (x, y) R
k+1
.
Se for (x, y)

1ik
R
i
ent ao, por hip otese de indu c ao xR
+
y. Se for (x, y) R
k+1
,
ent ao existe z A tal que xRz zR
k
y (uma vez que R
k+1
= RR
k
por deni c ao).
Como R R
+
, e R
k


1ik
R
i
, e por hip otese de indu c ao

1ik
R
i
R
+
,
(xRz zR
k
y) (xR
+
z zR
+
y).
Como por deni c ao de fecho transitivo, R
+
e transitiva, vem xR
+
y.
Logo, pelo princpio de indu c ao matem atica e verdade que
n Z
+
R
+

_
1in
R
i
De (5.5) e (5.6) segue R
+
=

iZ
+ R
i
. .
Nota c ao. Sendo R uma rela c ao bin aria num conjunto, R
+
designa o fecho transitivo de R
e R

o seu fecho transitivo e reexivo.


Exemplo 42 Seja R a rela c ao denida em Z
+
por
xRy sse y = x + 3, x, y quaisquer em Z
+
R n ao e transitiva porque por exemplo (1, 4) R, (4, 7) R e (1, 7) / R. Assim,
R R
+
,= R. Vamos determinar R
+
, calculando

iZ
+ R
i
. Cada R
i
e uma rela c ao denida
em Z
+
e
R
1
= R
R
2
= RR = (x, y) [ z Z
+
xRz zRy = (x, y) [ y = x + 6
R
3
= RR
2
= (x, y) [ z Z
+
xRz zR
2
y = (x, y) [ y = x + 9
.
.
.
.
.
.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 68
Para n Z
+
, teremos
R
n+1
= RR
n
= (x, y) [ z Z
+
xRz zR
n
y = (x, y) [ y = x + 3(n + 1)
o que pode ser provado por indu c ao sobre n. Assim,
R
+
=
_
iZ
+
R
i
= (x, y) Z
+
Z
+
[ k Z
+
y = x + 3k.
O fecho simetrico e transitivo de R, seja R
st
, e
R
st
= (x, y) Z
+
Z
+
[ k Z y = x + 3k
Pode-se mostrar que o fecho simetrico e transitivo e sempre o fecho transitivo do fecho
simetrico.
Exerccio 5.5.2 Seja R uma rela c ao denida em A.
a) Mostre que se R e simetrica ent ao R
+
e simetrica.
b) Usando se necess ario a alnea anterior, prove que o fecho simetrico e transitivo de R e
(R R
1
)
+
, ou seja o fecho transitivo do fecho simetrico de R.
c) Verique se
(a) o fecho simetrico e transitivo e o fecho simetrico do fecho transitivo.
(b) o fecho transitivo e reexivo e o fecho transitivo do fecho reexivo.
(c) o fecho transitivo e reexivo e o fecho reexivo do fecho transitivo.
5.5.2 Fecho transitivo duma rela cao denida num conjunto nito
Mostr amos que o fecho transitivo e dado por uma uni ao innita de rela c oes. No entanto, em
certos casos essa uni ao pode-se reduzir de facto a uma uni ao nita.
Corol ario 25.1 Seja R A A (com A n ao necessariamente nito). Se existir algum
inteiro positivo m tal que R
m+1

1km
R
k
, ent ao R
+
=

1km
R
k
.
Prova: Seja R A A tal que R
m+1


1km
R
k
, para algum m Z
+
.
Vamos mostrar por indu c ao sobre k que
k m+ 1 R
k


1im
R
i
(5.7)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 69
pelo que, R
+
=

iZ
+ R
i


1im
R
i
. Como tambem

iZ
+ R
i


1im
R
i
, conclui-se
R
+
=

1im
R
i
.
A validade no caso k = m+ 1 e trivial, j a que R
m+1
est a nas condi c oes do corol ario.
Tomemos como hip otese de indu c ao a validade de (5.7) para um qualquer k m+1 xo,
e vamos mostrar que ent ao tambem e v alida para k + 1.
Mostrar que R
k+1


1im
R
i
equivale a vericar que para todo x, y A,
(x, y) R
k+1
(x, y)
_
1im
R
i
,
Por deni c ao de R
k+1
tem-se (x, y) R
k+1
se e s o se existe z A tal que xRz zR
k
y.
Usando a hip otese de indu c ao sobre R
k
, vem xRz e z

1im
R
i
y. Logo, por deni c ao de
uni ao, existe p m, tal que zR
p
y . Assim, existe z A tal que xRz e zR
p
y. Donde,
xR
p+1
y. Como p + 1 m+ 1, vem
R
p+1

_
1im+1
R
i
=
_
1im
R
i
.
Logo, (x, y)

1im
R
i
. Portanto, por indu c ao matem atica, (5.7) e v alida. .
Corol ario 25.2 Seja R uma rela c ao denida em A (n ao necessariamente nito). Se existir
m Z
+
tal que R
m
= ent ao R
+
=

1km1
R
k
(sup oe-se que e vazia a uni ao das rela c oes
R
k
com 1 k 0).
Prova: Se R
m
= , para algum m Z
+
, ent ao k m R
k
= . Assim, R
+
=

m1
k=1
R
k
.
A prova tambem e imediata se se recorrer ao Corol ario 25.1. J a que R
m


m1
k=1
R
k
se
R
m
= . .
Corol ario 25.3 Seja R uma rela c ao denida num conjunto nito A, e seja n = [A[. Ent ao
R
n+1


1jn
R
j
e R
+
=

1jn
R
j
Prova: Sejam x, y A tais que xR
n+1
y. Ent ao pelo Lema 3, existem x
1
, . . . x
n
tais que
xRx
1
. . . x
n
Ry.
Como A s o tem n elementos distintos, ou ocorrem repeti c oes em x
1
, . . . , x
n
, ou x e y
ocorrem em x
1
, . . . x
n
.
Se for x
i
= x
j
para algum (i, j) com i ,= j, ent ao podemos retirar x
i
Rx
i+1
. . . x
j1
Rx
j
e escrever xRx
1
. . . x
i1
Rx
i
x
i
Rx
j+1
. . . x
n
Ry identicando x
i1
com x caso seja i = 1,
e x
j+1
com y se for j = n. Logo xR
n+1j+i
y.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
5.5. FECHOS DUMA RELAC

AO PARA UMA PROPRIEDADE 70
Se n ao existirem repeti c oes em x
1
, . . . x
n
, ent ao x = x
i
para algum i.
Podemos ent ao escrever simplesmente xRx
i+1
. . . x
n
Ry identicando x
i+1
com y caso
i = n. Donde, xR
n+1i
y.
Mostrou-se que quaisquer que sejam x, y A se xR
n+1
y ent ao existe k n tal que xR
k
y.
Logo, R
n+1


1jn
R
j
.
Ent ao, pelo Corol ario 25.1, R
+
=

1jn
R
j
. .
Exemplo 43 Seja R a rela c ao bin aria em 1, 2, 3, 4, 5, 6, 7 representada pelo grafo seguinte.
1

2

5

6

J a determin amos anteriormente R


+
por an alise do grafo. Tambem poderiamos ter determi-
nado R
+
analiticamente: R
+
= R R
2
R
3
R
4
R
5
R
6
R
7
.
M
R
2 = (M
R
)
2
= M
R
M
R
M
R
3 = M
R
2M
R
M
R
4 = (M
R
)
4
= M
R
2 M
R
2
M
R
5 = M
R
4M
R
.
.
.
M
R
+ = M
R
M
R
2 M
R
3 M
R
4 M
R
5 M
R
6 M
R
7
Exerccio 5.5.3 Justique que quaisquer que sejam R e S denidas num conjunto A nito
e n ao vazio, M
RS
[i, j] = M
R
[i, j] M
S
[i, j] com 1 i, j [A[.
Exemplo 44 Note que se R for a rela c ao denida em 1, 2, 3, 4 representada pelo grafo
seguinte
1

2

ent ao (x, x) R
+
para todo x 1, 2, 3, 4 mas (x, x) / R
i
para todo i < 4. Neste caso,
R
+
= R R
2
R
3
R
4
= 1, 2, 3, 4 1, 2, 3, 4.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Captulo 6
Grafos e Multigrafos
Os grafos representam um modelo fundamental em Computa c ao, surgindo em
problemas de caminhos (por exemplo, caminho mnimo ou m aximo);
representa c ao de redes (por exemplo, de computadores);
descri c ao de sequencia de programas;
desenho de circuitos integrados;
representa c ao de rela c oes (por exemplo, ordena c ao, emparelhamento);
an alise sint actica de linguagens ( arvores sint aticas), etc.
frase
.

_
_
_
_
_
_
_
_
_
_
_
_
_
fn

fv

det

fn
.

det

o
rato
ca cou o gato
6.1 Grafos Dirigidos
Um grafo dirigido e denido por um par G = (V, E) em que V e um conjunto de vertices e
E um conjunto de ramos orientados que ligam pares de vertices de V , n ao existindo mais do
que um ramo com a mesma orienta c ao a ligar dois vertices.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.1. GRAFOS DIRIGIDOS 72
Quando o conjunto de vertices e nito (o que implica que o conjunto de ramos tambem
o seja), o grafo e nito, podendo-se desenhar. Por exemplo,
1

2
GFED BC


3 5
GFED BC

6
4

GF @ABC

e um grafo em que o conjunto de ramos e E = (1, 4), (1, 2), (2, 2), (2, 3), (4, 1), (4, 4), (5, 5) e
o conjunto de vertices e V = 1, 2, 3, 4, 5, 6.
Se (x, y) E, ent ao o vertice x e a origem e o vertice y o m do ramo (x, y), dizendo-se
que x e y s ao os extremos do ramo (x, y) e que o ramo e incidente em y.
Os arcos da forma (x, x), isto e com origem e m no mesmo vertice, chamam-se lacetes.
No exemplo, s ao tres os ramos incidentes no vertice 2, isto e, que terminam no vertice 2.
Este vertice tem grau de entrada tres e grau de sada dois.
O grau de entrada dum vertice e o n umero de ramos que tem m nesse vertice. O grau
de sada e o n umero de ramos que tem origem nesse vertice.
No exemplo, os vertices 5 e 6 s ao vertices isolados, pois n ao s ao origem nem m de
nenhum ramo com algum extremo noutro vertice.
Um percurso (nito) e uma sequencia nita formada por um ou mais ramos do grafo
tal que o extremo nal de qualquer ramo coincide com o extremo inicial do ramo seguinte
na sequencia. Um percurso num grafo dirigido ca bem identicado se se indicar a sequencia
de vertices por onde passa. Para o exemplo, o percurso (1, 4), (4, 1), (1, 2), (2, 2), (2, 2), (2, 3)
pode ser dado pela sequencia de vertices 1, 4, 1, 2, 2, 2, 3.
A origem do percurso e a origem do primeiro ramo no percurso e o m do percurso e
o m do ultimo ramo no percurso. Um percurso com origem em v e m em w e um percurso
de v para w. Chama-se circuito a um percurso em que a origem e o m coincidem. O
comprimento (ou ordem) dum percurso (nito) e o n umero de ramos que o constituem.
Assim, 1, 4, 1, 2, 2, 2, 3 tem origem em 1, m em 3 e comprimento seis, n ao sendo um
circuito. Note que, qualquer percurso de comprimento k envolve k + 1 vertices, n ao necessa-
riamente distintos.
Neste percurso, alguns vertices s ao visitados mais do que uma vez, concretamente os
vertices 1 e 2, e o ramo (2, 2) e usado mais do que uma vez.
Na terminologia moderna para grafos, caminho e um percurso sem repeti c ao de vertices
e ciclo e um percurso fechado que n ao tem repeti c ao de vertices com excep c ao do inicial e
nal. Designa-se por pista um percurso que n ao contem repeti c ao de ramos.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.1. GRAFOS DIRIGIDOS 73
A terminologia de grafos e pouco consistente, pelo que e sempre necess ario contextualizar
cada termo usado na bibliograa da area. Na terminologia cl assica de grafos usava-se a
designa c ao de caminho como sin onimo de percurso. Chamava-se ent ao caminho simples a um
percurso em que nenhum ramo ocorre duas ou mais vezes e caminho elementar a um percurso
em que nenhum vertice ocorre duas ou mais vezes. De acordo com a mesma terminologia,
ciclo era sin onimo de circuito, chamando-se ciclo simples se fosse tambem caminho simples.
6.1.1 Multigrafos dirigidos.
O conceito de grafo pode ser de certo modo generalizado para permitir a existencia de v arios
ramos com a mesma origem e m. Multigrafo dirigido e um terno (1, /, ) em que 1 e um
conjunto de vertices (ou n os), / um conjunto de ramos (ou arestas) e e uma fun c ao
de / em 1 1 que a cada ramo associa um par de vertices.
Assim, um grafo dirigido (simples) e um multigrafo dirigido (1, /, ) em e uma
fun c ao injectiva. Cada par ordenado de vertices ca associado por quando muito a um
ramo. Um grafo dirigido ca bem denido por um par (1, ) em que e uma rela c ao bin aria
em 1, ou seja, um conjunto de pares ordenados. Cada par e um ramo.
A origem e o m dum ramo tal que ( ) = (u, v) s ao os vertices u e v respecti-
vamente. Usam-se tambem as designa c oes de: n o inicial (nal), vertice inicial (nal) e
extremos.
Num multigrafo dirigido, o grau de entrada dum vertice e o n umero de ramos que tem
m nesse vertice; o grau de sada e o n umero de ramos que tem origem nesse vertice.
Exemplo 45 Considere o multigrafo dirigido representado na gura.
v
1

5

@A GF

1
ED

v
2

3

ED BC

4
@A

v
3

8

1 = v
1
, v
2
, v
3

/ =
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8

= (
1
, (v
1
, v
1
)), (
2
, (v
1
, v
2
)), (
3
, (v
2
, v
1
)), (
4
, (v
2
, v
2
)),
(
5
, (v
1
, v
3
)), (
6
, (v
1
, v
3
)), (
7
, (v
1
, v
3
)), (
8
, (v
3
, v
2
))
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.1. GRAFOS DIRIGIDOS 74
Pode-se observar que o grau de entrada de v
1
e 2 e o seu grau de sada e 5.
A sequencia de ramos
1

5

8

3

6
e um percurso de v
1
para v
3
(tem ciclos). Este percurso
n ao ca bem determinado se s o indicar a sequencia de vertices por onde passa.
Um percurso (nito) num multigrafo e uma sequencia nita formada por um ou mais
ramos do multigrafo e tal que o extremo nal de qualquer ramo coincide com o extremo
inicial do ramo seguinte na sequencia. Representamos um percurso pelo tuplo dos seus ramos
(
1
, . . . ,
k
) ou simplesmente
1
. . .
k
.
Um percurso num grafo dirigido ca bem representado se se indicar a sequencia de vertices
por onde passa. Assim, se
i
= (v
i
, v
i+1
), ent ao (v
1
, . . . v
k
, v
k+1
) representa um e um s o
percurso num grafo dirigido. Tambem poderemos representar por v
1
. . . v
k
v
k+1
.
A origem do percurso e a origem do primeiro ramo no percurso e o m do percurso e
o m do ultimo ramo no percurso. Um percurso com origem em v e m em w e um percurso
de v para w.
O comprimento (ou ordem) dum percurso (nito) e o n umero de ramos que o consti-
tuem.
Um circuito e um percurso fechado, ou seja, um percurso cuja origem e m coincidem.
Um lacete (loop) e um circuito de ordem 1.
6.1.2 Grafos, Percursos e rela c oes binarias
Grafo de uma rela c ao bin aria R denida em A e um grafo dirigido (1, ): os vertices
do grafo identicam-se com os elementos do conjunto A e a rela c ao com a rela c ao R.
Proposi c ao 26 (cf. Lema 3, captulo 5) Seja G = (1, ) um grafo dirigido e sejam u e
v vertices em 1. Dado k Z
+
existe percurso de u para v de comprimento k se e s o se
(u, v)
k
.
Corol ario 26.1 (cf. Proposi c ao 25, captulo 5)) Seja G = (1, ) um grafo dirigido. Sejam
u e v vertices em 1. Existe algum percurso de u para v se e s o se (u, v)
+
, sendo
+
o
fecho transitivo de .
Notando que qualquer percurso de comprimento k envolve k + 1 vertices facilmente se
mostra a seguinte proposi c ao.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.2. GRAFOS N

AO DIRIGIDOS 75
Corol ario 26.2 Seja G = (1, ) um grafo dirigido nito. Qualquer percurso de ordem maior
ou igual a [1[ contem um circuito.
Corol ario 26.3 (por Corol arios 25.3, captulo 5)) e 26.2 ) Seja G = (1, ) um grafo dirigido
nito. Sejam u e v vertices em 1. Existe algum percurso de u para v se e s o se existe algum
percurso de u para v de ordem n ao superior ao [1[. E, se u ,= v ent ao existe algum percurso
de u para v se e s o se existe algum percurso de u para v de ordem inferior ao [1[.
Paralelamente, tambem se pode mostrar que se R e uma rela c ao bin aria num conjunto
nito A, [A[ = n 2 e x, y A s ao distintos, ent ao xR
n
y se e s o se existir p, tal que
1 p < n e (x, y) R
p
. Verique que este resultado n ao pode ser generalizado a pares da
forma (x, x). Compare com o Corol ario 25.3, captulo 5.
Dados u e v vertices de um multigrafo dirigido, diz-se que v e acessvel de u se e s o se
u = v ou existe no multigrafo algum percurso de u para v.
Um multigrafo dirigido G e fortemente conexo se e s o se qualquer vertice e acessvel de
qualquer outro vertice nesse multigrafo.
Corol ario 26.4 Um grafo dirigido G = (1, ) e fortemente conexo se e s o se

= V V ,
sendo

o fecho transitivo e reexivo de .


6.2 Grafos Nao Dirigidos
Multigrafo n ao dirigido e um terno (1, c, ) em que 1 e um conjunto de vertices (ou
n os), c um conjunto de ramos e e uma fun c ao de c no conjunto de pares n ao ordenados
de elementos de 1. Escreve-se () = u, v). Usaremos u, v) ou u, v para representar um
par n ao ordenado.
Grafo n ao dirigido (simples) e um multigrafo n ao dirigido (1, c, ) em que e uma
fun c ao injectiva. Cada par de vertices n ao ordenado ca associado por quando muito a um
ramo.
v
1
v
2

v
3
v
4
v
1
v
5

v
2

v
3
v
4
`
A esquerda est a representado um multigrafo n ao dirigido que n ao e grafo dirigido, j a que h a
mais do que um ramo a ligar v
1
e v
2
.
`
A direita temos um grafo n ao dirigido.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.2. GRAFOS N

AO DIRIGIDOS 76
Multigrafo adjunto de um multigrafo n ao dirigido G = (1, c, ) e um multigrafo diri-
gido G
A
= (1, /, ) tal que a cada ramo de c unindo vertices diferentes correspondem dois
ramos em /, e vice-versa. Se () = u, v) e u ,= v ent ao existem dois ramos
1
e
2
em /
tais que (
1
) = (u, v) e (
2
) = (v, u).
O grafo adjunto de um grafo n ao dirigido G = (1, c, ) e um grafo dirigido (1, ) em que
e simetrica. Tem-se (u, v) e (v, u) sse () = u, v) para algum c.
Se () = u, v) ent ao u e v dizem-se extremos do ramo .
Um percurso (nito) num multigrafo n ao dirigido e uma sequencia nita formada por
um ou mais ramos do multigrafo que corresponde a um percurso no multigrafo adjunto.
Num grafo n ao dirigido (v
0
, v
1
), v
1
, v
2
), . . . v
k1
, v
k
)) representa um percurso entre v
0
e
v
k
. Se se indicar a sequencia de vertices por onde um percurso passa, (v
0
, v
1
, v
2
, . . . , v
k1
, v
k
)
pode ser entendido como um percurso de v
0
para v
k
.
O comprimento (ou ordem) dum percurso (nito) e o seu n umero de ramos.
Umcircuito num grafo n ao dirigido e um percurso fechado (v
0
, v
1
), v
1
, v
2
), . . . v
k1
, v
k
))
que v
0
e v
k
coincidem. Um ciclo (por vezes designado ciclo simples) e um circuito que n ao
tem repeti c ao de vertices com excep c ao do inicial e nal.
Um grafo n ao dirigido e acclico se e s o se n ao contem ciclos (nem lacetes).
v
1
v
2

v
3
v
4
v
1
v
5

v
2

v
3
v
4
tem circuitos tem ciclos (simples)
n ao tem ciclos (simples) n ao e acclico
Grau de um vertice num grafo n ao dirigido e o n umero de ramos que tem esse vertice
como extremo.
Um subgrafo
1
de um grafo G = (1, c) e um grafo G

= (1

, c

) em que 1

1, c

c.
Tambem se pode denir subgrafo de um multigrafo (dirigido ou n ao).
1
Alguns autores consideram ainda que E

ter a que ter todos os ramos de E que unem vertices em V

,
chamando subgrafo parcial se algum ramo que liga vertices em V

n ao pertencer a E

.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.2. GRAFOS N

AO DIRIGIDOS 77
6.2.1 Grafos Conexos
Num multigrafo n ao dirigido, dado um par de vertices u, v diz-se que v e acessvel de u se
e s o se u = v ou existe no multigrafo algum percurso entre u e v. Facilmente se reconhece
que a rela c ao acessibilidade e de equivalencia.
Um multigrafo n ao dirigido G e conexo se e s o se qualquer vertice e acessvel de qualquer
outro vertice nesse multigrafo.
Dado um qualquer multigrafo n ao dirigido G, pode-se mostrar que cada classe de equi-
valencia da rela c ao de acessibilidade corresponde a um subgrafo de G que e conexo e que
e m aximo (no sentido deixa de ser conexo se se tentar juntar mais algum vertice de G).
Tais subgrafos dizem-se componentes conexas de G. Por abuso de linguagem, chamare-
mos ainda componentes conexas ` as classes de equivalencia da rela c ao de acessibilidade. O
conjunto de vertices na componente identica-a perfeitamente.
O multigrafo (n ao dirigido) seguinte tem duas componentes conexas.
v
1
v
2

v
3
v
4
v
5
v
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
v
7

v
8
A rela c ao de acessibilidade n ao depende da existencia de v arios ramos entre dois vertices.
A cada multigrafo n ao dirigido podemos associar um grafo n ao dirigido substituindo cada
conjunto de ramos entre um mesmo par de vertices por apenas um ramo. Podemos ainda
retirar todos os lacetes. O grafo n ao dirigido assim denido determina a mesma rela c ao de
acessibilidade que o multigrafo dado.
Proposi c ao 27 Um multigrafo n ao dirigido e conexo se e s o se o seu multigrafo adjunto e
fortemente conexo.
Lema 6 Seja G = (1, ) um grafo n ao dirigido nito, conexo, [[ 1.
(i) Se se retirar um ramo de G, o grafo resultante tem quando muito duas componentes
conexas.
(ii) Seja v um vertice de G. Se v tem grau m, ent ao se retirar v e todos os ramos com
extremo em v, o grafo resultante tem quando muito m componentes conexas.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.2. GRAFOS N

AO DIRIGIDOS 78
Exerccio 6.2.1 Prove o Lema 6. Para (i), suponha que o ramo u, v) e retirado. Considere
/
v
assim denido
/
v
= w 1 [ w = v ou existe percurso em G entre w e v que n ao inclui o ramo u, v)
e mostre que se 1/
v
,= ent ao u / /
v
e 1/
v
e o conjunto
w 1 [ w = u ou existe algum percurso em G entre w e u que n ao inclui o ramo u, v)
e /
v
e 1/
v
correspondem a subgrafos conexos (e maximais) de G, ou seja componentes
conexas. Para (ii), use indu c ao sobre o n umero de ramos retirados.
6.2.2 Condi cao necessaria para um grafo ser conexo
Pretende-se ligar um conjunto de localidades, seja l
1
, l
2
, . . . , l
n
, por estradas. Qual o n umero
mnimo de estradas a construir para que seja possvel chegar de qualquer localidade a qualquer
uma das restantes?
O resultado enunciado a seguir, permite dar uma primeira resposta a tal quest ao pelo
menos n1 estradas ter ao que ser construdas. Esse n umero e suciente desde que as liga c oes
sejam feitas com algum cuidado (cf. Proposi c ao 29 ` a frente).
Proposi c ao 28

E condi c ao necess aria para que um qualquer grafo n ao dirigido e nito (1, c)
seja conexo que [c[ [1[ 1.
Prova: Vamos mostrar por indu c ao sobre o n umero de vertices do grafo que
n Z
+
G G = (1, c) grafo n ao dirigido conexo, [1[ = n [c[ [1[ 1
A condi c ao e verdadeira para n = 1 j a que o grafo n ao dirigido com 1 s o vertice e zero
ramos e trivialmente conexo. Vamos tomar como hip otese de indu c ao a validade da condi c ao
para todos os grafos n ao dirigidos e conexos cujo n umero de vertices n ao excede k. Ou seja,
1 i k Z
+
G G = (1, c) grafo n ao dirigido conexo, [1[ = i [c[ [1[ 1
e vamos mostrar que ent ao a proposi c ao e v alida para grafos com k + 1 vertices.
Seja G um grafo n ao dirigido conexo e com k + 1 vertices. Como G n ao tem vertices
isolados (j a que G e conexo e k + 1 2) seja v um qualquer vertice de V e seja p 1 o
seu grau. Considere-se o subgrafo que se obtem retirando v e os p ramos com extremo em v.
Pelo Lema 6, tal grafo e constitudo por m (m p) componentes conexas: sejam G
1
, . . . G
m
.
Cada um dos G
i
e n ao dirigido, conexo, e tem um n umero de vertices (seja n
i
) n ao superior
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.3.

ARVORES 79
a k. Ent ao, por hip otese de indu c ao, o n umero de ramos de cada G
i
e maior ou igual a n
i
1.
Donde,
[c[ p +
m

i=1
(n
i
1) = p +k m k = [1[ 1
Note que cada vertice pertence a uma s o componente conexa, pelo que

m
i=1
n
i
= k.
Conclui-se assim por indu c ao matem atica que se G = (1, c) e n ao dirigido, nito e conexo,
ent ao [c[ [1[ 1. .
Exerccio 6.2.2 Mostre que o recproco da Proposi c ao 28 e falso ou seja, que existem grafos
n ao dirigidos que n ao s ao conexos embora [c[ [1[ 1.
Lema 7 Seja G um grafo n ao dirigido conexo. Se G n ao e acclico ent ao e possvel retirar
algum ramo a G de modo que o grafo resultante seja tambem conexo.
Lema 8 Seja G um grafo n ao dirigido conexo e com pelo menos 2 vertices, tal que se se
retirar algum ramo, o grafo resultante e n ao conexo. Ent ao G tem pelo menos dois vertices
de grau 1.
Exerccio 6.2.3 Prove os Lemas 7 e 8. Para mostrar 8 use indu c ao sobre o n umero de
vertices do grafo, e se necess ario o resultado (i) do Lema 6.
6.3

Arvores

Arvore e um grafo n ao dirigido conexo com n vertices e n 1 ramos. Se tiver 1 vertice (e 0


ramos) diz-se arvore degenerada.




.
.
.
.
.
.
.
.
.
.
.
.
.



arvore n ao e arvore arvore
Proposi c ao 29 (caracteriza c ao das arvores) S ao equivalentes as seguintes caracteriza c oes
de arvores n ao degeneradas.

Arvore n ao degenerada e um grafo n ao dirigido com n > 1
vertices
1. conexo e acclico.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.3.

ARVORES 80
2. tal que entre cada par de vertices (distintos) existe um s o caminho.
3. conexo, e se se retirar algum ramo (u, v), u ,= v) o grafo deixa de ser conexo.
4. conexo e se se juntar mais algum ramo sem alterar o conjunto de vertices, o grafo ca
com um e um s o ciclo (simples).
5. acclico e com n 1 ramos.
6. conexo e com n 1 ramos.
Prova: Vamos provar a equivalencia das caracteriza c oes mostrando
(1) (2) (3) (4) (1)
(1) (5) (6) (1).
(1) (2) j a que se C e C

fossem dois caminhos distintos entre u e v, para algum par


de vertices u, v de G, ent ao CC

seria um circuito em G (e conteria um ciclo) pelo que


G n ao seria acclico.
(2) (3) j a que se se retirar um ramo, seja u, v), o grafo deixa de ser conexo, pois
passa a n ao existir caminho entre u e v, uma vez que entre cada par de vertices de G
existia um e um s o caminho.
(3) (4) se se juntar mais um ramo, seja u, v) = ent ao como j a existia caminho em
G entre u e v forma-se um ciclo, C (em que C era o caminho entre u e v). Se se formar
um outro ciclo, ent ao tem tambem que estar nesse ciclo. Seja C

, esse outro ciclo.


Ent ao C

e um caminho entre u e v diferente de C, pelo que CC

e um ciclo em G.

E
possvel retirar um ramo em CC

sem que o grafo passe a ser n ao conexo (cf. Lema 7),


o que contraria (3).
(4) (1) se G j a tivesse algum ciclo ent ao se se juntar um ramo entre dois vertices no
ciclo, forma-se pelo menos dois ciclos, o que contraria (4). Logo, G e acclico.
Concluimos assim que (1), (2), (3), e (4) s ao equivalentes. Para completar a prova da
Proposi c ao, vamos mostrar agora a equivalencia de (1), (5) e (6).
(1) (5) (por indu c ao sobre o n umero de vertices) Se o grafo tiver exactamente 2
vertices ent ao tem apenas um ramo, e se for um vertice isolado, ent ao tem 0 ramos
(sen ao n ao seria acclico). Tomamos como hip otese de indu c ao a validade da condi c ao
para grafos com i vertices, 1 i k. E, vamos mostrar que ent ao ainda e v alida para
grafos com k + 1 vertices.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.3.

ARVORES 81
Seja G = (1, c) um grafo com k + 1 vertices, conexo e acclico. Como G e conexo e
tem pelo menos dois vertices, ent ao tem ramos. Retire-se um ramo de G, seja u, v).
Como j a mostr amos que (1) e (3) s ao equivalentes, o grafo resultante e n ao conexo. Pelo
Lema 6 podemos armar que tem exactamente duas componentes conexas: sejam G
1
e
G
2
. Sejam n
1
e n
2
o n umero de vertices respectivos. Ent ao 1 n
i
k, e como cada
G
i
e um subgrafo acclico (sen ao G conteria ciclos) e conexo, ter a que ter n
i
1 ramos
(por hip otese de indu c ao). Consequentemente,
[c[ = (n
1
1) + (n
2
1) + 1 = (n
1
+n
2
) 1 = (k + 1) 1 = k = [1[ 1.
Portanto, por indu c ao matem atica podemos concluir que qualquer grafo n ao dirigido
nito, acclico e conexo tem exactamente menos um ramo do que vertices.
(5) (6) Seja G um grafo qualquer com k vertices acclico e com k1 ramos. Se G n ao
for conexo, ent ao seja m o n umero de componentes conexas de G. Como G e acclico,
cada componente conexa e acclica pelo que tem exactamente n
i
1 ramos, se for n
i
o seu n umero de vertices. Isto porque, j a mostr amos que (1) (5), e se alguma das
componentes se reduzir a um vertice ter a que ter zero ramos.
Ent ao k 1 =

m
i=1
(n
i
1) = k m. Logo, m = 1, ou seja, G s o tem uma componente
conexa, sendo portanto conexo.
(6) (1) Se o grafo n ao fosse acclico ent ao, pelo Lema 7, poderiamos retirar um ramo,
sendo o grafo resultante ainda conexo. Como o grafo dado tinha n 1 ramos, ent ao o
novo grafo teria n2 ramos e seria conexo, o que contraria o resultado da Proposi c ao 28.
Logo, se G e conexo com n 1 ramos ent ao G e conexo e acclico. 2
Numa arvore n ao degenerada, os vertices com grau 1 chamam-se folhas e os de grau
superior chamam-se n os internos ou simplesmente n os.
6.3.1

Arvores com raz

Arvore com raz e um grafo dirigido com n vertices e n1 ramos e tal que existe um e um
s o vertice do qual todos s ao acessveis. Tal vertice chama-se a raz da arvore. As folhas numa
arvore com raz s ao os vertices com grau de sada zero. A raz da arvore e o unico vertice
com grau de entrada zero. Numa arvore com raz os lhos ou descendentes directos de
um n o v s ao os extremos nais de ramos com origem em v. Os descendentes de um n o s ao
os lhos desse n o e os descendentes dos lhos desse n o. Um n o e pai dos seus lhos.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.4. PERCURSOS EULERIANOS E HAMILTONIANOS 82

Arvore ordenada (ou orientada ) e uma arvore com raz e tal que o conjunto de ramos
que saem dum vertice est a totalmente ordenado.
As arvores sint acticas s ao arvores ordenadas.
frase

fn

fv

det

fn

det

o
rato
ca cou o gato
expr
.

_
_
_
_
_
_
_
_
_
_
_
expr

expr
.

inteiro

expr

expr

inteiro

inteiro

5 + 3 + 8
As arvores seguintes poderiam iguais se se considerasse que eram arvores com raz, mas
s ao diferentes se se considerar que s ao arvores ordenadas (e 1 < 2).


Os valores atribudos aos ramos especicam a ordem subentendida. Em geral, n ao se colocam
esses valores pois convenciona-se que a representa c ao j a obedece a essa ordem: ou o ramo mais
` a esquerda e o maior ou e o menor. Uma arvore ordenada diz-se arvore n- aria se o grau
de sada de cada vertice n ao excede n. As arvores das gura anterior s ao arvores bin arias.
Quando se tem uma arvore bin aria e usual falar da sub- arvore direita e na sub- arvore
esquerda dum n o.
6.4 Percursos Eulerianos e Hamiltonianos
Um percurso de Euler num multigrafo e uma pista (ie, percurso sem repeti c ao de ramos)
que inclui todos os ramos desse multigrafo. Se tal percurso e um circuito diz-se circuito de
Euler.
Um exemplo cl assico de aplica c ao e o Problema das sete pontes de K onigsberg ([Euler,
1736]): pretende-se partir dum local da cidade e regressar ao mesmo local passando por cada
ponte exactamente uma vez.
A
A
A
A
A
A
A
A

c A. P. Tom as Dep. de Ciencia de Computadores FCUP


6.5. GRAFOS PLANARES 83
Proposi c ao 30 Seja G um grafo n ao dirigido, nito e sem vertices isolados. Existe um
circuito de Euler em G se e s o se G e conexo e todos os vertices de G tem grau par. Existe
um percurso de Euler em G se e s o se G e conexo e o n umero de vertices em G com grau
mpar e 0 ou 2.
Exerccio 6.4.1 Verique se e possvel desenhar cada uma das guras sem levantar o l apis
do papel e sem desenhar duas vezes a mesma linha, baseando-se na Proposi c ao 30.
Um percurso de Hamilton (1859) num multigrafo e um percurso que passa por cada
vertice do multigrafo uma e uma s o vez.
Um circuito de Hamilton e um circuito com origem e m no mesmo vertice e que passa
por cada um dos restantes vertices do multigrafo uma e uma s o vez. Serve de modelo ao
Problema do caixeiro viajante, que tendo que visitar v arias localidades, pretende saber qual
o melhor caminho a percorrer sem passar (se possvel) duas vezes na mesma localidade.
N ao se conhece qualquer condi c ao necess aria e suciente que garanta a existencia dum
percurso (nem dum circuito) de Hamilton num grafo. Apenas para alguns casos particulares.
Por exemplo: existe percurso hamiltoniano em qualquer grafo n ao dirigido completo com pelo
menos dois vertices.
Um grafo n ao dirigido, nito e sem lacetes, e tal que existe um ramo entre cada par de
vertices diferentes, diz-se completo. O grafo completo com n vertices, denota-se por K
n
.
6.5 Grafos Planares
Um grafo e planar sse for possvel represent a-lo no plano sem que haja cruzamento de ramos.
Exerccio 6.5.1 Justique que o grafo (1, c) e planar, para 1 = 1, 2, 3, 4, 5, 6, 7, 8 e c =
1, 2), 1, 8), 1, 6), 2, 3), 2, 7), 3, 8), 3, 4), 4, 5), 4, 7), 5, 6), 5, 8), 6, 7).
Um grafo n ao dirigido (1, c) diz-se bipartido se e s o se existir uma parti c ao V
1
, V
2
do
conjunto 1 tal que para todo v
1
, v
2
) c se tem v
1
V
1
e v
2
V
2
.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.6. ISOMORFISMO DE GRAFOS 84
Se cada vertice em V
1
estiver ligado a cada um dos vertices de V
2
por um ramo, o grafo
diz-se bipartido completo. Nesse caso, se [V
1
[ = m e [V
2
[ = n, o grafo denota-se por K
m,n
.
Na gura apresenta-se K
3,3
(bipartido completo) e K
5
(completo, n ao bipartido).


Estes dois grafos n ao s ao planares.
O Teorema de Kuratowski (1930) arma que um grafo n ao dirigido nito n ao e planar
se e s o se tiver como subgrafo K
5
ou K
3,3
ou algum grafo que possa ser obtido de K
5
ou K
3,3
por inser c ao ou elimina c ao de vertices de grau 2. A prova deste teorema est a fora do ambito
da disciplina.
6.6 Isomorsmo de Grafos
Dois grafos dirigidos (V
1
, E
1
) e (V
2
, E
2
) s ao isomorfos se e s o se existir uma bijec c ao f de V
1
em V
2
tal que (v
1
, v
2
) E
1
sse (f(v
1
), f(v
2
)) E
2
. De modo semelhante, diz-se que dois
grafos n ao dirigidos (V
1
, E
1
) e (V
2
, E
2
) s ao isomorfos se e s o se existir uma bijec c ao f de V
1
em V
2
tal que v
1
, v
2
) E
1
sse f(v
1
), f(v
2
)) E
2
. Tais bijec c oes preservam a estrutura de
liga c oes do grafo.
Por exemplo, os dois grafos seguintes s ao isomorfos, o que nos permite concluir que o grafo
desenhado ` a esquerda e planar.
a b
c d
1 2
3 4
A seguir apresentam-se (a menos de isomorsmo) todos os grafos n ao dirigidos conexos
que tem n vertices, para 1 n 4.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.7. COLORAC

AO DE GRAFOS 85
1
2
3
4
6.7 Colora cao de Grafos
Considere o mapa da Europa. Qual e o n umero mnimo de cores necess ario para colorir o
mapa de forma que pases que tem fronteira comum sejam coloridos com cores diferentes? O
problema tem por modelo o seguinte problema de grafos.
Seja G = (1, c) n ao dirigido nito. O n umero crom atico e o menor n umero de cores
necess arias para colorir os vertices do grafo de forma que se u ,= v e u, v) c, ent ao u e v
cam com cores distintas.
Exerccio 6.7.1 Qual o n umero crom atico de cada um dos grafos seguintes?
Qual e o n umero crom atico duma arvore n ao degenerada? E dum grafo bipartido? E de K
n
?
O Teorema das 4 cores diz que o n umero crom atico de qualquer grafo n ao dirigido nito
que seja planar n ao excede quatro. Este teorema foi durante mais de 100 anos uma conjectura
(ie, resultado cuja validade n ao foi demonstrada nem a falsidade). Enunciado por F. Guthrie
em 1850, s o foi provado em 1976 por K. Appel e W. Haken, com ajuda dum computador para
efectuar a an alise dalguns casos relevantes. A sua prova est a fora do ambito da disciplina.
Exerccio 6.7.2 Uma loja de animais de estima c ao, recebeu uma encomenda de peixes tro-
picais. Algumas das especies comem outras especies. Sabendo que o grafo (n ao conexo)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 86
apresentado no exerccio anterior representa as incompatibilidades das diferentes especies,
justique que o n umero mnimo de aqu arios necess arios e igual ao n umero crom atico do
mesmo. Justique que e sempre assim, qualquer que seja a rela c ao de incompatibilidade.
6.8 Grafos com Valores Associados aos Ramos
Um multigrafo com valores associadas aos ramos e um quarteto (1, c, , L) em que
(1, c, ) e um multigrafo, e L : c R
+
0
e uma fun c ao de c no conjunto dos reais n ao
negativos. S o iremos considerar reais n ao negativos.
Para um grafo dirigido podemos reduzir o quarteto a um terno (1, , L). Se o grafo for
nito, ent ao podemos associar uma matriz de dist ancias D do modo seguinte:
D
ij
= L(v
i
, v
j
) sse (v
i
, v
j
)
D
ij
= sse (v
i
, v
j
) /
para 1 i [1[, 1 j [1[. Os elementos da matriz D s ao elementos de R
+
0
.
No exemplo seguinte, o valor que marca cada ramo representa a dist ancia associada a esse
ramo.
a
1

b
10
/

e
2

c
d
3

f
A matriz D das dist ancias associadas aos arcos e
_

_
0 1 5
0 10 2 2
0
3 0 7 1
0 2
0
_

_
para v
1
= a, v
2
= b, . . . , v
6
= f, tendo-se seguido a conven c ao de que a dist ancia de um vertice
a si pr oprio e zero.
Se n ao existir ramo de u para v convencionamos que a dist ancia associada ao ramode
u para v e . Leia-se como indeterminado ou indenido.
Os problemas de c alculo de dist ancia mnima entre localidades e custo mnimo de produ c ao
de um dado produto tem muitas vezes por modelo um grafo como o descrito.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 87
A dist ancia associada a um percurso de u para v e a soma das dist ancias associadas
aos ramos no percurso. Podemos denir uma opera c ao bin aria
2
em R
+
0
que
prolongue a opera c ao usual de adi c ao em R
+
0
assim:
x y = x +y sse x R
+
0
e y R
+
0
x y = sse x = ou y =
Se n ao existir percurso de u para v, a dist ancia de u para v e .
6.8.1 Determina cao da distancia mnima
Dados dois vertices u e v num grafo nito (1, , L) como determinar a dist ancia mnima de
u para v? Seja C
uv
o conjunto dos percursos de u para v, u ,= v. Se C
uv
= convencionamos
que a dist ancia mnima para aceder de u a v e . Se C
uv
,= ent ao a dist ancia mnima e
mind

[ d

e a dist ancia pelo percurso , para C


uv
.
Como o grafo e nito, tal mnimo e
mind

[ d

e a dist ancia por C


uv
e a ordem de n ao excede [1[ 1
pois os percursos com ordem (comprimento) maior que [1[1 contem circuitos, correspondendo-
lhes por isso dist ancias iguais ou superiores.
Dado um grafo nito (1, , L), convencion amos que a dist ancia mnima entre vertices
iguais era zero. Em cada caso pr atico deve-se vericar se esta conven c ao faz sentido.
Algoritmo de Bellman-Ford
Vamos designar por D
m
a matriz das dist ancias mnimas por percursos de ordem n ao
superior a m. Se tivermos calculado D
m
, podemos obter as dist ancias mnimas por percursos
de ordem n ao superior a m+1, analisando a dist ancia associada a percursos que tem mais um
ramo do que os percursos mnimos obtidos anteriormente. Se esses percursos com mais um
ramo n ao forem melhores ent ao deve-se dar preferencia aos anteriores. Assim, D
m+1
pode
ser obtida ` a custa de D
m
e de D
1
= D, por (6.1)
D
m+1
ij
= min( D
m
ij
, min D
m
ik
D
kj
[ 1 k [1[ ) (6.1)
para 1 i [1[, 1 j [1[, e min denido por:
min(x, y) = x sse x R
+
0
, y R
+
0
, e x y
min(x, y) = y sse x R
+
0
, y R
+
0
, e y x
min(x, ) = x
min(, y) = y
2
Opera c ao bin aria num conjunto A e uma fun c ao de A A em A.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 88
A matriz das dist ancias mnimas e uma matriz D
m
tal que D
m+1
= D
m
, isto e que
se mantem invariante quando se efectuar a transforma c ao descrita.
Observa c ao: A transforma c ao corresponde ao c alculo da matriz D
m
+D
m
D em que +
e uma soma de matrizes e e um produto de matrizes, para matrizes quadradas cujas
entradas s ao elementos da estrutura (R
+
0
, min, ). Esta observa c ao deve car clara
na disciplina de Elementos de

Algebra Linear. Compare ainda com a matriz da composta de
rela c oes bin arias.
Convencionando D
ii
= 0, para 1 i [1[, podemos simplicar a f ormula (6.1):
D
m+1
ij
= minD
m
ik
D
kj
[ 1 k [1[
Para o exemplo anterior, as tres primeiras linhas da matriz D
2
s ao
_

_
0 1 11 3 3 7
0 5 2 2 3
0
_

_
no exemplo acima indicado. A determina c ao das restantes linhas e o c alculo da matriz das
dist ancias mnimas (absolutas) cam ao cuidado do leitor. Dever a obter:
_

_
0 1 6 3 3 4
0 5 2 2 3
0
3 0 7 1
0 2
0
_

_
Algoritmo de Floyd
Sup oe-se que os vertices em 1 foram numerados de 1 a n = [1[. O algoritmo de Floyd (1962),
apresentado na gura 6.1, permite determinar a dist ancia e um percurso mnimo para todos
os pares de vertices.
O processo de constru c ao da matriz das dist ancias mnimas e iterativo: na itera c ao k
obtem-se a matriz D
k
das dist ancias mnimas por percursos que s o podem ter como vertices
intermedios v
1
, . . . , v
k
. (NB: Esta matriz D
k
n ao e a mesma que se deniu acima!) Agora,
para 1 k < n,
D
k+1
ij
= min(D
k
ij
, D
k
i k+1
+D
k
k+1 j
)
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 89
Dados: a matriz D das dist ancias e n umero de vertices n
Resultado: a matriz das dist ancias mnimas em D e a matriz P
Inicializar P.
Para k 1 ate n
Para i 1 ate n
Para j 1 ate n
Se D[i, j] > D[i, k] +D[k, j] ent ao
D[i, j] D[i, k] +D[k, j];
P[i, j] P[i, k];
Figura 6.1: Algoritmo de Floyd
j a que qualquer percurso optimo de v
i
para v
j
que s o possa ter v
1
, . . . , v
k
, v
k+1
como vertices
intermedios e ou um percurso optimo que s o pode ter v
1
, . . . , v
k
como vertices intermedios ou
a concatena c ao (jun c ao) dum percurso optimo de v
i
a v
k+1
com um percurso optimo de v
k+1
a v
j
, ambos s o podendo ter v
1
, . . . , v
k
como vertices intermedios.
Note que esta descri c ao do algoritmo n ao corresponde exactamente ao algoritmo apre-
sentado na gura 6.1, pois n ao foi considerada uma matriz de dist ancias para cada itera c ao.
Para permitir tambem determinar o percurso mnimo, o algoritmo apresentado vai
construindo uma matriz P
k
: a posi c ao P
k
ij
guarda sempre o segundo vertice no melhor percurso
de v
i
para v
j
que se encontrou ate ` a itera c ao k. Inicialmente, pode-se denir,
P
ij
=
_
j se i = j ou (v
i
, v
j
) c
0 se i ,= j e (v
i
, v
j
) / c
Poder-se-ia ter denido a matriz P doutras formas. Por exemplo, podemos tomar P
k
ij
como o vertice intermedio no percurso (mnimo) de i para j que foi usado para determinar o
melhor valor de D
k
ij
. Assim, considerando que os vertices est ao numerados de 1 a n, podemos
inicialmente fazer P
ij
0 para todo i e todo j (signicando que n ao e conhecido nenhum
vertice intermedio no percurso de i para j). Na actualiza c ao, quando D[i, j] > D[i, k]+D[k, j],
far-se-ia P
ij
k, j a que o percurso melhor de i para j encontrado ate ` a itera c ao k passa por k.
No nal, se D
ij
< , sendo i ,= j, ent ao o percurso mnimo de i para j e a sequencia formada
por i, os vertices intermedios nesse percurso e nalmente j. Para determinar os vertices
intermedios no percurso de i para j, verica-se P
ij
,= 0, e se for o caso, ent ao imprimem-se
os vertices intermedios no percurso de i para P
ij
, imprime-se P
ij
e nalmente imprimem-se
os vertices intermedios no percurso de P
ij
para j.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 90
Algoritmo de Dijkstra
O algoritmo de Dijkstra (1959), apresentado na gura 6.2, calcula a dist ancia mnima dum
dado vertice a todos os outros.
Dados: Um grafo G = (1, c, d) dirigido com valores nos arcos, e u
0
1.
Resultado: O vector Dest das dist ancias mnimas de v a cada um dos vertices.
Inicializar M u
0
, Dest[u
0
] 0 e Dest[v] para todo v 1 u
0
.
Enquanto M ,= 1 fazer
seja w o ultimo vertice colocado em M;
actualizar a estimativa das dist ancias a u
0
: para cada v 1 M fazer
Dest[v] min(Dest[v], Dest[w] +d(w, v)).
seja v 1 M tal que Dest[v] e mnimo;
M M v.
Figura 6.2: Algoritmo de Dijkstra
Em cada passo, os vertices em M s ao aqueles para os quais j a e conhecida a dist ancia
mnima a partir de u
0
. O valor de Dest[v] para v M a dist ancia mnima de u
0
a v.
Se substituir a condi c ao M ,= 1 por u
f
/ M (sendo dado u
f
1), o algoritmo termina
quando a dist ancia mnima de u
0
a u
f
for conhecida. Todos os vertices que podem
ocorrer no percurso mnimo de u
0
para u
f
est ao em M.
Dado u
f
1u
0
, o percurso mnimo de u
0
para u
f
pode ser obtido por an alise para
tr as do modo seguinte: escolher v M com (v, u
f
) c e Dest[v] +d(v, u
f
) = Dest[u
f
];
se v ,= u
0
, escolher v

M tal que (v

, v) c e Dest[v

] + d(v, v

) = Dest[v]. . . e assim
sucessivamente ate chegar a u
0
. O percurso de u
0
para u
f
e dado pela sequencia de
vertices seleccionados, na ordem inversa da de selec c ao: a ultima escolha e o 1
o

vertice
no percurso, a pen ultima o 2
o

, . . .
Note que a instru c ao Dest[v] min(Dest[v], Dest[w] + d(w, v)) actualiza Dest[v] se
Dest[v] < Dest[w] +d(w, v), tendo sido assim identicado um percurso mais curto de u
0
para v, sendo w o pen ultimo vertice nesse percurso. Se registar esse facto, por exemplo
num vector Prec, fazendo Prec[v] w, ent ao, no nal, na an alise para tr as, basta
imprimir
u
f
, Prec[u
f
], Prec[Prec[u
f
]], . . . , u
0
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 91
para ter os vertices no (ou num) percurso minmo de u
0
para u
f
(por ordem inversa).
Ou seja, escreve_percurso(v) pode ser assim denida (de forma recursiva):
Se v ,= u
0
ent ao escreve_percurso(Prec[v])
Escreve v
Exemplo 46

E necess ario enviar uma encomenda para um cliente em C, a qual pode ser
enviada via A, H ou G, demorando tres, um e oito dias, respectivamente a chegar a esses
locais. O quadro seguinte indica os pares de locais entre os quais h a transporte directo e ainda
o tempo (em dias) que demora no mnimo o transporte entre esses locais. Se a encomenda for
enviada hoje e encaminhada com m axima prioridade (por pagamento duma taxa adicional),
quando e que se espera que o cliente a receba?
A e B 2 B e D 4 B e G 1 A e E 1 H e E 6 E e G 7
G e F 4 E e D 3 C e E 17 F e C 10 F e E 2 C e D 8
Representamos a rede de transportes esquematicamente: O designa a origem.
A
2
1

B
4
1

D
8
G
7
O
3

1
8

H
6
E
17
3

C
G
4
F
2
10

2
1


4
1


8
7
0
3

1
8

17
3

4

2
10

Para n ao complicar o grafo, represent amo-lo como um grafo n ao dirigido, devendo ser claro
que d(u, v) = d(v, u). Aplicamos o algoritmo de Dijkstra para determinar a dist ancia mnima
da origem a cada um dos locais: acima, ` a direita, indicamos os valores iniciais de D.
`
A
medida que formos efectuando actualiza c oes, registamos o vertice que as determinou, para no
m poder, por an alise para tr as, recuperar o caminho mnimo.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 92
3, O
2
1

4
1


8
7
0
3

1
8

1, O
6

17
3

8, O
4

2
10

3, O
2
1

4
1


8
7
0
3

1
8

1, O
6
7, H
17
3

8, O
4

2
10

3, O
2
1

5, A
4
1

8
7
0
3

1
8

1, O
6
4, A
17
3

8, O
4

2
10

3, O
2
1

5, A
4
1

7, E
8 11, E
7
0
3

1
8

1, O
6
4, A
17
3

21, E
8, O
4
6, E
2
10

Depois desta itera c ao, sabe-se, por exemplo, que o melhor caminho de O para E tem
comprimento 4 e e O, A, E (e util recordar as designa c oes dadas inicialmente aos n os).
Continuando. . .
3, O
2
1

5, A
4
1

7, E
8 6, B
7
0
3

1
8

1, O
6
4, A
17
3

21, E
8, O
4
6, E
2
10

3, O
2
1

5, A
4
1

7, E
8 6, B
7
0
3

1
8

1, O
6
4, A
17
3

16, F
8, O
4
6, E
2
10

c A. P. Tom as Dep. de Ciencia de Computadores FCUP


6.9. GRAFOS COM S

IMBOLOS ASSOCIADOS AOS RAMOS 93


3, O
2
1

5, A
4
1

7, E
8 6, B
7
0
3

1
8

1, O
6
4, A
17
3

16, F
8, O
4
6, E
2
10

3, O
2
1

5, A
4
1

7, E
8 6, B
7
0
3

1
8

1, O
6
4, A
17
3

15, D
8, O
4
6, E
2
10

3, O
2
1

5, A
4
1

7, E
8 6, B
7
0
3

1
8

1, O
6
4, A
17
3

15, D
8, O
4
6, E
2
10

3, O
2

5, A
4
1

7, E

8 6, B
7
0
3

1
8

1, O
6
4, A
17

15, D
8, O
4
6, E
2
10

A encomenda chega daqui por 15 dias, devendo ser enviada via A, depois de A para E,
de E para D e de D para C.
NB: Na resolu c ao do problema ` a m ao, pode efectuar as altera c oes num s o grafo: para
poder conferir os passos, e conveniente n ao apagar as marca c oes anteriores (quando as altera),
devendo antes risc a-las (parcialmente) de forma a continuarem visveis.
6.9 Grafos com Smbolos Associados aos Ramos
Um multigrafo com smbolos associados aos ramos e um quinteto
(1, c, , , L)
em que (1, c, ) e um multigrafo, e um conjunto (de smbolos), e L e uma fun c ao de c
em que a cada ramo associa um elemento de . A cada percurso num multigrafo dessa
forma corresponde uma sequencia de smbolos.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
6.9. GRAFOS COM S

IMBOLOS ASSOCIADOS AOS RAMOS 94


Considere-se por exemplo o grafo representado a seguir.
m
0
GFED @ABC
BC ED
b
GF

m
1
GFED @ABC
BC ED
c
GF

O conjunto de smbolos e a, b, c. As sequencias em


b, bb, bbb, bbbb, bbbbb, bbbbbb, . . .
correspondem a percursos de m
0
para m
0
. Assim esses percursos determinam as sequencias
de smbolos de que s o tem bs. As sequencias em
c, cc, ccc, cccc, ccccc, . . .
correspondem a percursos de m
1
para m
1
. As sequencias em
a, ba, bba, bbba, . . . , ac, bac, bbac, bbbac, . . . , acc, bacc, bbacc, bbbacc. . .
correspondem a percursos de m
0
para m
1
. Podemos dizer que estes percursos determinam as
sequencias de smbolos de que tem um e um s o a podendo ter bs antes e cs depois do a.
Exemplo 47 Para o grafo seguinte, sendo dgito qualquer caracter em 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
e ponto o caracter ., conclui-se que as sequencias que correspondem a percursos de procura
digto para procura ponto s ao sequencias de dgitos e as que terminam em procura n ao
dgito s ao da forma x.y ou x., em que x e y s ao duas sequencias de dgitos quaisquer.
procura dgito
dgito

procura ponto
BC ED
dgito
GF

ponto
procura n ao dgito
BC ED
dgito
GF

Se este diagrama traduzir estados num algoritmo de reconhecimento de sequencias das


formas x, x. e x.y, em que x e y s ao duas sequencias de dgitos quaisquer, cada um
dos n os identica um estado. Os ramos denem transi c oes de estado. Para ver que assim e,
analise a sequencia 56.099971, partindo de procura dgito (estado inicial).
Estes grafos s ao de facto modelos formais de computa c ao e ser ao estudados em profundi-
dade na disciplina de Modelos de Computa c ao.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP
Bibliograa
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, Introduction to Algorithms. MIT Press,
11
a

Ed., 1994.
[2] R. P. Grimaldi. Discrete and combinatorial mathematics : an applied introduction. 4
a

Ed.,
Addison Wesley, 1999.
[3] C. L. Liu. Elements of Discrete Mathematics, McGraw-Hill, 1977.
[4] F. P. Preparata, and R. T. Yeh. Introduction to discrete structures, Addison-Wesley,
1973.
[5] A. P. Tom as. Notas de T opicos de Matem atica Discreta, DCC, FCUP, 1997.
[6] A. P. Tom as. Modelos de Computa c ao Acetatos das aulas te oricas, DCC, FCUP, 1998.
[7] A. P. Tom as, N. Moreira. Introdu c ao aos Computadores Notas e Exerccios, DCC,
FCUP, 1996.
c A. P. Tom as Dep. de Ciencia de Computadores FCUP

Você também pode gostar