Alguns T´opicos de Matem´atica Discreta
Ana Paula Tom´as
Departamento de Ciˆencia de Computadores
Faculdade de Ciˆencias 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 fixo de d´ıgitos . . . . . . . 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 V´ırgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Representa¸c˜ao em V´ırgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21
3 Algumas No¸c˜oes de Divisibilidade 23
3.1 Bases de Numera¸c˜ao e Crit´erios 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 M´ınimo M´ultiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 Congruˆencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
i
4 Indu¸c˜ao Matem´atica 33
4.1 Princ´ıpio 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 princ´ıpio 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 Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47
5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A . . . . . . . . . . . 48
5.2.2 Grafo da rela¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia . . . . . . . . . . . . . . . . . 50
5.3.1 Classes de equivalˆencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.2 Parti¸c˜oes e rela¸c˜oes de equivalˆencia . . . . . . . . . . . . . . . . . . . . 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, m´ınimos, supremo, ´ınfimo, 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 definida num conjunto finito . . . . . . 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 ra´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.6 Isomorfismo 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 m´ınima . . . . . . . . . . . . . . . . . . . . 87
6.9 Grafos com S´ımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93
iii
iv
Pref´acio
Estes apontamentos tˆem por base material elaborado em anos anteriores para disciplinas da
licenciatura em Ciˆencia 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 Ciˆencia de Computadores,
no ano lectivo de 2005/06. N˜ao visam substituir a leitura da bibliografia recomendada pelos
docentes e n˜ao cobrem actualmente todos os t´opicos abordados na disciplina.
v
vi
Cap´ıtulo 1
Conjuntos
Neste cap´ıtulo 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 constitu´ıdo por elementos – objectos materiais ou entes abstractos que tˆem
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 especificados em extens˜ao
– exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza
os seus elementos – defini¸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 cont´em B, B ⊆ A
A ⊂ B A contido propriamente em B,
A subconjunto pr´oprio de B
A ⊆ B ∧ A = B
A ⊃ B A cont´em propriamente B
A = B A ⊆ B ou B ⊆ A
∅ ou {} conjunto vazio
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 2
O conjunto dos subconjuntos de A, representa-se por P(A) ou 2A. Qualquer con-
junto A pertence ao seu conjunto de subconjuntos, isto ´e A ∈ P(A). Por exemplo,
P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
O conjunto P({1, 2, 3}) tem 23 elementos. Tamb´em se pode verificar que P(P({1, 2, 3}))
tem 223
elementos. Se A tem n elementos, P(A) tem 2n elementos.
Nestes apontamentos, N representa o conjunto dos inteiros n˜ao negativos (incluindo
assim tamb´em 0).
N inteiros n˜ao negativos (em vez de N0)
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 finito 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 constitu´ıdo 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 Ciˆencia 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 implic´ıto um dado universo U, chama-se complementar de A, e representa-
se por A, ao complementar de A em U, ou seja a U  A.
Exemplo 1 Vamos provar que A  (B ∪ C) = (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 ⊆ U, tem-se A ∪ B = A ∩ B. De facto,
se x ∈ A ∪ B ent˜ao, por defini¸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 ∈ A∩B. 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.
Exerc´ıcio 1.1.1 Suponha que os conjuntos indicados s˜ao subconjuntos do universo U. Sendo
A, B e C subconjuntos de U quaisquer, mostre cada uma das propriedades:
(a) A  B = A ∩ B = B  A (j) ∅ = U (r) U = ∅
(b) A  B = ∅ sse A ⊆ B (k) A  A = ∅ (s) A  ∅ = A
(c) A  B = A sse A ∩ B = ∅ (l) A = A (t) A ∪ U = U
(d) (A  B) ∪ (B  A) = (A ∪ B)  (B ∩ A) (m) A ∪ A = U (u) A ∩ A = ∅
(e) (A ∩ B) ∩ C = A ∩ (B ∩ C) (n) A ∩ U = 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 Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 4
Exemplo 3 A t´ıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirma¸c˜oes
seguintes e justific´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 afirma¸c˜ao ´e verdadeira porque, sendo o conjunto dos inteiros infinito, se x ´e inteiro,
x + 1 tamb´em ´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 afirma¸c˜ao ´e falsa porque em particular se x fosse y+1 ent˜ao teriamos que ter y+1 ≤ y,
que n˜ao ´e satisfaz´ıvel (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 afirma¸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 identific´amos
tamb´em por N.
4. Existe x ∈ Z tal que x ´e maior do que qualquer outro inteiro y.
∃x ∈ Z ∀y ∈ Z x > y
A afirma¸c˜ao ´e falsa (an´aloga `a 2).
5. Para todo A ⊆ Z, tem-se P(A) = {∅}.
A afirma¸c˜ao ´e falsa, porque {1} ´e um subconjunto de Z e P({1}) = {∅, {1}} = {∅}.
6. Para todo A ⊆ Z, se A = ∅ ent˜ao P(A) = {∅}.
A afirma¸c˜ao ´e verdadeira. S´o existe um subconjunto de Z que ´e vazio, e P(∅) = {∅}.
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 Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 5
7. Tem-se P(A) = ∅, para algum A ⊆ Z.
∃A (A ⊆ Z ∧ P(A) = ∅)
A afirma¸c˜ao ´e falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio ´e
um elemento de P(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 afirma¸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 afirma¸c˜ao ´e verdadeira. A justifica¸c˜ao ´e semelhante `a dada para a afirma¸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 afirma¸c˜ao pode ser traduzida pela express˜ao l´ogica
∃x (x ∈ Z ∧ ( ∀A ∀B ( (B ⊆ Z ∧ A ⊆ Z) ⇒ x ∈ A  B) ))
a qual escrevemos por vezes como
∃x ∈ Z ∀A ⊆ Z ∀B ⊆ Z (x ∈ A  B)
c A. P. Tom´as – Dep. de Ciˆencia 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 afirma¸c˜ao ´e verdadeira porque embora
√
2 /∈ Z, ´e verdade que 2 + 2 = 4.
14. Se 2 + 2 = 4 ent˜ao
√
2 ∈ Z.
A afirma¸c˜ao ´e equivalente a “2 + 2 = 4 ou
√
2 ∈ Z”.
15. Se
√
2 ∈ Z ent˜ao 2 + 2 = 4.
A afirma¸c˜ao ´e equivalente a “
√
2 /∈ Z ou 2 + 2 = 4”, e como
√
2 /∈ Z, a afirma¸c˜ao ´e
verdadeira.
16.
√
2 ∈ Z ou 2 + 2 = 4.
A afirma¸c˜ao ´e verdadeira porque
√
2 ∈ Z.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 2
Representa¸c˜ao 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, tamb´em 5692(10),
13074(8) e 1011000111100(2) o s˜ao. De facto,
1 34 52(60) ≡ 1h34 52 ≡ 1 × 602
+ 34 × 601
+ 52 × 600
5 6 9 2(10) ≡ 5 × 103
+ 6 × 102
+ 9 × 101
+ 2 × 100
1 3 0 7 4(8) ≡ 1 × 84
+ 3 × 83
+ 0 × 82
+ 7 × 81
+ 4 × 80
1 0 1 1 0 0 0 1 1 1 1 0 0(2) ≡ 1 × 212
+ 0 × 211
+ 1 × 210
+ 1 × 29
+ 0 × 28
+ 0 × 27
+
0 × 26
+ 1 × 25
+ 1 × 24
+ 1 × 23
+ 1 × 22
+ 0 × 21
+ 0 × 20
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 potˆencias de 2,
212 211 210 29 28 27 26 25 24 23 22 21 20
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 potˆencias de 3,
38 37 36 35 34 33 32 31 30
6561 2187 729 243 81 27 9 3 1
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 8
podemos verificar 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¸c˜ao Posicional
Num sistema de numera¸c˜ao de base b usam-se b s´ımbolos diferentes para b d´ıgitos (de 0 a
b − 1). Os n´umeros s˜ao representados por uma sequˆencia de d´ıgitos.
Os d´ıgitos na base 10 s˜ao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os d´ıgitos na base 2 s˜ao 0 e 1, e
normalmente s˜ao designados por bits. Por exemplo,
1011102 = 1 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
Se a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0 com rm = 0 e 0 ≤ ri ≤ b − 1 para
0 ≤ i ≤ m ent˜ao
a ≡ rm . . . r2r1r0 (b)
´e a representa¸c˜ao de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se d´ıgitos de repre-
senta¸c˜ao de a na base b, sendo r0 o d´ıgito menos significativo e rm o d´ıgito mais significativo.
A representa¸c˜ao ´e ´unica, o que ´e consequˆencia 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 r0, r1,
r2, . . . rm tais que a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0, rm = 0 e 0 ≤ ri ≤ 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 < r0 = a.
Se a ≥ b ent˜ao, por defini¸c˜ao de divis˜ao inteira, existem q0 e r0 ´unicos tais que a = bq0 +r0,
com 0 ≤ r0 < b. Se q0 < b, toma-se r1 = q0 e obtem-se a = r1b + r0. Se q0 ≥ b, ent˜ao o
processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo,
a = bq0 + r0 = b(bq1 + r1) + r0 = b2
q1 + br1 + r0
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 9
Se q1 < b, toma-se r2 = q0 e obtem-se a = b2r2 +br1 +r0. Se q1 ≥ b, ent˜ao o processo repete-se
agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi
´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) = 53 = 1000(5) = 26 + 25 + 24 + 23 + 22 + 20 = 1111101(2) =
175(8) = 7D(16). De facto,
125 5
0 25 5
r0 0 5 5
r1 0 1
r2
r3
125 2
1 62 2
r0 0 31 2
r1 1 15 2
r2 1 7 2
r3 1 3 2
r4 1 1
r5
r6
125 8
5 15 8
r0 7 1
r1
r2
125 16
13 7
r0
r1
No entanto, quando se conhecem potˆencias da base, pode ser mais f´acil determinar a
representa¸c˜ao por outro m´etodo. 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
r0 1 11 2
r1 1 5 2
r2 1 2 2
r3 0 1
r4
r5
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 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
= 101110(2)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 10
Pode interessar tamb´em saber qual a representa¸c˜ao decimal dum inteiro dado
numa base b. Para a obter, bastar´a aplicar a defini¸c˜ao e efectuar os c´alculos na base 10.
101110(2) = 1 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
= 32 + 8 + 4 + 2 = 46(10)
101110(3) = 1 × 35
+ 0 × 34
+ 1 × 33
+ 1 × 32
+ 1 × 31
+ 0 × 30
= 162 + 27 + 9 + 3 = 201(10)
Para al´em da base 2, s˜ao bastante usadas em Computa¸c˜ao as bases 8 (octal) e 16 (hexa-
decimal). Os d´ıgitos 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 d´ıgitos 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, fica claro que o hexadecimal 15 designa
o decimal 1×16+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 D´ıgitos
Bin´ario 2 0 a 1
Octal 8 (=23) 0 a 7
Hexadecimal 16 (=24) 0 a 9, A, B, C, D, E, F
Decimal 10 0 a 9
Exemplo 5 A sequˆencia 78412 n˜ao pode representar nenhum inteiro na base 4 porque 7, 8 e 4
n˜ao s˜ao d´ıgitos base 4. A sequˆencia 001231 n˜ao ´e representa¸c˜ao numa base de numera¸c˜ao,
no sentido acima definido, porque teria zeros n˜ao significativos. A sequˆencia 123100 pode
representar um inteiro em qualquer base b superior a 4.
Exerc´ıcio 2.1.1 Converter para bin´ario: 153(10), 153(6), 153(8), 153(16).
Exerc´ıcio 2.1.2 Converter para hexadecimal: 153(10), 151323(10), 153(8), 1010101111(2) .
Exerc´ıcio 2.1.3 Converter para octal: 1123(4), 151323(10), 153(8), 1010101111(2) .
Exerc´ıcio 2.1.4 Converter para a base 251 e 666 os seguintes n´umeros em decimal:
1383, 1498, 1500, 1580, 1640
Exerc´ıcio 2.1.5 Represente x, xn e xn − 1 na base x, para x > 1 e n ∈ N.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 11
2.1.1 Rela¸c˜ao entre bin´ario, 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 × 28
+ 0 × 27
+ 1 × 26
+ 0 × 25
+ 1 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 2 + 0
ou seja 350. A representa¸c˜ao octal correspondente pode ser obtida agrupando os d´ıgitos
bin´arios 3 a 3: uma vez que 8 = 23 e 82 = 26, tem-se
26
(1×22
+0×2+1×2)+23
(0×22
+1×2+1)+(1×22
+1×2+0) = 82
×5+8×3+6 = 536(2)
Em geral se ak . . . a5a4a3a2a1a0(2), sendo k ≥ 0, representa o inteiro
ak2k
+ . . . + a525
+ a424
+ a323
+ a222
+ a121
+ a020
ent˜ao a representa¸c˜ao em octal do mesmo inteiro pode ser obtida da forma descrita:
ak2k
+ . . . + 23
(a522
+ a421
+ a320
) + (a222
+ a121
+ a020
) =
ak2k
+ . . . + 8(a522
+ a421
+ a320
) + (a222
+ a121
+ a020
)
Notar que na express˜ao resultante, qualquer potˆencia de 8 tem por coeficiente
ai+222
+ ai+12 + ai
para algum i, o qual ´e sempre n˜ao negativo e inferior a 8, podendo assim ser d´ıgito da
representa¸c˜ao octal. A cada d´ıgito octal correspondem 3 d´ıgitos em bin´ario. Do mesmo
modo, a cada d´ıgito hexadecimal correspondem 4 d´ıgitos em bin´ario. Assim, para converter
um bin´ario a hexadecimal, agrupam-se os seus d´ıgitos em grupos de 4 (da direita para a
esquerda) correspondendo a cada um desses grupos um d´ıgito hexadecimal. Por exemplo,
101011110(2) ⇒ 1 | 0101 | 1110 ⇒ 1 | 5 | E ⇒ 15E(h)
Para converter um bin´ario a octal procede-se de modo idˆentico 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 d´ıgitos hexadecimal o grupo de 4 d´ıgitos 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 significativos. O que se acaba de ilustrar ´e um caso particular
da proposi¸c˜ao seguinte.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 12
Proposi¸c˜ao 2 Se z ´e um inteiro positivo, a cada d´ıgito (com poss´ıvel excep¸c˜ao do mais signi-
ficativo) da representa¸c˜ao de z na base bn corresponde um grupo de n d´ıgitos na representa¸c˜ao
de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
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 bn ´e
wtwt−1 . . . w1w0
sendo t+1 o n´umero de blocos de n d´ıgitos da representa¸c˜ao de z na base b (podendo o ´ultimo
ser completado por zeros n˜ao significativos), e wi (i ≤ t) o d´ıgito da base bn que representa o
inteiro a2in−1 . . . ain+1ain(b) (representa¸c˜ao base b a menos de zeros n˜ao significativos).
Exemplo 6 Por exemplo, para converter 100313210(4) para a base 16, agrupam-se os d´ıgitos
2 a 2, da direita para a esquerda, pois 16 = 42.
100313210(4) = 01 | 00 | 31 | 32 | 10 = 10DE4(16)
Exerc´ıcio 2.1.6 Repita os exerc´ıcios 2.1.1 a 2.1.3.
Exerc´ıcio 2.1.7 Mostre a proposi¸c˜ao anterior. Comece por mostrar que wtwt−1 . . . w1w0
conforme descrito pode ser representa¸c˜ao base bn de z; use em seguida o facto da representa¸c˜ao
numa base ser ´unica para concluir que wtwt−1 . . . w1w0 ´e a representa¸c˜ao de z. Mostre depois
que se wtwt−1 . . . w1w0 representa z na base bn, a representa¸c˜ao de z na base b ´e
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
2.1.2 Adi¸c˜ao e multiplica¸c˜ao 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 Ciˆencia 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 xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao a representa¸c˜ao na
base 10 de x + y, digamos spsp−1 . . . s1s0, pode ser obtida da forma seguinte.
xkxk−1 . . . x1x0
+ ymym−1ym−2 . . . y1y0
. . . s0
Caso x0 + y0 < 10, toma-se s0 = x0 + y0 e repete-se o processo para os d´ıgitos seguintes.
Sen˜ao, s0 ´e tal que x0 + y0 = 1s0, adicionando-se 1 a x1 + y1 repetindo-se o processo (global)
para os d´ıgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar xi = 0,
i ≥ k (respectivamente yi = 0, i ≥ m). Notar que p = max(k, m) ou p = max(k, m) + 1
sendo neste ´ultimo caso sp = 1.
Adi¸c˜ao (base 3). 2102(3) + 21(3) = (2 × 33 + 1 × 32 + 0 × 31 + 2 × 30) + (2 × 31 + 1 × 30) =
2 × 33 + 1 × 32 + (0 + 2) × 31 + (2 + 1) × 30 = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (1 × 3 + 0) × 30 =
2 × 33 + 1 × 32 + (0 + 2 + 1) × 31 + 0 × 30 = 2 × 33 + (1 + 1) × 32 + 0 × 31 + 0 × 30 =
2 × 33 + 2 × 32 + 0 × 31 + 0 × 30.
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)
Exerc´ıcio 2.1.8 Justifique que se x e y s˜ao inteiros positivos representados na base b por
xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao spsp−1 . . . s1s0, 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 xi com yi o resultado ´e sempre
menor ou igual que 2b − 2, e portanto tanto xi + yi como xi + yi + 1 se representa como
0si ou 1si (pelo que ou “vai 0” ou “vai 1”), qualquer que seja i. Depois, use a defini¸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 Ciˆencia 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
Exerc´ıcio 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 interm´edios 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 Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 15
Exerc´ıcio 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¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos
Num computador cada inteiro ´e representado por um n´umero fixo de bits. Em 8 bits, 13 seria
representado por 00001101. Isto ´e, introduzem-se 0’s `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 fixou.
Se n representar o n´umero de bits que se fixou para a representa¸c˜ao, os bits s˜ao numerados
da esquerda para a direita por bitn−1, bitn−2, . . . , bit1 e bit0. O bitn−1 diz-se o bit mais
significativo e bit0 ´e o menos significativo.
Quando se fixa o n´umero de bits da representa¸c˜ao, limita-se tamb´em 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
27
× 1 + 26
× 1 + 25
× 1 + 24
× 1 + 23
× 1 + 22
× 1 + 21
× 1 + 20
× 1 = 255 = 28
− 1
Em geral, com n bits podemos representar n´umeros inteiros positivos de 0 a 2n − 1.
Proposi¸c˜ao 3 O maior inteiro positivo que se consegue representar na base b com n d´ıgitos
´e bn − 1.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 16
Prova: Suponhamos que A ´e representado com n d´ıgitos na base b por an−1an−2 . . . a1a0
com ai ∈ {0, . . . , b − 1}. Ent˜ao,
A = an−1bn−1
+ an−2bn−2
. . . a1b1
+ a0b0
=
n−1
i=0
aibi
Ora,
n−1
i=0
aibi
≤
n−1
i=0
(b − 1)bi
= (b − 1)
n−1
i=0
bi
= (b − 1)
b0 − b × bn−1
1 − b
(soma de termos de progress˜ao geom´etrica)
= (b − 1)
1 − bn
1 − b
= bn
− 1
Observa¸c˜ao: n−1
i=0 ui ´e uma nota¸c˜ao abreviada para u0 + u1 + · · · + un−1, podendo-se ler
“somat´orio para i desde 0 at´e n − 1 de ui”.
Exerc´ıcio 2.1.11 Qual ´e o n´umero m´ınimo 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¸c˜ao de n´umeros negativos
Para representar n´umeros inteiros positivos e negativos numa base b e com um n´umero fixo
de d´ıgitos ´e necess´ario codificar o sinal e encontrar um processo eficiente de determinar se
um n´umero ´e positivo ou negativo. Normalmente ´e reservado um d´ıgito para indicar o sinal.
Por exemplo, em n d´ıgitos, sendo A = an−1an−2 . . . a1a0(b), se an−1 = 0 ent˜ao A ´e positivo,
se an−1 = b − 1 o n´umero ´e negativo.
Vamos considerar trˆes 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 d´ıgitos ´e n, embora os resultados possam ser generalizados para qualquer base b.
c A. P. Tom´as – Dep. de Ciˆencia 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
n−1 n−2 . . . . . . . . 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 = 0an−2 . . . a1a0 e um negativo ´e da forma A = 1an−2 . . . a1a0. Com n bits
podemos representar n´umeros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 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 (2n − 1) − A.
O bit mais signficativo 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 (2n − 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 1’s por 0’s e 0’s por 1’s na repre-
senta¸c˜ao de x em n bits, o que resulta de 2n − 1 ser representado por n 1’s. 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 Ciˆencia 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 2n−1 −1 encontram-se os n´umeros n˜ao negativos e de 2n−1 a 2n −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 defini¸c˜ao, o complemento para 2 de A numa
representa¸c˜ao de n bits ´e o inteiro 2n − A.
Exemplo 7 Para n = 3 ent˜ao -1 ´e representado por 111 pois 23 − 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 28 − 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 defini¸c˜ao de complemento para 2, pode-se concluir que 2n−1 representa −2n−1
pois 2n − 2n−1 = 2n−1. Por outro lado, 2n − 1 representa −1.
Proposi¸c˜ao 4 No sistema de representa¸c˜ao com n bits e complemento para 2 os valores
poss´ıveis dos inteiros represent´aveis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se
n´umeros n˜ao negativos e de 2n−1 a 2n − 1 n´umeros negativos.
Para al´em de s´o haver um zero, neste caso todos os negativos tˆem 1 como bit mais
significativo, 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 2n − A = (2n − 1 − A) + 1 e 2n − 1 − A ´e a representa¸c˜ao em complemento para 1,
podemos obter a representa¸c˜ao em complemento para 2 complementando todos os d´ıgitos
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 Ciˆencia 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 0’s por 1’s, 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 = an−1an−2 . . . a1a0, basta considerar que a parcela an−12n−1 ´e
negativa. Por exemplo,
110(2) = 1 × (−22
) + 1 × 21
+ 0 × 20
= −4 + 2 + 0 = −2(10)
Exerc´ıcio 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 verifique se o resultado de somar as representa¸c˜oes est´a correcto.
Exerc´ıcio 2.1.13 Suponha que a representa¸c˜ao em complemento para dois com 4 d´ıgitos de
um inteiro ´e 1101. Como ´e a representa¸c˜ao com:
(i) 6 d´ıgitos
(ii) 8 d´ıgitos
(iii) n d´ıgitos, com n ≥ 4.
Exerc´ıcio 2.1.14 Suponha agora que, em 4 d´ıgitos, a representa¸c˜ao em complemento para
dois ´e 0101. Como responderia `as al´ıneas anteriores? Em geral, dado um inteiro x represen-
tado em n d´ıgitos como procederia para obter a sua representa¸c˜ao com mais d´ıgitos?
2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits
2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao 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 2m − 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 Ciˆencia de Computadores – FCUP
2.2. ADIC¸ ˜AO E SUBTRACC¸ ˜AO EM N BITS 20
2.2.2 Adi¸c˜ao 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 2m−1 − 1 (o maior inteiro positivo com m bits
num sistema de complemento para 2) diz-se que h´a overflow, 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 overflow.
Se os inteiros s˜ao ambos negativos (em complemento para 2) a soma ´e calculada pelo
algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representa¸c˜ao em m bits,
o ”desprezar”o transporte corresponde a subtrair ao resultado obtido 2m. Basta notar que
quando se efectua (−x) + (−y) se pretende obter o complemento para 2 de x + y, isto ´e
2m − (x + y). A rela¸c˜ao desse n´umero com os complementos para 2 de x e y ´e 2m − (x + y) =
(2m − x) + (2m − y) − 2m. 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 2m.
Se a representa¸c˜ao tiver m bits e a soma for inferior a −2m−1 (o menor inteiro negativo
com m bits num sistema de complemento para 2) diz-se que h´a underflow, 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 underflow.
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-se”o transporte se o houver.
N˜ao haver´a overflow nem underflow.
2.2.3 Subtrac¸c˜ao 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
Exerc´ıcio 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 Ciˆencia 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
overflow underflow
2.3 Representa¸c˜ao em V´ırgula Fixa
A representa¸c˜ao posicional de inteiros pode ser generalizada para representar n´umeros racio-
nais considerando-se potˆencias negativas da base. Por exemplo, na base 10:
344.45 = 3 × 102
+ 4 × 101
+ 4 × 100
+ 4 × 10−1
+ 5 × 10−2
Podemos ainda escrever:
344.45 = 34445. × 10−2
= (3 × 104
+ 4 × 103
+ 4 × 102
+ 4 × 101
+ 5 × 100
) × 10−2
Se se fixar a posi¸c˜ao da v´ırgula (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 final 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 v´ırgula fixa, com a v´ırgula `a direita do bit menos significativo.
No caso geral, os ajustes da posi¸c˜ao da v´ırgula e o seu armazenamento ficar˜ao a cargo do
programador.
Contudo, actualmente, a representa¸c˜ao em computadores dos n´umeros racionais ´e feita,
geralmente, em v´ırgula flutuante.
2.4 Representa¸c˜ao em V´ırgula Flutuante
A representa¸c˜ao dum n´umero racional em v´ırgula flutuante, contrariamente `a representa¸c˜ao
em v´ırgula fixa, ´e feita atrav´es 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 Ciˆencia de Computadores – FCUP
2.4. REPRESENTAC¸ ˜AO EM V´IRGULA FLUTUANTE 22
F = m × be
Por exemplo, 673 × 1014.
A designa¸c˜ao v´ırgula flutuante resulta do facto de que a posi¸c˜ao da v´ırgula depender do
expoente e portanto n˜ao ser fixada previamente.
A nota¸c˜ao mais usada para v´ırgula flutuante ´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 eficiˆencia ´e separado
da representa¸c˜ao do m´odulo da mantissa o qual ´e constitu´ıdo 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 v´ırgula `a esquerda do bit mais significativo.
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
(2E−127
)(1.M)(2)
excepto se E for 0000000 ent˜ao F = (−1)S(2−127)(.M(2)) e se M tamb´em ´e zero ent˜ao F = 0.
A sequˆencia 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 −28 × 1.625 = −416.
Existem outras representa¸c˜oes em v´ırgula flutuante IEEE, como a precis˜ao dupla em que
s˜ao usados 64 bits e a qu´adrupla em que s˜ao usados 128 bits.
Exerc´ıcio 2.4.1 Determine qual o maior n´umero que ´e represent´avel em precis˜ao simples,
segunda a norma do IEEE.
Exerc´ıcio 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
Exerc´ıcio 2.4.3 Exprima o mais exactamente poss´ıvel os seguintes n´umeros em precis˜ao
simples IEEE: 2.5, .0005, 2−40 e 256
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 3
Algumas No¸c˜oes de Divisibilidade
Por defini¸c˜ao, um inteiro a ´e divis´ıvel 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. Tamb´em 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 defini¸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 153 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¸c˜ao e Crit´erios de Divisibilidade
´E conhecido que, um inteiro positivo representado na base 10 ´e divis´ıvel por 100 se e s´o se a
sua representa¸c˜ao terminar por 00 (pois os restos da divis˜ao por 10 e 102 s˜ao 0). ´E divis´ıvel
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 divis´ıvel por 4 (isto ´e, por 22) se a sua representa¸c˜ao
em bin´ario terminar por 00 e ´e divis´ıvel por 8 (isto ´e, por 23) sse terminar em 000.
Proposi¸c˜ao 5 Um inteiro (positivo) x representado numa certa base b ´e divis´ıvel por bk,
sendo k inteiro positivo fixo, se e s´o a representa¸c˜ao de x na base b terminar por k zeros.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.1. BASES DE NUMERAC¸ ˜AO E CRIT´ERIOS DE DIVISIBILIDADE 24
Ideia da prova: Para que x seja divis´ıvel por bk ent˜ao ter´a que ser divis´ıvel tamb´em por
b1, b2, . . . , bk−1, 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, tamb´em (x/b) = b((x/b)/b) + 0, . . .
Analisando a defini¸c˜ao de representa¸c˜ao base 10, podemos justificar o seguinte crit´erio de
divisibilidade por 9.
Proposi¸c˜ao 6 Um inteiro ´e divis´ıvel por 9 sse a soma dos d´ıgitos da sua representa¸c˜ao na
base 10 for divis´ıvel por 9.
Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representa¸c˜ao
base 10 ´e anan−1 . . . a1a0. Isto quer dizer que,
x = an × 10n
+ an−1 × 10n−1
+ · · · + a1 × 10 + a0
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
...
10n = 99 . . . 9
9 repetido n vezes
+1 um m´ultiplo de 9 mais uma unidade
ent˜ao x = (˙9 + 1) × an + (˙9 + 1) × an−1 + · · · + (˙9 + 1) × a1 + a0, ou seja
x = ˙9 + (an + an−1 + · · · + a1 + a0)
em que ˙9 ´e abreviatura de “um m´ultiplo de 9” (nesta igualdade, cada ocorrˆencia de ˙9 designa
um m´ultiplo diferente). Na “simplifica¸c˜ao” da igualdade, us´amos tamb´em 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 + (an + an−1 + · · · + a1 + a0), concluimos
que x ´e m´ultiplo de ˙9 se e s´o se an + an−1 + · · · + a1 + a0 for m´ultiplo de ˙9.
O exerc´ıcio seguinte pode ser resolvido por aplica¸c˜ao dum racioc´ınio an´alogo, agora obser-
vando que 10 = ˙11−1, 100 = ˙11+1, 1000 = ˙11−1, 1000 = 1000×10 = ( ˙11−1)( ˙11−1) = ˙11+1,
10000 = ( ˙11 + 1) × 10 = ˙11 − 1, . . .
Exerc´ıcio 3.1.1 Mostre que um inteiro ´e divis´ıvel por 11 sse a soma dos d´ıgitos de ordem
par da sua representa¸c˜ao na base 10 for igual `a soma dos d´ıgitos de ordem ´ımpar.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.2. NOC¸ ˜AO DE DIVISOR E DE M ´ULTIPLO 25
Exerc´ıcio 3.1.2 Mostre que um inteiro
(i) ´e divis´ıvel por 5 sse a sua representa¸c˜ao decimal terminar em 0 ou 5;
(ii) ´e divis´ıvel por 3 sse a soma dos d´ıgitos da sua representa¸c˜ao decimal for divis´ıvel por 3.
(iii) ´e divis´ıvel por 2 sse o d´ıgito menos significativo da sua representa¸c˜ao decimal for par.
3.2 No¸c˜ao de Divisor e de M´ultiplo
O conjunto1 dos divisores dum inteiro a ´e constitu´ıdo por todos os inteiros positivos tais que
se b | a e os seus sim´etricos.
{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 constitu´ıdo 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 defini¸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 m1 e m2 m´ultiplos de b. Ent˜ao existem inteiros z1 e z2 tais que m1 = bz1
e m2 = bz2. Logo, m1 + m2 = bz1 + bz2 = b(z1 + z2) e como a soma de inteiros ´e um inteiro,
conclui-se que z1 +z2 ∈ Z, pelo que m1 +m2 ´e da forma bz, para algum z ∈ Z (concretamente,
para z = z1 + z2). 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, m1 − m2) ´e m´ultiplo de b
procede-se analogamente.
Para mostrar que m1m2 ´e m´ultiplo de b, isto ´e, que o produto de dois m´ultiplos de b ´e
m´ultiplo de b, observe-se que m1m2 = (bz1)(bz2) = b(bz1z2) e como bz1z2 ∈ Z, conclui-se que
m1m2 ´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, m1) por
um qualquer inteiro x ´e m´ultiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z.
1 ´E usual representar “o conjunto dos x’s tais que x satisfaz condi¸c˜ao. . . ” por {x | x satisfaz condi¸c˜ao . . . }.
Neste cap´ıtulo, usaremos a nota¸c˜ao alternativa {x : x satisfaz condi¸c˜ao . . . }, para evitar usar | com duplo
significado, reservando | para “divide”.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.3. FACTORIZAC¸ ˜AO EM PRIMOS 26
Exerc´ıcio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir
y + z ent˜ao tamb´em divide z.
3.3 Factoriza¸c˜ao 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 defini¸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 tamb´em podemos concluir que
x ´e primo ou produto de primos. De facto, se x n˜ao for primo, existem x1, x2 ∈ N  {0, 1}
tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos j´a que x1 ´e primo ou produto de
primos e x2 ´e primo ou produto de primos.
Analisando os quatro casos (a) x1 e x2 primos, (b) x1 e x2 produtos de primos, (c) x1
primo e x2 produto de primos, e (d) x1 produto de primos e x2 primo, concluimos que se
x = x1x2 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 t´ecnica 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 fixo (e ´e finito), essa prova pode ser realmente
reconstru´ıda. Por exemplo, se x fosse 24, estariamos a assumir que j´a tinhamos verificado 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 x1 e x2) pelas suas factoriza¸c˜oes em primos: 24 = (2 × 2) × (2 × 3).
Usualmente, escreve-se 24 = 23 × 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 p1, . . . pk ´unicos e tal que n
se pode factorizar de forma ´unica como pα1
1 × · · · × pαk
k sendo αi = 0 e pi < pj se i < j, para
todo i ≤ k e todo j ≤ k. Por exemplo, 37268 = 22 × 71 × 113 e 500 = 22 × 53.
c A. P. Tom´as – Dep. de Ciˆencia 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 divis´ıvel 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 infinito.
Prova: Suponhamos que s´o existiam n primos, sendo n um certo inteiro fixo. Ou seja,
suponhamos que o conjunto dos primos era finito e que tinha exactamente n elementos, os
quais vamos denotar por p1, p2, . . . , pn. Ent˜ao, o inteiro positivo
1 +
n
i=1
pi
n˜ao seria primo, j´a que ´e maior do que qualquer um dos primos p1, p2, . . . , pn.
Mas se 1 + p1p2 . . . pn n˜ao ´e primo, ent˜ao algum dos primos o divide (ou seja, ´e m´ultiplo
de algum dos primos). Suponhamos que pk divide 1 + p1p2 · · · pn, sendo k um inteiro fixo,
1 ≤ k ≤ n. Como pk divide n
i=1 pi isto ´e, pk divide o produto 1+p1p2 · · · pn, pode-se concluir
que se pk dividir 1 + p1p2 · · · pn ent˜ao pk divide 1. Mas nenhum primo divide 1. O absurdo
resultou de se ter suposto que o conjunto dos primos era finito. Logo, o conjunto dos primos
´e infinito.
3.3.1 Determina¸c˜ao 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 m´etodo 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 at´e 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 Ciˆencia 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 ficarem na tabela s˜ao os primos, neste caso, n˜ao
superiores a 50 (o valor de n neste exemplo).
3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos
A partir da factoriza¸c˜ao dum n´umero em primos ´e poss´ıvel determinar todos os seus divisores.
Por exemplo, os divisores de 30, que ´e dado por
30 = 21
× 31
× 51
s˜ao:
20 × 30 × 50 = 1 21 × 30 × 50 = 2 20 × 31 × 50 = 3
20 × 30 × 51 = 5 21 × 31 × 50 = 6 21 × 30 × 51 = 10
20 × 31 × 51 = 15 21 × 31 × 51 = 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 M´aximo 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 Ciˆencia 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 defini¸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 = 22 × 53, 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 tamb´em 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 defini¸c˜ao de mdc(a, b) ´e imposs´ıvel. 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(320 ×57 ×1127 ×312, 24 ×36 ×525) = 36 ×57, porque o m´aximo divisor comum
´e dado por
2min(0,4)
× 3min(20,6)
× 5min(7,25)
× 11min(27,0)
× 31min(2,0)
ou seja, por 203657110310. Este m´etodo 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) eficientemente.
3.4.1 C´alculo do m´aximo 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 defini¸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 defini¸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 Ciˆencia 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 definir 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 Ciˆencia de Computadores – FCUP
3.5. M´INIMO M ´ULTIPLO COMUM 31
Prova: Como mdc(a, b) divide a e divide b, tamb´em 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) = ama + bmb para ma e mb 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) = ama + bmb por c
mdc(a,b)
obtem-se mdc(a, b) c
mdc(a,b) = a(ma
c
mdc(a,b) ) + b(mb
c
mdc(a,b) ). Assim, vemos que se tomarmos
x = ma
c
mdc(a,b) e y = mb
c
mdc(a,b) temos uma solu¸c˜ao inteira de ax + by = c.
Pode-se provar que (x, y) ∈ Z2 ´e solu¸c˜ao de ax + by = c sse x = ma
c
mdc(a,b) + k b
mdc(a,b) e
y = mb
c
mdc(a,b) − k b
mdc(a,b) , com k ∈ Z qualquer.
3.5 M´ınimo 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 m´ınimo m´ultiplo
comum, mmc(a, b). Por defini¸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(320571127312, 2436525) = 2max(0,4)3max(20,6)5max(7,25)11max(27,0)31max(2,0) =
243205251127312.
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 verificar que divide qualquer outro m´ultiplo m de a e de b, escrevamos
m = k1a e m = k2b para inteiros k1 e k2 apropriados. Ent˜ao, m = k1mdc(a, b) a
mdc(a,b) e m =
k2mdc(a, b) b
mdc(a,b) , pelo que k1
a
mdc(a,b) = k2
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 k1. Assim, k1 = b
mdc(a,b) k1 para algum k1 e consequentemente, m =
b
mdc(a,b) k1mdc(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 Ciˆencia de Computadores – FCUP
3.6. CONGRUˆENCIAS 32
3.6 Congruˆencias
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 = qxb + rx e y = qyb + ry com 0 ≤ rx < b e
0 ≤ ry < b, ent˜ao x − y = (qx − qy)b + (rx − ry) e portanto x − y ´e m´ultiplo de b se e s´o se
rx − ry o for. Mas, como 0 ≤ rx < b e 0 ≤ ry < b, podemos concluir que −b < rx − ry < b, e
consequentemente rx − ry ´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 qx, qy e rx, ry em vez de q1, q2 e r1, r2
para indicar que esses quocientes e restos dependem de x e y respectivamente.)
As rela¸c˜oes de congruˆencias tˆem algumas propriedades interessantes (e importantes). Por
exemplo, a “congruˆencia 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 “congruˆencia 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 identificado por um dos b restos poss´ıveis.
Outra das propriedades interessantes da rela¸c˜ao de congruˆencia ´e ser preservada pelas
opera¸c˜oes de soma, subtrac¸c˜ao e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) ent˜ao
x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b).
O exemplo seguinte ilustra uma das aplica¸c˜oes de congruˆencias.
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 Ciˆencia de Computadores – FCUP
Cap´ıtulo 4
Indu¸c˜ao Matem´atica
O m´etodo de demonstra¸c˜ao por indu¸c˜ao matem´atica (ou indu¸c˜ao finita) ser´a bastante usado
durante o curso pelo que ´e conveniente introduzi-lo (ou record´a-lo).
4.1 Princ´ıpio de Indu¸c˜ao Matem´atica
Imagine uma escada com uma infinidade 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 at´e um degrau, ent˜ao tamb´em consigo chegar ao seguinte.” (4.1)
Se nada mais for dito, n˜ao pode concluir que “consegue chegar ao 16o
¯ degrau”.
Suponha agora n˜ao s´o (4.1) mas tamb´em (4.2).
“Consigo chegar ao 13o
¯ degrau” (4.2)
O que pode concluir? Como consegue chegar ao 13o
¯ e ´e verdade (4.1), ent˜ao consegue chegar
ao 14o
¯. Como consegue chegar ao 14o
¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 15o
¯. Como
consegue chegar ao 15o
¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 16o
¯. 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 13o
¯ 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 1o
¯ degrau”. (4.4)
c A. P. Tom´as – Dep. de Ciˆencia 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 (Princ´ıpio 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 An a ´area dum quadrado de lado 2n, com n ≥ 1 (inteiro). Vamos mostrar
que o resto da divis˜ao de An por 3 ´e 1, qualquer que seja n ≥ 1.
(i) (Caso de base) Como A1 ´e 4 e sabemos que o resto da divis˜ao de 4 por 3 ´e 1, ´e verdade
que a condi¸c˜ao se verifica para n = 1.
(ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para
algum inteiro n˜ao negativo p, ent˜ao Ak+1 = 3q + 1 para algum inteiro n˜ao negativo q.
Ora, se Ak = 3p+1, ent˜ao Ak+1 = (2k+1)2 = 4(2k)2 = 4Ak = 4(3p+1) = 3(4p+1)+1.
Ou seja, Ak+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 2n excede numa unidade um m´ultiplo de 3.
Observe que, se nos fosse pedido, podiamos apresentar a dedu¸c˜ao de que A6 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 A6 d´a resto 1 quando dividido por 3,
podiamos, dado um n ≥ 1, apresentar a dedu¸c˜ao de que An d´a resto 1 quando dividido por 3,
se tal nos fosse pedido.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 35
Proposi¸c˜ao 14 (Vers˜ao geral do Princ´ıpio de Indu¸c˜ao) Seja n0 ∈ 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 ≥ n0 tem-se P(n).
(i) P(n0) ´e verdade;
(ii) ∀k ≥ n0 ( P(k) ⇒ P(k + 1) ), isto ´e, para todo inteiro k tal que k ≥ n0, 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 < 2n(an + bn).
Podemos concluir isso se mostrarmos que as duas condi¸c˜oes de aplicabilidade do princ´ıpio
de indu¸c˜ao matem´atica se verificam neste caso.
(i) Para n=1, (a + b)1 = a + b < 2(a + b) = 21(a1 + b1), porque a, b ∈ R+.
(ii) Suponhamos agora que para um dado k ≥ 1 se tem (a+b)k < 2k(ak +bk), para a, b ∈ R+
quaisquer, e vamos mostrar que ent˜ao (a + b)k+1 < 2k+1(ak+1 + bk+1).
Como (a + b)k+1 = (a + b)k(a + b), e por hip´otese
(a + b)k
< 2k
(ak
+ bk
),
concluimos que
(a + b)k+1
< 2k
(ak
+ bk
)(a + b) = 2k
(ak+1
+ bk+1
+ ak
b + bk
a).
Como
2k
(ak+1
+ bk+1
+ ak
b + bk
a) = 2k
(ak+1
+ bk+1
) + 2k
(ak
b + bk
a),
para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que
ak
b + bk
a ≤ ak+1
+ bk+1
quaisquer que sejam a, b reais positivos. Tem-se
ak
b + bk
a − ak+1
− bk+1
= −(ak
− bk
)(a − b) ≤ 0,
j´a que quaisquer que sejam x, y ∈ R+, se x ≤ y ent˜ao xp ≤ yp, para todo p ≥ 1 (relembre
que as fun¸c˜oes fp(x) = xp, s˜ao estritamente crescentes em R+).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 36
Exerc´ıcio 4.1.1 Aplique o princ´ıpio 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 4n + 15n − 1 ´e m´ultiplo de 9, para todo n ≥ 1.
Exemplo 13 Considere o seguinte algoritmo (imagine que Y ´e uma caixa1).
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 2a
¯ 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 3a
¯ 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 ka
¯ 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 ka
¯ vez, o valor em Y ´e o dobro do n´umero de inteiros
negativos nos k−1 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 Ciˆencia 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 princ´ıpio de indu¸c˜ao, sem o que
as provas n˜ao ficam 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 satisfizer, tamb´em
o inteiro seguinte as satisfaz.
Exemplo 14 Considere a seguinte demonstra¸c˜ao (claramente, errada!) de que “entre dois
inteiros consecutivos existe uma infinidade 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 infinidade de inteiros, ent˜ao entre k+1 e k+2 tamb´em existe uma infinidade
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 infinidade 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 infinidade de inteiros. Apenas se mostrou a condi¸c˜ao (ii) do princ´ıpio
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 princ´ıpio de
indu¸c˜ao se verificam nessa situa¸c˜ao.
(i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar
que se s´o existir um cavalo na cerca ´e branco.
c A. P. Tom´as – Dep. de Ciˆencia 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
ficar 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 tamb´em 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 princ´ıpio 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”, tamb´em l´a podem estar cavalos
doutras cores. Logo, a afirma¸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 (v´ıcio) 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 tamb´em 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 ficar 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 tamb´em 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 afirmar 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 Ciˆencia 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 exemplo2 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 2n pode
ser coberto por pe¸cas da forma seguinte, ficando apenas um quadrado 1 × 1 por cobrir.
A propriedade verifica-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 2k admitem a
cobertura descrita, ent˜ao os quadrados de lado 2k+1 tamb´em admitem.
Dado um quadrado de lado 2k+1 podemos dividi-lo em quatro quadrados de lado 2k
como se ilustra na figura abaixo. Por hip´otese, cada quadrado de lado de 2k pode
ser coberto por pe¸cas da forma descrita acima. Fazemos para cada um dos quatro
uma tal cobertura de forma a ficarem a descoberto os quadrados 1 × 1 indicados
na figura. Verificamos que os trˆes quadrados 1 × 1 (ao centro) podem ser cobertos
por uma pe¸ca, pelo que s´o fica um quadrado 1 × 1 por cobrir.
2k+1
2k
2k1
1
Esta prova n˜ao est´a correcta! Porquˆe? 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 ficou
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 fica
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 Ciˆencia de Computadores – FCUP
4.2. INDUC¸ ˜AO FORTE 40
2k+1
2k
2k
4.2 Indu¸c˜ao 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, fixado 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 ficaria ent˜ao:
• Pela defini¸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 tamb´em
podemos concluir que k + 1 ´e primo ou produto de primos. De facto, se k + 1 n˜ao for
primo, existem i1, i2 ∈ N  {0, 1} tais que k + 1 = i1i2. Como 2 ≤ i1 ≤ k e 2 ≤ i2 ≤ k,
sabemos j´a que i1 ´e primo ou produto de primos e i2 ´e primo ou produto de primos.
Analisando os quatro casos (a) i1 e i2 primos, (b) i1 e i2 produtos de primos, (c) i1
primo e i2 produto de primos, e (d) i1 produto de primos e i2 primo, concluimos que se
k + 1 = i1i2 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 princ´ıpio de indu¸c˜ao) Seja P(n) uma condi¸c˜ao na
vari´avel n ∈ Z. Dado n0 ∈ Z, se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes, ent˜ao
∀n ≥ n0 P(n).
(i) P(n0) ´e verdade;
(ii) para todo k ∈ Z, se se tem P(i) para todo i ∈ Z com n0 ≤ i ≤ k, tem-se P(k + 1).
c A. P. Tom´as – Dep. de Ciˆencia 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 sequˆencia finita de inteiros (pode n˜ao ter elementos).
1. Se a sequˆencia n˜ao tem qualquer elemento ent˜ao indicar como resultado a
pr´opria sequˆencia.
2.1 Sen˜ao seja X o primeiro elemento na sequˆencia dada.
2.2 Separar os restantes elementos da sequˆencia formando a subsequˆencia dos
menores do que X e a subsequˆencia dos maiores ou iguais que X.
2.3 Aplicar “QS” a cada uma das subsequˆencias: sejam R< e R≥ as sequˆencias
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 sequˆencia finita de inteiros dada. Para o
provar, vamos usar indu¸c˜ao sobre o n´umero de elementos na sequˆencia dada.
(i) Se a sequˆencia dada n˜ao tem elementos, ent˜ao podemos dizer que a sequˆencia resultante,
que ´e igual `a dada (por 1.) est´a ordenada por ordem crescente.
(ii) Seja S uma qualquer sequˆencia de inteiros, e seja n (n ≥ 1 fixo) o seu n´umero de
elementos. Suponhamos agora, como hip´otese de indu¸c˜ao, que quando aplicamos “QS”
a uma qualquer sequˆencia 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.1–2.4. Uma vez que nas sub-
sequˆencias 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 subsequˆencias, ordena-as por ordem crescente. Ent˜ao, as sequˆencias
referidas por R< e R≥ (em 2.3) s˜ao respectivamente as sequˆencias 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 sequˆencia S ordenada por ordem crescente.
Proposi¸c˜ao 16 Os princ´ıpios 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 tamb´em 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 Ciˆencia 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 justificar
que P(1) era verdade, basta-nos reproduzir essa justifica¸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 princ´ıpio de indu¸c˜ao fraca, concluimos ∀n ∈ Z+ Q(n).
4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao
Proposi¸c˜ao 17 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”.
Se A satisfizer 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 satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N.
(i) 0 ∈ A
(ii) ∀k∈N ( (∀i ≤ k i∈A) ⇒ k + 1 ∈ A )
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 5
Rela¸c˜oes Bin´arias
5.1 Rela¸c˜oes Bin´arias de A em B
Sejam A e B conjuntos. Designa-se por produto cartesiano de A por B, e denota-se por
A × B , o conjunto dos pares ordenados (a, b) tais que a ∈ A e b ∈ B , ou seja
A × B = {(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 R b ser´a usada com o mesmo significado 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} ⊆ A × A
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} ⊆ A × C
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 bin´arias
Como as rela¸c˜oes bin´arias s˜ao conjuntos (de pares ordenados), podemos definir 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) ∈ A × B | (a, b) ∈ R ∨ (a, b) ∈ S}
R ∩ S = {(a, b) ∈ A × B | (a, b) ∈ R ∧ (a, b) ∈ S}
R = {(a, b) ∈ A × B | (a, b) /∈ R} = (A × B)R
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 44
Para al´em destas opera¸c˜oes, definimos tamb´em 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 definida 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 definida por
RS = {(a, c) | existe b ∈ B tal que (a, b) ∈ R e (b, c) ∈ S}
Em alternativa podiamos escrever S ◦ R, que se lˆe 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 rec´ıproca, que associa a cada transformado os elementos do dom´ınio que o tˆem
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 GG
BB„„„„„„„„„„„„„„ 2
2
RRjjjjjjjjjjjjjj
3 GG 2
3
66ssssssssssssssss GG 5
BB„„„„„„„„„„„„„
SSjjjjjjjjjjjjj
1 GG 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 verifica que, (2, 1) /∈ RS, (2, 2) /∈ RS.
Como RS ⊆ {1, 2, 3}×{1, 2}, o que acab´amos de fazer foi uma an´alise exaustiva dos pares
poss´ıveis, justificando 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 Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 45
Exemplo 21 Voltemos a considerar o Exemplo 19. Podemos verificar que:
{(x, y) ∈ A × P | x ´e aluno duma disciplina de que y ´e professor} = TS−1
R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura } = UU −1
5.1.2 Matriz duma rela¸c˜ao bin´aria
Sejam A e B conjuntos finitos e n˜ao vazios, tais que |A| = n e |B| = m. Podemos identificar A
com {ai | 1 ≤ i ≤ n} e B com {bj | 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 (ai, bj) ∈ R, e ´e 0 se (ai, bj) /∈ R. Ou seja, se MR for tal
matriz, e MR[i, j] representar o elemento na linha i e coluna j ent˜ao tem-se
MR[i, j] = 1 se e s´o se (ai, bj) ∈ R
MR[i, j] = 0 se e s´o se (ai, bj) /∈ R
com 1 ≤ i ≤ n e 1 ≤ j ≤ m.
Exemplo 22 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5} e R ⊆ A × B,
R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)}
Ent˜ao,
MR =



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1



Matriz da inversa
Sejam A = {a1, . . . , an} e B = {b1, . . . , bm}, m, n ∈ Z+ (fixos) e R ⊆ A × B. Ent˜ao
MR−1 [i, j] = 1 ⇐⇒ (bi, aj) ∈ R−1 ⇐⇒ (aj, bi) ∈ R ⇐⇒ MR[j, i] = 1
MR−1 [i, j] = 0 ⇐⇒ (bi, aj) /∈ R−1 ⇐⇒ (aj, bi) /∈ R ⇐⇒ MR[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,
MR−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
= Mt
R
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 46
Matriz da composta
Sejam A, B, e C conjuntos finitos 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
MRS[i, j] =
1≤k≤m
(MR[i, k] ∧ MS[k, j]), 1 ≤ i ≤ n, 1 ≤ j ≤ p
Notar que por defini¸c˜ao da rela¸c˜ao composta tem-se aiRScj se e s´o se existe bk tal que
aiRbk ∧ bkScj. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, k] = 1 ∧ MS[k, j] = 1 para algum k.
Ou seja, MRS[i, j] = 1 se e s´o se MR[i, 1] = 1∧MS[1, j] = 1 ou MR[i, 2] = 1∧MS[2, j] = 1
ou . . . ou MR[i, m] = 1∧MS[m, j] = 1, o que justifica a defini¸c˜ao dada para MRS[i, j]. Assim,
MRS = MRMS ´e um produto1 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)}
MR =



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1



S = {(1, 1), (3, 2), (5, 1), (5, 2)}
MS =








1 0
0 0
0 1
0 0
1 1








MRS =



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)} ⊆ A × C
1
Deve ficar 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] =
Pm
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 Ciˆencia 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 dom´ınio 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 contradom´ınio 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 ∀a1, a2 ∈ A ( f(a1) = f(a2) ⇒ a1 = a2 )
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 ∃1b ∈ B f(a) = b (fun¸c˜ao), e
• ∀b ∈ B ∃1a ∈ 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 invert´ıvel 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 defini¸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 Bin´arias Definidas num Conjunto
Seja A um conjunto. Chama-se rela¸c˜ao bin´aria definida 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 Ciˆencia de Computadores – FCUP
5.2. RELAC¸ ˜OES BIN´ARIAS DEFINIDAS NUM CONJUNTO 48
5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A
Qualquer rela¸c˜ao R definida em A pode gozar ou n˜ao das propriedades seguintes.
reflexividade: R ´e reflexiva sse ∀x ∈ A xRx, ou seja n˜ao existe x tal que x ∈ A e (x, x) /∈ R.
simetria: R ´e sim´etrica 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 antissim´etrica sse ∀x, y ∈ A ((xRy∧yRx) ⇒ 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 definidas
α = {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)}
β = {(1, 1), (1, 3), (3, 1)}
γ = {(1, 1), (1, 3)}
φ = A × A
A rela¸c˜ao α ´e reflexiva, sim´etrica, transitiva, e antissim´etrica. De facto, uma vez que
α = {(x, x) | x ∈ A}, ´e claro que ∀x ∈ A (x, x) ∈ α, ou seja α ´e reflexiva. Por defini¸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 sim´etrica. 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 antissim´etrica.
β n˜ao ´e reflexiva (porque por exemplo 5 ∈ A ∧ (5, 5) /∈ β), ´e sim´etrica (porque (1, 3) ∈ β
mas (3, 1) ∈ β), n˜ao antissim´etrica (porque 1 = 3 ∧ (1, 3) ∈ β ∧ (3, 1) ∈ β), e n˜ao transitiva
(porque (3, 1) ∈ β ∧ (1, 3) ∈ β ∧ (3, 3) /∈ β).
γ ´e transitiva, antissim´etrica, n˜ao reflexiva, e n˜ao sim´etrica (Justificar!).
φ ´e reflexiva, sim´etrica, transitiva e n˜ao antissim´etrica.
5.2.2 Grafo da rela¸c˜ao
As rela¸c˜oes em A podem ser representadas por grafos dirigidos os quais s˜ao constitu´ıdos
por um conjunto de v´ertices (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 Ciˆencia 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•
GFEDBCoo 2•
GFEDBCoo 3•
GFEDBCoo 4•
GFEDBCoo 5•
GFEDBCoo
O grafo da rela¸c˜ao β:
1•
BC@AGFGG GG
3•oo 4• 5• 2•
Exemplo 27 Seja R a seguinte rela¸c˜ao definida 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•
@AGFED
}}|||||||||||||||||||
ÖÖ
 @@
$$IIIIIIIIIIIIIII
77vvvvvvvvvvvvvvvvvvvvvvvvv
BB……………………………………………………………
CCˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
2•
}}||||||||
33ffffffff
vvmmmmmmmmmmmmmmm 3•
}}||||||||
33ffffffff •5 •7
•8 •4oo •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 Ciˆencia 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 definidas
R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura da FCUP}
S = {(x, y) ∈ A × A | x e y est˜ao inscritos numa mesma disciplina}
R ´e reflexiva porque qualquer aluno da FCUP ´e aluno da mesmo curso que si pr´oprio. ´E
sim´etrica 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 antissim´etrica, 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 reflexiva, sim´etrica, n˜ao antissim´etrica, 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 tˆem qualquer
disciplina em comum).
5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia
Diz-se rela¸c˜ao de compatibilidade em A toda rela¸c˜ao bin´aria em A que ´e reflexiva e
sim´etrica. Qualquer rela¸c˜ao de compatibilidade em A que seja ainda transitiva diz-se rela¸c˜ao
de equivalˆencia em A (ou seja, ´e uma rela¸c˜ao reflexiva, sim´etrica, e transitiva).
Exemplo 29 Considere o Exemplo 28. Como R e S s˜ao reflexivas e sim´etricas, R e S s˜ao
rela¸c˜oes de compatibilidade. R ´e reflexiva, sim´etrica e transitiva, pelo que ´e de equivalˆencia.
S n˜ao ´e de equivalˆencia 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
compat´ıveis para γ se e s´o se xγy. Se (x, y) /∈ γ ent˜ao x e y dizem-se incompat´ıveis
para γ. Analogamente, se γ ´e uma rela¸c˜ao de equivalˆencia em A e xγy, 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 Cx de todos os elementos de A compat´ıveis com x (para γ), ou seja
Cx = {y ∈ A | (x, y) ∈ γ}.
c A. P. Tom´as – Dep. de Ciˆencia 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:
C1 = {1, 2} C2 = {1, 2, 3}
C3 = {2, 3} C4 = {4}
Repare-se que C2 tem elementos incompat´ıveis, j´a que (1, 3) /∈ γ. A rela¸c˜ao γ ´e de compati-
bilidade mas n˜ao ´e de equivalˆencia.
5.3.1 Classes de equivalˆencia
Pode acontecer, para certas rela¸c˜oes de compatibilidade γ, que existam elementos u e v em
Cx que sejam incompat´ıveis. 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 equivalˆencia
se e s´o se para todo x ∈ A, o conjunto Cx = {y ∈ A | (x, y) ∈ γ} n˜ao tem elementos
incompat´ıveis.
Prova: Seja γ de compatibilidade em A. Vamos mostrar que
γ transitiva ⇒ ∀x ∈ A ∀y, t ∈ Cx yγt.
Por defini¸c˜ao de Cx, se y, t ∈ Cx ent˜ao xγt e xγy. Como γ ´e sim´etrica, se xγy tamb´em yγx.
Ent˜ao, se xγt e xγy, tamb´em yγx e xγt. Logo, pela transitividade de γ, deduz-se yγt.
Reciprocamente, se se verificar (5.2)
∀x ∈ A ∀y, t ∈ Cx yγt (5.2)
ent˜ao γ ´e transitiva. De facto, se a, b, c ∈ A s˜ao tais que aγb e bγc ent˜ao, pela simetria de γ
e por defini¸c˜ao de Cb, deduz-se c ∈ Cb e a ∈ Cb. Mas por (5.2), (c ∈ Cb ∧ a ∈ Cb) ⇒ aγc.
Ent˜ao ∀a, b, c ∈ A ((aγb ∧ bγc) ⇒ aγc), ou seja γ ´e transitiva.
Sendo γ de equivalˆencia em A, cada conjunto Cx chama-se classe de equivalˆencia de γ.
Concretamante, ser´a a classe de equivalˆencia 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 equivalˆencia em A ent˜ao cada elemento de A pertence
a uma e uma s´o classe de equivalˆencia de γ.
Qualquer elemento de uma classe de equivalˆencia pode ser usado para identificar a
classe.
c A. P. Tom´as – Dep. de Ciˆencia 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 equivalˆencia. Eis algumas das classes de equivalˆencia 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 Ciˆencia de Computadores}
{x ∈ A | x ´e aluno de Engenharia de Redes e Sistemas Inform´aticos}
{x ∈ A | x ´e aluno de Bioqu´ımica}
{x ∈ A | x ´e aluno de Engenharia das Ciˆencias Agr´arias}
{x ∈ A | x ´e aluno de Matem´atica Aplicada `a Tecnologia}
Exemplo 32 Seja ≡5 a rela¸c˜ao definida 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 reflexiva porque qualquer que seja x ∈ Z tem-se x − x = 0 = 0 × 5. ´E sim´etrica
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 sim´etrica. 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 equivalˆencia de ≡5, a saber:
C0 = {x ∈ Z | 0 ≡5 x} = {x ∈ Z | ∃k ∈ Z x = 5k}
C1 = {x ∈ Z | 1 ≡5 x} = {x ∈ Z | ∃k ∈ Z x = 5k + 1}
C2 = {x ∈ Z | ∃k ∈ Z x = 5k + 2}
C3 = {x ∈ Z | ∃k ∈ Z x = 5k + 3}
C4 = {x ∈ Z | ∃k ∈ Z x = 5k + 4}
A rela¸c˜ao podia tamb´em ser definida 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 Ciˆencia de Computadores – FCUP
5.3. RELAC¸ ˜OES DE COMPATIBILIDADE E DE EQUIVALˆENCIA 53
Proposi¸c˜ao 22 (Caracteriza¸c˜ao das classes de equivalˆencia) Seja γ de equivalˆencia
em A, conjunto n˜ao vazio. Para cada x ∈ A, seja Cx = {y ∈ A | xγy}. Ent˜ao,
(i) qualquer que seja a ∈ A, o conjunto Ca ´e n˜ao vazio.
(ii) se Ca ∩ Cb = ∅ ent˜ao Ca = Cb.
(iii) o conjunto A ´e a uni˜ao dos conjuntos Ca, com a ∈ A.
Prova:
(i) ∀a ∈ A aγa, pela reflexividade de γ. Assim, ∀a ∈ A a ∈ Ca. Logo, Ca = ∅.
(ii) Vamos agora mostrar que se Ca ∩ Cb = ∅ ent˜ao Ca ⊆ Cb, e Ca ⊇ Cb, pelo que Ca = Cb.
Como Ca ∩ Cb = ∅, existe c ∈ A tal que c ∈ Ca ∩ Cb. Seja x um qualquer elemento de
Ca. Vamos mostrar que x ∈ Cb. Para isso basta mostrar que xγb. Ora, pela Proposi¸c˜ao
20, (x ∈ Ca ∧ c ∈ Ca) ⇒ xγc. E como cγb (pois c ∈ Cb), conclui-se por transitividade
que xγb. Donde Ca ⊆ Cb. De modo an´alogo se verifica que x ∈ Cb ⇒ x ∈ Ca
(iii) A ⊇ a∈A Ca, j´a que Ca ⊆ A para todo a ∈ A. Por outro lado, verificou-se em (i) que
para todo a ∈ A, a ∈ Ca. Pelo que A ⊆ a∈A Ca.
Exerc´ıcio 5.3.1 Considere a rela¸c˜ao θ em Z × Z+ assim definida:
(p, q) θ (p , q ) sse pq = qp .
Verificar que θ ´e de equivalˆencia. Notar que cada classe de equivalˆencia 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 equivalˆencia
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 P1 = {{1, 2}, {3}, {4}} define uma parti¸c˜ao de
A mas P2 = {{1, 2}, {3, 2}, {4}} n˜ao, j´a que {1, 2} ∩ {3, 2} = ∅. Tamb´em, P3 = {{1, 2}, {3}}
n˜ao define parti¸c˜ao de A j´a que 4 ∈ A e 4 n˜ao pertence a nenhum dos subconjuntos de A que
constituem P3.
c A. P. Tom´as – Dep. de Ciˆencia 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 equivalˆencia em A ent˜ao o conjunto das classes de
equivalˆencia de γ ´e uma parti¸c˜ao do conjunto A.
O conjunto das classes de equivalˆencia de uma rela¸c˜ao de equivalˆencia γ definida em A
diz-se conjunto quociente de A por γ, e representa-se por A/γ.
Exemplo 34 Para ≡5, definida no Exemplo 32, o conjunto quociente ´e:
Z/≡5 = {C0, C1, C2, C3, C4}.
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 equivalˆencia em A tal que A/γ = Π. Essa rela¸c˜ao γ ´e
{(x, y) ∈ A × A | x e y pertencem a um mesmo elemento de Π}
Prova: Seja θ a rela¸c˜ao definida em A tal que
θ = {(x, y) ∈ A × A | x e y pertencem a um mesmo elemento de Π}
Vamos mostrar que θ ´e rela¸c˜ao de equivalˆencia em A.
A rela¸c˜ao θ ´e reflexiva, porque sendo Π uma parti¸c˜ao de A, todo elemento de a ∈ A
pertence a algum subconjunto em Π, pelo que ∀a ∈ A aθa. Mostrar que θ ´e sim´etrica, ´e
mostrar que
∀a, b ∈ A ( aθb ⇒ bθa),
o que segue trivialmente da defini¸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 aθb e bθc ent˜ao aθc. Concluimos assim que θ ´e de equivalˆencia.
Vamos mostrar que A/θ = Π. Seja x ∈ A, e Cx a classe de equivalˆencia de x para θ.
Seja Px ∈ Π tal que x ∈ Px. Vamos mostrar que Cx = Px. Por defini¸c˜ao de θ, ´e claro que
Px ⊆ Cx. Por outro lado, se Cx ⊆ Px ent˜ao existiria y ∈ Cx tal que y /∈ Px. Mas, y ∈ Cx
sse yθx, ou seja sse y e x pertencem a um mesmo conjunto em Π. Ent˜ao existiria P = Px,
P ∈ Π tal que x ∈ Px ∩ P , o que ´e absurdo, pois Px e P s˜ao elementos duma parti¸c˜ao,
P = Px, sendo por isso disjuntos. Logo, tamb´em Cx ⊆ Px. Cada conjunto em A/θ (assim
como cada conjunto em Π) fica perfeitamente identificado 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 Ciˆencia de Computadores – FCUP
5.3. RELAC¸ ˜OES DE COMPATIBILIDADE E DE EQUIVALˆENCIA 55
Seja γ uma rela¸c˜ao de equivalˆencia 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
∀γ ⊆ A × A [ ( γ de equivalˆencia ∧ A/γ = Π ) ⇒ γ = θ
Como rela¸c˜oes bin´arias s˜ao, por defini¸c˜ao, conjuntos, para mostrar que γ = θ, vamos
mostrar que γ ⊆ θ ∧ γ ⊇ θ.
Sejam x e y elementos de A. Se (x, y) ∈ γ ent˜ao, por defini¸c˜ao de conjunto quociente
A/γ, existe um e um s´o subconjunto em Π, seja Cx tal que x, y ∈ Cx. Mas, por defini¸c˜ao de
θ, tem-se x, y ∈ Cx ∈ Π sse (x, y) ∈ θ. Logo γ ⊆ θ.
Verifiquemos agora que θ ⊆ γ. Se (x, y) ∈ θ ent˜ao existe P ∈ Π tal que x, y ∈ P. Como
Π ´e o conjunto das classes de equivalˆencia de γ, se x, y ∈ P ent˜ao xγy.
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 incompat´ıveis. 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 aγb.
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,b∈C aγb.
(iii) Se C ´e uma classe de compatibilidade γ tal que C ⊆ C , ent˜ao C = C .
Exemplo 35 Seja O = {o1, o2, o3, o4, o5, o6, o7} um conjunto de objectos, e seja
R = { (o1, {verde, amarelo}), (o2, {azul, verde}), (o3, {azul, vermelho}), (o5, {branco}),
(o4, {verde, castanho}), (o6, {branco, castanho, amarelo}), (o7, {preto})}
c A. P. Tom´as – Dep. de Ciˆencia 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 γ definida em O por
xγy sse x e y tˆem uma cor em comum
´e de compatibilidade. As classes de compatibilidade de γ s˜ao:
{o1} {o2} {o3} {o4} {o5} {o6} {o7}
{o1, o2} {o1, o4} {o1, o6} {o2, o3} {o4, o6} {o5, o6}
{o1, o2, o4} {o1, o4, o6}
As classes de m´axima compatibilidade s˜ao:
{o1, o2, o4}, {o1, o4, o6}, {o2, o3}, {o5, o6}, {o7}
Exerc´ıcio 5.3.2 Mostrar que:
a) Se γ ´e de equivalˆencia em A ent˜ao para todo x ∈ A, a classe de equivalˆencia 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 equivalˆencia 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 Cγ(A) ´e o conjunto das classes m´aximas de compati-
bilidade de γ, ent˜ao γ = θθ−1 em que θ ⊆ A × Cγ(A) ´e assim definida
xθC sse x ∈ C,
quaisquer que sejam x ∈ A, e C ∈ Cγ(A).
c A. P. Tom´as – Dep. de Ciˆencia 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 definida num conjunto A ´e uma rela¸c˜ao bin´aria reflexiva,
antissim´etrica e transitiva.
A rela¸c˜ao ≤ definida nos conjunto dos n´umeros reais por
x ≤ y sse ∃r ∈ R+
0 y = x + r
´e de ordem parcial em R porque:
• ≤ ´e reflexiva porque ∀x ∈ R x = x + 0, pelo que ∀x ∈ R x ≤ x.
• ≤ ´e antissim´etrica porque quaisquer que sejam x, y ∈ R se x ≤ y e y ≤ x ent˜ao existem
z1, z2 ∈ R+
0 tais que y = x + z1 e x = y + z2. Logo, x = (x + z1) + z2, pelo que
z1 + z2 = 0. Mas como z1, z2 ∈ R+
0 , vem z1 = z2 = 0, pelo que x = y. Assim,
∀x, y ∈ R ((xRy ∧ yRx) ⇒ x = y), ou seja R ´e antissim´etrica.
• ≤ ´e transitiva porque quaisquer que sejam x, y, z ∈ R se x ≤ y e y ≤ z ent˜ao existem
z1, z2 ∈ R+
0 tais que y = x + z1 e z = y + z2. Logo, z = (x + z1) + z2 = x + (z1 + z2),
com z1 + z2 ∈ R+
0 , concluindo-se que x ≤ z (pela defini¸c˜ao).
A sua inversa ≤−1, que se denota por ≥, ´e tamb´em de ordem parcial em R. O prolonga-
mento natural de ≤ a Rn assim definido
(x1, . . . , xn) ≤n (y1, . . . , yn) sse ∀1 ≤ i ≤ n xi ≤ yi
´e tamb´em de ordem parcial.
Mais alguns exemplos:
• A ordem lexicogr´afica em Rn definida por
(x1, . . . , xn) ≤lex (y1, . . . , yn) sse (∀i xi = yi) ou (k = min{i | xi = yi} ∧ xk ≤ yk)
A ordem do dicion´ario (de Portuguˆes) ´e um exemplo duma “ordem lexicogr´afica” no
conjunto das palavras de alfabeto {a, b, c, . . . , z} ∪ {−}.
• A rela¸c˜ao definida nos inteiros positivos pelos pares (m, n) tais que n ´e m´ultiplo de m
tamb´em ´e de ordem parcial em Z+.
• Qualquer que seja o conjunto A, a rela¸c˜ao de inclus˜ao ⊆ em 2A (conjunto dos subcon-
juntos de A) ´e de ordem parcial. A rela¸c˜ao inversa ´e ⊇, tamb´em ´e de ordem parcial.
c A. P. Tom´as – Dep. de Ciˆencia 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 D = {x ∈ Z+ | x divide 64}. Ent˜ao a restri¸c˜ao de | a D ´e uma ordem total, ou seja
(D, |) ´e totalmente ordenado.
(2A, ⊆) n˜ao ´e totalmente ordenado, se A tiver pelo menos dois elementos. Por exemplo,
A = {1, 2}, 2A = {∅, {1}, {2}, A}, e {2} ⊆ {1} e {1} ⊆ {2}.
(Rn, ≤lex) ´e totalmente ordenado. Mas, (Rn, ≤n), para n ≥ 2 (fixo), n˜ao est´a totalmente
ordenado.
Exerc´ıcio 5.4.1 Mostrar que se R ´e de ordem parcial (total) em A ent˜ao R−1 tamb´em ´e de
ordem parcial (total) em A.
5.4.1 Diagrama de Hasse
Uma rela¸c˜ao de ordem parcial definida num conjunto finito, representa-se graficamente por
um Diagrama de Hasse. ´E um grafo n˜ao dirigido que se obtem por simplifica¸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 definida)
um outro elemento, ent˜ao o v´ertice do primeiro ficar´a situado mais abaixo na figura, 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 Ciˆencia de Computadores – FCUP
5.4. RELAC¸ ˜OES DE ORDEM PARCIAL 59
16
8
4
2
1
30
oooooo
€€€€€€
6
yyyyyy 10
oooooo
€€€€€€ 15
nnnnnn
2
yyyyyy 3 5
nnnnnnn
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}
bbbbbbbbbbbb
{1, 3}
bbbbbbbbbbbb
ÐÐÐÐÐÐÐÐÐÐÐÐ
{2, 3, 4}
nnnnnnn
€€€€€€€
{2, 3}
ooooooo
{3, 4}
nnnnnnnn
{2, 4}
ddddddddddddddddddddddddddddddd
nnnnnnnn
{1}
‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ {2}
yyyyyyyyy {3} {4}
mmmmmmmmmm
∅
Os elementos {1, 2}, {1, 3} e {2, 3, 4} dizem-se elementos maximais. O elemento ∅ diz-se
m´ınimo.
O conjunto parcialmente ordenado ( (A ∪ {{1, 2, 3, 4}})  {∅}, ⊆ ) n˜ao tem m´ınimo, mas
tem m´aximo. Os elementos {1}, {2}, {3} e {4} s˜ao elementos minimais.
{1, 2, 3, 4}
ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
mmmmmmm
{1, 2}
ggggggggggggg
{1, 3}
ggggggggggggg
{{{{{{{{{{{{{
{2, 3, 4}
nnnnnnn
€€€€€€€
{2, 3}
mmmmmmmmm
{3, 4}
nnnnnnnn
{2, 4}
dddddddddddddddddddddddddddddddddd
nnnnnnnn
{1} {2} {3} {4}
5.4.2 M´aximos, m´ınimos, supremo, ´ınfimo, 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 Ciˆencia 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 ´ınfimo 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 m´ınimo 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 {x}∪{y} tem supremo e ´ınfimo. Para referir o supremo (resp., o ´ınfimo)
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}
nnnnnnn
€€€€€€€
{1, 2}
€€€€€€€€ {1, 3}
nnnnnnnn
€€€€€€€€ {2, 3}
nnnnnnnn
{1}
 {2} {3}
mmmmmmmmmm
∅
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 m´ınimo m´ultiplo comum e mdc o m´aximo divisor comum).
(2A, ⊆) ´e um reticulado. Neste caso, sup(X, Y ) = X ∪Y e inf(X, Y ) = X ∩Y , quaisquer
que sejam X, Y ∈ 2A.
5.5 Fechos duma Rela¸c˜ao 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 RP for o fecho da rela¸c˜ao R para a propriedade P ent˜ao
(i) R ⊆ RP ⊆ A × A, e
(ii) toda rela¸c˜ao S ⊆ A × A que goze da propriedade P e contenha R, cont´em tamb´em RP .
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 61
Por exemplo, se Rsim denotar o fecho sim´etrico de R ent˜ao
• R ⊆ Rsim ⊆ A × A, e
• ∀S ⊆ A × A ((R ⊆ S ∧ S sim´etrica) ⇒ S ⊇ Rsim), ou seja, qualquer rela¸c˜ao S definida
em A que seja sim´etrica e contenha R, cont´em tamb´em Rsim.
Exemplo 40 Seja A = {1, 2, 3, 4, 5} e sejam θ e β rela¸c˜oes bin´arias em A e assim definidas:
θ = {(1, 1), (2, 2), (3, 3), (1, 2)}
β = {(1, 1), (1, 2), (2, 1), (4, 1)}
O grafo de θ:
1•
@AGFED
GG 2•
GFEDBCoo 3•
GFEDBCoo •4 •5
O grafo de β:
•1
@AGFED
GG •2
oo
•3 •5
•4
yy
O fecho reflexivo de θ ´e θ ∪ {(4, 4), (5, 5)}. O fecho sim´etrico θ ∪ {(2, 1)}, e o fecho
transitivo ´e θ porque θ ´e transitiva.
O grafo do fecho reflexivo de θ:
•1
@AGFED
GG •2
GFEDBCoo •3
GFEDBCoo •4
GFEDBCoo •5
GFEDBCoo
O grafo do fecho sim´etrico de θ:
•1
@AGFED
GG •2
oo
GFEDBCoo •3
GFEDBCoo •4 •5
O fecho reflexivo de β ´e β ∪ {(2, 2), (3, 3), (4, 4), (5, 5)}. O fecho sim´etrico β ∪ {(1, 4)} e
o transitivo ´e β ∪ {(2, 2), (4, 2)}.
O grafo do fecho reflexivo de β:
•1
@AGFED
GG •2
oo
GFEDBCoo •3
BCEDGF
•5
BCEDGF
•4
yy
GF@ABCyy
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 62
O grafo do fecho sim´etrico de β:
•1
@AGFED

GG •2
oo
•3 •5
•4
yy
O grafo do fecho transitivo de β:
•1
@AGFED
GG •2
oo
GFEDBCoo •3 •5
•4
yy aa||||||||
O fecho sim´etrico e transitivo de β ´e β ∪ {(2, 2), (4, 2), (1, 4), (2, 4), (4, 4)}.
•1
@AGFED

GG •2
oo
}}||||||||
GFEDBCoo •3 •5
•4
yy aa||||||||
GF@ABCyy
N˜ao faz sentido falar em fecho antissim´etrico. Se uma rela¸c˜ao n˜ao ´e antissim´etrica,
ent˜ao qualquer rela¸c˜ao que a contenha tamb´em n˜ao ´e antissim´etrica.
5.5.1 Fecho transitivo e percursos em grafos
Dada uma rela¸c˜ao R ⊆ A × A, define-se, para cada i ∈ Z+, a rela¸c˜ao Ri do modo seguinte:
R1 = R
Ri = RRi−1, i ≥ 2 (composta de R e Ri−1)
Proposi¸c˜ao 24 Uma rela¸c˜ao bin´aria R definida em A ´e transitiva se e s´o se R2 ⊆ R.
Prova: Se R2 ⊆ R ent˜ao existiam x, y ∈ A tais que (x, y) ∈ R2 e (x, y) /∈ R. Por
defini¸c˜ao R2 = RR, donde xR2y 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 R2 ⊆ R.
A prova do rec´ıproco, 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 R2 ⊆ R ent˜ao R+ = R. Assim,
como R+ (fecho transitivo de R) ´e transitiva, R ´e transitiva.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 63
Se A for finito, podemos desenhar o grafo de R. Dados dois v´ertices u, v ∈ A, chama-se
percurso de u para v no grafo a qualquer sequˆencia finita formada por um ou mais ramos do
grafo, tal que o extremo final de qualquer ramo da sequˆencia coincide com o extremo inicial
do ramo seguinte na sequˆencia. O comprimento do percurso ´e n´umero de arcos no percurso.
Dizer que uRiv 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 ∪i∈Z+ Ri, 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 definida em A. Para quaisquer elementos x e y de A, e qualquer
inteiro positivo k tem-se xRk+1y se e s´o se existem k elementos de A, sejam x1, . . . xk, tais
que xRx1 ∧ . . . ∧ xiRxi+1 ∧ . . . ∧ xkRy.
Prova: Mostremos, por indu¸c˜ao sobre k, que para todo k ∈ Z+ e quaisquer x, y ∈ A
xRk+1
y sse ∃x1, . . . , xk ∈ A (xRx1 ∧ . . . ∧ xkRy) (5.3)
Mostrar que (5.3) ´e v´alida para k = 1, equivale a mostrar que xR2y se e s´o se existe x1
tal que xRx1 ∧ x1Ry, o que ´e trivialmente v´alido por defini¸c˜ao de R2.
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)+1y. Ent˜ao, usando a defini¸c˜ao de R(k+1)+1, vem
xR(k+1)+1
y sse ∃z ∈ A xRz ∧ zRk+1
y
Mas, por hip´otese de indu¸c˜ao,
zRk+1
y sse ∃y1 . . . yk ∈ A (zRy1 ∧ . . . ∧ ykRy)
Assim,
xR(k+1)+1
y sse ∃z, y1 . . . yk ∈ A (xRz ∧ zRy1 ∧ . . . ∧ ykRy)
Se fizermos x1 = z, x2 = y1, . . . , xk+1 = yk vem
xR(k+1)+1
y sse ∃x1, x2 . . . xk+1 ∈ A (xRx1 ∧ x1Rx2 ∧ . . . ∧ xk+1Ry).
Logo, mostr´amos que (5.3) est´a nas condi¸c˜oes do princ´ıpio de indu¸c˜ao. Logo, por tal princ´ıpio,
(5.3) ´e v´alida para todo k ∈ Z+.
c A. P. Tom´as – Dep. de Ciˆencia 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• GG 2•

GG 5• GG 6•
oo

4•
yy
3•oo 7•
yy
Tem-se:
• (1, 4) ∈ R3 pois (1, 2) ∈ R ∧ (2, 3) ∈ R ∧ (3, 4) ∈ R.
• (1, 1) ∈ R4 pois (1, 4) ∈ R3 ∧ (4, 1) ∈ R.
• (3, 3) ∈ R4 pois 3 R 4 ∧ 4 R 1 ∧ 1 R 2 ∧ 2 R 3.
• (5, 5) ∈ R+ pois (5, 5) ∈ R2 j´a que 5 R 6 ∧ 6 R 5.
• Como 3 R 4 ∧ 4 R 1 ∧ 1 R 2 ∧ 2 R 5 ∧ 5 R 6 ∧ 6 R 7, tem-se (3, 7) ∈ R6 ⊆ R+.
MR+ =













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 sequˆencia de ramos (3, 4), (4, 1), (1, 2), (2, 5), (5, 6), (6, 7) ´e um percurso de 3 para 7.
Exerc´ıcio 5.5.1 Seja H = {x | x ´e ser humano} e sejam m~ae e pai rela¸c˜oes bin´arias
definidas 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 Ciˆencia 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 α ⊆ A × B, β ⊆ B × C e γ ⊆ C × D rela¸c˜oes bin´arias. Ent˜ao,
xα(βγ)y ⇐⇒ ∃z ∈ B xαz ∧ z(βγ)y (por def. composta α(βγ))
⇐⇒ ∃z ∈ B ∃w ∈ C xαz ∧ zβw ∧ wγy (por def. composta βγ)
⇐⇒ ∃w ∈ C xαβw ∧ wγy (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 definida num conjunto A. Ent˜ao, quaisquer que sejam os in-
teiros positivos n e k tem-se Rn+k = RnRk.
Prova: Seja R ⊆ A × A. Vamos mostrar por indu¸c˜ao sobre n ∈ Z+ que
∀n ∈ Z+
∀k ∈ Z+ Rn+k = RnRk. (5.4)
Se n = 1 ent˜ao por defini¸c˜ao de Ri tem-se R1+k = RRk 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+
Rn+k
= Rn
Rk
=⇒ ∀k ∈ Z+
Rn+1+k
= Rn+1
Rk
).
Sejam k, n quaisquer em Z+. Tem-se,
Rn+1+k = RRn+k (por defini¸c˜ao de Ri)
= R(RnRk) (por hip´otese de indu¸c˜ao)
= (RRn)Rk (pela associatividade da composi¸c˜ao)
= (Rn+1)Rk (por defini¸c˜ao de Ri)
Mostr´amos que as condi¸c˜oes do princ´ıpio de indu¸c˜ao se verificam, pelo que se conclui por esse
princ´ıpio 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 reflexivo de R ´e R∪IA, sendo IA a rela¸c˜ao identidade em A (i.e., IA = {(a, a) : a ∈ A}).
O fecho sim´etrico de R ´e R ∪ R−1. O fecho transitivo de R ´e i∈Z+ Ri.
Prova: Qualquer rela¸c˜ao bin´aria em A que seja reflexiva ter´a que conter
{(a, a) | a ∈ A}
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 66
ou seja, IA. Por defini¸c˜ao, o fecho reflexivo de R, seja Rref, ´e uma rela¸c˜ao reflexiva, pelo que
Rref ⊇ IA. Ainda por defini¸c˜ao, Rref ⊇ R. Assim, Rref ⊇ R ∪ IA. R ∪ IA ´e reflexiva, e
qualquer rela¸c˜ao definida em A que seja reflexiva e contenha R, cont´em R ∪ IA. Logo, R ∪ IA
´e o fecho reflexivo de R.
R ∪ R−1 cont´em R e ´e sim´etrica. Se (x, y) ∈ R ∪ R−1 ent˜ao (x, y) ∈ R ∨ (x, y) ∈ R−1. Por
defini¸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) ∈ R ∪ R−1 ent˜ao (y, x) ∈ R−1 ∨ (y, x) ∈ R, ou seja (y, x) ∈ R ∪ R−1, o que
prova a simetria de R ∪ R−1. Se mostrarmos que qualquer rela¸c˜ao S definida em A que seja
sim´etrica e contenha R, cont´em R ∪ R−1, concluimos que R ∪ R−1 ´e o fecho sim´etrico de R
(por defini¸c˜ao de fecho sim´etrico). Ora, se S ´e sim´etrica e S ⊇ R, ent˜ao S ⊇ R−1. De facto,
(x, y) ∈ R−1 ⇒ (y, x) ∈ R (por defini¸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+
=
i∈Z+
Ri
ou seja
R+
⊆
i∈Z+
Ri
(5.5)
R+
⊇
i∈Z+
Ri
(5.6)
Come¸camos pela primeira inclus˜ao. Vamos provar que i∈Z+ Ri (⊆ A × A) ´e transitiva
e cont´em R, pelo que por defini¸c˜ao de fecho transitivo se concluir´a (5.5). Como R = R1
(por defini¸c˜ao de R1), segue trivialmente R ⊆ i∈Z+ Ri. Para justificar que i∈Z+ Ri ´e
transitiva, sejam x, y, z ∈ A, e suponhamos que
(x, y) ∈
i∈Z+
Ri
e (y, z) ∈
i∈Z+
Ri
.
Por defini¸c˜ao de uni˜ao de rela¸c˜oes, se (x, y) ∈ i∈Z+ Ri ent˜ao existe k ∈ Z+ tal que xRky.
E analogamente, (y, z) ∈ i∈Z+ Ri ⇒ ∃p ∈ Z+ yRpz. Ou seja,
((x, y) ∈
i∈Z+
Ri
∧ (y, z) ∈
i∈Z+
Ri
) ⇒ ∃p, k ∈ Z+
xRk
y ∧ yRp
z,
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 67
o que implica ∃p, k ∈ Z+ xRkRpz. Ent˜ao, pelo Lema 5, vem xRk+pz, isto ´e (x, z) ∈ Rk+p.
Donde, (x, z) ∈ i∈Z+ Ri. Logo, i∈Z+ Ri ´e transitiva.
Mostremos agora que tamb´em (5.6). Para tal, vamos usar indu¸c˜ao sobre n ∈ Z+ para
provar que
∀n ∈ Z+
R+
⊇
1≤i≤n
Ri
o que implica a validade de (5.6). Se n = 1 ent˜ao 1≤i≤n Ri = R. E, R ⊆ R+ por defini¸c˜ao
de fecho. Supondo agora que R+ ⊇ 1≤i≤k Ri, vamos mostrar que ent˜ao R+ ⊇ 1≤i≤k+1 Ri.
Sejam x, y ∈ A tais que (x, y) ∈ 1≤i≤k+1 Ri. Queremos concluir que ent˜ao (x, y) ∈ R+.
Por defini¸c˜ao de uni˜ao, (x, y) ∈ 1≤i≤k+1 Ri se e s´o se (x, y) ∈ 1≤i≤k Ri ou (x, y) ∈ Rk+1.
Se for (x, y) ∈ 1≤i≤k Ri ent˜ao, por hip´otese de indu¸c˜ao xR+y. Se for (x, y) ∈ Rk+1,
ent˜ao existe z ∈ A tal que xRz ∧ zRky (uma vez que Rk+1 = RRk por defini¸c˜ao).
Como R ⊆ R+, e Rk ⊆ 1≤i≤k Ri, e por hip´otese de indu¸c˜ao 1≤i≤k Ri ⊆ R+,
(xRz ∧ zRk
y) ⇒ (xR+
z ∧ zR+
y).
Como por defini¸c˜ao de fecho transitivo, R+ ´e transitiva, vem xR+y.
Logo, pelo princ´ıpio de indu¸c˜ao matem´atica ´e verdade que
∀n ∈ Z+
R+
⊇
1≤i≤n
Ri
De (5.5) e (5.6) segue R+ = i∈Z+ Ri.
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 reflexivo.
Exemplo 42 Seja R a rela¸c˜ao definida 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 i∈Z+ Ri. Cada Ri ´e uma rela¸c˜ao definida
em Z+ e
R1 = R
R2 = RR = {(x, y) | ∃z ∈ Z+ xRz ∧ zRy} = {(x, y) | y = x + 6}
R3 = RR2 = {(x, y) | ∃z ∈ Z+ xRz ∧ zR2y} = {(x, y) | y = x + 9}
...
...
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 68
Para n ∈ Z+, teremos
Rn+1
= RRn
= {(x, y) | ∃z ∈ Z+
xRz ∧ zRn
y} = {(x, y) | y = x + 3(n + 1)}
o que pode ser provado por indu¸c˜ao sobre n. Assim,
R+
=
i∈Z+
Ri
= {(x, y) ∈ Z+
× Z+
| ∃k ∈ Z+
y = x + 3k}.
O fecho sim´etrico e transitivo de R, seja Rst, ´e
Rst = {(x, y) ∈ Z+
× Z+
| ∃k ∈ Z y = x + 3k}
Pode-se mostrar que o fecho sim´etrico e transitivo ´e sempre o fecho transitivo do fecho
sim´etrico.
Exerc´ıcio 5.5.2 Seja R uma rela¸c˜ao definida em A.
a) Mostre que se R ´e sim´etrica ent˜ao R+ ´e sim´etrica.
b) Usando se necess´ario a al´ınea anterior, prove que o fecho sim´etrico e transitivo de R ´e
(R ∪ R−1)+, ou seja o fecho transitivo do fecho sim´etrico de R.
c) Verifique se
(a) o fecho sim´etrico e transitivo ´e o fecho sim´etrico do fecho transitivo.
(b) o fecho transitivo e reflexivo ´e o fecho transitivo do fecho reflexivo.
(c) o fecho transitivo e reflexivo ´e o fecho reflexivo do fecho transitivo.
5.5.2 Fecho transitivo duma rela¸c˜ao definida num conjunto finito
Mostr´amos que o fecho transitivo ´e dado por uma uni˜ao infinita de rela¸c˜oes. No entanto, em
certos casos essa uni˜ao pode-se reduzir de facto a uma uni˜ao finita.
Corol´ario 25.1 Seja R ⊆ A × A (com A n˜ao necessariamente finito). Se existir algum
inteiro positivo m tal que Rm+1 ⊆ 1≤k≤m Rk, ent˜ao R+ = 1≤k≤m Rk.
Prova: Seja R ⊆ A × A tal que Rm+1 ⊆ 1≤k≤m Rk, para algum m ∈ Z+.
Vamos mostrar por indu¸c˜ao sobre k que
∀k ≥ m + 1 Rk ⊆ 1≤i≤m Ri (5.7)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 69
pelo que, R+ = i∈Z+ Ri ⊆ 1≤i≤m Ri. Como tamb´em i∈Z+ Ri ⊇ 1≤i≤m Ri, conclui-se
R+ = 1≤i≤m Ri.
A validade no caso k = m + 1 ´e trivial, j´a que Rm+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 fixo,
e vamos mostrar que ent˜ao tamb´em ´e v´alida para k + 1.
Mostrar que Rk+1 ⊆ 1≤i≤m Ri equivale a verificar que para todo x, y ∈ A,
(x, y) ∈ Rk+1
⇒ (x, y) ∈
1≤i≤m
Ri
,
Por defini¸c˜ao de Rk+1 tem-se (x, y) ∈ Rk+1 se e s´o se existe z ∈ A tal que xRz ∧ zRky.
Usando a hip´otese de indu¸c˜ao sobre Rk, vem xRz e z 1≤i≤m Ri y. Logo, por defini¸c˜ao de
uni˜ao, existe p ≤ m, tal que zRpy . Assim, existe z ∈ A tal que xRz e zRpy. Donde,
xRp+1y. Como p + 1 ≤ m + 1, vem
Rp+1
⊆
1≤i≤m+1
Ri
=
1≤i≤m
Ri
.
Logo, (x, y) ∈ 1≤i≤m Ri. Portanto, por indu¸c˜ao matem´atica, (5.7) ´e v´alida.
Corol´ario 25.2 Seja R uma rela¸c˜ao definida em A (n˜ao necessariamente finito). Se existir
m ∈ Z+ tal que Rm = ∅ ent˜ao R+ = 1≤k≤m−1 Rk (sup˜oe-se que ´e vazia a uni˜ao das rela¸c˜oes
Rk com 1 ≤ k ≤ 0).
Prova: Se Rm = ∅, para algum m ∈ Z+, ent˜ao ∀k ≥ m Rk = ∅. Assim, R+ = m−1
k=1 Rk.
A prova tamb´em ´e imediata se se recorrer ao Corol´ario 25.1. J´a que Rm ⊆ m−1
k=1 Rk se
Rm = ∅.
Corol´ario 25.3 Seja R uma rela¸c˜ao definida num conjunto finito A, e seja n = |A|. Ent˜ao
Rn+1 ⊆ 1≤j≤n Rj e R+ = 1≤j≤n Rj
Prova: Sejam x, y ∈ A tais que xRn+1y. Ent˜ao pelo Lema 3, existem x1, . . . xn tais que
xRx1 ∧ . . . ∧ xnRy.
Como A s´o tem n elementos distintos, ou ocorrem repeti¸c˜oes em x1, . . . , xn, ou x e y
ocorrem em x1, . . . xn.
Se for xi = xj para algum (i, j) com i = j, ent˜ao podemos retirar xiRxi+1 ∧ . . . ∧ xj−1Rxj
e escrever xRx1 ∧. . . ∧xi−1Rxi ∧xiRxj+1 . . . ∧xnRy identificando xi−1 com x caso seja i = 1,
e xj+1 com y se for j = n. Logo xRn+1−j+iy.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.5. FECHOS DUMA RELAC¸ ˜AO PARA UMA PROPRIEDADE 70
Se n˜ao existirem repeti¸c˜oes em x1, . . . xn, ent˜ao x = xi para algum i.
Podemos ent˜ao escrever simplesmente xRxi+1 ∧ . . . ∧ xnRy identificando xi+1 com y caso
i = n. Donde, xRn+1−iy.
Mostrou-se que quaisquer que sejam x, y ∈ A se xRn+1y ent˜ao existe k ≤ n tal que xRky.
Logo, Rn+1 ⊆ 1≤j≤n Rj.
Ent˜ao, pelo Corol´ario 25.1, R+ = 1≤j≤n Rj.
Exemplo 43 Seja R a rela¸c˜ao bin´aria em {1, 2, 3, 4, 5, 6, 7} representada pelo grafo seguinte.
1• GG 2•

GG 5• GG 6•
oo

4•
yy
3•oo 7•
yy
J´a determin´amos anteriormente R+ por an´alise do grafo. Tamb´em poderiamos ter determi-
nado R+ analiticamente: R+ = R ∪ R2 ∪ R3 ∪ R4 ∪ R5 ∪ R6 ∪ R7.
MR2 = (MR)2
= MRMR
MR3 = MR2 MR
MR4 = (MR)4
= MR2 MR2
MR5 = MR4 MR
...
MR+ = MR ∨ MR2 ∨ MR3 ∨ MR4 ∨ MR5 ∨ MR6 ∨ MR7
Exerc´ıcio 5.5.3 Justifique que quaisquer que sejam R e S definidas num conjunto A finito
e n˜ao vazio, MR∪S[i, j] = MR[i, j] ∨ MS[i, j] com 1 ≤ i, j ≤ |A|.
Exemplo 44 Note que se R for a rela¸c˜ao definida em {1, 2, 3, 4} representada pelo grafo
seguinte
1• GG 2•

4•
yy
3•oo
ent˜ao (x, x) ∈ R+ para todo x ∈ {1, 2, 3, 4} mas (x, x) /∈ Ri para todo i  4. Neste caso,
R+ = R ∪ R2 ∪ R3 ∪ R4 = {1, 2, 3, 4} × {1, 2, 3, 4}.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 6
Grafos e Multigrafos
Os grafos representam um modelo fundamental em Computa¸c˜ao, surgindo em
• problemas de caminhos (por exemplo, caminho m´ınimo ou m´aximo);
• representa¸c˜ao de redes (por exemplo, de computadores);
• descri¸c˜ao de sequˆencia 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
{{vvvvv
BB…………………………………
fn
55rrrrrr
}}{{{{
fv
55qqqqq
zzuuuuuuu
det

n

v

fn
zzvvvvv

det

n

o rato ca¸cou o gato
6.1 Grafos Dirigidos
Um grafo dirigido ´e definido por um par G = (V, E) em que V ´e um conjunto de v´ertices e
E um conjunto de ramos orientados que ligam pares de v´ertices de V , n˜ao existindo mais do
que um ramo com a mesma orienta¸c˜ao a ligar dois v´ertices.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.1. GRAFOS DIRIGIDOS 72
Quando o conjunto de v´ertices ´e finito (o que implica que o conjunto de ramos tamb´em
o seja), o grafo ´e finito, podendo-se desenhar. Por exemplo,
•1

GG •2
GFEDBCoo GG •3 •5
GFEDBCoo •6
•4
yy aa||||||||
GF@ABCyy
´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 v´ertices ´e V = {1, 2, 3, 4, 5, 6}.
Se (x, y) ∈ E, ent˜ao o v´ertice x ´e a origem e o v´ertice y o fim 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 fim no mesmo v´ertice, chamam-se lacetes.
No exemplo, s˜ao trˆes os ramos incidentes no v´ertice 2, isto ´e, que terminam no v´ertice 2.
Este v´ertice tem grau de entrada trˆes e grau de sa´ıda dois.
O grau de entrada dum v´ertice ´e o n´umero de ramos que tˆem fim nesse v´ertice. O grau
de sa´ıda ´e o n´umero de ramos que tˆem origem nesse v´ertice.
No exemplo, os v´ertices 5 e 6 s˜ao v´ertices isolados, pois n˜ao s˜ao origem nem fim de
nenhum ramo com algum extremo noutro v´ertice.
Um percurso (finito) ´e uma sequˆencia finita formada por um ou mais ramos do grafo
tal que o extremo final de qualquer ramo coincide com o extremo inicial do ramo seguinte
na sequˆencia. Um percurso num grafo dirigido fica bem identificado se se indicar a sequˆencia
de v´ertices por onde passa. Para o exemplo, o percurso (1, 4), (4, 1), (1, 2), (2, 2), (2, 2), (2, 3)
pode ser dado pela sequˆencia de v´ertices 1, 4, 1, 2, 2, 2, 3.
A origem do percurso ´e a origem do primeiro ramo no percurso e o fim do percurso ´e
o fim do ´ultimo ramo no percurso. Um percurso com origem em v e fim em w ´e um percurso
de v para w. Chama-se circuito a um percurso em que a origem e o fim coincidem. O
comprimento (ou ordem) dum percurso (finito) ´e o n´umero de ramos que o constituem.
Assim, 1, 4, 1, 2, 2, 2, 3 tem origem em 1, fim em 3 e comprimento seis, n˜ao sendo um
circuito. Note que, qualquer percurso de comprimento k envolve k + 1 v´ertices, n˜ao necessa-
riamente distintos.
Neste percurso, alguns v´ertices s˜ao visitados mais do que uma vez, concretamente os
v´ertices 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 v´ertices
e ciclo ´e um percurso fechado que n˜ao tem repeti¸c˜ao de v´ertices com excep¸c˜ao do inicial e
final. Designa-se por pista um percurso que n˜ao cont´em repeti¸c˜ao de ramos.
c A. P. Tom´as – Dep. de Ciˆencia 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 bibliografia 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 v´ertice ocorre duas ou mais vezes. De acordo com a mesma terminologia,
ciclo era sin´onimo de circuito, chamando-se “ciclo simples” se fosse tamb´em caminho simples.
6.1.1 Multigrafos dirigidos.
O conceito de grafo pode ser de certo modo generalizado para permitir a existˆencia de v´arios
ramos com a mesma origem e fim. Multigrafo dirigido ´e um terno (V, A, Φ) em que V ´e um
conjunto de v´ertices (ou n´os), A um conjunto de ramos (ou arestas) e Φ ´e uma fun¸c˜ao
de A em V × V que a cada ramo associa um par de v´ertices.
Assim, um grafo dirigido (simples) ´e um multigrafo dirigido (V, A, Φ) em Φ ´e uma
fun¸c˜ao injectiva. Cada par ordenado de v´ertices fica associado por Φ quando muito a um
ramo. Um grafo dirigido fica bem definido por um par (V, ρ) em que ρ ´e uma rela¸c˜ao bin´aria
em V, ou seja, um conjunto de pares ordenados. Cada par ´e um ramo.
A origem e o fim dum ramo α tal que Φ(α) = (u, v) s˜ao os v´ertices u e v respecti-
vamente. Usam-se tamb´em as designa¸c˜oes de: n´o inicial (final), v´ertice inicial (final) e
extremos.
Num multigrafo dirigido, o grau de entrada dum v´ertice ´e o n´umero de ramos que tˆem
fim nesse v´ertice; o grau de sa´ıda ´e o n´umero de ramos que tˆem origem nesse v´ertice.
Exemplo 45 Considere o multigrafo dirigido representado na figura.
v1
α5

α6

α7

@AGFα1
ED α2
GG
v2
α3
oo
EDBC α4
@Ayy
v3
α8
bb}}}}}}}}}}}}}}}}
V = {v1, v2, v3}
A = { α1, α2, α3, α4, α5, α6, α7, α8}
Ψ = {(α1, (v1, v1)), (α2, (v1, v2)), (α3, (v2, v1)), (α4, (v2, v2)),
(α5, (v1, v3)), (α6, (v1, v3)), (α7, (v1, v3)), (α8, (v3, v2)) }
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.1. GRAFOS DIRIGIDOS 74
Pode-se observar que o grau de entrada de v1 ´e 2 e o seu grau de sa´ıda ´e 5.
A sequˆencia de ramos α1α5α8α3α6 ´e um percurso de v1 para v3 (tem ciclos). Este percurso
n˜ao fica bem determinado se s´o indicar a sequˆencia de v´ertices por onde passa.
Um percurso (finito) num multigrafo ´e uma sequˆencia finita formada por um ou mais
ramos do multigrafo e tal que o extremo final de qualquer ramo coincide com o extremo
inicial do ramo seguinte na sequˆencia. Representamos um percurso pelo tuplo dos seus ramos
(α1, . . . , αk) ou simplesmente α1 . . . αk.
Um percurso num grafo dirigido fica bem representado se se indicar a sequˆencia de v´ertices
por onde passa. Assim, se αi = (vi, vi+1), ent˜ao (v1, . . . vk, vk+1) representa um e um s´o
percurso num grafo dirigido. Tamb´em poderemos representar por v1 . . . vkvk+1.
A origem do percurso ´e a origem do primeiro ramo no percurso e o fim do percurso ´e
o fim do ´ultimo ramo no percurso. Um percurso com origem em v e fim em w ´e um percurso
de v para w.
O comprimento (ou ordem) dum percurso (finito) ´e o n´umero de ramos que o consti-
tuem.
Um circuito ´e um percurso fechado, ou seja, um percurso cuja origem e fim coincidem.
Um lacete (loop) ´e um circuito de ordem 1.
6.1.2 Grafos, Percursos e rela¸c˜oes bin´arias
Grafo de uma rela¸c˜ao bin´aria R definida em A ´e um grafo dirigido (V, ρ): os v´ertices
do grafo identificam-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, cap´ıtulo 5) Seja G = (V, ρ) um grafo dirigido e sejam u e
v v´ertices em V. 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, cap´ıtulo 5)) Seja G = (V, ρ) um grafo dirigido. Sejam
u e v v´ertices em V. 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 v´ertices facilmente se
mostra a seguinte proposi¸c˜ao.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.2. GRAFOS N ˜AO DIRIGIDOS 75
Corol´ario 26.2 Seja G = (V, ρ) um grafo dirigido finito. Qualquer percurso de ordem maior
ou igual a |V| cont´em um circuito.
Corol´ario 26.3 (por Corol´arios 25.3, cap´ıtulo 5)) e 26.2 ) Seja G = (V, ρ) um grafo dirigido
finito. Sejam u e v v´ertices em V. 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 |V|. 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 |V|.
Paralelamente, tamb´em se pode mostrar que se R ´e uma rela¸c˜ao bin´aria num conjunto
finito A, |A| = n ≥ 2 e x, y ∈ A s˜ao distintos, ent˜ao xRny se e s´o se existir p, tal que
1 ≤ p  n e (x, y) ∈ Rp. Verifique que este resultado n˜ao pode ser generalizado a pares da
forma (x, x). Compare com o Corol´ario 25.3, cap´ıtulo 5.
Dados u e v v´ertices de um multigrafo dirigido, diz-se que v ´e acess´ıvel 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 v´ertice ´e acess´ıvel de
qualquer outro v´ertice nesse multigrafo.
Corol´ario 26.4 Um grafo dirigido G = (V, ρ) ´e fortemente conexo se e s´o se ρ = V × V ,
sendo ρ o fecho transitivo e reflexivo de ρ.
6.2 Grafos N˜ao Dirigidos
Multigrafo n˜ao dirigido ´e um terno (V, E, Φ) em que V ´e um conjunto de v´ertices (ou
n´os), E um conjunto de ramos e Φ ´e uma fun¸c˜ao de E no conjunto de pares n˜ao ordenados
de elementos de V. 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 (V, E, Φ) em que Φ ´e uma
fun¸c˜ao injectiva. Cada par de v´ertices n˜ao ordenado fica associado por Φ quando muito a um
ramo.
v1
v2
ffffffff
||||||||
v3 v4
v1 v5

v2
ffffffff
||||||||
v3 v4
`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 v1 e v2. `A direita temos um grafo n˜ao dirigido.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.2. GRAFOS N ˜AO DIRIGIDOS 76
Multigrafo adjunto de um multigrafo n˜ao dirigido G = (V, E, Φ) ´e um multigrafo diri-
gido GA = (V, A, Ψ) tal que a cada ramo de E unindo v´ertices diferentes correspondem dois
ramos em A, e vice-versa. Se Φ(α) = u, v e u = v ent˜ao existem dois ramos α1 e α2 em A
tais que Ψ(α1) = (u, v) e Ψ(α2) = (v, u).
O grafo adjunto de um grafo n˜ao dirigido G = (V, E, Φ) ´e um grafo dirigido (V, ρ) em que
ρ ´e sim´etrica. Tem-se (u, v) ∈ ρ e (v, u) ∈ ρ sse Φ(α) = u, v para algum α ∈ E.
Se Φ(α) = u, v ent˜ao u e v dizem-se extremos do ramo α.
Um percurso (finito) num multigrafo n˜ao dirigido ´e uma sequˆencia finita formada por
um ou mais ramos do multigrafo que corresponde a um percurso no multigrafo adjunto.
Num grafo n˜ao dirigido ( v0, v1 , v1, v2 , . . . vk−1, vk ) representa um percurso entre v0 e
vk. Se se indicar a sequˆencia de v´ertices por onde um percurso passa, (v0, v1, v2, . . . , vk−1, vk)
pode ser entendido como um percurso de v0 para vk.
O comprimento (ou ordem) dum percurso (finito) ´e o seu n´umero de ramos.
Um circuito num grafo n˜ao dirigido ´e um percurso fechado ( v0, v1 , v1, v2 , . . . vk−1, vk )
que v0 e vk coincidem. Um ciclo (por vezes designado ciclo simples) ´e um circuito que n˜ao
tem repeti¸c˜ao de v´ertices com excep¸c˜ao do inicial e final.
Um grafo n˜ao dirigido ´e ac´ıclico se e s´o se n˜ao cont´em ciclos (nem lacetes).
v1
v2
ffffffff
||||||||
v3 v4
v1 v5

v2
ffffffff
||||||||
v3 v4
tem circuitos tem ciclos (simples)
n˜ao tem ciclos (simples) n˜ao ´e ac´ıclico
Grau de um v´ertice num grafo n˜ao dirigido ´e o n´umero de ramos que tˆem esse v´ertice
como extremo.
Um subgrafo1 de um grafo G = (V, E) ´e um grafo G = (V , E ) em que V ⊆ V, E ⊆ E.
Tamb´em se pode definir 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 v´ertices em V ,
chamando subgrafo parcial se algum ramo que liga v´ertices em V n˜ao pertencer a E .
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.2. GRAFOS N ˜AO DIRIGIDOS 77
6.2.1 Grafos Conexos
Num multigrafo n˜ao dirigido, dado um par de v´ertices u, v diz-se que v ´e acess´ıvel 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 equivalˆencia.
Um multigrafo n˜ao dirigido G ´e conexo se e s´o se qualquer v´ertice ´e acess´ıvel de qualquer
outro v´ertice nesse multigrafo.
Dado um qualquer multigrafo n˜ao dirigido G, pode-se mostrar que cada classe de equi-
valˆencia 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 v´ertice de G).
Tais subgrafos dizem-se componentes conexas de G. Por abuso de linguagem, chamare-
mos ainda componentes conexas `as classes de equivalˆencia da rela¸c˜ao de acessibilidade. O
conjunto de v´ertices na componente identifica-a perfeitamente.
O multigrafo (n˜ao dirigido) seguinte tem duas componentes conexas.
v1
v2
vvvvvv
vvvvvv
rrrrrr
v3 v4
v5 v6
iiiiiiiiiiiiii
v7
vvvvvv
v8
A rela¸c˜ao de acessibilidade n˜ao depende da existˆencia de v´arios ramos entre dois v´ertices.
A cada multigrafo n˜ao dirigido podemos associar um grafo n˜ao dirigido substituindo cada
conjunto de ramos entre um mesmo par de v´ertices por apenas um ramo. Podemos ainda
retirar todos os lacetes. O grafo n˜ao dirigido assim definido 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 = (V, ρ) um grafo n˜ao dirigido finito, conexo, |ρ| ≥ 1.
(i) Se se retirar um ramo de G, o grafo resultante tem quando muito duas componentes
conexas.
(ii) Seja v um v´ertice 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 Ciˆencia de Computadores – FCUP
6.2. GRAFOS N ˜AO DIRIGIDOS 78
Exerc´ıcio 6.2.1 Prove o Lema 6. Para (i), suponha que o ramo u, v ´e retirado. Considere
Av assim definido
Av = {w ∈ V | w = v ou existe percurso em G entre w e v que n˜ao inclui o ramo u, v }
e mostre que se VAv = ∅ ent˜ao u /∈ Av e VAv ´e o conjunto
{w ∈ V | w = u ou existe algum percurso em G entre w e u que n˜ao inclui o ramo u, v }
e Av e VAv 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¸c˜ao necess´aria para um grafo ser conexo
Pretende-se ligar um conjunto de localidades, seja {l1, l2, . . . , ln}, por estradas. Qual o n´umero
m´ınimo de estradas a construir para que seja poss´ıvel 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 n−1 estradas ter˜ao que ser constru´ıdas”. Esse n´umero ´e suficiente 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 finito (V, E)
seja conexo que |E| ≥ |V| − 1.
Prova: Vamos mostrar por indu¸c˜ao sobre o n´umero de v´ertices do grafo que
∀n ∈ Z+
∀G G = (V, E) grafo n˜ao dirigido conexo, |V| = n ⇒ |E| ≥ |V| − 1
A condi¸c˜ao ´e verdadeira para n = 1 j´a que o grafo n˜ao dirigido com 1 s´o v´ertice 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 v´ertices n˜ao excede k. Ou seja,
∀1 ≤ i ≤ k ∈ Z+
∀G G = (V, E) grafo n˜ao dirigido conexo, |V| = i ⇒ |E| ≥ |V| − 1
e vamos mostrar que ent˜ao a proposi¸c˜ao ´e v´alida para grafos com k + 1 v´ertices.
Seja G um grafo n˜ao dirigido conexo e com k + 1 v´ertices. Como G n˜ao tem v´ertices
isolados (j´a que G ´e conexo e k + 1 ≥ 2) seja v um qualquer v´ertice de V e seja p ≥ 1 o
seu grau. Considere-se o subgrafo que se obt´em retirando v e os p ramos com extremo em v.
Pelo Lema 6, tal grafo ´e constitu´ıdo por m (m ≤ p) componentes conexas: sejam G1, . . . Gm.
Cada um dos Gi ´e n˜ao dirigido, conexo, e tem um n´umero de v´ertices (seja ni) n˜ao superior
c A. P. Tom´as – Dep. de Ciˆencia 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 Gi ´e maior ou igual a ni −1.
Donde,
|E| ≥ p +
m
i=1
(ni − 1) = p + k − m ≥ k = |V| − 1
Note que cada v´ertice pertence a uma s´o componente conexa, pelo que m
i=1 ni = k.
Conclui-se assim por indu¸c˜ao matem´atica que se G = (V, E) ´e n˜ao dirigido, finito e conexo,
ent˜ao |E| ≥ |V| − 1.
Exerc´ıcio 6.2.2 Mostre que o rec´ıproco da Proposi¸c˜ao 28 ´e falso ou seja, que existem grafos
n˜ao dirigidos que n˜ao s˜ao conexos embora |E| ≥ |V| − 1.
Lema 7 Seja G um grafo n˜ao dirigido conexo. Se G n˜ao ´e ac´ıclico ent˜ao ´e poss´ıvel retirar
algum ramo a G de modo que o grafo resultante seja tamb´em conexo.
Lema 8 Seja G um grafo n˜ao dirigido conexo e com pelo menos 2 v´ertices, tal que se se
retirar algum ramo, o grafo resultante ´e n˜ao conexo. Ent˜ao G tem pelo menos dois v´ertices
de grau 1.
Exerc´ıcio 6.2.3 Prove os Lemas 7 e 8. Para mostrar 8 use indu¸c˜ao sobre o n´umero de
v´ertices 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 v´ertices e n − 1 ramos. Se tiver 1 v´ertice (e 0
ramos) diz-se ´arvore degenerada.
•
•
tttttt
tttttt
• •
tttttt
tttttt •
• •
• •
iiiiiiiiiiiii
•
tttttt
•
•
tttttt •
• •
tttttt
•
tttttt
tttttt • •
• •
´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
v´ertices
1. conexo e ac´ıclico.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.3. ´ARVORES 80
2. tal que entre cada par de v´ertices (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 v´ertices, o grafo fica
com um e um s´o ciclo (simples).
5. ac´ıclico e com n − 1 ramos.
6. conexo e com n − 1 ramos.
Prova: Vamos provar a equivalˆencia 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 v´ertices u, v de G, ent˜ao CC seria um circuito em G (e conteria um ciclo) pelo que
G n˜ao seria ac´ıclico.
• (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 v´ertices 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 tamb´em 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
poss´ıvel 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 v´ertices no
ciclo, forma-se pelo menos dois ciclos, o que contraria (4). Logo, G ´e ac´ıclico.
Concluimos assim que (1), (2), (3), e (4) s˜ao equivalentes. Para completar a prova da
Proposi¸c˜ao, vamos mostrar agora a equivalˆencia de (1), (5) e (6).
• (1) ⇒ (5) (por indu¸c˜ao sobre o n´umero de v´ertices) Se o grafo tiver exactamente 2
v´ertices ent˜ao tem apenas um ramo, e se for um v´ertice isolado, ent˜ao tem 0 ramos
(sen˜ao n˜ao seria ac´ıclico). Tomamos como hip´otese de indu¸c˜ao a validade da condi¸c˜ao
para grafos com i v´ertices, 1 ≤ i ≤ k. E, vamos mostrar que ent˜ao ainda ´e v´alida para
grafos com k + 1 v´ertices.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.3. ´ARVORES 81
Seja G = (V, E) um grafo com k + 1 v´ertices, conexo e ac´ıclico. Como G ´e conexo e
tem pelo menos dois v´ertices, 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 afirmar que tem exactamente duas componentes conexas: sejam G1 e
G2. Sejam n1 e n2 o n´umero de v´ertices respectivos. Ent˜ao 1 ≤ ni ≤ k, e como cada
Gi ´e um subgrafo ac´ıclico (sen˜ao G conteria ciclos) e conexo, ter´a que ter ni − 1 ramos
(por hip´otese de indu¸c˜ao). Consequentemente,
|E| = (n1 − 1) + (n2 − 1) + 1 = (n1 + n2) − 1 = (k + 1) − 1 = k = |V| − 1.
Portanto, por indu¸c˜ao matem´atica podemos concluir que qualquer grafo n˜ao dirigido
finito, ac´ıclico e conexo tem exactamente menos um ramo do que v´ertices.
• (5) ⇒ (6) Seja G um grafo qualquer com k v´ertices ac´ıclico e com k−1 ramos. Se G n˜ao
for conexo, ent˜ao seja m o n´umero de componentes conexas de G. Como G ´e ac´ıclico,
cada componente conexa ´e ac´ıclica pelo que tem exactamente ni − 1 ramos, se for ni
o seu n´umero de v´ertices. Isto porque, j´a mostr´amos que (1) ⇒ (5), e se alguma das
componentes se reduzir a um v´ertice ter´a que ter zero ramos.
Ent˜ao k − 1 = m
i=1(ni − 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 ac´ıclico 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 n−2 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 ac´ıclico. 2
Numa ´arvore n˜ao degenerada, os v´ertices 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 ra´ız
´Arvore com ra´ız ´e um grafo dirigido com n v´ertices e n − 1 ramos e tal que existe um e um
s´o v´ertice do qual todos s˜ao acess´ıveis. Tal v´ertice chama-se a ra´ız da ´arvore. As folhas numa
´arvore com ra´ız s˜ao os v´ertices com grau de sa´ıda zero. A ra´ız da ´arvore ´e o ´unico v´ertice
com grau de entrada zero. Numa ´arvore com ra´ız os filhos ou descendentes directos de
um n´o v s˜ao os extremos finais de ramos com origem em v. Os descendentes de um n´o s˜ao
os filhos desse n´o e os descendentes dos filhos desse n´o. Um n´o ´e pai dos seus filhos.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.4. PERCURSOS EULERIANOS E HAMILTONIANOS 82
´Arvore ordenada (ou orientada ) ´e uma ´arvore com ra´ız e tal que o conjunto de ramos
que saem dum v´ertice est´a totalmente ordenado.
As ´arvores sint´acticas s˜ao ´arvores ordenadas.
frase
}}zzzz
AAƒƒƒƒƒƒƒƒƒƒƒ
fn
33hhhhh
ÐÐÑÑÑÑ
fv
33gggg
||yyyyyy
det

n

v

fn
}}zzzz

det

n

o rato ca¸cou o gato
expr
yysssss

BB……………………………
expr

expr
yysssss

77uuuuu
inteiro

expr

expr

inteiro

inteiro

5 + 3 + 8
As ´arvores seguintes poderiam iguais se se considerasse que eram ´arvores com ra´ız, mas
s˜ao diferentes se se considerar que s˜ao ´arvores ordenadas (e 1  2).
•
1
~~~~~~~
2
11ddddddd
•
1
~~~~~~~
2
11ddddddd •
• •
•
1
~~~~~~~
2
11ddddddd
• •
1
~~~~~~~
2
11ddddddd
• •
Os valores atribu´ıdos aos ramos especificam 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 sa´ıda de cada v´ertice n˜ao excede n. As ´arvores das figura 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.
eeee eeee
¡¡¡¡¡¡¡¡
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.5. GRAFOS PLANARES 83
Proposi¸c˜ao 30 Seja G um grafo n˜ao dirigido, finito e sem v´ertices isolados. Existe um
circuito de Euler em G se e s´o se G ´e conexo e todos os v´ertices de G tˆem grau par. Existe
um percurso de Euler em G se e s´o se G ´e conexo e o n´umero de v´ertices em G com grau
´ımpar ´e 0 ou 2.
Exerc´ıcio 6.4.1 Verifique se ´e poss´ıvel desenhar cada uma das figuras 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
v´ertice do multigrafo uma e uma s´o vez.
Um circuito de Hamilton ´e um circuito com origem e fim no mesmo v´ertice e que passa
por cada um dos restantes v´ertices 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 poss´ıvel) duas vezes na mesma localidade.
N˜ao se conhece qualquer condi¸c˜ao necess´aria e suficiente que garanta a existˆencia 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 v´ertices.
Um grafo n˜ao dirigido, finito e sem lacetes, e tal que existe um ramo entre cada par de
v´ertices diferentes, diz-se completo. O grafo completo com n v´ertices, denota-se por Kn.
6.5 Grafos Planares
Um grafo ´e planar sse for poss´ıvel represent´a-lo no plano sem que haja cruzamento de ramos.
Exerc´ıcio 6.5.1 Justifique que o grafo (V, E) ´e planar, para V = {1, 2, 3, 4, 5, 6, 7, 8} e E =
{ 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 (V, E) diz-se bipartido se e s´o se existir uma parti¸c˜ao {V1, V2} do
conjunto V tal que para todo v1, v2 ∈ E se tem v1 ∈ V1 e v2 ∈ V2.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.6. ISOMORFISMO DE GRAFOS 84
Se cada v´ertice em V1 estiver ligado a cada um dos v´ertices de V2 por um ramo, o grafo
diz-se bipartido completo. Nesse caso, se |V1| = m e |V2| = n, o grafo denota-se por Km,n.
Na figura apresenta-se K3,3 (bipartido completo) e K5 (completo, n˜ao bipartido).
•
ddddddd
GGGGGGGGGGGGGG •
•
~~~~~~~
ddddddd •
•
~~~~~~~

•
•
~~~~~~~
ddddddd

GGGGGGGGGGGGGG
•
yyyyyyyyyyyyyy •
oooooooooooooo
• •
Estes dois grafos n˜ao s˜ao planares.
O Teorema de Kuratowski (1930) afirma que um grafo n˜ao dirigido finito n˜ao ´e planar
se e s´o se tiver como subgrafo K5 ou K3,3 ou algum grafo que possa ser obtido de K5 ou K3,3
por inser¸c˜ao ou elimina¸c˜ao de v´ertices de grau 2. A prova deste teorema est´a fora do ˆambito
da disciplina.
6.6 Isomorfismo de Grafos
Dois grafos dirigidos (V1, E1) e (V2, E2) s˜ao isomorfos se e s´o se existir uma bijec¸c˜ao f de V1
em V2 tal que (v1, v2) ∈ E1 sse (f(v1), f(v2)) ∈ E2. De modo semelhante, diz-se que dois
grafos n˜ao dirigidos (V1, E1) e (V2, E2) s˜ao isomorfos se e s´o se existir uma bijec¸c˜ao f de V1
em V2 tal que v1, v2 ∈ E1 sse f(v1), f(v2) ∈ E2. 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 isomorfismo) todos os grafos n˜ao dirigidos conexos
que tˆem n v´ertices, para 1 ≤ n ≤ 4.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.7. COLORAC¸ ˜AO DE GRAFOS 85
1
2
3
4
6.7 Colora¸c˜ao de Grafos
Considere o mapa da Europa. Qual ´e o n´umero m´ınimo de cores necess´ario para colorir o
mapa de forma que pa´ıses que tˆem fronteira comum sejam coloridos com cores diferentes? O
problema tem por modelo o seguinte problema de grafos.
Seja G = (V, E) n˜ao dirigido finito. O n´umero crom´atico ´e o menor n´umero de cores
necess´arias para colorir os v´ertices do grafo de forma que se u = v e u, v ∈ E, ent˜ao u e v
ficam com cores distintas.
Exerc´ıcio 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 Kn?
O Teorema das 4 cores diz que o n´umero crom´atico de qualquer grafo n˜ao dirigido finito
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.
Exerc´ıcio 6.7.2 Uma loja de animais de estima¸c˜ao, recebeu uma encomenda de peixes tro-
picais. Algumas das esp´ecies comem outras esp´ecies. Sabendo que o grafo (n˜ao conexo)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 86
apresentado no exerc´ıcio anterior representa as incompatibilidades das diferentes esp´ecies,
justifique que o n´umero m´ınimo de aqu´arios necess´arios ´e igual ao n´umero crom´atico do
mesmo. Justifique 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 (V, E, Φ, L) em que
(V, E, Φ) ´e um multigrafo, e L : E −→ R+
0 ´e uma fun¸c˜ao de E 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 (V, ρ, L). Se o grafo for
finito, ent˜ao podemos associar uma matriz de distˆancias D do modo seguinte:
Dij = L(vi, vj) sse (vi, vj) ∈ ρ
Dij = ∞ sse (vi, vj) /∈ ρ
para 1 ≤ i ≤ |V|, 1 ≤ j ≤ |V|. 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
ÐÐÐÐÐÐÐÐ
5
11bbbbbbbb
b
10
ÑÑÒÒÒÒÒÒÒÒ
2 GG
2
00```````` e
2
00aaaaaaaa
c d3
oo
7
ddÒÒÒÒÒÒÒÒ
1
GG 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 v1 = a, v2 = b, . . . , v6 = f, tendo-se seguido a conven¸c˜ao de que a distˆancia de um v´ertice
a si pr´oprio ´e zero.
Se n˜ao existir ramo de u para v convencionamos que a distˆancia associada ao “ramo”de
u para v ´e ∞. Leia-se ∞ como indeterminado ou indefinido.
Os problemas de c´alculo de distˆancia m´ınima entre localidades e custo m´ınimo de produ¸c˜ao
de um dado produto tˆem muitas vezes por modelo um grafo como o descrito.
c A. P. Tom´as – Dep. de Ciˆencia 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 definir uma opera¸c˜ao bin´aria2 ⊕ 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¸c˜ao da distˆancia m´ınima
Dados dois v´ertices u e v num grafo finito (V, ρ, L) como determinar a distˆancia m´ınima de
u para v? Seja Cuv o conjunto dos percursos de u para v, u = v. Se Cuv = ∅ convencionamos
que a distˆancia m´ınima para aceder de u a v ´e ∞. Se Cuv = ∅ ent˜ao a distˆancia m´ınima ´e
min{dγ | dγ ´e a distˆancia pelo percurso γ, para γ ∈ Cuv.}
Como o grafo ´e finito, tal m´ınimo ´e
min{dγ | dγ ´e a distˆancia por γ ∈ Cuv e a ordem de γ n˜ao excede |V| − 1}
pois os percursos com ordem (comprimento) maior que |V|−1 contˆem circuitos, correspondendo-
lhes por isso distˆancias iguais ou superiores.
Dado um grafo finito (V, ρ, L), convencion´amos que a distˆancia m´ınima entre v´ertices
iguais era zero. Em cada caso pr´atico deve-se verificar se esta conven¸c˜ao faz sentido.
Algoritmo de Bellman-Ford
Vamos designar por Dm a matriz das distˆancias m´ınimas por percursos de ordem n˜ao
superior a m. Se tivermos calculado Dm, podemos obter as distˆancias m´ınimas por percursos
de ordem n˜ao superior a m+1, analisando a distˆancia associada a percursos que tˆem mais um
ramo do que os percursos m´ınimos obtidos anteriormente. Se esses percursos com mais um
ramo n˜ao forem melhores ent˜ao deve-se dar preferˆencia aos anteriores. Assim, Dm+1 pode
ser obtida `a custa de Dm e de D1 = D, por (6.1)
Dm+1
ij = min( Dm
ij , min{ Dm
ik ⊕ Dkj | 1 ≤ k ≤ |V|} ) (6.1)
para 1 ≤ i ≤ |V|, 1 ≤ j ≤ |V|, e min definido 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 Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 88
A matriz das distˆancias m´ınimas ´e uma matriz Dm tal que Dm+1 = Dm, 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 Dm + Dm × 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 ficar clara
na disciplina de Elementos de ´Algebra Linear. Compare ainda com a matriz da composta de
rela¸c˜oes bin´arias.
Convencionando Dii = 0, para 1 ≤ i ≤ |V|, podemos simplificar a f´ormula (6.1):
Dm+1
ij = min{Dm
ik ⊕ Dkj | 1 ≤ k ≤ |V|}
Para o exemplo anterior, as trˆes primeiras linhas da matriz D2 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 m´ınimas (absolutas) ficam 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 v´ertices em V foram numerados de 1 a n = |V|. O algoritmo de Floyd (1962),
apresentado na figura 6.1, permite determinar a distˆancia e um percurso m´ınimo para todos
os pares de v´ertices.
O processo de constru¸c˜ao da matriz das distˆancias m´ınimas ´e iterativo: na itera¸c˜ao k
obt´em-se a matriz Dk das distˆancias m´ınimas por percursos que s´o podem ter como v´ertices
interm´edios v1, . . . , vk. (NB: Esta matriz Dk n˜ao ´e a mesma que se definiu acima!) Agora,
para 1 ≤ k  n,
Dk+1
ij = min(Dk
ij, Dk
i k+1 + Dk
k+1 j)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 89
Dados: a matriz D das distˆancias e n´umero de v´ertices n
Resultado: a matriz das distˆancias m´ınimas em D e a matriz P
Inicializar P.
Para k ← 1 at´e n
Para i ← 1 at´e n
Para j ← 1 at´e 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 vi para vj que s´o possa ter v1, . . . , vk, vk+1 como v´ertices
interm´edios ´e ou um percurso ´optimo que s´o pode ter v1, . . . , vk como v´ertices interm´edios ou
a concatena¸c˜ao (jun¸c˜ao) dum percurso ´optimo de vi a vk+1 com um percurso ´optimo de vk+1
a vj, ambos s´o podendo ter v1, . . . , vk como v´ertices interm´edios.
Note que esta descri¸c˜ao do algoritmo n˜ao corresponde exactamente ao algoritmo apre-
sentado na figura 6.1, pois n˜ao foi considerada uma matriz de distˆancias para cada itera¸c˜ao.
Para permitir tamb´em determinar o percurso m´ınimo, o algoritmo apresentado vai
construindo uma matriz P k: a posi¸c˜ao P k
ij guarda sempre o segundo v´ertice no melhor percurso
de vi para vj que se encontrou at´e `a itera¸c˜ao k. Inicialmente, pode-se definir,
Pij =
j se i = j ou (vi, vj) ∈ E
0 se i = j e (vi, vj) /∈ E
Poder-se-ia ter definido a matriz P doutras formas. Por exemplo, podemos tomar P k
ij
como o v´ertice interm´edio no percurso (m´ınimo) de i para j que foi usado para determinar o
melhor valor de Dk
ij. Assim, considerando que os v´ertices est˜ao numerados de 1 a n, podemos
inicialmente fazer Pij ← 0 para todo i e todo j (significando que n˜ao ´e conhecido nenhum
v´ertice interm´edio no percurso de i para j). Na actualiza¸c˜ao, quando D[i, j]  D[i, k]+D[k, j],
far-se-ia Pij ← k, j´a que o percurso melhor de i para j encontrado at´e `a itera¸c˜ao k passa por k.
No final, se Dij  ∞, sendo i = j, ent˜ao o percurso m´ınimo de i para j ´e a sequˆencia formada
por i, os v´ertices interm´edios nesse percurso e finalmente j. Para determinar os v´ertices
interm´edios no percurso de i para j, verifica-se Pij = 0, e se for o caso, ent˜ao imprimem-se
os v´ertices interm´edios no percurso de i para Pij, imprime-se Pij e finalmente imprimem-se
os v´ertices interm´edios no percurso de Pij para j.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 90
Algoritmo de Dijkstra
O algoritmo de Dijkstra (1959), apresentado na figura 6.2, calcula a distˆancia m´ınima dum
dado v´ertice a todos os outros.
Dados: Um grafo G = (V, E, d) dirigido com valores nos arcos, e u0 ∈ V.
Resultado: O vector Dest das distˆancias m´ınimas de v a cada um dos v´ertices.
Inicializar M ← {u0}, Dest[u0] ← 0 e Dest[v] ← ∞ para todo v ∈ V  {u0}.
Enquanto M = V fazer
seja w o ´ultimo v´ertice colocado em M;
actualizar a estimativa das distˆancias a u0: para cada v ∈ V  M fazer
Dest[v] ← min(Dest[v], Dest[w] + d(w, v)).
seja v ∈ V  M tal que Dest[v] ´e m´ınimo;
M ← M ∪ {v}.
Figura 6.2: Algoritmo de Dijkstra
• Em cada passo, os v´ertices em M s˜ao aqueles para os quais j´a ´e conhecida a distˆancia
m´ınima a partir de u0. O valor de Dest[v] para v ∈ M a distˆancia m´ınima de u0 a v.
• Se substituir a condi¸c˜ao M = V por uf /∈ M (sendo dado uf ∈ V), o algoritmo termina
quando a distˆancia m´ınima de u0 a uf for conhecida. Todos os v´ertices que podem
ocorrer no percurso m´ınimo de u0 para uf est˜ao em M.
• Dado uf ∈ V {u0}, o percurso m´ınimo de u0 para uf pode ser obtido por an´alise para
tr´as do modo seguinte: escolher v ∈ M com (v, uf ) ∈ E e Dest[v]+d(v, uf ) = Dest[uf ];
se v = u0, escolher v ∈ M tal que (v , v) ∈ E e Dest[v ] + d(v, v ) = Dest[v]. . . e assim
sucessivamente at´e chegar a u0. O percurso de u0 para uf ´e dado pela sequˆencia de
v´ertices seleccionados, na ordem inversa da de selec¸c˜ao: a ´ultima escolha ´e o 1o
¯ v´ertice
no percurso, a pen´ultima o 2o
¯, . . .
• 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 identificado um percurso mais curto de u0
para v, sendo w o pen´ultimo v´ertice nesse percurso. Se registar esse facto, por exemplo
num vector Prec, fazendo Prec[v] ← w, ent˜ao, no final, na an´alise para tr´as, basta
imprimir
uf , Prec[uf ], Prec[Prec[uf ]], . . . , u0
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 91
para ter os v´ertices no (ou num) percurso min´ımo de u0 para uf (por ordem inversa).
Ou seja, escreve_percurso(v) pode ser assim definida (de forma recursiva):
Se v = u0 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 trˆes, 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 m´ınimo 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
WWWWWWWWWWWWWWWW B
4
1
WWWWWWW D
8G
7
O
3
 1
8 WWWWWWW H
6
E
17
3

C
G 4
F
2
10
ÕÕÕÕÕÕÕ
∞ 2
1
aaaaaaaaaaaaaaaaa ∞ 4
1
aaaaaaa ∞
8∞
7
0
3
 1
8 XXXXXXX ∞ 6
∞ 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 m´ınima
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 v´ertice que as determinou, para no
fim poder, por an´alise para tr´as, recuperar o caminho m´ınimo.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 92
3, O
2
1
aaaaaaaaaaaaaaaaa
∞ 4
1
YYYYYYYY ∞
8∞
7
0
3
 1
8 XXXXXXX 1, O
6
∞ 17
3

∞
8, O
4
∞
2
10
ÕÕÕÕÕÕÕÕ
3, O
2
1
ccccccccccccccccc
∞ 4
1
cccccccc ∞
8∞
7
0
3
 1
8 XXXXXXX 1, O
6
7, H
17
3

∞
8, O
4
∞
2
10
ÑÑÑÑÑÑÑÑ
3, O
2
1
eeeeeeeeeeeeeeeeee
5, A
4
1
eeeeeeee
∞
8∞
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

∞
8, O 4
∞
2
10
ÒÒÒÒÒÒÒÒ
3, O
2
1
eeeeeeeeeeeeeeeeeee
5, A
4
1
ffffffff
7, E
811, E
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

21, E
8, O
4
6, E
2
10
zzzzzzzz
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
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E
86, B
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

21, E
8, O 4
6, E
2
10
||||||||
3, O
2
1
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E
86, B
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

16, F
8, O 4
6, E
2
10
||||||||
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.9. GRAFOS COM S´IMBOLOS ASSOCIADOS AOS RAMOS 93
3, O
2
1
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E
86, B
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

16, F
8, O 4
6, E
2
10
||||||||
3, O
2
1
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E
86, B
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

15, D
8, O 4
6, E
2
10
||||||||
3, O
2
1
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E
86, B
7
0
3
 1
8 XXXXXXX 1, O
6
4, A
17
3

15, D
8, O
4
6, E
2
10
||||||||
3, O
2
11ddddddddddddddddddd
1
ddddddddddddddddddd
5, A
4
1
ddddddd
7, E

86, B
7
0
3

rr 1
8 XXXXXXX 1, O
6
4, A
17
pp
3

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 vis´ıveis.
6.9 Grafos com S´ımbolos Associados aos Ramos
Um multigrafo com s´ımbolos associados aos ramos ´e um quinteto
(V, E, Σ, Ψ, L)
em que (V, E, Ψ) ´e um multigrafo, Σ ´e um conjunto (de s´ımbolos), e L ´e uma fun¸c˜ao de E
em Σ que a cada ramo associa um elemento de Σ. A cada percurso num multigrafo dessa
forma corresponde uma sequˆencia de s´ımbolos.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
6.9. GRAFOS COM S´IMBOLOS ASSOCIADOS AOS RAMOS 94
Considere-se por exemplo o grafo representado a seguir.
m0GFED@ABCBCEDb
GF
a GG m1GFED@ABCBCEDcGF
O conjunto Σ de s´ımbolos ´e {a, b, c}. As sequˆencias em
{b, bb, bbb, bbbb, bbbbb, bbbbbb, . . .}
correspondem a percursos de m0 para m0. Assim esses percursos determinam as sequˆencias
de s´ımbolos de Σ que s´o tˆem b’s. As sequˆencias em
{c, cc, ccc, cccc, ccccc, . . .}
correspondem a percursos de m1 para m1. As sequˆencias em
{a, ba, bba, bbba, . . . , ac, bac, bbac, bbbac, . . . , acc, bacc, bbacc, bbbacc . . .}
correspondem a percursos de m0 para m1. Podemos dizer que estes percursos determinam as
sequˆencias de s´ımbolos de Σ que tˆem um e um s´o a podendo ter b’s antes e c’s depois do a.
Exemplo 47 Para o grafo seguinte, sendo d´ıgito qualquer caracter em {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
e ponto o caracter “.”, conclui-se que as sequˆencias que correspondem a percursos de “procura
dig´ıto” para “procura ponto” s˜ao sequˆencias de d´ıgitos e as que terminam em “procura n˜ao
d´ıgito” s˜ao da forma “x.y” ou “x.”, em que x e y s˜ao duas sequˆencias de d´ıgitos quaisquer.
procura d´ıgito
d´ıgito
GG procura ponto
BCED d´ıgitoGF
ponto
GG procura n˜ao d´ıgito
BCED d´ıgitoGF
Se este diagrama traduzir estados num algoritmo de reconhecimento de sequˆencias das
formas “x”, “x.” e “x.y”, em que x e y s˜ao duas sequˆencias de d´ıgitos quaisquer, cada um
dos n´os identifica um estado. Os ramos definem transi¸c˜oes de estado. Para ver que assim ´e,
analise a sequˆencia 56.099971, partindo de “procura d´ıgito” (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 Ciˆencia de Computadores – FCUP
Bibliografia
[1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, Introduction to Algorithms. MIT Press,
11a
¯Ed., 1994.
[2] R. P. Grimaldi. Discrete and combinatorial mathematics : an applied introduction. 4a
¯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 Exerc´ıcios, DCC,
FCUP, 1996.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP

Apontamentos

  • 1.
    Alguns T´opicos deMatem´atica Discreta Ana Paula Tom´as Departamento de Ciˆencia de Computadores Faculdade de Ciˆencias do Porto 2005
  • 3.
    Conte´udo 1 Conjuntos 1 1.1Opera¸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 fixo de d´ıgitos . . . . . . . 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 V´ırgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Representa¸c˜ao em V´ırgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21 3 Algumas No¸c˜oes de Divisibilidade 23 3.1 Bases de Numera¸c˜ao e Crit´erios 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 M´ınimo M´ultiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.6 Congruˆencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 i
  • 4.
    4 Indu¸c˜ao Matem´atica33 4.1 Princ´ıpio 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 princ´ıpio 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 Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47 5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A . . . . . . . . . . . 48 5.2.2 Grafo da rela¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia . . . . . . . . . . . . . . . . . 50 5.3.1 Classes de equivalˆencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.3.2 Parti¸c˜oes e rela¸c˜oes de equivalˆencia . . . . . . . . . . . . . . . . . . . . 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, m´ınimos, supremo, ´ınfimo, 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 definida num conjunto finito . . . . . . 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 ra´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82 6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.6 Isomorfismo de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ii
  • 5.
    6.7 Colora¸c˜ao deGrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86 6.8.1 Determina¸c˜ao da distˆancia m´ınima . . . . . . . . . . . . . . . . . . . . 87 6.9 Grafos com S´ımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93 iii
  • 6.
  • 7.
    Pref´acio Estes apontamentos tˆempor base material elaborado em anos anteriores para disciplinas da licenciatura em Ciˆencia 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 Ciˆencia de Computadores, no ano lectivo de 2005/06. N˜ao visam substituir a leitura da bibliografia recomendada pelos docentes e n˜ao cobrem actualmente todos os t´opicos abordados na disciplina. v
  • 8.
  • 9.
    Cap´ıtulo 1 Conjuntos Neste cap´ıtulovamos 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 constitu´ıdo por elementos – objectos materiais ou entes abstractos que tˆem 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 especificados em extens˜ao – exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza os seus elementos – defini¸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 cont´em B, B ⊆ A A ⊂ B A contido propriamente em B, A subconjunto pr´oprio de B A ⊆ B ∧ A = B A ⊃ B A cont´em propriamente B A = B A ⊆ B ou B ⊆ A ∅ ou {} conjunto vazio c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 10.
    1.1. OPERAC¸ ˜OESCOM CONJUNTOS 2 O conjunto dos subconjuntos de A, representa-se por P(A) ou 2A. Qualquer con- junto A pertence ao seu conjunto de subconjuntos, isto ´e A ∈ P(A). Por exemplo, P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}} O conjunto P({1, 2, 3}) tem 23 elementos. Tamb´em se pode verificar que P(P({1, 2, 3})) tem 223 elementos. Se A tem n elementos, P(A) tem 2n elementos. Nestes apontamentos, N representa o conjunto dos inteiros n˜ao negativos (incluindo assim tamb´em 0). N inteiros n˜ao negativos (em vez de N0) 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 finito 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 constitu´ıdo 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 Ciˆencia de Computadores – FCUP
  • 11.
    1.1. OPERAC¸ ˜OESCOM 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 implic´ıto um dado universo U, chama-se complementar de A, e representa- se por A, ao complementar de A em U, ou seja a U A. Exemplo 1 Vamos provar que A (B ∪ C) = (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 ⊆ U, tem-se A ∪ B = A ∩ B. De facto, se x ∈ A ∪ B ent˜ao, por defini¸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 ∈ A∩B. 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. Exerc´ıcio 1.1.1 Suponha que os conjuntos indicados s˜ao subconjuntos do universo U. Sendo A, B e C subconjuntos de U quaisquer, mostre cada uma das propriedades: (a) A B = A ∩ B = B A (j) ∅ = U (r) U = ∅ (b) A B = ∅ sse A ⊆ B (k) A A = ∅ (s) A ∅ = A (c) A B = A sse A ∩ B = ∅ (l) A = A (t) A ∪ U = U (d) (A B) ∪ (B A) = (A ∪ B) (B ∩ A) (m) A ∪ A = U (u) A ∩ A = ∅ (e) (A ∩ B) ∩ C = A ∩ (B ∩ C) (n) A ∩ U = 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 Ciˆencia de Computadores – FCUP
  • 12.
    1.1. OPERAC¸ ˜OESCOM CONJUNTOS 4 Exemplo 3 A t´ıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirma¸c˜oes seguintes e justific´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 afirma¸c˜ao ´e verdadeira porque, sendo o conjunto dos inteiros infinito, se x ´e inteiro, x + 1 tamb´em ´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 afirma¸c˜ao ´e falsa porque em particular se x fosse y+1 ent˜ao teriamos que ter y+1 ≤ y, que n˜ao ´e satisfaz´ıvel (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 afirma¸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 identific´amos tamb´em por N. 4. Existe x ∈ Z tal que x ´e maior do que qualquer outro inteiro y. ∃x ∈ Z ∀y ∈ Z x > y A afirma¸c˜ao ´e falsa (an´aloga `a 2). 5. Para todo A ⊆ Z, tem-se P(A) = {∅}. A afirma¸c˜ao ´e falsa, porque {1} ´e um subconjunto de Z e P({1}) = {∅, {1}} = {∅}. 6. Para todo A ⊆ Z, se A = ∅ ent˜ao P(A) = {∅}. A afirma¸c˜ao ´e verdadeira. S´o existe um subconjunto de Z que ´e vazio, e P(∅) = {∅}. 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 Ciˆencia de Computadores – FCUP
  • 13.
    1.1. OPERAC¸ ˜OESCOM CONJUNTOS 5 7. Tem-se P(A) = ∅, para algum A ⊆ Z. ∃A (A ⊆ Z ∧ P(A) = ∅) A afirma¸c˜ao ´e falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio ´e um elemento de P(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 afirma¸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 afirma¸c˜ao ´e verdadeira. A justifica¸c˜ao ´e semelhante `a dada para a afirma¸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 afirma¸c˜ao pode ser traduzida pela express˜ao l´ogica ∃x (x ∈ Z ∧ ( ∀A ∀B ( (B ⊆ Z ∧ A ⊆ Z) ⇒ x ∈ A B) )) a qual escrevemos por vezes como ∃x ∈ Z ∀A ⊆ Z ∀B ⊆ Z (x ∈ A B) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 14.
    1.1. OPERAC¸ ˜OESCOM 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 afirma¸c˜ao ´e verdadeira porque embora √ 2 /∈ Z, ´e verdade que 2 + 2 = 4. 14. Se 2 + 2 = 4 ent˜ao √ 2 ∈ Z. A afirma¸c˜ao ´e equivalente a “2 + 2 = 4 ou √ 2 ∈ Z”. 15. Se √ 2 ∈ Z ent˜ao 2 + 2 = 4. A afirma¸c˜ao ´e equivalente a “ √ 2 /∈ Z ou 2 + 2 = 4”, e como √ 2 /∈ Z, a afirma¸c˜ao ´e verdadeira. 16. √ 2 ∈ Z ou 2 + 2 = 4. A afirma¸c˜ao ´e verdadeira porque √ 2 ∈ Z. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 15.
    Cap´ıtulo 2 Representa¸c˜ao deN´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, tamb´em 5692(10), 13074(8) e 1011000111100(2) o s˜ao. De facto, 1 34 52(60) ≡ 1h34 52 ≡ 1 × 602 + 34 × 601 + 52 × 600 5 6 9 2(10) ≡ 5 × 103 + 6 × 102 + 9 × 101 + 2 × 100 1 3 0 7 4(8) ≡ 1 × 84 + 3 × 83 + 0 × 82 + 7 × 81 + 4 × 80 1 0 1 1 0 0 0 1 1 1 1 0 0(2) ≡ 1 × 212 + 0 × 211 + 1 × 210 + 1 × 29 + 0 × 28 + 0 × 27 + 0 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 0 × 20 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 potˆencias de 2, 212 211 210 29 28 27 26 25 24 23 22 21 20 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 potˆencias de 3, 38 37 36 35 34 33 32 31 30 6561 2187 729 243 81 27 9 3 1 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 16.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 8 podemos verificar 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¸c˜ao Posicional Num sistema de numera¸c˜ao de base b usam-se b s´ımbolos diferentes para b d´ıgitos (de 0 a b − 1). Os n´umeros s˜ao representados por uma sequˆencia de d´ıgitos. Os d´ıgitos na base 10 s˜ao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os d´ıgitos na base 2 s˜ao 0 e 1, e normalmente s˜ao designados por bits. Por exemplo, 1011102 = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 Se a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0 com rm = 0 e 0 ≤ ri ≤ b − 1 para 0 ≤ i ≤ m ent˜ao a ≡ rm . . . r2r1r0 (b) ´e a representa¸c˜ao de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se d´ıgitos de repre- senta¸c˜ao de a na base b, sendo r0 o d´ıgito menos significativo e rm o d´ıgito mais significativo. A representa¸c˜ao ´e ´unica, o que ´e consequˆencia 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 r0, r1, r2, . . . rm tais que a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0, rm = 0 e 0 ≤ ri ≤ 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 < r0 = a. Se a ≥ b ent˜ao, por defini¸c˜ao de divis˜ao inteira, existem q0 e r0 ´unicos tais que a = bq0 +r0, com 0 ≤ r0 < b. Se q0 < b, toma-se r1 = q0 e obtem-se a = r1b + r0. Se q0 ≥ b, ent˜ao o processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo, a = bq0 + r0 = b(bq1 + r1) + r0 = b2 q1 + br1 + r0 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 17.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 9 Se q1 < b, toma-se r2 = q0 e obtem-se a = b2r2 +br1 +r0. Se q1 ≥ b, ent˜ao o processo repete-se agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi ´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) = 53 = 1000(5) = 26 + 25 + 24 + 23 + 22 + 20 = 1111101(2) = 175(8) = 7D(16). De facto, 125 5 0 25 5 r0 0 5 5 r1 0 1 r2 r3 125 2 1 62 2 r0 0 31 2 r1 1 15 2 r2 1 7 2 r3 1 3 2 r4 1 1 r5 r6 125 8 5 15 8 r0 7 1 r1 r2 125 16 13 7 r0 r1 No entanto, quando se conhecem potˆencias da base, pode ser mais f´acil determinar a representa¸c˜ao por outro m´etodo. 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 r0 1 11 2 r1 1 5 2 r2 1 2 2 r3 0 1 r4 r5 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 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 101110(2) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 18.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 10 Pode interessar tamb´em saber qual a representa¸c˜ao decimal dum inteiro dado numa base b. Para a obter, bastar´a aplicar a defini¸c˜ao e efectuar os c´alculos na base 10. 101110(2) = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 32 + 8 + 4 + 2 = 46(10) 101110(3) = 1 × 35 + 0 × 34 + 1 × 33 + 1 × 32 + 1 × 31 + 0 × 30 = 162 + 27 + 9 + 3 = 201(10) Para al´em da base 2, s˜ao bastante usadas em Computa¸c˜ao as bases 8 (octal) e 16 (hexa- decimal). Os d´ıgitos 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 d´ıgitos 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, fica claro que o hexadecimal 15 designa o decimal 1×16+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 D´ıgitos Bin´ario 2 0 a 1 Octal 8 (=23) 0 a 7 Hexadecimal 16 (=24) 0 a 9, A, B, C, D, E, F Decimal 10 0 a 9 Exemplo 5 A sequˆencia 78412 n˜ao pode representar nenhum inteiro na base 4 porque 7, 8 e 4 n˜ao s˜ao d´ıgitos base 4. A sequˆencia 001231 n˜ao ´e representa¸c˜ao numa base de numera¸c˜ao, no sentido acima definido, porque teria zeros n˜ao significativos. A sequˆencia 123100 pode representar um inteiro em qualquer base b superior a 4. Exerc´ıcio 2.1.1 Converter para bin´ario: 153(10), 153(6), 153(8), 153(16). Exerc´ıcio 2.1.2 Converter para hexadecimal: 153(10), 151323(10), 153(8), 1010101111(2) . Exerc´ıcio 2.1.3 Converter para octal: 1123(4), 151323(10), 153(8), 1010101111(2) . Exerc´ıcio 2.1.4 Converter para a base 251 e 666 os seguintes n´umeros em decimal: 1383, 1498, 1500, 1580, 1640 Exerc´ıcio 2.1.5 Represente x, xn e xn − 1 na base x, para x > 1 e n ∈ N. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 19.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 11 2.1.1 Rela¸c˜ao entre bin´ario, 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 × 28 + 0 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 1 × 2 + 0 ou seja 350. A representa¸c˜ao octal correspondente pode ser obtida agrupando os d´ıgitos bin´arios 3 a 3: uma vez que 8 = 23 e 82 = 26, tem-se 26 (1×22 +0×2+1×2)+23 (0×22 +1×2+1)+(1×22 +1×2+0) = 82 ×5+8×3+6 = 536(2) Em geral se ak . . . a5a4a3a2a1a0(2), sendo k ≥ 0, representa o inteiro ak2k + . . . + a525 + a424 + a323 + a222 + a121 + a020 ent˜ao a representa¸c˜ao em octal do mesmo inteiro pode ser obtida da forma descrita: ak2k + . . . + 23 (a522 + a421 + a320 ) + (a222 + a121 + a020 ) = ak2k + . . . + 8(a522 + a421 + a320 ) + (a222 + a121 + a020 ) Notar que na express˜ao resultante, qualquer potˆencia de 8 tem por coeficiente ai+222 + ai+12 + ai para algum i, o qual ´e sempre n˜ao negativo e inferior a 8, podendo assim ser d´ıgito da representa¸c˜ao octal. A cada d´ıgito octal correspondem 3 d´ıgitos em bin´ario. Do mesmo modo, a cada d´ıgito hexadecimal correspondem 4 d´ıgitos em bin´ario. Assim, para converter um bin´ario a hexadecimal, agrupam-se os seus d´ıgitos em grupos de 4 (da direita para a esquerda) correspondendo a cada um desses grupos um d´ıgito hexadecimal. Por exemplo, 101011110(2) ⇒ 1 | 0101 | 1110 ⇒ 1 | 5 | E ⇒ 15E(h) Para converter um bin´ario a octal procede-se de modo idˆentico 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 d´ıgitos hexadecimal o grupo de 4 d´ıgitos 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 significativos. O que se acaba de ilustrar ´e um caso particular da proposi¸c˜ao seguinte. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 20.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 12 Proposi¸c˜ao 2 Se z ´e um inteiro positivo, a cada d´ıgito (com poss´ıvel excep¸c˜ao do mais signi- ficativo) da representa¸c˜ao de z na base bn corresponde um grupo de n d´ıgitos na representa¸c˜ao de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0 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 bn ´e wtwt−1 . . . w1w0 sendo t+1 o n´umero de blocos de n d´ıgitos da representa¸c˜ao de z na base b (podendo o ´ultimo ser completado por zeros n˜ao significativos), e wi (i ≤ t) o d´ıgito da base bn que representa o inteiro a2in−1 . . . ain+1ain(b) (representa¸c˜ao base b a menos de zeros n˜ao significativos). Exemplo 6 Por exemplo, para converter 100313210(4) para a base 16, agrupam-se os d´ıgitos 2 a 2, da direita para a esquerda, pois 16 = 42. 100313210(4) = 01 | 00 | 31 | 32 | 10 = 10DE4(16) Exerc´ıcio 2.1.6 Repita os exerc´ıcios 2.1.1 a 2.1.3. Exerc´ıcio 2.1.7 Mostre a proposi¸c˜ao anterior. Comece por mostrar que wtwt−1 . . . w1w0 conforme descrito pode ser representa¸c˜ao base bn de z; use em seguida o facto da representa¸c˜ao numa base ser ´unica para concluir que wtwt−1 . . . w1w0 ´e a representa¸c˜ao de z. Mostre depois que se wtwt−1 . . . w1w0 representa z na base bn, a representa¸c˜ao de z na base b ´e akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0 2.1.2 Adi¸c˜ao e multiplica¸c˜ao 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 Ciˆencia de Computadores – FCUP
  • 21.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 13 Algoritmo para Adi¸c˜ao (base 10). Se x e y s˜ao inteiros positivos representados na base 10 por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao a representa¸c˜ao na base 10 de x + y, digamos spsp−1 . . . s1s0, pode ser obtida da forma seguinte. xkxk−1 . . . x1x0 + ymym−1ym−2 . . . y1y0 . . . s0 Caso x0 + y0 < 10, toma-se s0 = x0 + y0 e repete-se o processo para os d´ıgitos seguintes. Sen˜ao, s0 ´e tal que x0 + y0 = 1s0, adicionando-se 1 a x1 + y1 repetindo-se o processo (global) para os d´ıgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar xi = 0, i ≥ k (respectivamente yi = 0, i ≥ m). Notar que p = max(k, m) ou p = max(k, m) + 1 sendo neste ´ultimo caso sp = 1. Adi¸c˜ao (base 3). 2102(3) + 21(3) = (2 × 33 + 1 × 32 + 0 × 31 + 2 × 30) + (2 × 31 + 1 × 30) = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (2 + 1) × 30 = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (1 × 3 + 0) × 30 = 2 × 33 + 1 × 32 + (0 + 2 + 1) × 31 + 0 × 30 = 2 × 33 + (1 + 1) × 32 + 0 × 31 + 0 × 30 = 2 × 33 + 2 × 32 + 0 × 31 + 0 × 30. 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) Exerc´ıcio 2.1.8 Justifique que se x e y s˜ao inteiros positivos representados na base b por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao spsp−1 . . . s1s0, 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 xi com yi o resultado ´e sempre menor ou igual que 2b − 2, e portanto tanto xi + yi como xi + yi + 1 se representa como 0si ou 1si (pelo que ou “vai 0” ou “vai 1”), qualquer que seja i. Depois, use a defini¸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 Ciˆencia de Computadores – FCUP
  • 22.
    2.1. SISTEMA DEREPRESENTAC¸ ˜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 Exerc´ıcio 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 interm´edios 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 Ciˆencia de Computadores – FCUP
  • 23.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 15 Exerc´ıcio 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¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos Num computador cada inteiro ´e representado por um n´umero fixo de bits. Em 8 bits, 13 seria representado por 00001101. Isto ´e, introduzem-se 0’s `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 fixou. Se n representar o n´umero de bits que se fixou para a representa¸c˜ao, os bits s˜ao numerados da esquerda para a direita por bitn−1, bitn−2, . . . , bit1 e bit0. O bitn−1 diz-se o bit mais significativo e bit0 ´e o menos significativo. Quando se fixa o n´umero de bits da representa¸c˜ao, limita-se tamb´em 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 27 × 1 + 26 × 1 + 25 × 1 + 24 × 1 + 23 × 1 + 22 × 1 + 21 × 1 + 20 × 1 = 255 = 28 − 1 Em geral, com n bits podemos representar n´umeros inteiros positivos de 0 a 2n − 1. Proposi¸c˜ao 3 O maior inteiro positivo que se consegue representar na base b com n d´ıgitos ´e bn − 1. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 24.
    2.1. SISTEMA DEREPRESENTAC¸ ˜AO POSICIONAL 16 Prova: Suponhamos que A ´e representado com n d´ıgitos na base b por an−1an−2 . . . a1a0 com ai ∈ {0, . . . , b − 1}. Ent˜ao, A = an−1bn−1 + an−2bn−2 . . . a1b1 + a0b0 = n−1 i=0 aibi Ora, n−1 i=0 aibi ≤ n−1 i=0 (b − 1)bi = (b − 1) n−1 i=0 bi = (b − 1) b0 − b × bn−1 1 − b (soma de termos de progress˜ao geom´etrica) = (b − 1) 1 − bn 1 − b = bn − 1 Observa¸c˜ao: n−1 i=0 ui ´e uma nota¸c˜ao abreviada para u0 + u1 + · · · + un−1, podendo-se ler “somat´orio para i desde 0 at´e n − 1 de ui”. Exerc´ıcio 2.1.11 Qual ´e o n´umero m´ınimo 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¸c˜ao de n´umeros negativos Para representar n´umeros inteiros positivos e negativos numa base b e com um n´umero fixo de d´ıgitos ´e necess´ario codificar o sinal e encontrar um processo eficiente de determinar se um n´umero ´e positivo ou negativo. Normalmente ´e reservado um d´ıgito para indicar o sinal. Por exemplo, em n d´ıgitos, sendo A = an−1an−2 . . . a1a0(b), se an−1 = 0 ent˜ao A ´e positivo, se an−1 = b − 1 o n´umero ´e negativo. Vamos considerar trˆes 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 d´ıgitos ´e n, embora os resultados possam ser generalizados para qualquer base b. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 25.
    2.1. SISTEMA DEREPRESENTAC¸ ˜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 n−1 n−2 . . . . . . . . 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 = 0an−2 . . . a1a0 e um negativo ´e da forma A = 1an−2 . . . a1a0. Com n bits podemos representar n´umeros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 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 (2n − 1) − A. O bit mais signficativo 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 (2n − 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 1’s por 0’s e 0’s por 1’s na repre- senta¸c˜ao de x em n bits, o que resulta de 2n − 1 ser representado por n 1’s. 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 Ciˆencia de Computadores – FCUP
  • 26.
    2.1. SISTEMA DEREPRESENTAC¸ ˜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 2n−1 −1 encontram-se os n´umeros n˜ao negativos e de 2n−1 a 2n −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 defini¸c˜ao, o complemento para 2 de A numa representa¸c˜ao de n bits ´e o inteiro 2n − A. Exemplo 7 Para n = 3 ent˜ao -1 ´e representado por 111 pois 23 − 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 28 − 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 defini¸c˜ao de complemento para 2, pode-se concluir que 2n−1 representa −2n−1 pois 2n − 2n−1 = 2n−1. Por outro lado, 2n − 1 representa −1. Proposi¸c˜ao 4 No sistema de representa¸c˜ao com n bits e complemento para 2 os valores poss´ıveis dos inteiros represent´aveis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se n´umeros n˜ao negativos e de 2n−1 a 2n − 1 n´umeros negativos. Para al´em de s´o haver um zero, neste caso todos os negativos tˆem 1 como bit mais significativo, 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 2n − A = (2n − 1 − A) + 1 e 2n − 1 − A ´e a representa¸c˜ao em complemento para 1, podemos obter a representa¸c˜ao em complemento para 2 complementando todos os d´ıgitos 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 Ciˆencia de Computadores – FCUP
  • 27.
    2.2. ADIC¸ ˜AOE 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 0’s por 1’s, 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 = an−1an−2 . . . a1a0, basta considerar que a parcela an−12n−1 ´e negativa. Por exemplo, 110(2) = 1 × (−22 ) + 1 × 21 + 0 × 20 = −4 + 2 + 0 = −2(10) Exerc´ıcio 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 verifique se o resultado de somar as representa¸c˜oes est´a correcto. Exerc´ıcio 2.1.13 Suponha que a representa¸c˜ao em complemento para dois com 4 d´ıgitos de um inteiro ´e 1101. Como ´e a representa¸c˜ao com: (i) 6 d´ıgitos (ii) 8 d´ıgitos (iii) n d´ıgitos, com n ≥ 4. Exerc´ıcio 2.1.14 Suponha agora que, em 4 d´ıgitos, a representa¸c˜ao em complemento para dois ´e 0101. Como responderia `as al´ıneas anteriores? Em geral, dado um inteiro x represen- tado em n d´ıgitos como procederia para obter a sua representa¸c˜ao com mais d´ıgitos? 2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits 2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao 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 2m − 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 Ciˆencia de Computadores – FCUP
  • 28.
    2.2. ADIC¸ ˜AOE SUBTRACC¸ ˜AO EM N BITS 20 2.2.2 Adi¸c˜ao 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 2m−1 − 1 (o maior inteiro positivo com m bits num sistema de complemento para 2) diz-se que h´a overflow, 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 overflow. Se os inteiros s˜ao ambos negativos (em complemento para 2) a soma ´e calculada pelo algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representa¸c˜ao em m bits, o ”desprezar”o transporte corresponde a subtrair ao resultado obtido 2m. Basta notar que quando se efectua (−x) + (−y) se pretende obter o complemento para 2 de x + y, isto ´e 2m − (x + y). A rela¸c˜ao desse n´umero com os complementos para 2 de x e y ´e 2m − (x + y) = (2m − x) + (2m − y) − 2m. 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 2m. Se a representa¸c˜ao tiver m bits e a soma for inferior a −2m−1 (o menor inteiro negativo com m bits num sistema de complemento para 2) diz-se que h´a underflow, 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 underflow. 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-se”o transporte se o houver. N˜ao haver´a overflow nem underflow. 2.2.3 Subtrac¸c˜ao 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 Exerc´ıcio 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 Ciˆencia de Computadores – FCUP
  • 29.
    2.3. REPRESENTAC¸ ˜AOEM 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 overflow underflow 2.3 Representa¸c˜ao em V´ırgula Fixa A representa¸c˜ao posicional de inteiros pode ser generalizada para representar n´umeros racio- nais considerando-se potˆencias negativas da base. Por exemplo, na base 10: 344.45 = 3 × 102 + 4 × 101 + 4 × 100 + 4 × 10−1 + 5 × 10−2 Podemos ainda escrever: 344.45 = 34445. × 10−2 = (3 × 104 + 4 × 103 + 4 × 102 + 4 × 101 + 5 × 100 ) × 10−2 Se se fixar a posi¸c˜ao da v´ırgula (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 final 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 v´ırgula fixa, com a v´ırgula `a direita do bit menos significativo. No caso geral, os ajustes da posi¸c˜ao da v´ırgula e o seu armazenamento ficar˜ao a cargo do programador. Contudo, actualmente, a representa¸c˜ao em computadores dos n´umeros racionais ´e feita, geralmente, em v´ırgula flutuante. 2.4 Representa¸c˜ao em V´ırgula Flutuante A representa¸c˜ao dum n´umero racional em v´ırgula flutuante, contrariamente `a representa¸c˜ao em v´ırgula fixa, ´e feita atrav´es 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 Ciˆencia de Computadores – FCUP
  • 30.
    2.4. REPRESENTAC¸ ˜AOEM V´IRGULA FLUTUANTE 22 F = m × be Por exemplo, 673 × 1014. A designa¸c˜ao v´ırgula flutuante resulta do facto de que a posi¸c˜ao da v´ırgula depender do expoente e portanto n˜ao ser fixada previamente. A nota¸c˜ao mais usada para v´ırgula flutuante ´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 eficiˆencia ´e separado da representa¸c˜ao do m´odulo da mantissa o qual ´e constitu´ıdo 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 v´ırgula `a esquerda do bit mais significativo. 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 (2E−127 )(1.M)(2) excepto se E for 0000000 ent˜ao F = (−1)S(2−127)(.M(2)) e se M tamb´em ´e zero ent˜ao F = 0. A sequˆencia 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 −28 × 1.625 = −416. Existem outras representa¸c˜oes em v´ırgula flutuante IEEE, como a precis˜ao dupla em que s˜ao usados 64 bits e a qu´adrupla em que s˜ao usados 128 bits. Exerc´ıcio 2.4.1 Determine qual o maior n´umero que ´e represent´avel em precis˜ao simples, segunda a norma do IEEE. Exerc´ıcio 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 Exerc´ıcio 2.4.3 Exprima o mais exactamente poss´ıvel os seguintes n´umeros em precis˜ao simples IEEE: 2.5, .0005, 2−40 e 256 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 31.
    Cap´ıtulo 3 Algumas No¸c˜oesde Divisibilidade Por defini¸c˜ao, um inteiro a ´e divis´ıvel 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. Tamb´em 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 defini¸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 153 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¸c˜ao e Crit´erios de Divisibilidade ´E conhecido que, um inteiro positivo representado na base 10 ´e divis´ıvel por 100 se e s´o se a sua representa¸c˜ao terminar por 00 (pois os restos da divis˜ao por 10 e 102 s˜ao 0). ´E divis´ıvel 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 divis´ıvel por 4 (isto ´e, por 22) se a sua representa¸c˜ao em bin´ario terminar por 00 e ´e divis´ıvel por 8 (isto ´e, por 23) sse terminar em 000. Proposi¸c˜ao 5 Um inteiro (positivo) x representado numa certa base b ´e divis´ıvel por bk, sendo k inteiro positivo fixo, se e s´o a representa¸c˜ao de x na base b terminar por k zeros. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 32.
    3.1. BASES DENUMERAC¸ ˜AO E CRIT´ERIOS DE DIVISIBILIDADE 24 Ideia da prova: Para que x seja divis´ıvel por bk ent˜ao ter´a que ser divis´ıvel tamb´em por b1, b2, . . . , bk−1, 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, tamb´em (x/b) = b((x/b)/b) + 0, . . . Analisando a defini¸c˜ao de representa¸c˜ao base 10, podemos justificar o seguinte crit´erio de divisibilidade por 9. Proposi¸c˜ao 6 Um inteiro ´e divis´ıvel por 9 sse a soma dos d´ıgitos da sua representa¸c˜ao na base 10 for divis´ıvel por 9. Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representa¸c˜ao base 10 ´e anan−1 . . . a1a0. Isto quer dizer que, x = an × 10n + an−1 × 10n−1 + · · · + a1 × 10 + a0 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 ... 10n = 99 . . . 9 9 repetido n vezes +1 um m´ultiplo de 9 mais uma unidade ent˜ao x = (˙9 + 1) × an + (˙9 + 1) × an−1 + · · · + (˙9 + 1) × a1 + a0, ou seja x = ˙9 + (an + an−1 + · · · + a1 + a0) em que ˙9 ´e abreviatura de “um m´ultiplo de 9” (nesta igualdade, cada ocorrˆencia de ˙9 designa um m´ultiplo diferente). Na “simplifica¸c˜ao” da igualdade, us´amos tamb´em 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 + (an + an−1 + · · · + a1 + a0), concluimos que x ´e m´ultiplo de ˙9 se e s´o se an + an−1 + · · · + a1 + a0 for m´ultiplo de ˙9. O exerc´ıcio seguinte pode ser resolvido por aplica¸c˜ao dum racioc´ınio an´alogo, agora obser- vando que 10 = ˙11−1, 100 = ˙11+1, 1000 = ˙11−1, 1000 = 1000×10 = ( ˙11−1)( ˙11−1) = ˙11+1, 10000 = ( ˙11 + 1) × 10 = ˙11 − 1, . . . Exerc´ıcio 3.1.1 Mostre que um inteiro ´e divis´ıvel por 11 sse a soma dos d´ıgitos de ordem par da sua representa¸c˜ao na base 10 for igual `a soma dos d´ıgitos de ordem ´ımpar. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 33.
    3.2. NOC¸ ˜AODE DIVISOR E DE M ´ULTIPLO 25 Exerc´ıcio 3.1.2 Mostre que um inteiro (i) ´e divis´ıvel por 5 sse a sua representa¸c˜ao decimal terminar em 0 ou 5; (ii) ´e divis´ıvel por 3 sse a soma dos d´ıgitos da sua representa¸c˜ao decimal for divis´ıvel por 3. (iii) ´e divis´ıvel por 2 sse o d´ıgito menos significativo da sua representa¸c˜ao decimal for par. 3.2 No¸c˜ao de Divisor e de M´ultiplo O conjunto1 dos divisores dum inteiro a ´e constitu´ıdo por todos os inteiros positivos tais que se b | a e os seus sim´etricos. {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 constitu´ıdo 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 defini¸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 m1 e m2 m´ultiplos de b. Ent˜ao existem inteiros z1 e z2 tais que m1 = bz1 e m2 = bz2. Logo, m1 + m2 = bz1 + bz2 = b(z1 + z2) e como a soma de inteiros ´e um inteiro, conclui-se que z1 +z2 ∈ Z, pelo que m1 +m2 ´e da forma bz, para algum z ∈ Z (concretamente, para z = z1 + z2). 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, m1 − m2) ´e m´ultiplo de b procede-se analogamente. Para mostrar que m1m2 ´e m´ultiplo de b, isto ´e, que o produto de dois m´ultiplos de b ´e m´ultiplo de b, observe-se que m1m2 = (bz1)(bz2) = b(bz1z2) e como bz1z2 ∈ Z, conclui-se que m1m2 ´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, m1) por um qualquer inteiro x ´e m´ultiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z. 1 ´E usual representar “o conjunto dos x’s tais que x satisfaz condi¸c˜ao. . . ” por {x | x satisfaz condi¸c˜ao . . . }. Neste cap´ıtulo, usaremos a nota¸c˜ao alternativa {x : x satisfaz condi¸c˜ao . . . }, para evitar usar | com duplo significado, reservando | para “divide”. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 34.
    3.3. FACTORIZAC¸ ˜AOEM PRIMOS 26 Exerc´ıcio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir y + z ent˜ao tamb´em divide z. 3.3 Factoriza¸c˜ao 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 defini¸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 tamb´em podemos concluir que x ´e primo ou produto de primos. De facto, se x n˜ao for primo, existem x1, x2 ∈ N {0, 1} tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos j´a que x1 ´e primo ou produto de primos e x2 ´e primo ou produto de primos. Analisando os quatro casos (a) x1 e x2 primos, (b) x1 e x2 produtos de primos, (c) x1 primo e x2 produto de primos, e (d) x1 produto de primos e x2 primo, concluimos que se x = x1x2 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 t´ecnica 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 fixo (e ´e finito), essa prova pode ser realmente reconstru´ıda. Por exemplo, se x fosse 24, estariamos a assumir que j´a tinhamos verificado 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 x1 e x2) pelas suas factoriza¸c˜oes em primos: 24 = (2 × 2) × (2 × 3). Usualmente, escreve-se 24 = 23 × 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 p1, . . . pk ´unicos e tal que n se pode factorizar de forma ´unica como pα1 1 × · · · × pαk k sendo αi = 0 e pi < pj se i < j, para todo i ≤ k e todo j ≤ k. Por exemplo, 37268 = 22 × 71 × 113 e 500 = 22 × 53. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 35.
    3.3. FACTORIZAC¸ ˜AOEM 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 divis´ıvel 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 infinito. Prova: Suponhamos que s´o existiam n primos, sendo n um certo inteiro fixo. Ou seja, suponhamos que o conjunto dos primos era finito e que tinha exactamente n elementos, os quais vamos denotar por p1, p2, . . . , pn. Ent˜ao, o inteiro positivo 1 + n i=1 pi n˜ao seria primo, j´a que ´e maior do que qualquer um dos primos p1, p2, . . . , pn. Mas se 1 + p1p2 . . . pn n˜ao ´e primo, ent˜ao algum dos primos o divide (ou seja, ´e m´ultiplo de algum dos primos). Suponhamos que pk divide 1 + p1p2 · · · pn, sendo k um inteiro fixo, 1 ≤ k ≤ n. Como pk divide n i=1 pi isto ´e, pk divide o produto 1+p1p2 · · · pn, pode-se concluir que se pk dividir 1 + p1p2 · · · pn ent˜ao pk divide 1. Mas nenhum primo divide 1. O absurdo resultou de se ter suposto que o conjunto dos primos era finito. Logo, o conjunto dos primos ´e infinito. 3.3.1 Determina¸c˜ao 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 m´etodo 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 at´e 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 Ciˆencia de Computadores – FCUP
  • 36.
    3.4. M´AXIMO DIVISORCOMUM 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 ficarem na tabela s˜ao os primos, neste caso, n˜ao superiores a 50 (o valor de n neste exemplo). 3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos A partir da factoriza¸c˜ao dum n´umero em primos ´e poss´ıvel determinar todos os seus divisores. Por exemplo, os divisores de 30, que ´e dado por 30 = 21 × 31 × 51 s˜ao: 20 × 30 × 50 = 1 21 × 30 × 50 = 2 20 × 31 × 50 = 3 20 × 30 × 51 = 5 21 × 31 × 50 = 6 21 × 30 × 51 = 10 20 × 31 × 51 = 15 21 × 31 × 51 = 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 M´aximo 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 Ciˆencia de Computadores – FCUP
  • 37.
    3.4. M´AXIMO DIVISORCOMUM 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 defini¸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 = 22 × 53, 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 tamb´em 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 defini¸c˜ao de mdc(a, b) ´e imposs´ıvel. 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(320 ×57 ×1127 ×312, 24 ×36 ×525) = 36 ×57, porque o m´aximo divisor comum ´e dado por 2min(0,4) × 3min(20,6) × 5min(7,25) × 11min(27,0) × 31min(2,0) ou seja, por 203657110310. Este m´etodo 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) eficientemente. 3.4.1 C´alculo do m´aximo 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 defini¸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 defini¸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 Ciˆencia de Computadores – FCUP
  • 38.
    3.4. M´AXIMO DIVISORCOMUM 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 definir 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 Ciˆencia de Computadores – FCUP
  • 39.
    3.5. M´INIMO M´ULTIPLO COMUM 31 Prova: Como mdc(a, b) divide a e divide b, tamb´em 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) = ama + bmb para ma e mb 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) = ama + bmb por c mdc(a,b) obtem-se mdc(a, b) c mdc(a,b) = a(ma c mdc(a,b) ) + b(mb c mdc(a,b) ). Assim, vemos que se tomarmos x = ma c mdc(a,b) e y = mb c mdc(a,b) temos uma solu¸c˜ao inteira de ax + by = c. Pode-se provar que (x, y) ∈ Z2 ´e solu¸c˜ao de ax + by = c sse x = ma c mdc(a,b) + k b mdc(a,b) e y = mb c mdc(a,b) − k b mdc(a,b) , com k ∈ Z qualquer. 3.5 M´ınimo 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 m´ınimo m´ultiplo comum, mmc(a, b). Por defini¸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(320571127312, 2436525) = 2max(0,4)3max(20,6)5max(7,25)11max(27,0)31max(2,0) = 243205251127312. 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 verificar que divide qualquer outro m´ultiplo m de a e de b, escrevamos m = k1a e m = k2b para inteiros k1 e k2 apropriados. Ent˜ao, m = k1mdc(a, b) a mdc(a,b) e m = k2mdc(a, b) b mdc(a,b) , pelo que k1 a mdc(a,b) = k2 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 k1. Assim, k1 = b mdc(a,b) k1 para algum k1 e consequentemente, m = b mdc(a,b) k1mdc(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 Ciˆencia de Computadores – FCUP
  • 40.
    3.6. CONGRUˆENCIAS 32 3.6Congruˆencias 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 = qxb + rx e y = qyb + ry com 0 ≤ rx < b e 0 ≤ ry < b, ent˜ao x − y = (qx − qy)b + (rx − ry) e portanto x − y ´e m´ultiplo de b se e s´o se rx − ry o for. Mas, como 0 ≤ rx < b e 0 ≤ ry < b, podemos concluir que −b < rx − ry < b, e consequentemente rx − ry ´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 qx, qy e rx, ry em vez de q1, q2 e r1, r2 para indicar que esses quocientes e restos dependem de x e y respectivamente.) As rela¸c˜oes de congruˆencias tˆem algumas propriedades interessantes (e importantes). Por exemplo, a “congruˆencia 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 “congruˆencia 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 identificado por um dos b restos poss´ıveis. Outra das propriedades interessantes da rela¸c˜ao de congruˆencia ´e ser preservada pelas opera¸c˜oes de soma, subtrac¸c˜ao e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) ent˜ao x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b). O exemplo seguinte ilustra uma das aplica¸c˜oes de congruˆencias. 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 Ciˆencia de Computadores – FCUP
  • 41.
    Cap´ıtulo 4 Indu¸c˜ao Matem´atica Om´etodo de demonstra¸c˜ao por indu¸c˜ao matem´atica (ou indu¸c˜ao finita) ser´a bastante usado durante o curso pelo que ´e conveniente introduzi-lo (ou record´a-lo). 4.1 Princ´ıpio de Indu¸c˜ao Matem´atica Imagine uma escada com uma infinidade 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 at´e um degrau, ent˜ao tamb´em consigo chegar ao seguinte.” (4.1) Se nada mais for dito, n˜ao pode concluir que “consegue chegar ao 16o ¯ degrau”. Suponha agora n˜ao s´o (4.1) mas tamb´em (4.2). “Consigo chegar ao 13o ¯ degrau” (4.2) O que pode concluir? Como consegue chegar ao 13o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 14o ¯. Como consegue chegar ao 14o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 15o ¯. Como consegue chegar ao 15o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 16o ¯. 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 13o ¯ 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 1o ¯ degrau”. (4.4) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 42.
    4.1. PRINC´IPIO DEINDUC¸ ˜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 (Princ´ıpio 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 An a ´area dum quadrado de lado 2n, com n ≥ 1 (inteiro). Vamos mostrar que o resto da divis˜ao de An por 3 ´e 1, qualquer que seja n ≥ 1. (i) (Caso de base) Como A1 ´e 4 e sabemos que o resto da divis˜ao de 4 por 3 ´e 1, ´e verdade que a condi¸c˜ao se verifica para n = 1. (ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para algum inteiro n˜ao negativo p, ent˜ao Ak+1 = 3q + 1 para algum inteiro n˜ao negativo q. Ora, se Ak = 3p+1, ent˜ao Ak+1 = (2k+1)2 = 4(2k)2 = 4Ak = 4(3p+1) = 3(4p+1)+1. Ou seja, Ak+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 2n excede numa unidade um m´ultiplo de 3. Observe que, se nos fosse pedido, podiamos apresentar a dedu¸c˜ao de que A6 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 A6 d´a resto 1 quando dividido por 3, podiamos, dado um n ≥ 1, apresentar a dedu¸c˜ao de que An d´a resto 1 quando dividido por 3, se tal nos fosse pedido. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 43.
    4.1. PRINC´IPIO DEINDUC¸ ˜AO MATEM ´ATICA 35 Proposi¸c˜ao 14 (Vers˜ao geral do Princ´ıpio de Indu¸c˜ao) Seja n0 ∈ 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 ≥ n0 tem-se P(n). (i) P(n0) ´e verdade; (ii) ∀k ≥ n0 ( P(k) ⇒ P(k + 1) ), isto ´e, para todo inteiro k tal que k ≥ n0, 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 < 2n(an + bn). Podemos concluir isso se mostrarmos que as duas condi¸c˜oes de aplicabilidade do princ´ıpio de indu¸c˜ao matem´atica se verificam neste caso. (i) Para n=1, (a + b)1 = a + b < 2(a + b) = 21(a1 + b1), porque a, b ∈ R+. (ii) Suponhamos agora que para um dado k ≥ 1 se tem (a+b)k < 2k(ak +bk), para a, b ∈ R+ quaisquer, e vamos mostrar que ent˜ao (a + b)k+1 < 2k+1(ak+1 + bk+1). Como (a + b)k+1 = (a + b)k(a + b), e por hip´otese (a + b)k < 2k (ak + bk ), concluimos que (a + b)k+1 < 2k (ak + bk )(a + b) = 2k (ak+1 + bk+1 + ak b + bk a). Como 2k (ak+1 + bk+1 + ak b + bk a) = 2k (ak+1 + bk+1 ) + 2k (ak b + bk a), para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que ak b + bk a ≤ ak+1 + bk+1 quaisquer que sejam a, b reais positivos. Tem-se ak b + bk a − ak+1 − bk+1 = −(ak − bk )(a − b) ≤ 0, j´a que quaisquer que sejam x, y ∈ R+, se x ≤ y ent˜ao xp ≤ yp, para todo p ≥ 1 (relembre que as fun¸c˜oes fp(x) = xp, s˜ao estritamente crescentes em R+). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 44.
    4.1. PRINC´IPIO DEINDUC¸ ˜AO MATEM ´ATICA 36 Exerc´ıcio 4.1.1 Aplique o princ´ıpio 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 4n + 15n − 1 ´e m´ultiplo de 9, para todo n ≥ 1. Exemplo 13 Considere o seguinte algoritmo (imagine que Y ´e uma caixa1). 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 2a ¯ 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 3a ¯ 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 ka ¯ 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 ka ¯ vez, o valor em Y ´e o dobro do n´umero de inteiros negativos nos k−1 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 Ciˆencia de Computadores – FCUP
  • 45.
    4.1. PRINC´IPIO DEINDUC¸ ˜AO MATEM ´ATICA 37 4.1.1 Erros frequentes ´E necess´ario mostrar as duas condi¸c˜oes de aplicabilidade do princ´ıpio de indu¸c˜ao, sem o que as provas n˜ao ficam 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 satisfizer, tamb´em o inteiro seguinte as satisfaz. Exemplo 14 Considere a seguinte demonstra¸c˜ao (claramente, errada!) de que “entre dois inteiros consecutivos existe uma infinidade 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 infinidade de inteiros, ent˜ao entre k+1 e k+2 tamb´em existe uma infinidade 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 infinidade 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 infinidade de inteiros. Apenas se mostrou a condi¸c˜ao (ii) do princ´ıpio 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 princ´ıpio de indu¸c˜ao se verificam nessa situa¸c˜ao. (i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar que se s´o existir um cavalo na cerca ´e branco. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 46.
    4.1. PRINC´IPIO DEINDUC¸ ˜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 ficar 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 tamb´em 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 princ´ıpio 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”, tamb´em l´a podem estar cavalos doutras cores. Logo, a afirma¸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 (v´ıcio) 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 tamb´em 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 ficar 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 tamb´em 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 afirmar 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 Ciˆencia de Computadores – FCUP
  • 47.
    4.1. PRINC´IPIO DEINDUC¸ ˜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 exemplo2 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 2n pode ser coberto por pe¸cas da forma seguinte, ficando apenas um quadrado 1 × 1 por cobrir. A propriedade verifica-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 2k admitem a cobertura descrita, ent˜ao os quadrados de lado 2k+1 tamb´em admitem. Dado um quadrado de lado 2k+1 podemos dividi-lo em quatro quadrados de lado 2k como se ilustra na figura abaixo. Por hip´otese, cada quadrado de lado de 2k pode ser coberto por pe¸cas da forma descrita acima. Fazemos para cada um dos quatro uma tal cobertura de forma a ficarem a descoberto os quadrados 1 × 1 indicados na figura. Verificamos que os trˆes quadrados 1 × 1 (ao centro) podem ser cobertos por uma pe¸ca, pelo que s´o fica um quadrado 1 × 1 por cobrir. 2k+1 2k 2k1 1 Esta prova n˜ao est´a correcta! Porquˆe? 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 ficou 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 fica 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 Ciˆencia de Computadores – FCUP
  • 48.
    4.2. INDUC¸ ˜AOFORTE 40 2k+1 2k 2k 4.2 Indu¸c˜ao 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, fixado 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 ficaria ent˜ao: • Pela defini¸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 tamb´em podemos concluir que k + 1 ´e primo ou produto de primos. De facto, se k + 1 n˜ao for primo, existem i1, i2 ∈ N {0, 1} tais que k + 1 = i1i2. Como 2 ≤ i1 ≤ k e 2 ≤ i2 ≤ k, sabemos j´a que i1 ´e primo ou produto de primos e i2 ´e primo ou produto de primos. Analisando os quatro casos (a) i1 e i2 primos, (b) i1 e i2 produtos de primos, (c) i1 primo e i2 produto de primos, e (d) i1 produto de primos e i2 primo, concluimos que se k + 1 = i1i2 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 princ´ıpio de indu¸c˜ao) Seja P(n) uma condi¸c˜ao na vari´avel n ∈ Z. Dado n0 ∈ Z, se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes, ent˜ao ∀n ≥ n0 P(n). (i) P(n0) ´e verdade; (ii) para todo k ∈ Z, se se tem P(i) para todo i ∈ Z com n0 ≤ i ≤ k, tem-se P(k + 1). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 49.
    4.2. INDUC¸ ˜AOFORTE 41 Exemplo 18 Seja “QS” (´e conhecido por quick-sort) o algoritmo seguinte. 0. Sup˜oe-se dada uma sequˆencia finita de inteiros (pode n˜ao ter elementos). 1. Se a sequˆencia n˜ao tem qualquer elemento ent˜ao indicar como resultado a pr´opria sequˆencia. 2.1 Sen˜ao seja X o primeiro elemento na sequˆencia dada. 2.2 Separar os restantes elementos da sequˆencia formando a subsequˆencia dos menores do que X e a subsequˆencia dos maiores ou iguais que X. 2.3 Aplicar “QS” a cada uma das subsequˆencias: sejam R< e R≥ as sequˆencias 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 sequˆencia finita de inteiros dada. Para o provar, vamos usar indu¸c˜ao sobre o n´umero de elementos na sequˆencia dada. (i) Se a sequˆencia dada n˜ao tem elementos, ent˜ao podemos dizer que a sequˆencia resultante, que ´e igual `a dada (por 1.) est´a ordenada por ordem crescente. (ii) Seja S uma qualquer sequˆencia de inteiros, e seja n (n ≥ 1 fixo) o seu n´umero de elementos. Suponhamos agora, como hip´otese de indu¸c˜ao, que quando aplicamos “QS” a uma qualquer sequˆencia 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.1–2.4. Uma vez que nas sub- sequˆencias 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 subsequˆencias, ordena-as por ordem crescente. Ent˜ao, as sequˆencias referidas por R< e R≥ (em 2.3) s˜ao respectivamente as sequˆencias 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 sequˆencia S ordenada por ordem crescente. Proposi¸c˜ao 16 Os princ´ıpios 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 tamb´em 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 Ciˆencia de Computadores – FCUP
  • 50.
    4.2. INDUC¸ ˜AOFORTE 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 justificar que P(1) era verdade, basta-nos reproduzir essa justifica¸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 princ´ıpio de indu¸c˜ao fraca, concluimos ∀n ∈ Z+ Q(n). 4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao Proposi¸c˜ao 17 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”. Se A satisfizer 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 satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N. (i) 0 ∈ A (ii) ∀k∈N ( (∀i ≤ k i∈A) ⇒ k + 1 ∈ A ) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 51.
    Cap´ıtulo 5 Rela¸c˜oes Bin´arias 5.1Rela¸c˜oes Bin´arias de A em B Sejam A e B conjuntos. Designa-se por produto cartesiano de A por B, e denota-se por A × B , o conjunto dos pares ordenados (a, b) tais que a ∈ A e b ∈ B , ou seja A × B = {(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 R b ser´a usada com o mesmo significado 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} ⊆ A × A 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} ⊆ A × C 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 bin´arias Como as rela¸c˜oes bin´arias s˜ao conjuntos (de pares ordenados), podemos definir 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) ∈ A × B | (a, b) ∈ R ∨ (a, b) ∈ S} R ∩ S = {(a, b) ∈ A × B | (a, b) ∈ R ∧ (a, b) ∈ S} R = {(a, b) ∈ A × B | (a, b) /∈ R} = (A × B)R c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 52.
    5.1. RELAC¸ ˜OESBIN´ARIAS DE A EM B 44 Para al´em destas opera¸c˜oes, definimos tamb´em 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 definida 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 definida por RS = {(a, c) | existe b ∈ B tal que (a, b) ∈ R e (b, c) ∈ S} Em alternativa podiamos escrever S ◦ R, que se lˆe 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 rec´ıproca, que associa a cada transformado os elementos do dom´ınio que o tˆem 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 GG BB„„„„„„„„„„„„„„ 2 2 RRjjjjjjjjjjjjjj 3 GG 2 3 66ssssssssssssssss GG 5 BB„„„„„„„„„„„„„ SSjjjjjjjjjjjjj 1 GG 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 verifica que, (2, 1) /∈ RS, (2, 2) /∈ RS. Como RS ⊆ {1, 2, 3}×{1, 2}, o que acab´amos de fazer foi uma an´alise exaustiva dos pares poss´ıveis, justificando 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 Ciˆencia de Computadores – FCUP
  • 53.
    5.1. RELAC¸ ˜OESBIN´ARIAS DE A EM B 45 Exemplo 21 Voltemos a considerar o Exemplo 19. Podemos verificar que: {(x, y) ∈ A × P | x ´e aluno duma disciplina de que y ´e professor} = TS−1 R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura } = UU −1 5.1.2 Matriz duma rela¸c˜ao bin´aria Sejam A e B conjuntos finitos e n˜ao vazios, tais que |A| = n e |B| = m. Podemos identificar A com {ai | 1 ≤ i ≤ n} e B com {bj | 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 (ai, bj) ∈ R, e ´e 0 se (ai, bj) /∈ R. Ou seja, se MR for tal matriz, e MR[i, j] representar o elemento na linha i e coluna j ent˜ao tem-se MR[i, j] = 1 se e s´o se (ai, bj) ∈ R MR[i, j] = 0 se e s´o se (ai, bj) /∈ R com 1 ≤ i ≤ n e 1 ≤ j ≤ m. Exemplo 22 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5} e R ⊆ A × B, R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)} Ent˜ao, MR =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1    Matriz da inversa Sejam A = {a1, . . . , an} e B = {b1, . . . , bm}, m, n ∈ Z+ (fixos) e R ⊆ A × B. Ent˜ao MR−1 [i, j] = 1 ⇐⇒ (bi, aj) ∈ R−1 ⇐⇒ (aj, bi) ∈ R ⇐⇒ MR[j, i] = 1 MR−1 [i, j] = 0 ⇐⇒ (bi, aj) /∈ R−1 ⇐⇒ (aj, bi) /∈ R ⇐⇒ MR[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, MR−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 = Mt R c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 54.
    5.1. RELAC¸ ˜OESBIN´ARIAS DE A EM B 46 Matriz da composta Sejam A, B, e C conjuntos finitos 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 MRS[i, j] = 1≤k≤m (MR[i, k] ∧ MS[k, j]), 1 ≤ i ≤ n, 1 ≤ j ≤ p Notar que por defini¸c˜ao da rela¸c˜ao composta tem-se aiRScj se e s´o se existe bk tal que aiRbk ∧ bkScj. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, k] = 1 ∧ MS[k, j] = 1 para algum k. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, 1] = 1∧MS[1, j] = 1 ou MR[i, 2] = 1∧MS[2, j] = 1 ou . . . ou MR[i, m] = 1∧MS[m, j] = 1, o que justifica a defini¸c˜ao dada para MRS[i, j]. Assim, MRS = MRMS ´e um produto1 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)} MR =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1    S = {(1, 1), (3, 2), (5, 1), (5, 2)} MS =         1 0 0 0 0 1 0 0 1 1         MRS =    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)} ⊆ A × C 1 Deve ficar 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] = Pm 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 Ciˆencia de Computadores – FCUP
  • 55.
    5.2. RELAC¸ ˜OESBIN´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 dom´ınio 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 contradom´ınio 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 ∀a1, a2 ∈ A ( f(a1) = f(a2) ⇒ a1 = a2 ) 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 ∃1b ∈ B f(a) = b (fun¸c˜ao), e • ∀b ∈ B ∃1a ∈ 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 invert´ıvel 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 defini¸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 Bin´arias Definidas num Conjunto Seja A um conjunto. Chama-se rela¸c˜ao bin´aria definida 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 Ciˆencia de Computadores – FCUP
  • 56.
    5.2. RELAC¸ ˜OESBIN´ARIAS DEFINIDAS NUM CONJUNTO 48 5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A Qualquer rela¸c˜ao R definida em A pode gozar ou n˜ao das propriedades seguintes. reflexividade: R ´e reflexiva sse ∀x ∈ A xRx, ou seja n˜ao existe x tal que x ∈ A e (x, x) /∈ R. simetria: R ´e sim´etrica 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 antissim´etrica sse ∀x, y ∈ A ((xRy∧yRx) ⇒ 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 definidas α = {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)} β = {(1, 1), (1, 3), (3, 1)} γ = {(1, 1), (1, 3)} φ = A × A A rela¸c˜ao α ´e reflexiva, sim´etrica, transitiva, e antissim´etrica. De facto, uma vez que α = {(x, x) | x ∈ A}, ´e claro que ∀x ∈ A (x, x) ∈ α, ou seja α ´e reflexiva. Por defini¸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 sim´etrica. 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 antissim´etrica. β n˜ao ´e reflexiva (porque por exemplo 5 ∈ A ∧ (5, 5) /∈ β), ´e sim´etrica (porque (1, 3) ∈ β mas (3, 1) ∈ β), n˜ao antissim´etrica (porque 1 = 3 ∧ (1, 3) ∈ β ∧ (3, 1) ∈ β), e n˜ao transitiva (porque (3, 1) ∈ β ∧ (1, 3) ∈ β ∧ (3, 3) /∈ β). γ ´e transitiva, antissim´etrica, n˜ao reflexiva, e n˜ao sim´etrica (Justificar!). φ ´e reflexiva, sim´etrica, transitiva e n˜ao antissim´etrica. 5.2.2 Grafo da rela¸c˜ao As rela¸c˜oes em A podem ser representadas por grafos dirigidos os quais s˜ao constitu´ıdos por um conjunto de v´ertices (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 Ciˆencia de Computadores – FCUP
  • 57.
    5.2. RELAC¸ ˜OESBIN´ARIAS DEFINIDAS NUM CONJUNTO 49 Exemplo 26 Para as rela¸c˜oes consideradas no Exemplo 25: O grafo da rela¸c˜ao α: 1• GFEDBCoo 2• GFEDBCoo 3• GFEDBCoo 4• GFEDBCoo 5• GFEDBCoo O grafo da rela¸c˜ao β: 1• BC@AGFGG GG 3•oo 4• 5• 2• Exemplo 27 Seja R a seguinte rela¸c˜ao definida 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• @AGFED }}||||||||||||||||||| ÖÖ @@ $$IIIIIIIIIIIIIII 77vvvvvvvvvvvvvvvvvvvvvvvvv BB…………………………………………………………… CCˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ 2• }}|||||||| 33ffffffff vvmmmmmmmmmmmmmmm 3• }}|||||||| 33ffffffff •5 •7 •8 •4oo •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 Ciˆencia de Computadores – FCUP
  • 58.
    5.3. RELAC¸ ˜OESDE 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 definidas R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura da FCUP} S = {(x, y) ∈ A × A | x e y est˜ao inscritos numa mesma disciplina} R ´e reflexiva porque qualquer aluno da FCUP ´e aluno da mesmo curso que si pr´oprio. ´E sim´etrica 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 antissim´etrica, 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 reflexiva, sim´etrica, n˜ao antissim´etrica, 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 tˆem qualquer disciplina em comum). 5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia Diz-se rela¸c˜ao de compatibilidade em A toda rela¸c˜ao bin´aria em A que ´e reflexiva e sim´etrica. Qualquer rela¸c˜ao de compatibilidade em A que seja ainda transitiva diz-se rela¸c˜ao de equivalˆencia em A (ou seja, ´e uma rela¸c˜ao reflexiva, sim´etrica, e transitiva). Exemplo 29 Considere o Exemplo 28. Como R e S s˜ao reflexivas e sim´etricas, R e S s˜ao rela¸c˜oes de compatibilidade. R ´e reflexiva, sim´etrica e transitiva, pelo que ´e de equivalˆencia. S n˜ao ´e de equivalˆencia 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 compat´ıveis para γ se e s´o se xγy. Se (x, y) /∈ γ ent˜ao x e y dizem-se incompat´ıveis para γ. Analogamente, se γ ´e uma rela¸c˜ao de equivalˆencia em A e xγy, 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 Cx de todos os elementos de A compat´ıveis com x (para γ), ou seja Cx = {y ∈ A | (x, y) ∈ γ}. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 59.
    5.3. RELAC¸ ˜OESDE 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: C1 = {1, 2} C2 = {1, 2, 3} C3 = {2, 3} C4 = {4} Repare-se que C2 tem elementos incompat´ıveis, j´a que (1, 3) /∈ γ. A rela¸c˜ao γ ´e de compati- bilidade mas n˜ao ´e de equivalˆencia. 5.3.1 Classes de equivalˆencia Pode acontecer, para certas rela¸c˜oes de compatibilidade γ, que existam elementos u e v em Cx que sejam incompat´ıveis. 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 equivalˆencia se e s´o se para todo x ∈ A, o conjunto Cx = {y ∈ A | (x, y) ∈ γ} n˜ao tem elementos incompat´ıveis. Prova: Seja γ de compatibilidade em A. Vamos mostrar que γ transitiva ⇒ ∀x ∈ A ∀y, t ∈ Cx yγt. Por defini¸c˜ao de Cx, se y, t ∈ Cx ent˜ao xγt e xγy. Como γ ´e sim´etrica, se xγy tamb´em yγx. Ent˜ao, se xγt e xγy, tamb´em yγx e xγt. Logo, pela transitividade de γ, deduz-se yγt. Reciprocamente, se se verificar (5.2) ∀x ∈ A ∀y, t ∈ Cx yγt (5.2) ent˜ao γ ´e transitiva. De facto, se a, b, c ∈ A s˜ao tais que aγb e bγc ent˜ao, pela simetria de γ e por defini¸c˜ao de Cb, deduz-se c ∈ Cb e a ∈ Cb. Mas por (5.2), (c ∈ Cb ∧ a ∈ Cb) ⇒ aγc. Ent˜ao ∀a, b, c ∈ A ((aγb ∧ bγc) ⇒ aγc), ou seja γ ´e transitiva. Sendo γ de equivalˆencia em A, cada conjunto Cx chama-se classe de equivalˆencia de γ. Concretamante, ser´a a classe de equivalˆencia 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 equivalˆencia em A ent˜ao cada elemento de A pertence a uma e uma s´o classe de equivalˆencia de γ. Qualquer elemento de uma classe de equivalˆencia pode ser usado para identificar a classe. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 60.
    5.3. RELAC¸ ˜OESDE 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 equivalˆencia. Eis algumas das classes de equivalˆencia 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 Ciˆencia de Computadores} {x ∈ A | x ´e aluno de Engenharia de Redes e Sistemas Inform´aticos} {x ∈ A | x ´e aluno de Bioqu´ımica} {x ∈ A | x ´e aluno de Engenharia das Ciˆencias Agr´arias} {x ∈ A | x ´e aluno de Matem´atica Aplicada `a Tecnologia} Exemplo 32 Seja ≡5 a rela¸c˜ao definida 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 reflexiva porque qualquer que seja x ∈ Z tem-se x − x = 0 = 0 × 5. ´E sim´etrica 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 sim´etrica. 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 equivalˆencia de ≡5, a saber: C0 = {x ∈ Z | 0 ≡5 x} = {x ∈ Z | ∃k ∈ Z x = 5k} C1 = {x ∈ Z | 1 ≡5 x} = {x ∈ Z | ∃k ∈ Z x = 5k + 1} C2 = {x ∈ Z | ∃k ∈ Z x = 5k + 2} C3 = {x ∈ Z | ∃k ∈ Z x = 5k + 3} C4 = {x ∈ Z | ∃k ∈ Z x = 5k + 4} A rela¸c˜ao podia tamb´em ser definida 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 Ciˆencia de Computadores – FCUP
  • 61.
    5.3. RELAC¸ ˜OESDE COMPATIBILIDADE E DE EQUIVALˆENCIA 53 Proposi¸c˜ao 22 (Caracteriza¸c˜ao das classes de equivalˆencia) Seja γ de equivalˆencia em A, conjunto n˜ao vazio. Para cada x ∈ A, seja Cx = {y ∈ A | xγy}. Ent˜ao, (i) qualquer que seja a ∈ A, o conjunto Ca ´e n˜ao vazio. (ii) se Ca ∩ Cb = ∅ ent˜ao Ca = Cb. (iii) o conjunto A ´e a uni˜ao dos conjuntos Ca, com a ∈ A. Prova: (i) ∀a ∈ A aγa, pela reflexividade de γ. Assim, ∀a ∈ A a ∈ Ca. Logo, Ca = ∅. (ii) Vamos agora mostrar que se Ca ∩ Cb = ∅ ent˜ao Ca ⊆ Cb, e Ca ⊇ Cb, pelo que Ca = Cb. Como Ca ∩ Cb = ∅, existe c ∈ A tal que c ∈ Ca ∩ Cb. Seja x um qualquer elemento de Ca. Vamos mostrar que x ∈ Cb. Para isso basta mostrar que xγb. Ora, pela Proposi¸c˜ao 20, (x ∈ Ca ∧ c ∈ Ca) ⇒ xγc. E como cγb (pois c ∈ Cb), conclui-se por transitividade que xγb. Donde Ca ⊆ Cb. De modo an´alogo se verifica que x ∈ Cb ⇒ x ∈ Ca (iii) A ⊇ a∈A Ca, j´a que Ca ⊆ A para todo a ∈ A. Por outro lado, verificou-se em (i) que para todo a ∈ A, a ∈ Ca. Pelo que A ⊆ a∈A Ca. Exerc´ıcio 5.3.1 Considere a rela¸c˜ao θ em Z × Z+ assim definida: (p, q) θ (p , q ) sse pq = qp . Verificar que θ ´e de equivalˆencia. Notar que cada classe de equivalˆencia 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 equivalˆencia 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 P1 = {{1, 2}, {3}, {4}} define uma parti¸c˜ao de A mas P2 = {{1, 2}, {3, 2}, {4}} n˜ao, j´a que {1, 2} ∩ {3, 2} = ∅. Tamb´em, P3 = {{1, 2}, {3}} n˜ao define parti¸c˜ao de A j´a que 4 ∈ A e 4 n˜ao pertence a nenhum dos subconjuntos de A que constituem P3. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 62.
    5.3. RELAC¸ ˜OESDE COMPATIBILIDADE E DE EQUIVALˆENCIA 54 Corol´ario 22.1 Se γ ´e uma rela¸c˜ao de equivalˆencia em A ent˜ao o conjunto das classes de equivalˆencia de γ ´e uma parti¸c˜ao do conjunto A. O conjunto das classes de equivalˆencia de uma rela¸c˜ao de equivalˆencia γ definida em A diz-se conjunto quociente de A por γ, e representa-se por A/γ. Exemplo 34 Para ≡5, definida no Exemplo 32, o conjunto quociente ´e: Z/≡5 = {C0, C1, C2, C3, C4}. 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 equivalˆencia em A tal que A/γ = Π. Essa rela¸c˜ao γ ´e {(x, y) ∈ A × A | x e y pertencem a um mesmo elemento de Π} Prova: Seja θ a rela¸c˜ao definida em A tal que θ = {(x, y) ∈ A × A | x e y pertencem a um mesmo elemento de Π} Vamos mostrar que θ ´e rela¸c˜ao de equivalˆencia em A. A rela¸c˜ao θ ´e reflexiva, porque sendo Π uma parti¸c˜ao de A, todo elemento de a ∈ A pertence a algum subconjunto em Π, pelo que ∀a ∈ A aθa. Mostrar que θ ´e sim´etrica, ´e mostrar que ∀a, b ∈ A ( aθb ⇒ bθa), o que segue trivialmente da defini¸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 aθb e bθc ent˜ao aθc. Concluimos assim que θ ´e de equivalˆencia. Vamos mostrar que A/θ = Π. Seja x ∈ A, e Cx a classe de equivalˆencia de x para θ. Seja Px ∈ Π tal que x ∈ Px. Vamos mostrar que Cx = Px. Por defini¸c˜ao de θ, ´e claro que Px ⊆ Cx. Por outro lado, se Cx ⊆ Px ent˜ao existiria y ∈ Cx tal que y /∈ Px. Mas, y ∈ Cx sse yθx, ou seja sse y e x pertencem a um mesmo conjunto em Π. Ent˜ao existiria P = Px, P ∈ Π tal que x ∈ Px ∩ P , o que ´e absurdo, pois Px e P s˜ao elementos duma parti¸c˜ao, P = Px, sendo por isso disjuntos. Logo, tamb´em Cx ⊆ Px. Cada conjunto em A/θ (assim como cada conjunto em Π) fica perfeitamente identificado 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 Ciˆencia de Computadores – FCUP
  • 63.
    5.3. RELAC¸ ˜OESDE COMPATIBILIDADE E DE EQUIVALˆENCIA 55 Seja γ uma rela¸c˜ao de equivalˆencia 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 ∀γ ⊆ A × A [ ( γ de equivalˆencia ∧ A/γ = Π ) ⇒ γ = θ Como rela¸c˜oes bin´arias s˜ao, por defini¸c˜ao, conjuntos, para mostrar que γ = θ, vamos mostrar que γ ⊆ θ ∧ γ ⊇ θ. Sejam x e y elementos de A. Se (x, y) ∈ γ ent˜ao, por defini¸c˜ao de conjunto quociente A/γ, existe um e um s´o subconjunto em Π, seja Cx tal que x, y ∈ Cx. Mas, por defini¸c˜ao de θ, tem-se x, y ∈ Cx ∈ Π sse (x, y) ∈ θ. Logo γ ⊆ θ. Verifiquemos agora que θ ⊆ γ. Se (x, y) ∈ θ ent˜ao existe P ∈ Π tal que x, y ∈ P. Como Π ´e o conjunto das classes de equivalˆencia de γ, se x, y ∈ P ent˜ao xγy. 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 incompat´ıveis. 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 aγb. 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,b∈C aγb. (iii) Se C ´e uma classe de compatibilidade γ tal que C ⊆ C , ent˜ao C = C . Exemplo 35 Seja O = {o1, o2, o3, o4, o5, o6, o7} um conjunto de objectos, e seja R = { (o1, {verde, amarelo}), (o2, {azul, verde}), (o3, {azul, vermelho}), (o5, {branco}), (o4, {verde, castanho}), (o6, {branco, castanho, amarelo}), (o7, {preto})} c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 64.
    5.3. RELAC¸ ˜OESDE 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 γ definida em O por xγy sse x e y tˆem uma cor em comum ´e de compatibilidade. As classes de compatibilidade de γ s˜ao: {o1} {o2} {o3} {o4} {o5} {o6} {o7} {o1, o2} {o1, o4} {o1, o6} {o2, o3} {o4, o6} {o5, o6} {o1, o2, o4} {o1, o4, o6} As classes de m´axima compatibilidade s˜ao: {o1, o2, o4}, {o1, o4, o6}, {o2, o3}, {o5, o6}, {o7} Exerc´ıcio 5.3.2 Mostrar que: a) Se γ ´e de equivalˆencia em A ent˜ao para todo x ∈ A, a classe de equivalˆencia 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 equivalˆencia 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 Cγ(A) ´e o conjunto das classes m´aximas de compati- bilidade de γ, ent˜ao γ = θθ−1 em que θ ⊆ A × Cγ(A) ´e assim definida xθC sse x ∈ C, quaisquer que sejam x ∈ A, e C ∈ Cγ(A). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 65.
    5.4. RELAC¸ ˜OESDE ORDEM PARCIAL 57 5.4 Rela¸c˜oes de Ordem Parcial Uma rela¸c˜ao de ordem parcial definida num conjunto A ´e uma rela¸c˜ao bin´aria reflexiva, antissim´etrica e transitiva. A rela¸c˜ao ≤ definida nos conjunto dos n´umeros reais por x ≤ y sse ∃r ∈ R+ 0 y = x + r ´e de ordem parcial em R porque: • ≤ ´e reflexiva porque ∀x ∈ R x = x + 0, pelo que ∀x ∈ R x ≤ x. • ≤ ´e antissim´etrica porque quaisquer que sejam x, y ∈ R se x ≤ y e y ≤ x ent˜ao existem z1, z2 ∈ R+ 0 tais que y = x + z1 e x = y + z2. Logo, x = (x + z1) + z2, pelo que z1 + z2 = 0. Mas como z1, z2 ∈ R+ 0 , vem z1 = z2 = 0, pelo que x = y. Assim, ∀x, y ∈ R ((xRy ∧ yRx) ⇒ x = y), ou seja R ´e antissim´etrica. • ≤ ´e transitiva porque quaisquer que sejam x, y, z ∈ R se x ≤ y e y ≤ z ent˜ao existem z1, z2 ∈ R+ 0 tais que y = x + z1 e z = y + z2. Logo, z = (x + z1) + z2 = x + (z1 + z2), com z1 + z2 ∈ R+ 0 , concluindo-se que x ≤ z (pela defini¸c˜ao). A sua inversa ≤−1, que se denota por ≥, ´e tamb´em de ordem parcial em R. O prolonga- mento natural de ≤ a Rn assim definido (x1, . . . , xn) ≤n (y1, . . . , yn) sse ∀1 ≤ i ≤ n xi ≤ yi ´e tamb´em de ordem parcial. Mais alguns exemplos: • A ordem lexicogr´afica em Rn definida por (x1, . . . , xn) ≤lex (y1, . . . , yn) sse (∀i xi = yi) ou (k = min{i | xi = yi} ∧ xk ≤ yk) A ordem do dicion´ario (de Portuguˆes) ´e um exemplo duma “ordem lexicogr´afica” no conjunto das palavras de alfabeto {a, b, c, . . . , z} ∪ {−}. • A rela¸c˜ao definida nos inteiros positivos pelos pares (m, n) tais que n ´e m´ultiplo de m tamb´em ´e de ordem parcial em Z+. • Qualquer que seja o conjunto A, a rela¸c˜ao de inclus˜ao ⊆ em 2A (conjunto dos subcon- juntos de A) ´e de ordem parcial. A rela¸c˜ao inversa ´e ⊇, tamb´em ´e de ordem parcial. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 66.
    5.4. RELAC¸ ˜OESDE 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 D = {x ∈ Z+ | x divide 64}. Ent˜ao a restri¸c˜ao de | a D ´e uma ordem total, ou seja (D, |) ´e totalmente ordenado. (2A, ⊆) n˜ao ´e totalmente ordenado, se A tiver pelo menos dois elementos. Por exemplo, A = {1, 2}, 2A = {∅, {1}, {2}, A}, e {2} ⊆ {1} e {1} ⊆ {2}. (Rn, ≤lex) ´e totalmente ordenado. Mas, (Rn, ≤n), para n ≥ 2 (fixo), n˜ao est´a totalmente ordenado. Exerc´ıcio 5.4.1 Mostrar que se R ´e de ordem parcial (total) em A ent˜ao R−1 tamb´em ´e de ordem parcial (total) em A. 5.4.1 Diagrama de Hasse Uma rela¸c˜ao de ordem parcial definida num conjunto finito, representa-se graficamente por um Diagrama de Hasse. ´E um grafo n˜ao dirigido que se obtem por simplifica¸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 definida) um outro elemento, ent˜ao o v´ertice do primeiro ficar´a situado mais abaixo na figura, 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 Ciˆencia de Computadores – FCUP
  • 67.
    5.4. RELAC¸ ˜OESDE ORDEM PARCIAL 59 16 8 4 2 1 30 oooooo €€€€€€ 6 yyyyyy 10 oooooo €€€€€€ 15 nnnnnn 2 yyyyyy 3 5 nnnnnnn 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} bbbbbbbbbbbb {1, 3} bbbbbbbbbbbb ÐÐÐÐÐÐÐÐÐÐÐÐ {2, 3, 4} nnnnnnn €€€€€€€ {2, 3} ooooooo {3, 4} nnnnnnnn {2, 4} ddddddddddddddddddddddddddddddd nnnnnnnn {1} ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡ {2} yyyyyyyyy {3} {4} mmmmmmmmmm ∅ Os elementos {1, 2}, {1, 3} e {2, 3, 4} dizem-se elementos maximais. O elemento ∅ diz-se m´ınimo. O conjunto parcialmente ordenado ( (A ∪ {{1, 2, 3, 4}}) {∅}, ⊆ ) n˜ao tem m´ınimo, mas tem m´aximo. Os elementos {1}, {2}, {3} e {4} s˜ao elementos minimais. {1, 2, 3, 4} ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ mmmmmmm {1, 2} ggggggggggggg {1, 3} ggggggggggggg {{{{{{{{{{{{{ {2, 3, 4} nnnnnnn €€€€€€€ {2, 3} mmmmmmmmm {3, 4} nnnnnnnn {2, 4} dddddddddddddddddddddddddddddddddd nnnnnnnn {1} {2} {3} {4} 5.4.2 M´aximos, m´ınimos, supremo, ´ınfimo, 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 Ciˆencia de Computadores – FCUP
  • 68.
    5.5. FECHOS DUMARELAC¸ ˜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 ´ınfimo 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 m´ınimo 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 {x}∪{y} tem supremo e ´ınfimo. Para referir o supremo (resp., o ´ınfimo) 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} nnnnnnn €€€€€€€ {1, 2} €€€€€€€€ {1, 3} nnnnnnnn €€€€€€€€ {2, 3} nnnnnnnn {1}  {2} {3} mmmmmmmmmm ∅ 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 m´ınimo m´ultiplo comum e mdc o m´aximo divisor comum). (2A, ⊆) ´e um reticulado. Neste caso, sup(X, Y ) = X ∪Y e inf(X, Y ) = X ∩Y , quaisquer que sejam X, Y ∈ 2A. 5.5 Fechos duma Rela¸c˜ao 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 RP for o fecho da rela¸c˜ao R para a propriedade P ent˜ao (i) R ⊆ RP ⊆ A × A, e (ii) toda rela¸c˜ao S ⊆ A × A que goze da propriedade P e contenha R, cont´em tamb´em RP . c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 69.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 61 Por exemplo, se Rsim denotar o fecho sim´etrico de R ent˜ao • R ⊆ Rsim ⊆ A × A, e • ∀S ⊆ A × A ((R ⊆ S ∧ S sim´etrica) ⇒ S ⊇ Rsim), ou seja, qualquer rela¸c˜ao S definida em A que seja sim´etrica e contenha R, cont´em tamb´em Rsim. Exemplo 40 Seja A = {1, 2, 3, 4, 5} e sejam θ e β rela¸c˜oes bin´arias em A e assim definidas: θ = {(1, 1), (2, 2), (3, 3), (1, 2)} β = {(1, 1), (1, 2), (2, 1), (4, 1)} O grafo de θ: 1• @AGFED GG 2• GFEDBCoo 3• GFEDBCoo •4 •5 O grafo de β: •1 @AGFED GG •2 oo •3 •5 •4 yy O fecho reflexivo de θ ´e θ ∪ {(4, 4), (5, 5)}. O fecho sim´etrico θ ∪ {(2, 1)}, e o fecho transitivo ´e θ porque θ ´e transitiva. O grafo do fecho reflexivo de θ: •1 @AGFED GG •2 GFEDBCoo •3 GFEDBCoo •4 GFEDBCoo •5 GFEDBCoo O grafo do fecho sim´etrico de θ: •1 @AGFED GG •2 oo GFEDBCoo •3 GFEDBCoo •4 •5 O fecho reflexivo de β ´e β ∪ {(2, 2), (3, 3), (4, 4), (5, 5)}. O fecho sim´etrico β ∪ {(1, 4)} e o transitivo ´e β ∪ {(2, 2), (4, 2)}. O grafo do fecho reflexivo de β: •1 @AGFED GG •2 oo GFEDBCoo •3 BCEDGF •5 BCEDGF •4 yy GF@ABCyy c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 70.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 62 O grafo do fecho sim´etrico de β: •1 @AGFED GG •2 oo •3 •5 •4 yy O grafo do fecho transitivo de β: •1 @AGFED GG •2 oo GFEDBCoo •3 •5 •4 yy aa|||||||| O fecho sim´etrico e transitivo de β ´e β ∪ {(2, 2), (4, 2), (1, 4), (2, 4), (4, 4)}. •1 @AGFED GG •2 oo }}|||||||| GFEDBCoo •3 •5 •4 yy aa|||||||| GF@ABCyy N˜ao faz sentido falar em fecho antissim´etrico. Se uma rela¸c˜ao n˜ao ´e antissim´etrica, ent˜ao qualquer rela¸c˜ao que a contenha tamb´em n˜ao ´e antissim´etrica. 5.5.1 Fecho transitivo e percursos em grafos Dada uma rela¸c˜ao R ⊆ A × A, define-se, para cada i ∈ Z+, a rela¸c˜ao Ri do modo seguinte: R1 = R Ri = RRi−1, i ≥ 2 (composta de R e Ri−1) Proposi¸c˜ao 24 Uma rela¸c˜ao bin´aria R definida em A ´e transitiva se e s´o se R2 ⊆ R. Prova: Se R2 ⊆ R ent˜ao existiam x, y ∈ A tais que (x, y) ∈ R2 e (x, y) /∈ R. Por defini¸c˜ao R2 = RR, donde xR2y 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 R2 ⊆ R. A prova do rec´ıproco, 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 R2 ⊆ R ent˜ao R+ = R. Assim, como R+ (fecho transitivo de R) ´e transitiva, R ´e transitiva. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 71.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 63 Se A for finito, podemos desenhar o grafo de R. Dados dois v´ertices u, v ∈ A, chama-se percurso de u para v no grafo a qualquer sequˆencia finita formada por um ou mais ramos do grafo, tal que o extremo final de qualquer ramo da sequˆencia coincide com o extremo inicial do ramo seguinte na sequˆencia. O comprimento do percurso ´e n´umero de arcos no percurso. Dizer que uRiv 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 ∪i∈Z+ Ri, 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 definida em A. Para quaisquer elementos x e y de A, e qualquer inteiro positivo k tem-se xRk+1y se e s´o se existem k elementos de A, sejam x1, . . . xk, tais que xRx1 ∧ . . . ∧ xiRxi+1 ∧ . . . ∧ xkRy. Prova: Mostremos, por indu¸c˜ao sobre k, que para todo k ∈ Z+ e quaisquer x, y ∈ A xRk+1 y sse ∃x1, . . . , xk ∈ A (xRx1 ∧ . . . ∧ xkRy) (5.3) Mostrar que (5.3) ´e v´alida para k = 1, equivale a mostrar que xR2y se e s´o se existe x1 tal que xRx1 ∧ x1Ry, o que ´e trivialmente v´alido por defini¸c˜ao de R2. 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)+1y. Ent˜ao, usando a defini¸c˜ao de R(k+1)+1, vem xR(k+1)+1 y sse ∃z ∈ A xRz ∧ zRk+1 y Mas, por hip´otese de indu¸c˜ao, zRk+1 y sse ∃y1 . . . yk ∈ A (zRy1 ∧ . . . ∧ ykRy) Assim, xR(k+1)+1 y sse ∃z, y1 . . . yk ∈ A (xRz ∧ zRy1 ∧ . . . ∧ ykRy) Se fizermos x1 = z, x2 = y1, . . . , xk+1 = yk vem xR(k+1)+1 y sse ∃x1, x2 . . . xk+1 ∈ A (xRx1 ∧ x1Rx2 ∧ . . . ∧ xk+1Ry). Logo, mostr´amos que (5.3) est´a nas condi¸c˜oes do princ´ıpio de indu¸c˜ao. Logo, por tal princ´ıpio, (5.3) ´e v´alida para todo k ∈ Z+. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 72.
    5.5. FECHOS DUMARELAC¸ ˜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• GG 2• GG 5• GG 6• oo 4• yy 3•oo 7• yy Tem-se: • (1, 4) ∈ R3 pois (1, 2) ∈ R ∧ (2, 3) ∈ R ∧ (3, 4) ∈ R. • (1, 1) ∈ R4 pois (1, 4) ∈ R3 ∧ (4, 1) ∈ R. • (3, 3) ∈ R4 pois 3 R 4 ∧ 4 R 1 ∧ 1 R 2 ∧ 2 R 3. • (5, 5) ∈ R+ pois (5, 5) ∈ R2 j´a que 5 R 6 ∧ 6 R 5. • Como 3 R 4 ∧ 4 R 1 ∧ 1 R 2 ∧ 2 R 5 ∧ 5 R 6 ∧ 6 R 7, tem-se (3, 7) ∈ R6 ⊆ R+. MR+ =              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 sequˆencia de ramos (3, 4), (4, 1), (1, 2), (2, 5), (5, 6), (6, 7) ´e um percurso de 3 para 7. Exerc´ıcio 5.5.1 Seja H = {x | x ´e ser humano} e sejam m~ae e pai rela¸c˜oes bin´arias definidas 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 Ciˆencia de Computadores – FCUP
  • 73.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 65 Lema 4 A composi¸c˜ao de rela¸c˜oes bin´arias ´e associativa. Prova: Sejam α ⊆ A × B, β ⊆ B × C e γ ⊆ C × D rela¸c˜oes bin´arias. Ent˜ao, xα(βγ)y ⇐⇒ ∃z ∈ B xαz ∧ z(βγ)y (por def. composta α(βγ)) ⇐⇒ ∃z ∈ B ∃w ∈ C xαz ∧ zβw ∧ wγy (por def. composta βγ) ⇐⇒ ∃w ∈ C xαβw ∧ wγy (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 definida num conjunto A. Ent˜ao, quaisquer que sejam os in- teiros positivos n e k tem-se Rn+k = RnRk. Prova: Seja R ⊆ A × A. Vamos mostrar por indu¸c˜ao sobre n ∈ Z+ que ∀n ∈ Z+ ∀k ∈ Z+ Rn+k = RnRk. (5.4) Se n = 1 ent˜ao por defini¸c˜ao de Ri tem-se R1+k = RRk 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+ Rn+k = Rn Rk =⇒ ∀k ∈ Z+ Rn+1+k = Rn+1 Rk ). Sejam k, n quaisquer em Z+. Tem-se, Rn+1+k = RRn+k (por defini¸c˜ao de Ri) = R(RnRk) (por hip´otese de indu¸c˜ao) = (RRn)Rk (pela associatividade da composi¸c˜ao) = (Rn+1)Rk (por defini¸c˜ao de Ri) Mostr´amos que as condi¸c˜oes do princ´ıpio de indu¸c˜ao se verificam, pelo que se conclui por esse princ´ıpio 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 reflexivo de R ´e R∪IA, sendo IA a rela¸c˜ao identidade em A (i.e., IA = {(a, a) : a ∈ A}). O fecho sim´etrico de R ´e R ∪ R−1. O fecho transitivo de R ´e i∈Z+ Ri. Prova: Qualquer rela¸c˜ao bin´aria em A que seja reflexiva ter´a que conter {(a, a) | a ∈ A} c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 74.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 66 ou seja, IA. Por defini¸c˜ao, o fecho reflexivo de R, seja Rref, ´e uma rela¸c˜ao reflexiva, pelo que Rref ⊇ IA. Ainda por defini¸c˜ao, Rref ⊇ R. Assim, Rref ⊇ R ∪ IA. R ∪ IA ´e reflexiva, e qualquer rela¸c˜ao definida em A que seja reflexiva e contenha R, cont´em R ∪ IA. Logo, R ∪ IA ´e o fecho reflexivo de R. R ∪ R−1 cont´em R e ´e sim´etrica. Se (x, y) ∈ R ∪ R−1 ent˜ao (x, y) ∈ R ∨ (x, y) ∈ R−1. Por defini¸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) ∈ R ∪ R−1 ent˜ao (y, x) ∈ R−1 ∨ (y, x) ∈ R, ou seja (y, x) ∈ R ∪ R−1, o que prova a simetria de R ∪ R−1. Se mostrarmos que qualquer rela¸c˜ao S definida em A que seja sim´etrica e contenha R, cont´em R ∪ R−1, concluimos que R ∪ R−1 ´e o fecho sim´etrico de R (por defini¸c˜ao de fecho sim´etrico). Ora, se S ´e sim´etrica e S ⊇ R, ent˜ao S ⊇ R−1. De facto, (x, y) ∈ R−1 ⇒ (y, x) ∈ R (por defini¸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+ = i∈Z+ Ri ou seja R+ ⊆ i∈Z+ Ri (5.5) R+ ⊇ i∈Z+ Ri (5.6) Come¸camos pela primeira inclus˜ao. Vamos provar que i∈Z+ Ri (⊆ A × A) ´e transitiva e cont´em R, pelo que por defini¸c˜ao de fecho transitivo se concluir´a (5.5). Como R = R1 (por defini¸c˜ao de R1), segue trivialmente R ⊆ i∈Z+ Ri. Para justificar que i∈Z+ Ri ´e transitiva, sejam x, y, z ∈ A, e suponhamos que (x, y) ∈ i∈Z+ Ri e (y, z) ∈ i∈Z+ Ri . Por defini¸c˜ao de uni˜ao de rela¸c˜oes, se (x, y) ∈ i∈Z+ Ri ent˜ao existe k ∈ Z+ tal que xRky. E analogamente, (y, z) ∈ i∈Z+ Ri ⇒ ∃p ∈ Z+ yRpz. Ou seja, ((x, y) ∈ i∈Z+ Ri ∧ (y, z) ∈ i∈Z+ Ri ) ⇒ ∃p, k ∈ Z+ xRk y ∧ yRp z, c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 75.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 67 o que implica ∃p, k ∈ Z+ xRkRpz. Ent˜ao, pelo Lema 5, vem xRk+pz, isto ´e (x, z) ∈ Rk+p. Donde, (x, z) ∈ i∈Z+ Ri. Logo, i∈Z+ Ri ´e transitiva. Mostremos agora que tamb´em (5.6). Para tal, vamos usar indu¸c˜ao sobre n ∈ Z+ para provar que ∀n ∈ Z+ R+ ⊇ 1≤i≤n Ri o que implica a validade de (5.6). Se n = 1 ent˜ao 1≤i≤n Ri = R. E, R ⊆ R+ por defini¸c˜ao de fecho. Supondo agora que R+ ⊇ 1≤i≤k Ri, vamos mostrar que ent˜ao R+ ⊇ 1≤i≤k+1 Ri. Sejam x, y ∈ A tais que (x, y) ∈ 1≤i≤k+1 Ri. Queremos concluir que ent˜ao (x, y) ∈ R+. Por defini¸c˜ao de uni˜ao, (x, y) ∈ 1≤i≤k+1 Ri se e s´o se (x, y) ∈ 1≤i≤k Ri ou (x, y) ∈ Rk+1. Se for (x, y) ∈ 1≤i≤k Ri ent˜ao, por hip´otese de indu¸c˜ao xR+y. Se for (x, y) ∈ Rk+1, ent˜ao existe z ∈ A tal que xRz ∧ zRky (uma vez que Rk+1 = RRk por defini¸c˜ao). Como R ⊆ R+, e Rk ⊆ 1≤i≤k Ri, e por hip´otese de indu¸c˜ao 1≤i≤k Ri ⊆ R+, (xRz ∧ zRk y) ⇒ (xR+ z ∧ zR+ y). Como por defini¸c˜ao de fecho transitivo, R+ ´e transitiva, vem xR+y. Logo, pelo princ´ıpio de indu¸c˜ao matem´atica ´e verdade que ∀n ∈ Z+ R+ ⊇ 1≤i≤n Ri De (5.5) e (5.6) segue R+ = i∈Z+ Ri. 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 reflexivo. Exemplo 42 Seja R a rela¸c˜ao definida 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 i∈Z+ Ri. Cada Ri ´e uma rela¸c˜ao definida em Z+ e R1 = R R2 = RR = {(x, y) | ∃z ∈ Z+ xRz ∧ zRy} = {(x, y) | y = x + 6} R3 = RR2 = {(x, y) | ∃z ∈ Z+ xRz ∧ zR2y} = {(x, y) | y = x + 9} ... ... c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 76.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 68 Para n ∈ Z+, teremos Rn+1 = RRn = {(x, y) | ∃z ∈ Z+ xRz ∧ zRn y} = {(x, y) | y = x + 3(n + 1)} o que pode ser provado por indu¸c˜ao sobre n. Assim, R+ = i∈Z+ Ri = {(x, y) ∈ Z+ × Z+ | ∃k ∈ Z+ y = x + 3k}. O fecho sim´etrico e transitivo de R, seja Rst, ´e Rst = {(x, y) ∈ Z+ × Z+ | ∃k ∈ Z y = x + 3k} Pode-se mostrar que o fecho sim´etrico e transitivo ´e sempre o fecho transitivo do fecho sim´etrico. Exerc´ıcio 5.5.2 Seja R uma rela¸c˜ao definida em A. a) Mostre que se R ´e sim´etrica ent˜ao R+ ´e sim´etrica. b) Usando se necess´ario a al´ınea anterior, prove que o fecho sim´etrico e transitivo de R ´e (R ∪ R−1)+, ou seja o fecho transitivo do fecho sim´etrico de R. c) Verifique se (a) o fecho sim´etrico e transitivo ´e o fecho sim´etrico do fecho transitivo. (b) o fecho transitivo e reflexivo ´e o fecho transitivo do fecho reflexivo. (c) o fecho transitivo e reflexivo ´e o fecho reflexivo do fecho transitivo. 5.5.2 Fecho transitivo duma rela¸c˜ao definida num conjunto finito Mostr´amos que o fecho transitivo ´e dado por uma uni˜ao infinita de rela¸c˜oes. No entanto, em certos casos essa uni˜ao pode-se reduzir de facto a uma uni˜ao finita. Corol´ario 25.1 Seja R ⊆ A × A (com A n˜ao necessariamente finito). Se existir algum inteiro positivo m tal que Rm+1 ⊆ 1≤k≤m Rk, ent˜ao R+ = 1≤k≤m Rk. Prova: Seja R ⊆ A × A tal que Rm+1 ⊆ 1≤k≤m Rk, para algum m ∈ Z+. Vamos mostrar por indu¸c˜ao sobre k que ∀k ≥ m + 1 Rk ⊆ 1≤i≤m Ri (5.7) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 77.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 69 pelo que, R+ = i∈Z+ Ri ⊆ 1≤i≤m Ri. Como tamb´em i∈Z+ Ri ⊇ 1≤i≤m Ri, conclui-se R+ = 1≤i≤m Ri. A validade no caso k = m + 1 ´e trivial, j´a que Rm+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 fixo, e vamos mostrar que ent˜ao tamb´em ´e v´alida para k + 1. Mostrar que Rk+1 ⊆ 1≤i≤m Ri equivale a verificar que para todo x, y ∈ A, (x, y) ∈ Rk+1 ⇒ (x, y) ∈ 1≤i≤m Ri , Por defini¸c˜ao de Rk+1 tem-se (x, y) ∈ Rk+1 se e s´o se existe z ∈ A tal que xRz ∧ zRky. Usando a hip´otese de indu¸c˜ao sobre Rk, vem xRz e z 1≤i≤m Ri y. Logo, por defini¸c˜ao de uni˜ao, existe p ≤ m, tal que zRpy . Assim, existe z ∈ A tal que xRz e zRpy. Donde, xRp+1y. Como p + 1 ≤ m + 1, vem Rp+1 ⊆ 1≤i≤m+1 Ri = 1≤i≤m Ri . Logo, (x, y) ∈ 1≤i≤m Ri. Portanto, por indu¸c˜ao matem´atica, (5.7) ´e v´alida. Corol´ario 25.2 Seja R uma rela¸c˜ao definida em A (n˜ao necessariamente finito). Se existir m ∈ Z+ tal que Rm = ∅ ent˜ao R+ = 1≤k≤m−1 Rk (sup˜oe-se que ´e vazia a uni˜ao das rela¸c˜oes Rk com 1 ≤ k ≤ 0). Prova: Se Rm = ∅, para algum m ∈ Z+, ent˜ao ∀k ≥ m Rk = ∅. Assim, R+ = m−1 k=1 Rk. A prova tamb´em ´e imediata se se recorrer ao Corol´ario 25.1. J´a que Rm ⊆ m−1 k=1 Rk se Rm = ∅. Corol´ario 25.3 Seja R uma rela¸c˜ao definida num conjunto finito A, e seja n = |A|. Ent˜ao Rn+1 ⊆ 1≤j≤n Rj e R+ = 1≤j≤n Rj Prova: Sejam x, y ∈ A tais que xRn+1y. Ent˜ao pelo Lema 3, existem x1, . . . xn tais que xRx1 ∧ . . . ∧ xnRy. Como A s´o tem n elementos distintos, ou ocorrem repeti¸c˜oes em x1, . . . , xn, ou x e y ocorrem em x1, . . . xn. Se for xi = xj para algum (i, j) com i = j, ent˜ao podemos retirar xiRxi+1 ∧ . . . ∧ xj−1Rxj e escrever xRx1 ∧. . . ∧xi−1Rxi ∧xiRxj+1 . . . ∧xnRy identificando xi−1 com x caso seja i = 1, e xj+1 com y se for j = n. Logo xRn+1−j+iy. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 78.
    5.5. FECHOS DUMARELAC¸ ˜AO PARA UMA PROPRIEDADE 70 Se n˜ao existirem repeti¸c˜oes em x1, . . . xn, ent˜ao x = xi para algum i. Podemos ent˜ao escrever simplesmente xRxi+1 ∧ . . . ∧ xnRy identificando xi+1 com y caso i = n. Donde, xRn+1−iy. Mostrou-se que quaisquer que sejam x, y ∈ A se xRn+1y ent˜ao existe k ≤ n tal que xRky. Logo, Rn+1 ⊆ 1≤j≤n Rj. Ent˜ao, pelo Corol´ario 25.1, R+ = 1≤j≤n Rj. Exemplo 43 Seja R a rela¸c˜ao bin´aria em {1, 2, 3, 4, 5, 6, 7} representada pelo grafo seguinte. 1• GG 2• GG 5• GG 6• oo 4• yy 3•oo 7• yy J´a determin´amos anteriormente R+ por an´alise do grafo. Tamb´em poderiamos ter determi- nado R+ analiticamente: R+ = R ∪ R2 ∪ R3 ∪ R4 ∪ R5 ∪ R6 ∪ R7. MR2 = (MR)2 = MRMR MR3 = MR2 MR MR4 = (MR)4 = MR2 MR2 MR5 = MR4 MR ... MR+ = MR ∨ MR2 ∨ MR3 ∨ MR4 ∨ MR5 ∨ MR6 ∨ MR7 Exerc´ıcio 5.5.3 Justifique que quaisquer que sejam R e S definidas num conjunto A finito e n˜ao vazio, MR∪S[i, j] = MR[i, j] ∨ MS[i, j] com 1 ≤ i, j ≤ |A|. Exemplo 44 Note que se R for a rela¸c˜ao definida em {1, 2, 3, 4} representada pelo grafo seguinte 1• GG 2• 4• yy 3•oo ent˜ao (x, x) ∈ R+ para todo x ∈ {1, 2, 3, 4} mas (x, x) /∈ Ri para todo i 4. Neste caso, R+ = R ∪ R2 ∪ R3 ∪ R4 = {1, 2, 3, 4} × {1, 2, 3, 4}. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 79.
    Cap´ıtulo 6 Grafos eMultigrafos Os grafos representam um modelo fundamental em Computa¸c˜ao, surgindo em • problemas de caminhos (por exemplo, caminho m´ınimo ou m´aximo); • representa¸c˜ao de redes (por exemplo, de computadores); • descri¸c˜ao de sequˆencia 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 {{vvvvv BB………………………………… fn 55rrrrrr }}{{{{ fv 55qqqqq zzuuuuuuu det n v fn zzvvvvv det n o rato ca¸cou o gato 6.1 Grafos Dirigidos Um grafo dirigido ´e definido por um par G = (V, E) em que V ´e um conjunto de v´ertices e E um conjunto de ramos orientados que ligam pares de v´ertices de V , n˜ao existindo mais do que um ramo com a mesma orienta¸c˜ao a ligar dois v´ertices. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 80.
    6.1. GRAFOS DIRIGIDOS72 Quando o conjunto de v´ertices ´e finito (o que implica que o conjunto de ramos tamb´em o seja), o grafo ´e finito, podendo-se desenhar. Por exemplo, •1 GG •2 GFEDBCoo GG •3 •5 GFEDBCoo •6 •4 yy aa|||||||| GF@ABCyy ´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 v´ertices ´e V = {1, 2, 3, 4, 5, 6}. Se (x, y) ∈ E, ent˜ao o v´ertice x ´e a origem e o v´ertice y o fim 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 fim no mesmo v´ertice, chamam-se lacetes. No exemplo, s˜ao trˆes os ramos incidentes no v´ertice 2, isto ´e, que terminam no v´ertice 2. Este v´ertice tem grau de entrada trˆes e grau de sa´ıda dois. O grau de entrada dum v´ertice ´e o n´umero de ramos que tˆem fim nesse v´ertice. O grau de sa´ıda ´e o n´umero de ramos que tˆem origem nesse v´ertice. No exemplo, os v´ertices 5 e 6 s˜ao v´ertices isolados, pois n˜ao s˜ao origem nem fim de nenhum ramo com algum extremo noutro v´ertice. Um percurso (finito) ´e uma sequˆencia finita formada por um ou mais ramos do grafo tal que o extremo final de qualquer ramo coincide com o extremo inicial do ramo seguinte na sequˆencia. Um percurso num grafo dirigido fica bem identificado se se indicar a sequˆencia de v´ertices por onde passa. Para o exemplo, o percurso (1, 4), (4, 1), (1, 2), (2, 2), (2, 2), (2, 3) pode ser dado pela sequˆencia de v´ertices 1, 4, 1, 2, 2, 2, 3. A origem do percurso ´e a origem do primeiro ramo no percurso e o fim do percurso ´e o fim do ´ultimo ramo no percurso. Um percurso com origem em v e fim em w ´e um percurso de v para w. Chama-se circuito a um percurso em que a origem e o fim coincidem. O comprimento (ou ordem) dum percurso (finito) ´e o n´umero de ramos que o constituem. Assim, 1, 4, 1, 2, 2, 2, 3 tem origem em 1, fim em 3 e comprimento seis, n˜ao sendo um circuito. Note que, qualquer percurso de comprimento k envolve k + 1 v´ertices, n˜ao necessa- riamente distintos. Neste percurso, alguns v´ertices s˜ao visitados mais do que uma vez, concretamente os v´ertices 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 v´ertices e ciclo ´e um percurso fechado que n˜ao tem repeti¸c˜ao de v´ertices com excep¸c˜ao do inicial e final. Designa-se por pista um percurso que n˜ao cont´em repeti¸c˜ao de ramos. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 81.
    6.1. GRAFOS DIRIGIDOS73 A terminologia de grafos ´e pouco consistente, pelo que ´e sempre necess´ario contextualizar cada termo usado na bibliografia 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 v´ertice ocorre duas ou mais vezes. De acordo com a mesma terminologia, ciclo era sin´onimo de circuito, chamando-se “ciclo simples” se fosse tamb´em caminho simples. 6.1.1 Multigrafos dirigidos. O conceito de grafo pode ser de certo modo generalizado para permitir a existˆencia de v´arios ramos com a mesma origem e fim. Multigrafo dirigido ´e um terno (V, A, Φ) em que V ´e um conjunto de v´ertices (ou n´os), A um conjunto de ramos (ou arestas) e Φ ´e uma fun¸c˜ao de A em V × V que a cada ramo associa um par de v´ertices. Assim, um grafo dirigido (simples) ´e um multigrafo dirigido (V, A, Φ) em Φ ´e uma fun¸c˜ao injectiva. Cada par ordenado de v´ertices fica associado por Φ quando muito a um ramo. Um grafo dirigido fica bem definido por um par (V, ρ) em que ρ ´e uma rela¸c˜ao bin´aria em V, ou seja, um conjunto de pares ordenados. Cada par ´e um ramo. A origem e o fim dum ramo α tal que Φ(α) = (u, v) s˜ao os v´ertices u e v respecti- vamente. Usam-se tamb´em as designa¸c˜oes de: n´o inicial (final), v´ertice inicial (final) e extremos. Num multigrafo dirigido, o grau de entrada dum v´ertice ´e o n´umero de ramos que tˆem fim nesse v´ertice; o grau de sa´ıda ´e o n´umero de ramos que tˆem origem nesse v´ertice. Exemplo 45 Considere o multigrafo dirigido representado na figura. v1 α5 α6 α7 @AGFα1 ED α2 GG v2 α3 oo EDBC α4 @Ayy v3 α8 bb}}}}}}}}}}}}}}}} V = {v1, v2, v3} A = { α1, α2, α3, α4, α5, α6, α7, α8} Ψ = {(α1, (v1, v1)), (α2, (v1, v2)), (α3, (v2, v1)), (α4, (v2, v2)), (α5, (v1, v3)), (α6, (v1, v3)), (α7, (v1, v3)), (α8, (v3, v2)) } c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 82.
    6.1. GRAFOS DIRIGIDOS74 Pode-se observar que o grau de entrada de v1 ´e 2 e o seu grau de sa´ıda ´e 5. A sequˆencia de ramos α1α5α8α3α6 ´e um percurso de v1 para v3 (tem ciclos). Este percurso n˜ao fica bem determinado se s´o indicar a sequˆencia de v´ertices por onde passa. Um percurso (finito) num multigrafo ´e uma sequˆencia finita formada por um ou mais ramos do multigrafo e tal que o extremo final de qualquer ramo coincide com o extremo inicial do ramo seguinte na sequˆencia. Representamos um percurso pelo tuplo dos seus ramos (α1, . . . , αk) ou simplesmente α1 . . . αk. Um percurso num grafo dirigido fica bem representado se se indicar a sequˆencia de v´ertices por onde passa. Assim, se αi = (vi, vi+1), ent˜ao (v1, . . . vk, vk+1) representa um e um s´o percurso num grafo dirigido. Tamb´em poderemos representar por v1 . . . vkvk+1. A origem do percurso ´e a origem do primeiro ramo no percurso e o fim do percurso ´e o fim do ´ultimo ramo no percurso. Um percurso com origem em v e fim em w ´e um percurso de v para w. O comprimento (ou ordem) dum percurso (finito) ´e o n´umero de ramos que o consti- tuem. Um circuito ´e um percurso fechado, ou seja, um percurso cuja origem e fim coincidem. Um lacete (loop) ´e um circuito de ordem 1. 6.1.2 Grafos, Percursos e rela¸c˜oes bin´arias Grafo de uma rela¸c˜ao bin´aria R definida em A ´e um grafo dirigido (V, ρ): os v´ertices do grafo identificam-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, cap´ıtulo 5) Seja G = (V, ρ) um grafo dirigido e sejam u e v v´ertices em V. 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, cap´ıtulo 5)) Seja G = (V, ρ) um grafo dirigido. Sejam u e v v´ertices em V. 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 v´ertices facilmente se mostra a seguinte proposi¸c˜ao. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 83.
    6.2. GRAFOS N˜AO DIRIGIDOS 75 Corol´ario 26.2 Seja G = (V, ρ) um grafo dirigido finito. Qualquer percurso de ordem maior ou igual a |V| cont´em um circuito. Corol´ario 26.3 (por Corol´arios 25.3, cap´ıtulo 5)) e 26.2 ) Seja G = (V, ρ) um grafo dirigido finito. Sejam u e v v´ertices em V. 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 |V|. 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 |V|. Paralelamente, tamb´em se pode mostrar que se R ´e uma rela¸c˜ao bin´aria num conjunto finito A, |A| = n ≥ 2 e x, y ∈ A s˜ao distintos, ent˜ao xRny se e s´o se existir p, tal que 1 ≤ p n e (x, y) ∈ Rp. Verifique que este resultado n˜ao pode ser generalizado a pares da forma (x, x). Compare com o Corol´ario 25.3, cap´ıtulo 5. Dados u e v v´ertices de um multigrafo dirigido, diz-se que v ´e acess´ıvel 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 v´ertice ´e acess´ıvel de qualquer outro v´ertice nesse multigrafo. Corol´ario 26.4 Um grafo dirigido G = (V, ρ) ´e fortemente conexo se e s´o se ρ = V × V , sendo ρ o fecho transitivo e reflexivo de ρ. 6.2 Grafos N˜ao Dirigidos Multigrafo n˜ao dirigido ´e um terno (V, E, Φ) em que V ´e um conjunto de v´ertices (ou n´os), E um conjunto de ramos e Φ ´e uma fun¸c˜ao de E no conjunto de pares n˜ao ordenados de elementos de V. 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 (V, E, Φ) em que Φ ´e uma fun¸c˜ao injectiva. Cada par de v´ertices n˜ao ordenado fica associado por Φ quando muito a um ramo. v1 v2 ffffffff |||||||| v3 v4 v1 v5 v2 ffffffff |||||||| v3 v4 `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 v1 e v2. `A direita temos um grafo n˜ao dirigido. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 84.
    6.2. GRAFOS N˜AO DIRIGIDOS 76 Multigrafo adjunto de um multigrafo n˜ao dirigido G = (V, E, Φ) ´e um multigrafo diri- gido GA = (V, A, Ψ) tal que a cada ramo de E unindo v´ertices diferentes correspondem dois ramos em A, e vice-versa. Se Φ(α) = u, v e u = v ent˜ao existem dois ramos α1 e α2 em A tais que Ψ(α1) = (u, v) e Ψ(α2) = (v, u). O grafo adjunto de um grafo n˜ao dirigido G = (V, E, Φ) ´e um grafo dirigido (V, ρ) em que ρ ´e sim´etrica. Tem-se (u, v) ∈ ρ e (v, u) ∈ ρ sse Φ(α) = u, v para algum α ∈ E. Se Φ(α) = u, v ent˜ao u e v dizem-se extremos do ramo α. Um percurso (finito) num multigrafo n˜ao dirigido ´e uma sequˆencia finita formada por um ou mais ramos do multigrafo que corresponde a um percurso no multigrafo adjunto. Num grafo n˜ao dirigido ( v0, v1 , v1, v2 , . . . vk−1, vk ) representa um percurso entre v0 e vk. Se se indicar a sequˆencia de v´ertices por onde um percurso passa, (v0, v1, v2, . . . , vk−1, vk) pode ser entendido como um percurso de v0 para vk. O comprimento (ou ordem) dum percurso (finito) ´e o seu n´umero de ramos. Um circuito num grafo n˜ao dirigido ´e um percurso fechado ( v0, v1 , v1, v2 , . . . vk−1, vk ) que v0 e vk coincidem. Um ciclo (por vezes designado ciclo simples) ´e um circuito que n˜ao tem repeti¸c˜ao de v´ertices com excep¸c˜ao do inicial e final. Um grafo n˜ao dirigido ´e ac´ıclico se e s´o se n˜ao cont´em ciclos (nem lacetes). v1 v2 ffffffff |||||||| v3 v4 v1 v5 v2 ffffffff |||||||| v3 v4 tem circuitos tem ciclos (simples) n˜ao tem ciclos (simples) n˜ao ´e ac´ıclico Grau de um v´ertice num grafo n˜ao dirigido ´e o n´umero de ramos que tˆem esse v´ertice como extremo. Um subgrafo1 de um grafo G = (V, E) ´e um grafo G = (V , E ) em que V ⊆ V, E ⊆ E. Tamb´em se pode definir 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 v´ertices em V , chamando subgrafo parcial se algum ramo que liga v´ertices em V n˜ao pertencer a E . c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 85.
    6.2. GRAFOS N˜AO DIRIGIDOS 77 6.2.1 Grafos Conexos Num multigrafo n˜ao dirigido, dado um par de v´ertices u, v diz-se que v ´e acess´ıvel 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 equivalˆencia. Um multigrafo n˜ao dirigido G ´e conexo se e s´o se qualquer v´ertice ´e acess´ıvel de qualquer outro v´ertice nesse multigrafo. Dado um qualquer multigrafo n˜ao dirigido G, pode-se mostrar que cada classe de equi- valˆencia 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 v´ertice de G). Tais subgrafos dizem-se componentes conexas de G. Por abuso de linguagem, chamare- mos ainda componentes conexas `as classes de equivalˆencia da rela¸c˜ao de acessibilidade. O conjunto de v´ertices na componente identifica-a perfeitamente. O multigrafo (n˜ao dirigido) seguinte tem duas componentes conexas. v1 v2 vvvvvv vvvvvv rrrrrr v3 v4 v5 v6 iiiiiiiiiiiiii v7 vvvvvv v8 A rela¸c˜ao de acessibilidade n˜ao depende da existˆencia de v´arios ramos entre dois v´ertices. A cada multigrafo n˜ao dirigido podemos associar um grafo n˜ao dirigido substituindo cada conjunto de ramos entre um mesmo par de v´ertices por apenas um ramo. Podemos ainda retirar todos os lacetes. O grafo n˜ao dirigido assim definido 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 = (V, ρ) um grafo n˜ao dirigido finito, conexo, |ρ| ≥ 1. (i) Se se retirar um ramo de G, o grafo resultante tem quando muito duas componentes conexas. (ii) Seja v um v´ertice 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 Ciˆencia de Computadores – FCUP
  • 86.
    6.2. GRAFOS N˜AO DIRIGIDOS 78 Exerc´ıcio 6.2.1 Prove o Lema 6. Para (i), suponha que o ramo u, v ´e retirado. Considere Av assim definido Av = {w ∈ V | w = v ou existe percurso em G entre w e v que n˜ao inclui o ramo u, v } e mostre que se VAv = ∅ ent˜ao u /∈ Av e VAv ´e o conjunto {w ∈ V | w = u ou existe algum percurso em G entre w e u que n˜ao inclui o ramo u, v } e Av e VAv 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¸c˜ao necess´aria para um grafo ser conexo Pretende-se ligar um conjunto de localidades, seja {l1, l2, . . . , ln}, por estradas. Qual o n´umero m´ınimo de estradas a construir para que seja poss´ıvel 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 n−1 estradas ter˜ao que ser constru´ıdas”. Esse n´umero ´e suficiente 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 finito (V, E) seja conexo que |E| ≥ |V| − 1. Prova: Vamos mostrar por indu¸c˜ao sobre o n´umero de v´ertices do grafo que ∀n ∈ Z+ ∀G G = (V, E) grafo n˜ao dirigido conexo, |V| = n ⇒ |E| ≥ |V| − 1 A condi¸c˜ao ´e verdadeira para n = 1 j´a que o grafo n˜ao dirigido com 1 s´o v´ertice 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 v´ertices n˜ao excede k. Ou seja, ∀1 ≤ i ≤ k ∈ Z+ ∀G G = (V, E) grafo n˜ao dirigido conexo, |V| = i ⇒ |E| ≥ |V| − 1 e vamos mostrar que ent˜ao a proposi¸c˜ao ´e v´alida para grafos com k + 1 v´ertices. Seja G um grafo n˜ao dirigido conexo e com k + 1 v´ertices. Como G n˜ao tem v´ertices isolados (j´a que G ´e conexo e k + 1 ≥ 2) seja v um qualquer v´ertice de V e seja p ≥ 1 o seu grau. Considere-se o subgrafo que se obt´em retirando v e os p ramos com extremo em v. Pelo Lema 6, tal grafo ´e constitu´ıdo por m (m ≤ p) componentes conexas: sejam G1, . . . Gm. Cada um dos Gi ´e n˜ao dirigido, conexo, e tem um n´umero de v´ertices (seja ni) n˜ao superior c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 87.
    6.3. ´ARVORES 79 ak. Ent˜ao, por hip´otese de indu¸c˜ao, o n´umero de ramos de cada Gi ´e maior ou igual a ni −1. Donde, |E| ≥ p + m i=1 (ni − 1) = p + k − m ≥ k = |V| − 1 Note que cada v´ertice pertence a uma s´o componente conexa, pelo que m i=1 ni = k. Conclui-se assim por indu¸c˜ao matem´atica que se G = (V, E) ´e n˜ao dirigido, finito e conexo, ent˜ao |E| ≥ |V| − 1. Exerc´ıcio 6.2.2 Mostre que o rec´ıproco da Proposi¸c˜ao 28 ´e falso ou seja, que existem grafos n˜ao dirigidos que n˜ao s˜ao conexos embora |E| ≥ |V| − 1. Lema 7 Seja G um grafo n˜ao dirigido conexo. Se G n˜ao ´e ac´ıclico ent˜ao ´e poss´ıvel retirar algum ramo a G de modo que o grafo resultante seja tamb´em conexo. Lema 8 Seja G um grafo n˜ao dirigido conexo e com pelo menos 2 v´ertices, tal que se se retirar algum ramo, o grafo resultante ´e n˜ao conexo. Ent˜ao G tem pelo menos dois v´ertices de grau 1. Exerc´ıcio 6.2.3 Prove os Lemas 7 e 8. Para mostrar 8 use indu¸c˜ao sobre o n´umero de v´ertices 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 v´ertices e n − 1 ramos. Se tiver 1 v´ertice (e 0 ramos) diz-se ´arvore degenerada. • • tttttt tttttt • • tttttt tttttt • • • • • iiiiiiiiiiiii • tttttt • • tttttt • • • tttttt • tttttt tttttt • • • • ´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 v´ertices 1. conexo e ac´ıclico. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 88.
    6.3. ´ARVORES 80 2.tal que entre cada par de v´ertices (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 v´ertices, o grafo fica com um e um s´o ciclo (simples). 5. ac´ıclico e com n − 1 ramos. 6. conexo e com n − 1 ramos. Prova: Vamos provar a equivalˆencia 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 v´ertices u, v de G, ent˜ao CC seria um circuito em G (e conteria um ciclo) pelo que G n˜ao seria ac´ıclico. • (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 v´ertices 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 tamb´em 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 poss´ıvel 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 v´ertices no ciclo, forma-se pelo menos dois ciclos, o que contraria (4). Logo, G ´e ac´ıclico. Concluimos assim que (1), (2), (3), e (4) s˜ao equivalentes. Para completar a prova da Proposi¸c˜ao, vamos mostrar agora a equivalˆencia de (1), (5) e (6). • (1) ⇒ (5) (por indu¸c˜ao sobre o n´umero de v´ertices) Se o grafo tiver exactamente 2 v´ertices ent˜ao tem apenas um ramo, e se for um v´ertice isolado, ent˜ao tem 0 ramos (sen˜ao n˜ao seria ac´ıclico). Tomamos como hip´otese de indu¸c˜ao a validade da condi¸c˜ao para grafos com i v´ertices, 1 ≤ i ≤ k. E, vamos mostrar que ent˜ao ainda ´e v´alida para grafos com k + 1 v´ertices. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 89.
    6.3. ´ARVORES 81 SejaG = (V, E) um grafo com k + 1 v´ertices, conexo e ac´ıclico. Como G ´e conexo e tem pelo menos dois v´ertices, 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 afirmar que tem exactamente duas componentes conexas: sejam G1 e G2. Sejam n1 e n2 o n´umero de v´ertices respectivos. Ent˜ao 1 ≤ ni ≤ k, e como cada Gi ´e um subgrafo ac´ıclico (sen˜ao G conteria ciclos) e conexo, ter´a que ter ni − 1 ramos (por hip´otese de indu¸c˜ao). Consequentemente, |E| = (n1 − 1) + (n2 − 1) + 1 = (n1 + n2) − 1 = (k + 1) − 1 = k = |V| − 1. Portanto, por indu¸c˜ao matem´atica podemos concluir que qualquer grafo n˜ao dirigido finito, ac´ıclico e conexo tem exactamente menos um ramo do que v´ertices. • (5) ⇒ (6) Seja G um grafo qualquer com k v´ertices ac´ıclico e com k−1 ramos. Se G n˜ao for conexo, ent˜ao seja m o n´umero de componentes conexas de G. Como G ´e ac´ıclico, cada componente conexa ´e ac´ıclica pelo que tem exactamente ni − 1 ramos, se for ni o seu n´umero de v´ertices. Isto porque, j´a mostr´amos que (1) ⇒ (5), e se alguma das componentes se reduzir a um v´ertice ter´a que ter zero ramos. Ent˜ao k − 1 = m i=1(ni − 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 ac´ıclico 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 n−2 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 ac´ıclico. 2 Numa ´arvore n˜ao degenerada, os v´ertices 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 ra´ız ´Arvore com ra´ız ´e um grafo dirigido com n v´ertices e n − 1 ramos e tal que existe um e um s´o v´ertice do qual todos s˜ao acess´ıveis. Tal v´ertice chama-se a ra´ız da ´arvore. As folhas numa ´arvore com ra´ız s˜ao os v´ertices com grau de sa´ıda zero. A ra´ız da ´arvore ´e o ´unico v´ertice com grau de entrada zero. Numa ´arvore com ra´ız os filhos ou descendentes directos de um n´o v s˜ao os extremos finais de ramos com origem em v. Os descendentes de um n´o s˜ao os filhos desse n´o e os descendentes dos filhos desse n´o. Um n´o ´e pai dos seus filhos. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 90.
    6.4. PERCURSOS EULERIANOSE HAMILTONIANOS 82 ´Arvore ordenada (ou orientada ) ´e uma ´arvore com ra´ız e tal que o conjunto de ramos que saem dum v´ertice est´a totalmente ordenado. As ´arvores sint´acticas s˜ao ´arvores ordenadas. frase }}zzzz AAƒƒƒƒƒƒƒƒƒƒƒ fn 33hhhhh ÐÐÑÑÑÑ fv 33gggg ||yyyyyy det n v fn }}zzzz det n o rato ca¸cou o gato expr yysssss BB…………………………… expr expr yysssss 77uuuuu inteiro expr expr inteiro inteiro 5 + 3 + 8 As ´arvores seguintes poderiam iguais se se considerasse que eram ´arvores com ra´ız, mas s˜ao diferentes se se considerar que s˜ao ´arvores ordenadas (e 1 2). • 1 ~~~~~~~ 2 11ddddddd • 1 ~~~~~~~ 2 11ddddddd • • • • 1 ~~~~~~~ 2 11ddddddd • • 1 ~~~~~~~ 2 11ddddddd • • Os valores atribu´ıdos aos ramos especificam 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 sa´ıda de cada v´ertice n˜ao excede n. As ´arvores das figura 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. eeee eeee ¡¡¡¡¡¡¡¡ c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 91.
    6.5. GRAFOS PLANARES83 Proposi¸c˜ao 30 Seja G um grafo n˜ao dirigido, finito e sem v´ertices isolados. Existe um circuito de Euler em G se e s´o se G ´e conexo e todos os v´ertices de G tˆem grau par. Existe um percurso de Euler em G se e s´o se G ´e conexo e o n´umero de v´ertices em G com grau ´ımpar ´e 0 ou 2. Exerc´ıcio 6.4.1 Verifique se ´e poss´ıvel desenhar cada uma das figuras 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 v´ertice do multigrafo uma e uma s´o vez. Um circuito de Hamilton ´e um circuito com origem e fim no mesmo v´ertice e que passa por cada um dos restantes v´ertices 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 poss´ıvel) duas vezes na mesma localidade. N˜ao se conhece qualquer condi¸c˜ao necess´aria e suficiente que garanta a existˆencia 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 v´ertices. Um grafo n˜ao dirigido, finito e sem lacetes, e tal que existe um ramo entre cada par de v´ertices diferentes, diz-se completo. O grafo completo com n v´ertices, denota-se por Kn. 6.5 Grafos Planares Um grafo ´e planar sse for poss´ıvel represent´a-lo no plano sem que haja cruzamento de ramos. Exerc´ıcio 6.5.1 Justifique que o grafo (V, E) ´e planar, para V = {1, 2, 3, 4, 5, 6, 7, 8} e E = { 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 (V, E) diz-se bipartido se e s´o se existir uma parti¸c˜ao {V1, V2} do conjunto V tal que para todo v1, v2 ∈ E se tem v1 ∈ V1 e v2 ∈ V2. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 92.
    6.6. ISOMORFISMO DEGRAFOS 84 Se cada v´ertice em V1 estiver ligado a cada um dos v´ertices de V2 por um ramo, o grafo diz-se bipartido completo. Nesse caso, se |V1| = m e |V2| = n, o grafo denota-se por Km,n. Na figura apresenta-se K3,3 (bipartido completo) e K5 (completo, n˜ao bipartido). • ddddddd GGGGGGGGGGGGGG • • ~~~~~~~ ddddddd • • ~~~~~~~ • • ~~~~~~~ ddddddd GGGGGGGGGGGGGG • yyyyyyyyyyyyyy • oooooooooooooo • • Estes dois grafos n˜ao s˜ao planares. O Teorema de Kuratowski (1930) afirma que um grafo n˜ao dirigido finito n˜ao ´e planar se e s´o se tiver como subgrafo K5 ou K3,3 ou algum grafo que possa ser obtido de K5 ou K3,3 por inser¸c˜ao ou elimina¸c˜ao de v´ertices de grau 2. A prova deste teorema est´a fora do ˆambito da disciplina. 6.6 Isomorfismo de Grafos Dois grafos dirigidos (V1, E1) e (V2, E2) s˜ao isomorfos se e s´o se existir uma bijec¸c˜ao f de V1 em V2 tal que (v1, v2) ∈ E1 sse (f(v1), f(v2)) ∈ E2. De modo semelhante, diz-se que dois grafos n˜ao dirigidos (V1, E1) e (V2, E2) s˜ao isomorfos se e s´o se existir uma bijec¸c˜ao f de V1 em V2 tal que v1, v2 ∈ E1 sse f(v1), f(v2) ∈ E2. 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 isomorfismo) todos os grafos n˜ao dirigidos conexos que tˆem n v´ertices, para 1 ≤ n ≤ 4. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 93.
    6.7. COLORAC¸ ˜AODE GRAFOS 85 1 2 3 4 6.7 Colora¸c˜ao de Grafos Considere o mapa da Europa. Qual ´e o n´umero m´ınimo de cores necess´ario para colorir o mapa de forma que pa´ıses que tˆem fronteira comum sejam coloridos com cores diferentes? O problema tem por modelo o seguinte problema de grafos. Seja G = (V, E) n˜ao dirigido finito. O n´umero crom´atico ´e o menor n´umero de cores necess´arias para colorir os v´ertices do grafo de forma que se u = v e u, v ∈ E, ent˜ao u e v ficam com cores distintas. Exerc´ıcio 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 Kn? O Teorema das 4 cores diz que o n´umero crom´atico de qualquer grafo n˜ao dirigido finito 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. Exerc´ıcio 6.7.2 Uma loja de animais de estima¸c˜ao, recebeu uma encomenda de peixes tro- picais. Algumas das esp´ecies comem outras esp´ecies. Sabendo que o grafo (n˜ao conexo) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 94.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 86 apresentado no exerc´ıcio anterior representa as incompatibilidades das diferentes esp´ecies, justifique que o n´umero m´ınimo de aqu´arios necess´arios ´e igual ao n´umero crom´atico do mesmo. Justifique 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 (V, E, Φ, L) em que (V, E, Φ) ´e um multigrafo, e L : E −→ R+ 0 ´e uma fun¸c˜ao de E 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 (V, ρ, L). Se o grafo for finito, ent˜ao podemos associar uma matriz de distˆancias D do modo seguinte: Dij = L(vi, vj) sse (vi, vj) ∈ ρ Dij = ∞ sse (vi, vj) /∈ ρ para 1 ≤ i ≤ |V|, 1 ≤ j ≤ |V|. 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 ÐÐÐÐÐÐÐÐ 5 11bbbbbbbb b 10 ÑÑÒÒÒÒÒÒÒÒ 2 GG 2 00```````` e 2 00aaaaaaaa c d3 oo 7 ddÒÒÒÒÒÒÒÒ 1 GG 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 v1 = a, v2 = b, . . . , v6 = f, tendo-se seguido a conven¸c˜ao de que a distˆancia de um v´ertice a si pr´oprio ´e zero. Se n˜ao existir ramo de u para v convencionamos que a distˆancia associada ao “ramo”de u para v ´e ∞. Leia-se ∞ como indeterminado ou indefinido. Os problemas de c´alculo de distˆancia m´ınima entre localidades e custo m´ınimo de produ¸c˜ao de um dado produto tˆem muitas vezes por modelo um grafo como o descrito. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 95.
    6.8. GRAFOS COMVALORES 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 definir uma opera¸c˜ao bin´aria2 ⊕ 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¸c˜ao da distˆancia m´ınima Dados dois v´ertices u e v num grafo finito (V, ρ, L) como determinar a distˆancia m´ınima de u para v? Seja Cuv o conjunto dos percursos de u para v, u = v. Se Cuv = ∅ convencionamos que a distˆancia m´ınima para aceder de u a v ´e ∞. Se Cuv = ∅ ent˜ao a distˆancia m´ınima ´e min{dγ | dγ ´e a distˆancia pelo percurso γ, para γ ∈ Cuv.} Como o grafo ´e finito, tal m´ınimo ´e min{dγ | dγ ´e a distˆancia por γ ∈ Cuv e a ordem de γ n˜ao excede |V| − 1} pois os percursos com ordem (comprimento) maior que |V|−1 contˆem circuitos, correspondendo- lhes por isso distˆancias iguais ou superiores. Dado um grafo finito (V, ρ, L), convencion´amos que a distˆancia m´ınima entre v´ertices iguais era zero. Em cada caso pr´atico deve-se verificar se esta conven¸c˜ao faz sentido. Algoritmo de Bellman-Ford Vamos designar por Dm a matriz das distˆancias m´ınimas por percursos de ordem n˜ao superior a m. Se tivermos calculado Dm, podemos obter as distˆancias m´ınimas por percursos de ordem n˜ao superior a m+1, analisando a distˆancia associada a percursos que tˆem mais um ramo do que os percursos m´ınimos obtidos anteriormente. Se esses percursos com mais um ramo n˜ao forem melhores ent˜ao deve-se dar preferˆencia aos anteriores. Assim, Dm+1 pode ser obtida `a custa de Dm e de D1 = D, por (6.1) Dm+1 ij = min( Dm ij , min{ Dm ik ⊕ Dkj | 1 ≤ k ≤ |V|} ) (6.1) para 1 ≤ i ≤ |V|, 1 ≤ j ≤ |V|, e min definido 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 Ciˆencia de Computadores – FCUP
  • 96.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 88 A matriz das distˆancias m´ınimas ´e uma matriz Dm tal que Dm+1 = Dm, 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 Dm + Dm × 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 ficar clara na disciplina de Elementos de ´Algebra Linear. Compare ainda com a matriz da composta de rela¸c˜oes bin´arias. Convencionando Dii = 0, para 1 ≤ i ≤ |V|, podemos simplificar a f´ormula (6.1): Dm+1 ij = min{Dm ik ⊕ Dkj | 1 ≤ k ≤ |V|} Para o exemplo anterior, as trˆes primeiras linhas da matriz D2 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 m´ınimas (absolutas) ficam 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 v´ertices em V foram numerados de 1 a n = |V|. O algoritmo de Floyd (1962), apresentado na figura 6.1, permite determinar a distˆancia e um percurso m´ınimo para todos os pares de v´ertices. O processo de constru¸c˜ao da matriz das distˆancias m´ınimas ´e iterativo: na itera¸c˜ao k obt´em-se a matriz Dk das distˆancias m´ınimas por percursos que s´o podem ter como v´ertices interm´edios v1, . . . , vk. (NB: Esta matriz Dk n˜ao ´e a mesma que se definiu acima!) Agora, para 1 ≤ k n, Dk+1 ij = min(Dk ij, Dk i k+1 + Dk k+1 j) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 97.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 89 Dados: a matriz D das distˆancias e n´umero de v´ertices n Resultado: a matriz das distˆancias m´ınimas em D e a matriz P Inicializar P. Para k ← 1 at´e n Para i ← 1 at´e n Para j ← 1 at´e 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 vi para vj que s´o possa ter v1, . . . , vk, vk+1 como v´ertices interm´edios ´e ou um percurso ´optimo que s´o pode ter v1, . . . , vk como v´ertices interm´edios ou a concatena¸c˜ao (jun¸c˜ao) dum percurso ´optimo de vi a vk+1 com um percurso ´optimo de vk+1 a vj, ambos s´o podendo ter v1, . . . , vk como v´ertices interm´edios. Note que esta descri¸c˜ao do algoritmo n˜ao corresponde exactamente ao algoritmo apre- sentado na figura 6.1, pois n˜ao foi considerada uma matriz de distˆancias para cada itera¸c˜ao. Para permitir tamb´em determinar o percurso m´ınimo, o algoritmo apresentado vai construindo uma matriz P k: a posi¸c˜ao P k ij guarda sempre o segundo v´ertice no melhor percurso de vi para vj que se encontrou at´e `a itera¸c˜ao k. Inicialmente, pode-se definir, Pij = j se i = j ou (vi, vj) ∈ E 0 se i = j e (vi, vj) /∈ E Poder-se-ia ter definido a matriz P doutras formas. Por exemplo, podemos tomar P k ij como o v´ertice interm´edio no percurso (m´ınimo) de i para j que foi usado para determinar o melhor valor de Dk ij. Assim, considerando que os v´ertices est˜ao numerados de 1 a n, podemos inicialmente fazer Pij ← 0 para todo i e todo j (significando que n˜ao ´e conhecido nenhum v´ertice interm´edio no percurso de i para j). Na actualiza¸c˜ao, quando D[i, j] D[i, k]+D[k, j], far-se-ia Pij ← k, j´a que o percurso melhor de i para j encontrado at´e `a itera¸c˜ao k passa por k. No final, se Dij ∞, sendo i = j, ent˜ao o percurso m´ınimo de i para j ´e a sequˆencia formada por i, os v´ertices interm´edios nesse percurso e finalmente j. Para determinar os v´ertices interm´edios no percurso de i para j, verifica-se Pij = 0, e se for o caso, ent˜ao imprimem-se os v´ertices interm´edios no percurso de i para Pij, imprime-se Pij e finalmente imprimem-se os v´ertices interm´edios no percurso de Pij para j. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 98.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 90 Algoritmo de Dijkstra O algoritmo de Dijkstra (1959), apresentado na figura 6.2, calcula a distˆancia m´ınima dum dado v´ertice a todos os outros. Dados: Um grafo G = (V, E, d) dirigido com valores nos arcos, e u0 ∈ V. Resultado: O vector Dest das distˆancias m´ınimas de v a cada um dos v´ertices. Inicializar M ← {u0}, Dest[u0] ← 0 e Dest[v] ← ∞ para todo v ∈ V {u0}. Enquanto M = V fazer seja w o ´ultimo v´ertice colocado em M; actualizar a estimativa das distˆancias a u0: para cada v ∈ V M fazer Dest[v] ← min(Dest[v], Dest[w] + d(w, v)). seja v ∈ V M tal que Dest[v] ´e m´ınimo; M ← M ∪ {v}. Figura 6.2: Algoritmo de Dijkstra • Em cada passo, os v´ertices em M s˜ao aqueles para os quais j´a ´e conhecida a distˆancia m´ınima a partir de u0. O valor de Dest[v] para v ∈ M a distˆancia m´ınima de u0 a v. • Se substituir a condi¸c˜ao M = V por uf /∈ M (sendo dado uf ∈ V), o algoritmo termina quando a distˆancia m´ınima de u0 a uf for conhecida. Todos os v´ertices que podem ocorrer no percurso m´ınimo de u0 para uf est˜ao em M. • Dado uf ∈ V {u0}, o percurso m´ınimo de u0 para uf pode ser obtido por an´alise para tr´as do modo seguinte: escolher v ∈ M com (v, uf ) ∈ E e Dest[v]+d(v, uf ) = Dest[uf ]; se v = u0, escolher v ∈ M tal que (v , v) ∈ E e Dest[v ] + d(v, v ) = Dest[v]. . . e assim sucessivamente at´e chegar a u0. O percurso de u0 para uf ´e dado pela sequˆencia de v´ertices seleccionados, na ordem inversa da de selec¸c˜ao: a ´ultima escolha ´e o 1o ¯ v´ertice no percurso, a pen´ultima o 2o ¯, . . . • 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 identificado um percurso mais curto de u0 para v, sendo w o pen´ultimo v´ertice nesse percurso. Se registar esse facto, por exemplo num vector Prec, fazendo Prec[v] ← w, ent˜ao, no final, na an´alise para tr´as, basta imprimir uf , Prec[uf ], Prec[Prec[uf ]], . . . , u0 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 99.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 91 para ter os v´ertices no (ou num) percurso min´ımo de u0 para uf (por ordem inversa). Ou seja, escreve_percurso(v) pode ser assim definida (de forma recursiva): Se v = u0 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 trˆes, 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 m´ınimo 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 WWWWWWWWWWWWWWWW B 4 1 WWWWWWW D 8G 7 O 3 1 8 WWWWWWW H 6 E 17 3 C G 4 F 2 10 ÕÕÕÕÕÕÕ ∞ 2 1 aaaaaaaaaaaaaaaaa ∞ 4 1 aaaaaaa ∞ 8∞ 7 0 3 1 8 XXXXXXX ∞ 6 ∞ 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 m´ınima 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 v´ertice que as determinou, para no fim poder, por an´alise para tr´as, recuperar o caminho m´ınimo. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 100.
    6.8. GRAFOS COMVALORES ASSOCIADOS AOS RAMOS 92 3, O 2 1 aaaaaaaaaaaaaaaaa ∞ 4 1 YYYYYYYY ∞ 8∞ 7 0 3 1 8 XXXXXXX 1, O 6 ∞ 17 3 ∞ 8, O 4 ∞ 2 10 ÕÕÕÕÕÕÕÕ 3, O 2 1 ccccccccccccccccc ∞ 4 1 cccccccc ∞ 8∞ 7 0 3 1 8 XXXXXXX 1, O 6 7, H 17 3 ∞ 8, O 4 ∞ 2 10 ÑÑÑÑÑÑÑÑ 3, O 2 1 eeeeeeeeeeeeeeeeee 5, A 4 1 eeeeeeee ∞ 8∞ 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 ∞ 8, O 4 ∞ 2 10 ÒÒÒÒÒÒÒÒ 3, O 2 1 eeeeeeeeeeeeeeeeeee 5, A 4 1 ffffffff 7, E 811, E 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 21, E 8, O 4 6, E 2 10 zzzzzzzz 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 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 21, E 8, O 4 6, E 2 10 |||||||| 3, O 2 1 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 16, F 8, O 4 6, E 2 10 |||||||| c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 101.
    6.9. GRAFOS COMS´IMBOLOS ASSOCIADOS AOS RAMOS 93 3, O 2 1 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 16, F 8, O 4 6, E 2 10 |||||||| 3, O 2 1 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 15, D 8, O 4 6, E 2 10 |||||||| 3, O 2 1 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 1 8 XXXXXXX 1, O 6 4, A 17 3 15, D 8, O 4 6, E 2 10 |||||||| 3, O 2 11ddddddddddddddddddd 1 ddddddddddddddddddd 5, A 4 1 ddddddd 7, E 86, B 7 0 3 rr 1 8 XXXXXXX 1, O 6 4, A 17 pp 3 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 vis´ıveis. 6.9 Grafos com S´ımbolos Associados aos Ramos Um multigrafo com s´ımbolos associados aos ramos ´e um quinteto (V, E, Σ, Ψ, L) em que (V, E, Ψ) ´e um multigrafo, Σ ´e um conjunto (de s´ımbolos), e L ´e uma fun¸c˜ao de E em Σ que a cada ramo associa um elemento de Σ. A cada percurso num multigrafo dessa forma corresponde uma sequˆencia de s´ımbolos. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 102.
    6.9. GRAFOS COMS´IMBOLOS ASSOCIADOS AOS RAMOS 94 Considere-se por exemplo o grafo representado a seguir. m0GFED@ABCBCEDb GF a GG m1GFED@ABCBCEDcGF O conjunto Σ de s´ımbolos ´e {a, b, c}. As sequˆencias em {b, bb, bbb, bbbb, bbbbb, bbbbbb, . . .} correspondem a percursos de m0 para m0. Assim esses percursos determinam as sequˆencias de s´ımbolos de Σ que s´o tˆem b’s. As sequˆencias em {c, cc, ccc, cccc, ccccc, . . .} correspondem a percursos de m1 para m1. As sequˆencias em {a, ba, bba, bbba, . . . , ac, bac, bbac, bbbac, . . . , acc, bacc, bbacc, bbbacc . . .} correspondem a percursos de m0 para m1. Podemos dizer que estes percursos determinam as sequˆencias de s´ımbolos de Σ que tˆem um e um s´o a podendo ter b’s antes e c’s depois do a. Exemplo 47 Para o grafo seguinte, sendo d´ıgito qualquer caracter em {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} e ponto o caracter “.”, conclui-se que as sequˆencias que correspondem a percursos de “procura dig´ıto” para “procura ponto” s˜ao sequˆencias de d´ıgitos e as que terminam em “procura n˜ao d´ıgito” s˜ao da forma “x.y” ou “x.”, em que x e y s˜ao duas sequˆencias de d´ıgitos quaisquer. procura d´ıgito d´ıgito GG procura ponto BCED d´ıgitoGF ponto GG procura n˜ao d´ıgito BCED d´ıgitoGF Se este diagrama traduzir estados num algoritmo de reconhecimento de sequˆencias das formas “x”, “x.” e “x.y”, em que x e y s˜ao duas sequˆencias de d´ıgitos quaisquer, cada um dos n´os identifica um estado. Os ramos definem transi¸c˜oes de estado. Para ver que assim ´e, analise a sequˆencia 56.099971, partindo de “procura d´ıgito” (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 Ciˆencia de Computadores – FCUP
  • 103.
    Bibliografia [1] T. H.Cormen, C. E. Leiserson, R. L. Rivest, Introduction to Algorithms. MIT Press, 11a ¯Ed., 1994. [2] R. P. Grimaldi. Discrete and combinatorial mathematics : an applied introduction. 4a ¯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 Exerc´ıcios, DCC, FCUP, 1996. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP