103
Alguns T´ opicos de Matem´ atica Discreta Ana Paula Tom´ as Departamento de Ciˆ encia de Computadores Faculdade de Ciˆ encias do Porto 2005

Alguns Tópicos de Matemática Discreta

Embed Size (px)

Citation preview

Page 1: Alguns Tópicos de Matemática Discreta

Alguns Topicos de Matematica Discreta

Ana Paula Tomas

Departamento de Ciencia de Computadores

Faculdade de Ciencias do Porto

2005

Page 2: Alguns Tópicos de Matemática Discreta
Page 3: Alguns Tópicos de Matemática Discreta

Conteudo

1 Conjuntos 1

1.1 Operacoes com Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Representacao de Numeros em Computador 7

2.1 Sistema de Representacao Posicional . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1 Relacao entre binario, octal e hexadecimal . . . . . . . . . . . . . . . . 11

2.1.2 Adicao e multiplicacao na base b . . . . . . . . . . . . . . . . . . . . . 12

2.1.3 Representacao de numeros com um numero fixo de dıgitos . . . . . . . 15

2.1.4 Representacao de numeros negativos . . . . . . . . . . . . . . . . . . . 16

2.2 Adicao e Subtraccao em n Bits . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.1 Adicao e subtraccao binaria de inteiros nao negativos . . . . . . . . . 19

2.2.2 Adicao de inteiros em complemento para 2 . . . . . . . . . . . . . . . 20

2.2.3 Subtraccao de inteiros em complemento para 2 . . . . . . . . . . . . . 20

2.3 Representacao em Vırgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4 Representacao em Vırgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21

3 Algumas Nocoes de Divisibilidade 23

3.1 Bases de Numeracao e Criterios de Divisibilidade . . . . . . . . . . . . . . . . 23

3.2 Nocao de Divisor e de Multiplo . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3 Factorizacao em Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3.1 Determinacao de primos: crivo de Erastotenes . . . . . . . . . . . . . 27

3.3.2 Calculo de divisores por analise da factorizacao em primos . . . . . . . 28

3.4 Maximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4.1 Calculo do maximo divisor comum pelo algoritmo de Euclides . . . . . 29

3.5 Mınimo Multiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.6 Congruencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

i

Page 4: Alguns Tópicos de Matemática Discreta

4 Inducao Matematica 33

4.1 Princıpio de Inducao Matematica . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.1.1 Erros frequentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.2 Inducao Forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2.1 Outras formulacoes do princıpio de inducao . . . . . . . . . . . . . . . 42

5 Relacoes Binarias 43

5.1 Relacoes Binarias de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.1 Operacoes com relacoes binarias . . . . . . . . . . . . . . . . . . . . . 43

5.1.2 Matriz duma relacao binaria . . . . . . . . . . . . . . . . . . . . . . . 45

5.1.3 Funcoes de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2 Relacoes Binarias Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47

5.2.1 Propriedades das relacoes binarias definidas em A . . . . . . . . . . . 48

5.2.2 Grafo da relacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.3 Relacoes de Compatibilidade e de Equivalencia . . . . . . . . . . . . . . . . . 50

5.3.1 Classes de equivalencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.3.2 Particoes e relacoes de equivalencia . . . . . . . . . . . . . . . . . . . . 53

5.3.3 Classes de Compatibilidade . . . . . . . . . . . . . . . . . . . . . . . . 55

5.4 Relacoes de Ordem Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.4.1 Diagrama de Hasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.4.2 Maximos, mınimos, supremo, ınfimo, majorantes e minorantes . . . . 59

5.5 Fechos duma Relacao para uma Propriedade . . . . . . . . . . . . . . . . . . . 60

5.5.1 Fecho transitivo e percursos em grafos . . . . . . . . . . . . . . . . . . 62

5.5.2 Fecho transitivo duma relacao 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 relacoes binarias . . . . . . . . . . . . . . . . . . . 74

6.2 Grafos Nao Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6.2.1 Grafos Conexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.2.2 Condicao necessaria 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

Page 5: Alguns Tópicos de Matemática Discreta

6.7 Coloracao de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86

6.8.1 Determinacao da distancia mınima . . . . . . . . . . . . . . . . . . . . 87

6.9 Grafos com Sımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93

iii

Page 6: Alguns Tópicos de Matemática Discreta

iv

Page 7: Alguns Tópicos de Matemática Discreta

Prefacio

Estes apontamentos tem por base material elaborado em anos anteriores para disciplinas da

licenciatura em Ciencia de Computadores [5, 6, 7], o qual foi agora revisto e nalguns topicos

completado para servir de apoio a disciplina de Matematica para Ciencia de Computadores,

no ano lectivo de 2005/06. Nao visam substituir a leitura da bibliografia recomendada pelos

docentes e nao cobrem actualmente todos os topicos abordados na disciplina.

v

Page 8: Alguns Tópicos de Matemática Discreta

vi

Page 9: Alguns Tópicos de Matemática Discreta

Capıtulo 1

Conjuntos

Neste capıtulo vamos essencialmente recordar ou introduzir alguma da notacao que e usada

para conjuntos. Tomamos a nocao de conjunto como primitiva, convencionando que um

conjunto e constituıdo por elementos – objectos materiais ou entes abstractos que tem

alguma propriedade em comum (no caso extremo, a de pertencerem todos a esse conjunto).

Os conjuntos podem ser vazios (i.e. sem elementos). Em geral, usamos letras maiusculas

para designar conjuntos e minusculas para referir os seus elementos. Para indicar que a e um

elemento do conjunto A escrevemos a ∈ A. Os conjuntos podem ser especificados em extensao

– exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza

os seus elementos – definicao em compreensao. Por exemplo, {1, 2, 3, 4} e {n | n ∈ Z+∧n ≤ 4}.

Notacao. Sejam A e B conjuntos.

a ∈ A a pertence a A, a e elemento de A

a /∈ A a nao pertence a A

A = B igualdade de conjuntos (qualquer que seja x,

x ∈ A se e so se x ∈ B)

A ⊆ B A contido em B, A subconjunto de B

(qualquer que seja x, se x ∈ A entao x ∈ B)

A ⊇ B A contem B, B ⊆ A

A ⊂ B A contido propriamente em B,

A subconjunto proprio de B

A ⊆ B ∧A 6= B

A ⊃ B A contem propriamente B

A 6= B A 6⊆ B ou B 6⊆ A

∅ ou {} conjunto vazio

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 10: Alguns Tópicos de Matemática Discreta

1.1. OPERACOES 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. Tambem 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 nao negativos (incluindo

assim tambem 0).

N inteiros nao negativos (em vez de N0)

Z inteiros

Q racionais

R reais

R+0 reais nao negativos

R+ reais positivos

R− reais negativos

Um conjunto A nao vazio e finito se e so se existir uma bijeccao de A em {x ∈ N | x < n}para algum n ∈ N. Nesse caso, n e o cardinal (numero de elementos) de A. Usamos |A| (ou,

alternativamente, #A) para designar o cardinal de A. O cardinal do conjunto vazio e zero.

A proposito de questoes de notacao, 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 esta a ser representado pela letra n).

1.1 Operacoes com Conjuntos

A interseccao 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 uniao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 11: Alguns Tópicos de Matemática Discreta

1.1. OPERACOES COM CONJUNTOS 3

O complementar de B em A representa-se por A \B, e e o conjunto dos elementos de

A que nao pertencem a B.

A \ B = {x | x ∈ A e x /∈ B}Quando esta 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 diferenca)

⇔ x ∈ A ∧ (x /∈ B ∧ x /∈ C) (por def. uniao)

⇔ x ∈ A \B ∧ x ∈ A \ C (por def. de diferenca)

⇔ x ∈ (A \ B) ∩ (A \ C) (por def. interseccao)

Exemplo 2 Quaisquer que sejam os conjuntos A,B ⊆ U , tem-se A ∪B = A ∩B. De facto,

se x ∈ A ∪B entao, por definicao de complementar, x /∈ A ∪B. Logo, x /∈ A e x /∈ B. Mas,

x /∈ A sse x ∈ A. E, x /∈ B sse x ∈ B. Entao, x ∈ A e x ∈ B. Donde, x ∈ A∩B. Mostramos

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 sao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 12: Alguns Tópicos de Matemática Discreta

1.1. OPERACOES COM CONJUNTOS 4

Exemplo 3 A tıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirmacoes

seguintes e justifica-la.

1. Qualquer que seja x ∈ Z, existe y ∈ Z tal que x ≤ y e x 6= y.

∀x ∈ Z ∃y ∈ Z (x ≤ y ∧ x 6= y)

A afirmacao e verdadeira porque, sendo o conjunto dos inteiros infinito, se x e inteiro,

x + 1 tambem e um inteiro e x + 1 e superior a x. Ou seja, dado um x qualquer, se

considerarmos que y e x + 1, satisfazemos a condicao (x ≤ y ∧ x 6= y). Note que y

dependera de x.

2. Existe y ∈ Z tal que para todo x ∈ Z se tem x ≤ y.

∃y ∈ Z ∀x ∈ Z x ≤ y

A afirmacao e falsa porque em particular se x fosse y+1 entao teriamos que ter y+1 ≤ y,

que nao e satisfazıvel (ja que e equivalente a 1 ≤ 0).

3. Existe um inteiro nao negativo que nao excede qualquer outro inteiro nao

negativo.

∃x ∈ Z+0 ∀y ∈ Z+

0 x ≤ y

A afirmacao e verdadeira. O inteiro 0 e menor ou igual que cada um dos inteiros nao

negativos. Aqui, Z+0 denota o conjunto dos inteiros nao negativos, o qual identificamos

tambem por N.

4. Existe x ∈ Z tal que x e maior do que qualquer outro inteiro y.

∃x ∈ Z ∀y ∈ Z x > y

A afirmacao e falsa (analoga a 2).

5. Para todo A ⊆ Z, tem-se P(A) = {∅}.A afirmacao e falsa, porque {1} e um subconjunto de Z e P({1}) = {∅, {1}} 6= {∅}.

6. Para todo A ⊆ Z, se A = ∅ entao P(A) = {∅}.A afirmacao e verdadeira. So 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 13: Alguns Tópicos de Matemática Discreta

1.1. OPERACOES COM CONJUNTOS 5

7. Tem-se P(A) = ∅, para algum A ⊆ Z.

∃A (A ⊆ Z ∧ P(A) = ∅)

A afirmacao 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 nao 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 nao negativo, entao y ≤ x

pois x = y + (x − y). Se x − y e negativo, entao y − x e um inteiro positivo, e como

y = x + (y − x), tem-se x ≤ y.

9. Qualquer que seja A ⊆ Z, se A 6= {−1, 2, 3} entao 4 ∈ A.

∀A ( (A ⊆ Z ∧ A 6= {−1, 2, 3}) ⇒ 4 ∈ A) )

Falso. Existe um subconjunto de Z que e diferente de {−1, 2, 3} e que nao tem o 4. Por

exemplo, o conjunto vazio.

10. Quaisquer que sejam A,B ⊆ Z, se 5 ∈ A \B entao 5 ∈ A.

∀A ∀B( (A ⊆ Z ∧ B ⊆ Z ∧ 5 ∈ A \B)⇒ 5 ∈ A )

A afirmacao e verdadeira. Quaisquer que sejam os subconjuntos A e B de Z, tem-se

5 ∈ A \ B se e so se 5 ∈ A e 5 /∈ B. Logo, se 5 ∈ A \ B entao 5 ∈ A.

11. Para todo o x ∈ Z, e quaisquer que sejam A,B ⊆ Z, se x ∈ A \ B entao x ∈ A.

A afirmacao e verdadeira. A justificacao e semelhante a dada para a afirmacao anterior

(claro que e necessario falar em x e nao em 5!).

12. Existe x ∈ Z tal que x ∈ A \ B, quaisquer que sejam A,B ⊆ Z.

Esta afirmacao pode ser traduzida pela expressao logica

∃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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 14: Alguns Tópicos de Matemática Discreta

1.1. OPERACOES COM CONJUNTOS 6

que e falsa. Quaisquer que sejam os conjuntos A e B se A = B entao A\B = ∅. Assim,

se tomarmos, por exemplo, A = B = {1}, os conjuntos A e B sao subconjuntos de Z e

nao existe qualquer inteiro x tal que x ∈ A \B.

13. 2 + 2 = 4 ou√

2 ∈ Z.

A afirmacao e verdadeira porque embora√

2 /∈ Z, e verdade que 2 + 2 = 4.

14. Se 2 + 2 6= 4 entao√

2 ∈ Z.

A afirmacao e equivalente a “2 + 2 = 4 ou√

2 ∈ Z”.

15. Se√

2 ∈ Z entao 2 + 2 6= 4.

A afirmacao e equivalente a “√

2 /∈ Z ou 2 + 2 6= 4”, e como√

2 /∈ Z, a afirmacao e

verdadeira.

16.√

2 6∈ Z ou 2 + 2 6= 4.

A afirmacao e verdadeira porque√

2 6∈ Z.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 15: Alguns Tópicos de Matemática Discreta

Capıtulo 2

Representacao de Numeros em

Computador

Do mesmo modo que “5692 segundos”, “94 minutos e 52 segundos”, “1 hora, 34 minutos e 52

segundos” sao designacoes ou representacoes diferentes da mesma entidade, tambem 5692(10),

13074(8) e 1011000111100(2) o sao. 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 sao as bases de numeracao, respectivas. Habitualmente, escreve-se

5692 em vez de 5692(10), porque a base mais usual para representacao de inteiros e a base 10,

designada por decimal. As bases 8 e 2 sao designadas por octal e binaria. Se considerarmos

as potencias 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 potencias de 3,

38 37 36 35 34 33 32 31 30

6561 2187 729 243 81 27 9 3 1

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 16: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO 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 Representacao Posicional

Num sistema de numeracao de base b usam-se b sımbolos diferentes para b dıgitos (de 0 a

b− 1). Os numeros sao representados por uma sequencia de dıgitos.

Os dıgitos na base 10 sao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os dıgitos na base 2 sao 0 e 1, e

normalmente sao designados por bits. Por exemplo,

1011102 = 1× 25 + 0× 24 + 1× 23 + 1× 22 + 1× 21 + 0× 20

Se a = rmbm + rm−1bm−1 + . . . + r2b

2 + r1b1 + r0b

0 com rm 6= 0 e 0 ≤ ri ≤ b − 1 para

0 ≤ i ≤ m entao

a ≡ rm . . . r2r1r0 (b)

e a representacao de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se dıgitos de repre-

sentacao de a na base b, sendo r0 o dıgito menos significativo e rm o dıgito mais significativo.

A representacao e unica, o que e consequencia da unicidade do quociente e resto da divisao

inteira.

Proposicao 1 (divisao euclideana de inteiros) Quaisquer que sejam a ∈ Z e b ∈ Z+ existe

um e um so q ∈ Z e um e um so r ∈ Z tal que b = aq + r e 0 ≤ r < b.

A q chama-se quociente e a r resto da divisao inteira de a por b, sendo importante a

condicao 0 ≤ r < b para garantir a unicidade.

Corolario 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 + . . . + r2b

2 + r1b1 + r0b

0, rm 6= 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 entao a = 0b + a. Portanto, 0 < r0 = a.

Se a ≥ b entao, por definicao de divisao 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, entao o

processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo,

a = bq0 + r0 = b(bq1 + r1) + r0 = b2q1 + br1 + r0

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 17: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 9

Se q1 < b, toma-se r2 = q0 e obtem-se a = b2r2+br1+r0. Se q1 ≥ b, entao o processo repete-se

agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi

e um inteiro nao negativo. ut

Esta prova indica um algoritmo para determinacao da representacao 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 potencias da base, pode ser mais facil determinar a

representacao por outro metodo. Por exemplo, para a base 2,

46(10) = 32(10) + 8(10) + 4(10) + 2(10) = 101110(2)

enquanto se se aplicar o algoritmo dado pela prova anterior teria

46 2

0 23 2

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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 18: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 10

Pode interessar tambem saber qual a representacao decimal dum inteiro dado

numa base b. Para a obter, bastara aplicar a definicao e efectuar os calculos 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 alem da base 2, sao bastante usadas em Computacao as bases 8 (octal) e 16 (hexa-

decimal). Os dıgitos em octal sao 0, 1, 2, 3, 4, 5, 6 e 7. Embora os restos da divisao por 16

sejam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,. . . , 15, por convencao, os dıgitos em hexadecimal

a partir de 10 sao representados pelas letras maiusculas de A a F. Deste modo nao havera

qualquer ambiguidade de representacao (por exemplo, fica claro que o hexadecimal 15 designa

o decimal 1×16+5 e F o decimal 15). Os numeros representados na base octal sao por vezes

indexados por (o), por exemplo 235(o), e os representados na base hexadecimal por (h), por

exemplo F15A(h).

Designacao Base Dıgitos

Binario 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 sequencia 78412 nao pode representar nenhum inteiro na base 4 porque 7, 8 e 4

nao sao dıgitos base 4. A sequencia 001231 nao e representacao numa base de numeracao,

no sentido acima definido, porque teria zeros nao significativos. A sequencia 123100 pode

representar um inteiro em qualquer base b superior a 4.

Exercıcio 2.1.1 Converter para binario: 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 numeros 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 19: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 11

2.1.1 Relacao entre binario, octal e hexadecimal

Seja por exemplo, 101011110(2) um binario que se pretende converter para octal. Como foi

visto, o inteiro que esse binario representa e

1× 28 + 0× 27 + 1× 26 + 0× 25 + 1× 24 + 1× 23 + 1× 22 + 1× 2 + 0

ou seja 350. A representacao octal correspondente pode ser obtida agrupando os dıgitos

binarios 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 + . . . + a52

5 + a424 + a32

3 + a222 + a12

1 + a020

entao a representacao em octal do mesmo inteiro pode ser obtida da forma descrita:

ak2k + . . . + 23(a52

2 + a421 + a32

0) + (a222 + a12

1 + a020) =

ak2k + . . . + 8(a52

2 + a421 + a32

0) + (a222 + a12

1 + a020)

Notar que na expressao resultante, qualquer potencia de 8 tem por coeficiente

ai+222 + ai+12 + ai

para algum i, o qual e sempre nao negativo e inferior a 8, podendo assim ser dıgito da

representacao octal. A cada dıgito octal correspondem 3 dıgitos em binario. Do mesmo

modo, a cada dıgito hexadecimal correspondem 4 dıgitos em binario. Assim, para converter

um binario 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 binario a octal procede-se de modo identico mas formando grupos de 3.

Por exemplo,

101011110(2) ⇒ 101 | 011 | 110⇒ 5 | 3 | 6⇒ 536(o)

Inversamente, se se pretender converter de hexadecimal a binario basta associar a cada um

dos dıgitos hexadecimal o grupo de 4 dıgitos binarios correspondente. Por exemplo,

3AC3A(h) ⇒ 0011 | 1010 | 1100 | 0011 | 1010⇒11 | 1010 | 1100 | 0011 | 1010⇒ 111010110000111010(2)

Notar a eliminacao dos zeros nao significativos. O que se acaba de ilustrar e um caso particular

da proposicao seguinte.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 20: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 12

Proposicao 2 Se z e um inteiro positivo, a cada dıgito (com possıvel excepcao do mais signi-

ficativo) da representacao de z na base bn corresponde um grupo de n dıgitos na representacao

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 representacao na base b de um inteiro positivo z entao, a representacao do

mesmo inteiro na base bn e

wtwt−1 . . . w1w0

sendo t+1 o numero de blocos de n dıgitos da representacao de z na base b (podendo o ultimo

ser completado por zeros nao significativos), e wi (i ≤ t) o dıgito da base bn que representa o

inteiro a2in−1 . . . ain+1ain(b) (representacao base b a menos de zeros nao 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 proposicao anterior. Comece por mostrar que wtwt−1 . . . w1w0

conforme descrito pode ser representacao base bn de z; use em seguida o facto da representacao

numa base ser unica para concluir que wtwt−1 . . . w1w0 e a representacao de z. Mostre depois

que se wtwt−1 . . . w1w0 representa z na base bn, a representacao de z na base b e

akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0

2.1.2 Adicao e multiplicacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 21: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 13

Algoritmo para Adicao (base 10). Se x e y sao inteiros positivos representados na

base 10 por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente entao a representacao 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.

Senao, 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.

Adicao (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 sao inteiros positivos representados na base b por

xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente entao spsp−1 . . . s1s0, a representacao na

base b de x+y, pode ser obtida por um processo analogo 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 definicao de

representacao na base b, a semelhanca do que se fez acima para b = 3.

Os algoritmos usuais para adicao e multiplicacao base 10 sao validos quando se usam

representacoes em qualquer outra base b, embora sejam obviamente diferentes as tabuadas

dessas operacoes se escrevermos os resultados na base b. O mesmo se pode dizer para a

subtraccao (quando o aditivo e maior do que subtractivo) e para a divisao inteira.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 22: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 14

Tabuadas de adicao e multiplicacao para binario:

+2 0 1

0 0 1

1 1 10

×2 0 1

0 0 0

1 0 1

Tabuadas de adicao e multiplicacao 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 adicao e multiplicacao 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 multiplicacao base 8 e determine as tabelas para a

base hexadecimal.

Assim, por exemplo, 1021(3) × 211(3) = 1000201(3) , ou seja, 34(10) × 22(10) = 748(10),

porque:

1 0 2 1(3)

× 2 1 1(3)

1 0 2 1

1 0 2 1

+ 2 1 1 2

1 0 0 0 2 0 1(3)

3 4(10)

× 2 2(10)

6 8

+ 6 8

7 4 8(10)

A esquerda, todos os valores intermedios estao representados na base 3 e a direita na base 10

(visando recordar o algoritmo da multiplicacao e estabelecer a comparacao).

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 23: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 15

Exercıcio 2.1.10 Calcule:

(i) 1110010(2) + 111001111(2) em binario.

(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 binario.

2.1.3 Representacao de numeros com um numero fixo de dıgitos

Num computador cada inteiro e representado por um numero fixo de bits. Em 8 bits, 13 seria

representado por 00001101. Isto e, introduzem-se 0’s a esquerda sempre que o numero de bits

da representacao do inteiro seja menor que o numero de bits que se fixou.

Se n representar o numero de bits que se fixou para a representacao, os bits sao 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 numero de bits da representacao, limita-se tambem os valores que podem

ser representados. Se, por exemplo, o numero de bits for 8 entao 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 numeros inteiros positivos de 0 a 2n − 1.

Proposicao 3 O maior inteiro positivo que se consegue representar na base b com n dıgitos

e bn − 1.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 24: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO 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}. Entao,

A = an−1bn−1 + an−2b

n−2 . . . a1b1 + a0b

0 =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 progressao geometrica)

= (b− 1)1− bn

1− b= bn − 1

utObservacao:

∑n−1i=0 ui e uma notacao abreviada para u0 + u1 + · · · + un−1, podendo-se ler

“somatorio para i desde 0 ate n− 1 de ui”.

Exercıcio 2.1.11 Qual e o numero mınimo de bits necessario para representar 1125? Qual

o valor maximo que pode ser representado com esse numero de bits?

Normalmente o numero de bits usados sao 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 Representacao de numeros negativos

Para representar numeros inteiros positivos e negativos numa base b e com um numero fixo

de dıgitos e necessario codificar o sinal e encontrar um processo eficiente de determinar se

um numero 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 entao A e positivo,

se an−1 = b− 1 o numero e negativo.

Vamos considerar tres formas introduzidas para representar numeros inteiros positivos e

negativos e que obedecem a condicao de sinal apresentada. Vamos supor que a base e 2 e que

o numero de dıgitos e n, embora os resultados possam ser generalizados para qualquer base b.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 25: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 17

Representacao com bit de sinal. Reserva-se o bit mais a esquerda para o sinal e os

restantes para o modulo do numero.

n bits︷ ︸︸ ︷

n−1 n−2 . . . . . . . . 0

sinal modulo

O bit de sinal e 0 para os positivos e e 1 para os negativos. Assim, um numero positivo

e da forma A = 0an−2 . . . a1a0 e um negativo e da forma A = 1an−2 . . . a1a0. Com n bits

podemos representar numeros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 1) a 0.

As representacoes de dois numeros com o mesmo modulo diferem apenas no bit de sinal.

Se n = 3 temos o quadro seguinte:

Valor 0 1 2 3 −0 −1 −2 −3

Representacao com bit de sinal 000 001 010 011 100 101 110 111

Podemos observar que zero tem duas representacoes: +0 e −0. Para efectuar adicoes

de numeros com sinais diferentes e necessario primeiro determinar qual e o maior e qual o

sinal do resultado. O mesmo problema surge para a subtraccao, a qual pode ser tratada como

a adicao associando o sinal negativo ao subtraendo, x− y = x + (−y).

Representacao em Complemento para 1. A utilizacao desta representacao para inteiros

apresenta o mesmo problema da anterior, isto e, zero tera duas representacoes +0 e −0. Para

uma representacao em n bits, chama-se complemento para 1 de A ao valor (2n − 1) − A.

O bit mais signficativo da indicacao sobre o sinal do numero (se for 1, o numero e negativo).

O numero negativo −x sera 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 representacoes podem ser obtidas por troca de 1’s por 0’s e 0’s por 1’s na repre-

sentacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 26: Alguns Tópicos de Matemática Discreta

2.1. SISTEMA DE REPRESENTACAO POSICIONAL 18

Representacao em Complemento para 2. Neste caso, zero tera uma so representacao:

Exactamente metade dos numeros representados sao nao negativos e a outra metade numeros

negativos.

De 0 a 2n−1−1 encontram-se os numeros nao negativos e de 2n−1 a 2n−1 numeros

negativos.

Para os positivos a representacao coincide com a representacao anterior. Os numeros nega-

tivos sao complementos para a base. Por definicao, o complemento para 2 de A numa

representacao de n bits e o inteiro 2n −A.

Exemplo 7 Para n = 3 entao -1 e representado por 111 pois 23 − 1 = 7. Se n = 8, o

inteiro -1 e representado por 11111111 em complemento para 2. Nnuma representacao em 8

bits usando complemento para 2 o inteiro −3 e o binario 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 definicao 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.

Proposicao 4 No sistema de representacao com n bits e complemento para 2 os valores

possıveis dos inteiros representaveis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se

numeros nao negativos e de 2n−1 a 2n − 1 numeros negativos.

Para alem de so haver um zero, neste caso todos os negativos tem 1 como bit mais

significativo, o qual funciona assim como bit de sinal. As adicoes podem ser efectuadas

sem analisar o sinal dos operandos e nas subtraccoes basta calcular o complemento para 2 do

subtraendo e adicionar o valor resultante ao subtractivo, como se vera adiante.

Para determinar representacao em complemento para 2 dum numero e util observar

a sua relacao com a representacao em complemento para 1.

Como 2n −A = (2n − 1−A) + 1 e 2n − 1−A e a representacao em complemento para 1,

podemos obter a representacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 27: Alguns Tópicos de Matemática Discreta

2.2. ADICAO E SUBTRACCAO EM N BITS 19

Exemplo 8 Para determinar a representacao 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 numeros inteiros se-

guintes:

(i) 25, -25, 41, 56, 19, -31, -87;

(ii) a soma dos anteriores e verifique se o resultado de somar as representacoes esta correcto.

Exercıcio 2.1.13 Suponha que a representacao em complemento para dois com 4 dıgitos de

um inteiro e 1101. Como e a representacao 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 representacao 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 representacao com mais dıgitos?

2.2 Adicao e Subtraccao em n Bits

2.2.1 Adicao e subtraccao binaria de inteiros nao negativos

• Adicao: Segue o algoritmo habitual de adicao binaria; se se tiver uma representacao de

m bits e a soma for superior a 2m − 1 (o maior inteiro positivo com m bits) diz-se que

ha transporte (carry); Por exemplo: a soma em 8-bits dos inteiros positivos 10010000

e 11111101 e 10001101, o que esta errado (tem transporte 1).

• Subtraccao: Segue algoritmo habitual de subtraccao binaria; se o valor da diferenca for

inferior a zero, diz-se que ha transporte (borrow); Por exemplo: a diferenca em 8-bits

10010000 − 11111101 = 10010011 o que esta errado (tem transporte 1).

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 28: Alguns Tópicos de Matemática Discreta

2.2. ADICAO E SUBTRACCAO EM N BITS 20

2.2.2 Adicao de inteiros em complemento para 2

Se os inteiros sao nao negativos, a soma e calculada pelo algoritmo habitual. Se a repre-

sentacao 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 ha overflow, sendo indicacao de que o valor

obtido esta 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, ha overflow.

Se os inteiros sao ambos negativos (em complemento para 2) a soma e calculada pelo

algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representacao 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 relacao desse numero com os complementos para 2 de x e y e 2m− (x + y) =

(2m − x) + (2m − y) − 2m. Ou seja, para obter a representacao em complemento para 2 de

(−x) + (−y) adicionam-se as representacoes de (−x) e (−y) e subtrai-se 2m.

Se a representacao 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 ha underflow, sendo indicacao

de que o valor obtido esta 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, ha underflow.

Analogamente, a soma dum inteiro positivo com um inteiro negativo e o binario correspon-

dente a adicao das representacoes dos operandos, ”desprezando-se”o transporte se o houver.

Nao havera overflow nem underflow.

2.2.3 Subtraccao de inteiros em complemento para 2

A subtraccao binaria de inteiros representados em complemento para 2 pode-se reduzir a

adicao 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 estao correctas (se truncadas a 8 bits) caso as

representacoes indicadas sejam representacoes em complemento para 2 e caso sejam repre-

sentacoes so para inteiros nao negativos?

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 29: Alguns Tópicos de Matemática Discreta

2.3. REPRESENTACAO EM VIRGULA 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 Representacao em Vırgula Fixa

A representacao posicional de inteiros pode ser generalizada para representar numeros racio-

nais considerando-se potencias 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 posicao da vırgula (neste caso o factor e 10−2), o numero pode ser tratado

como um inteiro. Assim as operacoes com numeros racionais podem ser feitas internamente

como operacoes com inteiros, desde que os factores de ajuste sejam guardados para que o

resultado final seja correctamente calculado.

Note-se em particular que as representacoes de inteiros em computadores estudadas anteri-

ormente sao representacoes em vırgula fixa, com a vırgula a direita do bit menos significativo.

No caso geral, os ajustes da posicao da vırgula e o seu armazenamento ficarao a cargo do

programador.

Contudo, actualmente, a representacao em computadores dos numeros racionais e feita,

geralmente, em vırgula flutuante.

2.4 Representacao em Vırgula Flutuante

A representacao dum numero racional em vırgula flutuante, contrariamente a representacao

em vırgula fixa, e feita atraves de um par de inteiros que representam respectivamente a

mantissa m e o expoente e de forma que para uma determinada base b, o seu valor e:

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 30: Alguns Tópicos de Matemática Discreta

2.4. REPRESENTACAO EM VIRGULA FLUTUANTE 22

F = m× be

Por exemplo, 673 × 1014.

A designacao vırgula flutuante resulta do facto de que a posicao da vırgula depender do

expoente e portanto nao ser fixada previamente.

A notacao mais usada para vırgula flutuante e a do IEEE (Institute of Electrical and

Electronics Engineers). A base e a binaria. Em precisao simples cada numero e representado

com 32 bits:

S E (8 bits) M (23 bits)

O sinal da mantissa e representado pelo bit S, que por questoes de eficiencia e separado

da representacao do modulo da mantissa o qual e constituıdo pelos 23 bits mais a direita. O

valor do modulo da mantissa e normalmente dado por 1.M(2), isto e, 1 mais o valor de M

considerado como numero racional binario, com a vırgula a esquerda do bit mais significativo.

Os oito bits restantes sao 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 entao F = (−1)S(2−127)(.M(2)) e se M tambem e zero entao F = 0.

A sequencia 1 10000111 10100000000000000000000 representaria um numero negativo,

dado que S = 1. Como 10000111(2) = 135(10), o expoente e 135 − 127 = 8; e o modulo 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 representacoes em vırgula flutuante IEEE, como a precisao dupla em que

sao usados 64 bits e a quadrupla em que sao usados 128 bits.

Exercıcio 2.4.1 Determine qual o maior numero que e representavel em precisao simples,

segunda a norma do IEEE.

Exercıcio 2.4.2 Indique o valor das seguintes representacoes em precisao 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 numeros em precisao

simples IEEE: 2.5, .0005, 2−40 e 256

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 31: Alguns Tópicos de Matemática Discreta

Capıtulo 3

Algumas Nocoes de Divisibilidade

Por definicao, um inteiro a e divisıvel por um inteiro b se e so se a = bq para algum inteiro q.

Nesse caso, escreve-se b | a, lendo-se b divide a. Tambem se diz que b e divisor de a e

que a e multiplo de b. O inteiro q e o quociente da divisao inteira de a por b. Atendendo

a definicao de divisor, se a = bq entao tanto b como q sao divisores de a. Por exemplo, os

divisores positivos de 30 sao 1, 2, 3, 5, 6, 10, 15 e 30, encontrando-se emparelhados.

1 302 153 10

5 6

Na procura de divisores de a, para a positivo, nao e necessario ultrapassar√

a, pois qualquer

divisor que seja superior a√

a tera que emparelhar com algum divisor que e inferior a√

a.

3.1 Bases de Numeracao e Criterios de Divisibilidade

E conhecido que, um inteiro positivo representado na base 10 e divisıvel por 100 se e so se a

sua representacao terminar por 00 (pois os restos da divisao por 10 e 102 sao 0). E divisıvel

por 1000 sse tal representacao terminar em 000. De modo analogo se pode concluir que um

inteiro (positivo) representado na base 2 e divisıvel por 4 (isto e, por 22) se a sua representacao

em binario terminar por 00 e e divisıvel por 8 (isto e, por 23) sse terminar em 000.

Proposicao 5 Um inteiro (positivo) x representado numa certa base b e divisıvel por bk,

sendo k inteiro positivo fixo, se e so a representacao de x na base b terminar por k zeros.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 32: Alguns Tópicos de Matemática Discreta

3.1. BASES DE NUMERACAO E CRITERIOS DE DIVISIBILIDADE 24

Ideia da prova: Para que x seja divisıvel por bk entao tera que ser divisıvel tambem por

b1, b2, . . . , bk−1, o que quer dizer que se efectuar k divisoes sucessivas por b tera k restos 0.

Ou seja, x = b(x/b) + 0. Depois, k > 1, tambem (x/b) = b((x/b)/b) + 0, . . . ut

Analisando a definicao de representacao base 10, podemos justificar o seguinte criterio de

divisibilidade por 9.

Proposicao 6 Um inteiro e divisıvel por 9 sse a soma dos dıgitos da sua representacao na

base 10 for divisıvel por 9.

Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representacao

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 multiplo de 9 mais uma unidade

100 = 99 + 1 um multiplo de 9 mais uma unidade

1000 = 999 + 1 um multiplo de 9 mais uma unidade...

10n = 99 . . . 9︸ ︷︷ ︸

9 repetido n vezes

+1 um multiplo de 9 mais uma unidade

entao 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 multiplo de 9” (nesta igualdade, cada ocorrencia de 9 designa

um multiplo diferente). Na “simplificacao” da igualdade, usamos tambem o facto da soma

de multiplos de 9 ser um multiplo de 9 e do produto dum numero qualquer por um multiplo

de 9 ser um multiplo de 9. Observando que x = 9 + (an + an−1 + · · · + a1 + a0), concluimos

que x e multiplo de 9 se e so se an + an−1 + · · ·+ a1 + a0 for multiplo de 9. ut

O exercıcio seguinte pode ser resolvido por aplicacao dum raciocınio analogo, 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 representacao na base 10 for igual a soma dos dıgitos de ordem ımpar.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 33: Alguns Tópicos de Matemática Discreta

3.2. NOCAO DE DIVISOR E DE MULTIPLO 25

Exercıcio 3.1.2 Mostre que um inteiro

(i) e divisıvel por 5 sse a sua representacao decimal terminar em 0 ou 5;

(ii) e divisıvel por 3 sse a soma dos dıgitos da sua representacao decimal for divisıvel por 3.

(iii) e divisıvel por 2 sse o dıgito menos significativo da sua representacao decimal for par.

3.2 Nocao de Divisor e de Multiplo

O conjunto1 dos divisores dum inteiro a e constituıdo por todos os inteiros positivos tais que

se b | a e os seus simetricos.

{divisores de a} = {b : b ∈ Z e b divide a}

Frequentemente, o termo divisor e usado para referir divisor positivo.

O conjunto dos multiplos de b e constituıdo pelos inteiros da forma bz para z inteiro, ou

seja

{multiplos de b} = {bz : z ∈ Z}.

Para mostrar formalmente o resultado seguinte basta usar a definicao de multiplo e de

divisor que acabamos de apresentar. Este resultado foi utilizado na seccao anterior, devendo

ser bem conhecido.

Proposicao 7 A soma, a diferenca e o produto de dois multiplos de b e um multiplo de b.

O produto dum multiplo de b por qualquer inteiro e um multiplo de b.

Prova: Sejam m1 e m2 multiplos de b. Entao 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 multiplos de b e multiplo de b.

Para mostrar que a diferenca de dois multiplos de b (isto e, m1 − m2) e multiplo de b

procede-se analogamente.

Para mostrar que m1m2 e multiplo de b, isto e, que o produto de dois multiplos de b e

multiplo 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 multiplo de b.

Do mesmo modo, para concluir que o produto dum multiplo de b (por exemplo, m1) por

um qualquer inteiro x e multiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z. ut1E usual representar “o conjunto dos x’s tais que x satisfaz condicao. . . ” por {x | x satisfaz condicao . . . }.

Neste capıtulo, usaremos a notacao alternativa {x : x satisfaz condicao . . . }, para evitar usar | com duplo

significado, reservando | para “divide”.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 34: Alguns Tópicos de Matemática Discreta

3.3. FACTORIZACAO 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 entao tambem divide z.

3.3 Factorizacao em Primos

Um numero p e primo se e so se tem exactamente quatro divisores (inteiros), nomeadamente,

p, −p, 1 e −1. Assim, um numero e primo se e so se tem exactamente dois divisores positivos.

Proposicao 8 Qualquer inteiro maior do que 1 e ou primo ou produto de primos.

Prova: Pela definicao de primo, tem-se 2 e primo.

Seja x ∈ N tal que x > 2. Suponhamos que ja mostramos que todo y ∈ N tal que 2 ≤ y < x

e ou primo ou produto de primos. Vamos mostrar que entao tambem podemos concluir que

x e primo ou produto de primos. De facto, se x nao for primo, existem x1, x2 ∈ N \ {0, 1}tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos ja 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 entao x pode escrever-se como produto de primos. Logo, se x nao e primo entao x

e um produto de primos, ou seja, x e primo ou produto de primos. ut

A tecnica utilizada na prova anterior designa-se por inducao matematica. Como

hipotese de inducao supusemos que ja se tinha mostrado que todo y ∈ N tal que 2 ≤ y < x ou

e primo ou e produto de primos. Como x esta fixo (e e finito), essa prova pode ser realmente

reconstruıda. Por exemplo, se x fosse 24, estariamos a assumir que ja tinhamos verificado que

2, 3, 5, 7, 11, 13, 17, 19 e 23 sao 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 nao e primo porque, por exemplo,

24 = 4× 6, entao podemos concluir que e produto de primos, por substituicao de 4 e 6 (que

correspondem a x1 e x2) pelas suas factorizacoes em primos: 24 = (2× 2)× (2× 3).

Usualmente, escreve-se 24 = 23 × 3, sendo esta a factorizacao de 24 primos. Em geral,

para qualquer numero natural n nao 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 6= 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 35: Alguns Tópicos de Matemática Discreta

3.3. FACTORIZACAO EM PRIMOS 27

Corolario 8.1 Seja x um inteiro tal que x ≥ 2 e x nao e primo. A factorizacao de x em

primos e unica, a menos de reordenacao dos factores.

Ideia da prova: Analoga a anterior, supondo como hipotese ja 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 reordenacao de factores). ut

Corolario 8.2 Qualquer inteiro maior do que 1 que nao e primo e divisıvel por algum primo.

Prova: Seja x um inteiro qualquer maior do que 1. Se x nao e primo entao x e produto

de primos. Consequentemente, algum primo e seu divisor. ut

Proposicao 9 O conjunto dos inteiros nao negativos que sao primos e infinito.

Prova: Suponhamos que so 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. Entao, o inteiro positivo

1 +n∏

i=1

pi

nao seria primo, ja que e maior do que qualquer um dos primos p1, p2, . . . , pn.

Mas se 1 + p1p2 . . . pn nao e primo, entao algum dos primos o divide (ou seja, e multiplo

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 entao 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. ut

3.3.1 Determinacao de primos: crivo de Erastotenes

Descreve-se a seguir um algoritmo para determinacao de todos os primos nao superiores a

um numero n dado. Tal algoritmo e conhecido como metodo do crivo. Parte-se duma tabela

contendo todos os numeros nao superiores n. O algoritmo resume-se a seleccionar o menor

inteiro na tabela (ainda nao seleccionado) e apagar todos os seus multiplos ate todos os valores

estarem ou seleccionados ou apagados.

2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

2 3 5 7 9

11 13 15 17 19

21 23 25 27 29

31 33 35 37 39

41 43 45 47 49

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 36: Alguns Tópicos de Matemática Discreta

3.4. MAXIMO 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 sao os primos, neste caso, nao

superiores a 50 (o valor de n neste exemplo).

3.3.2 Calculo de divisores por analise da factorizacao em primos

A partir da factorizacao dum numero em primos e possıvel determinar todos os seus divisores.

Por exemplo, os divisores de 30, que e dado por

30 = 21 × 31 × 51

sao:

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 decomposicao de x em primos entao 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 numero de divisores de pα1

1 · · · pαk

k e∏k

i=1(αi + 1).

3.4 Maximo Divisor Comum

Sabemos que 1 e divisor de qualquer inteiro e que o maior divisor de qualquer inteiro positivo x

e o proprio x. Dados inteiros positivos a e b, podemos falar do seu maximo divisor comum,

o qual representamos por mdc(a, b). O maximo divisor comum e o maior dos divisores comuns:

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 37: Alguns Tópicos de Matemática Discreta

3.4. MAXIMO 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 definicao de

mdc(a, b), cada divisor comum de a e b e divisor de mdc(a, b).

Por exemplo, por analise da decomposicao 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 so se mdc(a, b) = 1.

Proposicao 10 Os inteiros a/mdc(a, b) e b/mdc(a, b) sao primos entre si.

Prova: Queremos mostrar que mdc( amdc(a,b) ,

bmdc(a,b) ) = 1. Para isso vamos provar que

se mdc( amdc(a,b) ,

bmdc(a,b) ) = d entao mdc(a, b)d tambem divide a e b. Podemos depois concluir

que necessariamente d = 1 pois se d fosse maior do que 1 entao mdc(a, b)d > mdc(a, b),

mdc(a, b)d seria um divisor comum a a e b, maior do que o maximo divisor comum, o que,

por definicao 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 | amdc(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.

ut

Tem-se mdc(320×57×1127×312, 24×36×525) = 36×57, porque o maximo 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 metodo pode ser sempre aplicado se forem conhecidas as

factorizacoes dos numeros a e b. Quando nao se conhecem, o algoritmo de Euclides

permite calcular mdc(a, b) eficientemente.

3.4.1 Calculo do maximo divisor comum pelo algoritmo de Euclides

A correccao do algoritmo de Euclides para calculo 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 divisao de a por b.

Entao, mdc(a, b) = mdc(b, r).

Prova: Represente-se por d o maximo divisor comum de a e b. Por definicao de divisao

inteira, r e o resto da divisao de a por b sse 0 ≤ r < b e a = bq + r para algum q ∈ Z. Por

outro lado, por definicao de maximo divisor comum, d|a e d|b. Portanto, d|(a− bq). Ou seja,

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 38: Alguns Tópicos de Matemática Discreta

3.4. MAXIMO 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′ tera que dividir d para poder concluir que d e mdc(b, r). Para isso,

basta notar que se d′|b e d′|r entao 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. ut

Algoritmo de Euclides para determinacao 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 divisao 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 ja 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 combinacao linear inteira de a e b.

Para escrever mdc(100, 17) (isto e, 1) como combinacao de 100 e 17, observe-se que:

100 17

15 5

17 15

2 1

15 2

1 7

2 1

0 2

Efectuando analise para tras, substituindo sucessivamente os restos de forma a conseguir

fazer aparecer 100 e 17 (a e b iniciais) obtem-se a combinacao procurada: 1 = 15 − 7 × 2 =

15− 7(17 − 1× 15) = 8× 15− 7× 17 = 8(100 − 5× 17)− 7× 17 = 8× 100− 47× 17.

Proposicao 11 Sendo a, b e c constantes inteiras, a equacao ax + by = c com x, y ∈ Z, tem

solucao se e so se mdc(a, b) | c.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 39: Alguns Tópicos de Matemática Discreta

3.5. MINIMO MULTIPLO COMUM 31

Prova: Como mdc(a, b) divide a e divide b, tambem divide ax + by quaisquer que sejam

x, y ∈ Z. Portanto, para que ax + by = c tenha solucao e necessario que mdc(a, b) divida c.

Por outro lado, usando o facto de mdc(a, b) se poder escrever como combinacao inteira

de a e de b, temos mdc(a, b) = ama + bmb para ma e mb inteiros adequados. Se mdc(a, b) | c,entao c = mdc(a, b) c

mdc(a,b) e cmdc(a,b) ∈ Z. Multiplicando mdc(a, b) = ama + bmb por c

mdc(a,b)

obtem-se mdc(a, b) cmdc(a,b) = a(ma

cmdc(a,b) ) + b(mb

cmdc(a,b) ). Assim, vemos que se tomarmos

x = mac

mdc(a,b) e y = mbc

mdc(a,b) temos uma solucao inteira de ax + by = c. ut

Pode-se provar que (x, y) ∈ Z2 e solucao de ax + by = c sse x = mac

mdc(a,b) + k bmdc(a,b) e

y = mbc

mdc(a,b) − k bmdc(a,b) , com k ∈ Z qualquer.

3.5 Mınimo Multiplo Comum

Dados inteiros positivos a e b sabemos que ab e um multiplo de a e de b, fazendo sentido

determinar o menor inteiro positivo que e multiplo comum a a e b, ou seja o mınimo multiplo

comum, mmc(a, b). Por definicao 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 multiplos 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.

Comoa

mdc(a, b)e

b

mdc(a, b)sao primos entre si, podemos mostrar a Proposicao 12.

Proposicao 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) amdc(a,b)

bmdc(a,b) e mmc(a, b), notemos que e multiplo de a e de b. Por

outro lado, para verificar que divide qualquer outro multiplo m′ de a e de b, escrevamos

m′ = k1a e m′ = k2b para inteiros k1 e k2 apropriados. Entao, m′ = k1mdc(a, b) amdc(a,b) e m′ =

k2mdc(a, b) bmdc(a,b) , pelo que k1

amdc(a,b) = k2

bmdc(a,b) . Como b

mdc(a,b) e amdc(a,b) sao primos entre

si, bmdc(a,b) tem que dividir k1. Assim, k1 = b

mdc(a,b)k′1 para algum k′

1 e consequentemente, m′ =b

mdc(a,b)k′1mdc(a, b) a

mdc(a,b) e portanto m′ e multiplo de mdc(a, b) bmdc(a,b)

amdc(a,b) . Conclui-se

que mdc(a, b) bmdc(a,b)

amdc(a,b) e mmc(a, b). ut

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 40: Alguns Tópicos de Matemática Discreta

3.6. CONGRUENCIAS 32

3.6 Congruencias

Dados b ∈ Z+ e x, y ∈ Z dizemos que x e y sao congruentes modulo b se e so se x− y for

multiplo de b, escrevendo x ≡ y (mod b). Tal e equivalente a dizer que x e y dao 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, entao x − y = (qx − qy)b + (rx − ry) e portanto x − y e multiplo de b se e so 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 multiplo de b se e so se for zero. Portanto, x ≡ y (mod b) sse os

restos da divisao de x e y por b sao 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 relacoes de congruencias tem algumas propriedades interessantes (e importantes). Por

exemplo, a “congruencia modulo 2” decompoe 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 relacao de “congruencia modulo b” (para b ∈ Z+) decompoe 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 relacao de congruencia e ser preservada pelas

operacoes de soma, subtraccao e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) entao

x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b).

O exemplo seguinte ilustra uma das aplicacoes de congruencias.

Exemplo 10 Suponha que se quer resolver 5x + 3y = 1 para x, y ∈ Z. Como 5x + 3y = 1⇔5x − 1 = 3(−y) podemos comecar 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 so se x = 2 + 3k para algum k ∈ Z.

Voltando a equacao inicial, temos 5x + 3y = 1 ⇔ 5(2 + 3k) + 3y = 1 ⇔ y = −3 − 5k

concluindo-se que as solucoes de 5x + 3y = 1 sao os pontos (x, y) da forma x = 2 + 3k e

y = −3− 5k, com k ∈ Z.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 41: Alguns Tópicos de Matemática Discreta

Capıtulo 4

Inducao Matematica

O metodo de demonstracao por inducao matematica (ou inducao finita) sera bastante usado

durante o curso pelo que e conveniente introduzi-lo (ou recorda-lo).

4.1 Princıpio de Inducao Matematica

Imagine uma escada com uma infinidade de degraus. Nao e uma escada com um numero

enorme de degraus! Esta escada, tem sempre um degrau acima de qualquer outro que consi-

dere. Suponha que e verdade (4.1).

“Se conseguir chegar ate um degrau, entao tambem consigo chegar ao seguinte.” (4.1)

Se nada mais for dito, nao pode concluir que “consegue chegar ao 16o¯ degrau”.

Suponha agora nao so (4.1) mas tambem (4.2).

“Consigo chegar ao 13o¯ degrau” (4.2)

O que pode concluir? Como consegue chegar ao 13o¯ e e verdade (4.1), entao consegue chegar

ao 14o¯. Como consegue chegar ao 14o¯ e e verdade (4.1), entao consegue chegar ao 15o

¯. Como

consegue chegar ao 15o¯ e e verdade (4.1), entao 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 nao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 42: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 34

Do mesmo modo que anteriormente, se supuser (4.1) e (4.4) entao pode concluir (4.5).

“Consegue chegar ao n-esimo degrau, qualquer que seja n ≥ 1.” (4.5)

Proposicao 13 (Princıpio de Inducao Matematica) Escrevamos P(n) como abreviatura

de “o inteiro nao negativo n satisfaz a propriedade/condicao P ”. Tem-se ∀n ∈ N P (n), se

forem satisfeitas as duas condicoes (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) entao P (k + 1);

P (0) diz-se (caso de) base de inducao. Em P (k)⇒ P (k+1), chamamos a P (k) a hipotese

de inducao 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 divisao 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 divisao de 4 por 3 e 1, e verdade

que a condicao se verifica para n = 1.

(ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para

algum inteiro nao negativo p, entao Ak+1 = 3q + 1 para algum inteiro nao negativo q.

Ora, se Ak = 3p+1, entao 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 nao negativo, ja que se p ∈ Z e p ≥ 0 entao

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 multiplo de 3.

Observe que, se nos fosse pedido, podiamos apresentar a deducao de que A6 excede numa

unidade um multiplo de 3:Por (i), sabemos que o resto da divisao de A1 por 3 e 1;

De (i) e (ii), concluimos que o resto da divisao de A2 por 3 e 1;

Como o resto da divisao de A2 por 3 e 1, concluimos, por (ii), que o resto da divisao de A3 por 3 e 1;

Como o resto da divisao de A3 por 3 e 1, concluimos, por (ii), que o resto da divisao de A4 por 3 e 1;

Como o resto da divisao de A4 por 3 e 1, concluimos, por (ii), que o resto da divisao de A5 por 3 e 1;

Como o resto da divisao de A5 por 3 e 1, concluimos, por (ii), que o resto da divisao de A6 por 3 e 1.

Do mesmo modo que conseguimos mostrar que A6 da resto 1 quando dividido por 3,

podiamos, dado um n ≥ 1, apresentar a deducao de que An da resto 1 quando dividido por 3,

se tal nos fosse pedido.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 43: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 35

Proposicao 14 (Versao geral do Princıpio de Inducao) Seja n0 ∈ Z, e suponha que

P (n) denota “o inteiro n satisfaz a propriedade P . Se forem satisfeitas as duas condicoes (i)

e (ii) seguintes, entao, 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)

entao 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 condicoes de aplicabilidade do princıpio

de inducao matematica 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 entao (a + b)k+1 < 2k+1(ak+1 + bk+1).

Como (a + b)k+1 = (a + b)k(a + b), e por hipotese

(a + b)k < 2k(ak + bk),

concluimos que

(a + b)k+1 < 2k(ak + bk)(a + b) = 2k(ak+1 + bk+1 + akb + bka).

Como

2k(ak+1 + bk+1 + akb + bka) = 2k(ak+1 + bk+1) + 2k(akb + bka),

para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que

akb + bka ≤ ak+1 + bk+1

quaisquer que sejam a, b reais positivos. Tem-se

akb + bka− ak+1 − bk+1 = −(ak − bk)(a− b) ≤ 0,

ja que quaisquer que sejam x, y ∈ R+, se x ≤ y entao xp ≤ yp, para todo p ≥ 1 (relembre

que as funcoes fp(x) = xp, sao estritamente crescentes em R+).

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 44: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 36

Exercıcio 4.1.1 Aplique o princıpio de inducao matematica 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 multiplo 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 entao faca 7.

4. Se X > 0 entao volte a 2.

5. Substitua o valor em Y pela soma do valor que la estava com dois.

6. Volte a 2.

7. Indique o valor que guarda em Y, e pare.

O valor em Y quando se executa 7. e o dobro do numero de inteiros negativos nos valores

escolhidos. Para o provar, vamos mostrar que tal propriedade caracteriza o valor de Y em

cada iteracao do ciclo (ou seja, e um invariante do ciclo). Usamos inducao sobre o numero

de iteracoes efectuadas.

O valor que esta guardado em Y quando esta 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 esta 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 esta a executar 2. pela ka¯ vez, o valor

em Y e o dobro do numero de inteiros negativos nos k − 1 valores escolhidos anteriormente.

Entao, por analise 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 numero positivo, ou foi

incrementado de duas unidades, se tivermos dado mais um numero negativo. Portanto, se

quando se estiver a executar 2. pela ka¯ vez, o valor em Y e o dobro do numero de inteiros

negativos nos k−1 valores escolhidos anteriormente, entao quando se estiver a executar 2. pela

(k + 1)a¯ vez, valor em Y e o dobro do numero de inteiros negativos nos k valores escolhidos

anteriormente.

Consequentemente, por inducao matematica, podemos concluir que o valor em Y quando

se executa 7. e o dobro do numero de inteiros negativos nos valores escolhidos.

1Na terminologia de linguagens de programacao, X e Y sao variaveis de programacao.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 45: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 37

4.1.1 Erros frequentes

E necessario mostrar as duas condicoes de aplicabilidade do princıpio de inducao, sem o que

as provas nao ficam completas e, no pior dos casos, os resultados mal “demonstrados” sao

mesmo falsos.

O exemplo seguinte serve para ilustrar o facto de certas propriedades, nao observaveis,

poderem ser hereditarias. Hereditarias, no sentido de se um dado inteiro as satisfizer, tambem

o inteiro seguinte as satisfaz.

Exemplo 14 Considere a seguinte demonstracao (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 entao

k + 1 ≤ x + 1 ≤ k + 2, qualquer que seja k ∈ N. Assim, se entre k e k + 1 existir

uma infinidade de inteiros, entao entre k+1 e k+2 tambem 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 inducao matematica sobre k, concluimos que entre dois inteiros conse-

cutivos existe uma infinidade de inteiros. ut

Como entre dois inteiros consecutivos nao ha qualquer outro inteiro, a prova tem que estar

errada. O erro esta na conclusao “precipitada”. Nao se mostrou que existia um intervalo

[k, k+1] que tinha uma infinidade de inteiros. Apenas se mostrou a condicao (ii) do princıpio

de inducao. A condicao (i) nao foi provada, nem se pode provar!

Exemplo 15 A demonstracao seguinte esta obviamente errada dado que permite concluir

que “todos os cavalos sao brancos” (e, todos sabemos que ha cavalos doutras cores).

Vamos mostrar que qualquer que seja o numero de cavalos que estejam numa

cerca, se existir algum cavalo branco entre eles entao todos os cavalos nessa cerca

sao brancos.

Prova: Para isso vamos mostrar que as duas condicoes (i) e (ii) do princıpio de

inducao se verificam nessa situacao.

(i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar

que se so existir um cavalo na cerca e branco.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 46: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 38

(ii) Fixemos um k ∈ N, e suponhamos que se existirem k cavalos numa cerca

qualquer, estando pelo menos um cavalo branco entre eles, entao todos os

demais sao brancos. Consideramos agora uma cerca onde estao k + 1 cavalos

sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando

ficar o branco. Dado que estao k cavalos na cerca, estando um branco entre

eles, segue pela hipotese de inducao, que os k cavalos na cerca sao brancos.

Resta mostrar que o cavalo que retiramos primeiramente tambem era branco.

Retiremos um dos cavalos que esta na cerca (e indiferente qual se retira

porque de facto todos sao brancos), e voltemos a colocar o que retiramos

primeiramente. Mais uma vez, pela hipotese, podemos concluir que todos os

cavalos que estao agora na cerca sao brancos.

Assim, pelo princıpio de inducao matematica segue a validade da proposicao que

queriamos mostrar. ut

Sabemos que “se existir algum cavalo branco numa cerca”, tambem la podem estar cavalos

doutras cores. Logo, a afirmacao que “mostramos” por inducao e falsa. Mas, como o sistema

dedutivo que estamos a seguir e consistente, nao podemos deduzir proposicoes falsas, pelo

que ha que encontrar um erro (vıcio) na prova dada.

Sabemos que se estiverem dois cavalos numa cerca e um deles for branco, entao isso nao

implica que o outro tambem seja branco. Por outras palavras, e falso P (1)⇒ P (2).

Para localizarmos o erro, vamos entao 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 sozinho numa cerca em que ha pelo menos

um cavalo branco. Consideramos agora uma cerca onde estao dois cavalos sendo

branco pelo menos um deles. Retiremos um cavalo da cerca deixando ficar o

branco. Dado que esta um so cavalo na cerca, estando um branco na cerca, segue

pela hipotese de inducao, que o cavalo na cerca e branco. Resta mostrar que

o cavalo que retiramos primeiramente tambem era branco. Retiremos o cavalo

que esta na cerca, e voltemos a colocar o que retiramos primeiramente. Agora

nao podemos aplicar a hipotese, pois so esta na cerca o cavalo que acabamos de

la colocar, e nao sabemos de que cor e (por isso nao podemos afirmar que haja

algum cavalo branco na cerca).

Note que a prova de (ii) e valida 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 esta pelo menos

um branco, entao sao brancos os k + 1 cavalos que estiverem numa qualquer cerca onde esta

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 47: Alguns Tópicos de Matemática Discreta

4.1. PRINCIPIO DE INDUCAO MATEMATICA 39

pelo menos um branco. Conclusao: so nao conseguimos mostrar que “todos os cavalos sao

brancos” porque P (1) 6⇒ P (2).

No exemplo2 que se segue, a prova esta errada, mas o resultado e valido.

Exemplo 16 Pretendemos mostrar que qualquer que seja n ≥ 1, o quadrado de lado 2n pode

ser coberto por pecas da forma seguinte, ficando apenas um quadrado 1× 1 por cobrir.

A propriedade verifica-se para n = 1, por exemplo:

Para concluir, por inducao, que a propriedade e valida para todo n ≥ 1, resta

mostrar que qualquer que seja k ≥ 1, se os quadrados de lado 2k admitem a

cobertura descrita, entao os quadrados de lado 2k+1 tambem admitem.

Dado um quadrado de lado 2k+1 podemos dividi-lo em quatro quadrados de lado 2k

como se ilustra na figura abaixo. Por hipotese, cada quadrado de lado de 2k pode

ser coberto por pecas 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 tres quadrados 1× 1 (ao centro) podem ser cobertos

por uma peca, pelo que so fica um quadrado 1× 1 por cobrir.

2k+1

2k

2k11

Esta prova nao esta correcta! Porque? Na demonstracao supusemos que o quadrado por

cobrir, podia estar num canto, mas o quadrado que deixamos depois a descoberto nao 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 esta num canto, e

que para mostrar que ∀n (P (n)⇒ P (n + 1)) podemos fazer o seguinte.

2de Maggie Johnson, Introducton to Induction, Lecture Notes CS109, 1998.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 48: Alguns Tópicos de Matemática Discreta

4.2. INDUCAO FORTE 40

2k+1

2k

2k

4.2 Inducao Forte

Em certos casos e util reforcar a hipotese de inducao.

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 ja se mostrou que todo i ∈ N tal que 2 ≤ i ≤ k

ou e primo ou e produto de primos porque nao basta ter a decomposicao de k em primos para

construir a decomposicao de k + 1. A prova ficaria entao:

• Pela definicao de primo, 2 e primo.

• Seja k ∈ N tal que k ≥ 2. Suponhamos que ja mostramos que todo i ∈ N tal que

2 ≤ i ≤ k e ou primo ou produto de primos. Vamos mostrar que entao tambem

podemos concluir que k + 1 e primo ou produto de primos. De facto, se k + 1 nao for

primo, existem i1, i2 ∈ N \ {0, 1} tais que k + 1 = i1i2. Como 2 ≤ i1 ≤ k e 2 ≤ i2 ≤ k,

sabemos ja 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 entao k + 1 pode-se escrever como produto de primos. Logo, se k + 1 nao

e primo, k + 1 e um produto de primos, ou seja, k + 1 e primo ou produto de primos.

Mostramos 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 entao k + 1 e primo ou produto de primos.

Portanto, por inducao, n e primo ou produto de primos, qualquer que seja n ≥ 2.

Proposicao 15 (Versao forte do princıpio de inducao) Seja P (n) uma condicao na

variavel n ∈ Z. Dado n0 ∈ Z, se forem satisfeitas as duas condicoes (i) e (ii) seguintes, entao

∀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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 49: Alguns Tópicos de Matemática Discreta

4.2. INDUCAO FORTE 41

Exemplo 18 Seja “QS” (e conhecido por quick-sort) o algoritmo seguinte.

0. Supoe-se dada uma sequencia finita de inteiros (pode nao ter elementos).

1. Se a sequencia nao tem qualquer elemento entao indicar como resultado a

propria sequencia.

2.1 Senao seja X o primeiro elemento na sequencia dada.

2.2 Separar os restantes elementos da sequencia formando a subsequencia dos

menores do que X e a subsequencia dos maiores ou iguais que X.

2.3 Aplicar “QS” a cada uma das subsequencias: sejam R< e R≥ as sequencias

resultantes (respectivamente).

2.4. Dar como resultado os elementos de R<, seguidos de X, seguidos dos

elementos de R≥.

O algoritmo “QS” ordena por ordem crescente a sequencia finita de inteiros dada. Para o

provar, vamos usar inducao sobre o numero de elementos na sequencia dada.

(i) Se a sequencia dada nao tem elementos, entao podemos dizer que a sequencia resultante,

que e igual a dada (por 1.) esta ordenada por ordem crescente.

(ii) Seja S uma qualquer sequencia de inteiros, e seja n (n ≥ 1 fixo) o seu numero de

elementos. Suponhamos agora, como hipotese de inducao, que quando aplicamos “QS”

a uma qualquer sequencia W de inteiros cujo numero 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 instrucoes 2.1–2.4. Uma vez que nas sub-

sequencias formadas em 2.2 nao entra o primeiro elemento de S, cada uma delas tem

menos elementos do que S. Assim, por hipotese de inducao, “QS” quando aplicado a

cada uma dessas subsequencias, ordena-as por ordem crescente. Entao, as sequencias

referidas por R< e R≥ (em 2.3) sao respectivamente as sequencias de elementos menores

do que X e maiores ou iguais a X, ordenadas por ordem crescente. Portanto, o resultado

indicado em 2.4 nao e mais do que a sequencia S ordenada por ordem crescente. ut

Proposicao 16 Os princıpios de inducao forte e fraca sao equivalentes, ou seja se existir

uma prova de ∀n ∈ N P (n) por inducao fraca entao tambem existe uma prova por inducao

forte. E vice-versa, se existir uma prova por inducao forte entao existe uma prova por inducao

fraca.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 50: Alguns Tópicos de Matemática Discreta

4.2. INDUCAO FORTE 42

Prova: E trivial que se existir uma prova dum dado resultado por inducao fraca entao

existe uma prova por inducao forte, pois a mesma prova serve!

Portanto, resta-nos mostrar que se existir uma prova por inducao forte entao existe uma

prova por inducao fraca. Para tal, vamos mostrar que se existe uma prova de ∀n ∈ Z+ P (n)

por inducao forte, entao existe uma prova por inducao fraca de ∀n ∈ Z+ (∀i ≤ n P (i)).

Podemos depois concluir que existe uma prova por inducao fraca de ∀n ∈ Z+ P (n) porque

(∀n ∈ Z+ (∀i ≤ n P (i)))⇒ ∀n ∈ Z+ P (n).

Seja Q(n) a condicao ∀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 inducao forte, teve que se justificar

que P (1) era verdade, basta-nos reproduzir essa justificacao.

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 proposicao ∀n P (n) por inducao 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, mostramos que Q(1) era verdade e ∀n ∈ Z+ (Q(n) ⇒ Q(n + 1)). Consequente-

mente, pelo princıpio de inducao fraca, concluimos ∀n ∈ Z+ Q(n). ut

4.2.1 Outras formulacoes do princıpio de inducao

Proposicao 17 Seja A = {n ∈ N | P (n)}, onde P (n) denota “n satisfaz a propriedade P”.

Se A satisfizer as condicoes (i) e (ii) seguintes, entao A = N.

(i) 0 ∈ A

(ii) ∀k ∈ N (k ∈ A⇒ k + 1 ∈ A)

Proposicao 18 Seja A = {n ∈ N | P (n)}, onde P (n) denota “n satisfaz a propriedade P”.

Se A satisfizer as condicoes (i) e (ii) seguintes, entao A = N.

(i) 0 ∈ A

(ii) ∀k∈N ( (∀i ≤ k i∈A)⇒ k + 1 ∈ A )

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 51: Alguns Tópicos de Matemática Discreta

Capıtulo 5

Relacoes Binarias

5.1 Relacoes Binarias 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 relacao binaria de A

em B. A notacao aR b sera 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 sao 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 esta 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 sao relacoes binarias.

5.1.1 Operacoes com relacoes binarias

Como as relacoes binarias sao conjuntos (de pares ordenados), podemos definir a uniao e a

interseccao de relacoes binarias e ainda a relacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 52: Alguns Tópicos de Matemática Discreta

5.1. RELACOES BINARIAS DE A EM B 44

Para alem destas operacoes, definimos tambem a nocao de inversa e de composta. A

relacao inversa de R, representada por R−1, e a relacao de B em A definida pelo conjunto

R−1 = {(b, a) | (a, b) ∈ R}

Dadas duas relacoes R ⊆ A × B e S ⊆ B × C, diz-se relacao composta de R e S, e

representa-se por RS , a relacao binaria 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 le S apos R, a semelhanca da notacao

usual para composicao de funcoes. Na seccao 5.1.3, veremos que as funcoes correspondem a

relacoes binarias que satisfazem condicoes adicionais. A relacao inversa corresponde a nocao

de imagem recıproca, que associa a cada transformado os elementos do domınio que o tem

por imagem.

Exemplo 20 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5}, C = {1, 2},

R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)}S = {(1, 1), (3, 2), (5, 1), (5, 2)}

A relacao R−1 e {(2, 1), (3, 1), (2, 2), (4, 3), (5, 3)}.

R S

1 //

**TTTTTTTTTTTTTT 2

2

44jjjjjjjjjjjjjj3 // 2

3

$$IIIIIIIIIIIIIIII // 5

**TTTTTTTTTTTTT

55jjjjjjjjjjjjj

1 // 1

4

RS = {(1, 2), (3, 1), (3, 2)}, ja 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 acabamos de fazer foi uma analise exaustiva dos pares

possıveis, justificando se pretenciam ou nao a RS. Mais adiante, serao apresentados alguns

resultados teoricos que facilitarao a determinacao da composta.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 53: Alguns Tópicos de Matemática Discreta

5.1. RELACOES BINARIAS 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 sao alunos da mesma licenciatura } = UU−1

5.1.2 Matriz duma relacao binaria

Sejam A e B conjuntos finitos e nao vazios, tais que |A| = n e |B| = m. Podemos identificar A

com {ai | 1 ≤ i ≤ n} e B com {bj | 1 ≤ j ≤ m}. Qualquer relacao R de A em B pode

ser representada por uma tabela – matriz da relacao – do modo seguinte. O elemento que

esta 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 entao tem-se

MR[i, j] = 1 se e so se (ai, bj) ∈ R

MR[i, j] = 0 se e so 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)}

Entao,

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. Entao

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)}. Entao,

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

= M tR

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 54: Alguns Tópicos de Matemática Discreta

5.1. RELACOES BINARIAS DE A EM B 46

Matriz da composta

Sejam A, B, e C conjuntos finitos e nao vazios tais que |A| = n, |B| = m e |C| = p. Dadas

duas relacoes R e S tais que R ⊆ A × B e S ⊆ B × C, a matriz da relacao 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 definicao da relacao composta tem-se aiRScj se e so se existe bk tal que

aiRbk ∧ bkScj . Ou seja, MRS [i, j] = 1 se e so se MR[i, k] = 1 ∧MS[k, j] = 1 para algum k.

Ou seja, MRS [i, j] = 1 se e so 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 definicao 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 logicos 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

1Deve 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] =P

m

k=1(A[i, k] ∗ B[k, j]), para

1 ≤ i ≤ n e 1 ≤ j ≤ p (dado pelo produto escalar da linha i de M pela coluna j de N). Quando os elementos

pertencem a ({0, 1},∨,∧), a disjuncao ∨ substitui a soma + e a conjuncao ∧ substitui o produto ∗.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 55: Alguns Tópicos de Matemática Discreta

5.2. RELACOES BINARIAS DEFINIDAS NUM CONJUNTO 47

5.1.3 Funcoes de A em B

Designa-se por funcao de A em B qualquer relacao binaria 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 ∃1b ∈ B af b.

Se a f b entao 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 funcao, 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 funcao e injectiva se e so 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 funcao e sobrejectiva se e so qualquer elemento de B e imagem de algum elemento

de A, ou seja f(A) = B.

Uma funcao que e sobrejectiva e injectiva diz-se bijectiva. Assim, f ⊆ A × B e uma

funcao bijectiva se e so se

• ∀a ∈ A ∃1b ∈ B f(a) = b (funcao), e

• ∀b ∈ B ∃1a ∈ A f(a) = b (bijectiva)

Desta observacao resulta trivialmente a proposicao seguinte.

Proposicao 19 Seja f ⊆ A × B uma funcao. Entao f−1 ⊆ B × A e funcao se e so se f e

bijectiva.

Uma funcao diz-se invertıvel se a sua inversa e uma funcao.

Uma funcao parcial de A em B e uma relacao binaria f de A em B tal que se um elemento

a ∈ A tem imagem por f entao essa imagem e unica. Notar que a diferenca relativamente

a definicao de funcao e nao se impor a condicao de que todos os elementos de A tenham

imagens por f .

5.2 Relacoes Binarias Definidas num Conjunto

Seja A um conjunto. Chama-se relacao binaria definida em A ou simplesmente relacao

binaria em A a qualquer relacao binaria de A em A.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 56: Alguns Tópicos de Matemática Discreta

5.2. RELACOES BINARIAS DEFINIDAS NUM CONJUNTO 48

5.2.1 Propriedades das relacoes binarias definidas em A

Qualquer relacao R definida em A pode gozar ou nao das propriedades seguintes.

reflexividade: R e reflexiva sse ∀x ∈ A xRx, ou seja nao existe x tal que x ∈ A e (x, x) /∈ R.

simetria: R e simetrica sse ∀x, y ∈ A (xRy ⇒ yRx), ou seja nao existem x, y tais que

x, y ∈ A e (x, y) ∈ R e (y, x) /∈ R.

antissimetria: R e antissimetrica sse ∀x, y ∈ A ((xRy∧yRx)⇒ x = y), ou seja, nao existem

x, y ∈ A tais que x 6= y, xRy e yRx.

transitividade: R e transitiva sse ∀x, y, z ∈ A (xRy ∧ yRz) ⇒ xRz, ou seja nao 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 φ relacoes binarias 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 relacao α e reflexiva, simetrica, transitiva, e antissimetrica. De facto, uma vez que

α = {(x, x) | x ∈ A}, e claro que ∀x ∈ A (x, x) ∈ α, ou seja α e reflexiva. Por definicao

de α tem-se

∀x, y ∈ A ( (x, y) ∈ α⇒ x = y ). (5.1)

Donde, ∀x, y ∈ A ( (x, y) ∈ α ⇒ (y, x) ∈ α ) ou seja, α e simetrica. Do mesmo modo, por

(5.1) conclui-se ∀x, y, z ∈ A ( (x, y) ∈ α ∧ (y, z) ∈ α ⇒ (x, z) ∈ α ) ou seja α e transitiva.

E ainda, ∀x, y ∈ A ( (x, y) ∈ α ∧ (y, x) ∈ α⇒ x = y ) ou seja, α e antissimetrica.

β nao e reflexiva (porque por exemplo 5 ∈ A ∧ (5, 5) /∈ β), e simetrica (porque (1, 3) ∈ β

mas (3, 1) ∈ β), nao antissimetrica (porque 1 6= 3 ∧ (1, 3) ∈ β ∧ (3, 1) ∈ β), e nao transitiva

(porque (3, 1) ∈ β ∧ (1, 3) ∈ β ∧ (3, 3) /∈ β).

γ e transitiva, antissimetrica, nao reflexiva, e nao simetrica (Justificar!).

φ e reflexiva, simetrica, transitiva e nao antissimetrica.

5.2.2 Grafo da relacao

As relacoes em A podem ser representadas por grafos dirigidos os quais sao constituıdos

por um conjunto de vertices (que representam os elementos de A) e um conjunto de ramos

(que correspondem aos pares ordenados que pertencem a relacao).

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 57: Alguns Tópicos de Matemática Discreta

5.2. RELACOES BINARIAS DEFINIDAS NUM CONJUNTO 49

Exemplo 26 Para as relacoes consideradas no Exemplo 25:

O grafo da relacao α:

1•GFEDBC

oo 2•GFEDBC

oo 3•GFEDBC

oo 4•GFEDBC

oo 5•GFEDBC

oo

O grafo da relacao β:

1•BC@AGF // //3•oo 4• 5• 2•

Exemplo 27 Seja R a seguinte relacao definida em Z+ por

R = {(x, y) | y ≤ 9, y e multiplo de x, y 6= x} ∪ {(1, 1)}

• R em extensao

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 ��

}}||||

||||

||||

||||

|||

��

�� ((QQQQQQQQQQQQQQQ

��111

1111

1111

1111

%%LLLLLLLLLLLLLLLLLLLLLLLLL

**UUUUUUUUUUUUUUUUUUUUUUU

++XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2•

}}||||

||||

!!BBB

BBBB

B

vvmmmmmmmmmmmmmmm 3•

}}||||

||||

!!BBB

BBBB

B •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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 58: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 50

Exemplo 28 Seja A o conjunto dos alunos da FCUP. Sejam R,S ⊆ A × A as relacoes

binarias em A assim definidas

R = {(x, y) ∈ A×A | x e y sao alunos da mesma licenciatura da FCUP}S = {(x, y) ∈ A×A | x e y estao inscritos numa mesma disciplina}

R e reflexiva porque qualquer aluno da FCUP e aluno da mesmo curso que si proprio. E

simetrica porque se um aluno x da FCUP frequenta o mesmo curso que um aluno y, entao y

frequenta o mesmo curso que x. Nao e antissimetrica, ja 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, entao x e z frequentam o mesmo curso, ja que cada aluno esta inscrito num e num so

curso.

S e reflexiva, simetrica, nao antissimetrica, e nao 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 nao tem qualquer

disciplina em comum).

5.3 Relacoes de Compatibilidade e de Equivalencia

Diz-se relacao de compatibilidade em A toda relacao binaria em A que e reflexiva e

simetrica. Qualquer relacao de compatibilidade em A que seja ainda transitiva diz-se relacao

de equivalencia em A (ou seja, e uma relacao reflexiva, simetrica, e transitiva).

Exemplo 29 Considere o Exemplo 28. Como R e S sao reflexivas e simetricas, R e S sao

relacoes de compatibilidade. R e reflexiva, simetrica e transitiva, pelo que e de equivalencia.

S nao e de equivalencia porque nao e transitiva.

Se γ uma relacao de compatibilidade em A e x ∈ A e y ∈ A, diz-se que x e y sao elementos

compatıveis para γ se e so se xγy. Se (x, y) /∈ γ entao x e y dizem-se incompatıveis

para γ. Analogamente, se γ e uma relacao de equivalencia em A e xγy, entao x e y dizem-se

equivalentes (para γ).

Seja γ uma qualquer relacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 59: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 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, ja que (1, 3) /∈ γ. A relacao γ e de compati-

bilidade mas nao e de equivalencia.

5.3.1 Classes de equivalencia

Pode acontecer, para certas relacoes de compatibilidade γ, que existam elementos u e v em

Cx que sejam incompatıveis. No entanto, pode-se mostrar a proposicao seguinte:

Proposicao 20 Seja γ uma relacao de compatibilidade em A. A relacao γ e de equivalencia

se e so se para todo x ∈ A, o conjunto Cx = {y ∈ A | (x, y) ∈ γ} nao tem elementos

incompatıveis.

Prova: Seja γ de compatibilidade em A. Vamos mostrar que

γ transitiva⇒ ∀x ∈ A ∀y, t ∈ Cx yγt.

Por definicao de Cx, se y, t ∈ Cx entao xγt e xγy. Como γ e simetrica, se xγy tambem yγx.

Entao, se xγt e xγy, tambem 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)

entao γ e transitiva. De facto, se a, b, c ∈ A sao tais que aγb e bγc entao, pela simetria de γ

e por definicao de Cb, deduz-se c ∈ Cb e a ∈ Cb. Mas por (5.2), (c ∈ Cb ∧ a ∈ Cb) ⇒ aγc.

Entao ∀a, b, c ∈ A ((aγb ∧ bγc)⇒ aγc), ou seja γ e transitiva. ut

Sendo γ de equivalencia em A, cada conjunto Cx chama-se classe de equivalencia de γ.

Concretamante, sera a classe de equivalencia do elemnto x, ou seja, o conjunto dos elementos

de A que sao equivalentes a x (em γ).

Proposicao 21 Se γ e uma relacao de equivalencia em A entao cada elemento de A pertence

a uma e uma so classe de equivalencia de γ.

Qualquer elemento de uma classe de equivalencia pode ser usado para identificar a

classe.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 60: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 52

Exemplo 31 Seja A = {x | x e aluno da FCUP}, e

R = {(x, y) ∈ A×A | x e y sao alunos da mesma licenciatura}

que como vimos e de equivalencia. Eis algumas das classes de equivalencia de R (actualmente

existem 19 classes):

{x ∈ A | x e aluno de Matematica}{x ∈ A | x e aluno de Geologia}{x ∈ A | x e aluno de Ciencia de Computadores}{x ∈ A | x e aluno de Engenharia de Redes e Sistemas Informaticos}{x ∈ A | x e aluno de Bioquımica}{x ∈ A | x e aluno de Engenharia das Ciencias Agrarias}{x ∈ A | x e aluno de Matematica Aplicada a Tecnologia}

Exemplo 32 Seja ≡5 a relacao definida no conjunto dos inteiros por

x ≡5 y sse x− y e multiplo (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 simetrica

porque para quaisquer x, y ∈ Z tem-se

x ≡5 y ⇐⇒ (∃k ∈ Z x− y = 5k)⇐⇒ (∃k′ ∈ Z y − x = 5k′)

(toma-se k′ = −k). Logo, ∀x, y ∈ Z ( x ≡5 y ⇒ y ≡5 x), ou seja ≡5e simetrica. Mostrar

que ≡5 e transitiva e mostrar que ∀x, y, z ∈ Z [ (x ≡5 y ∧ y ≡5 z) ⇒ x ≡5 z ]. Se

x ≡5 y ∧ y ≡5 z entao 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.

Sao 5 as classes de equivalencia 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 relacao podia tambem ser definida assim

x ≡5 y sse sao iguais os restos da divisao inteira de x e y por 5

A notacao mais habitual e x ≡ y (mod 5).

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 61: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 53

Proposicao 22 (Caracterizacao das classes de equivalencia) Seja γ de equivalencia

em A, conjunto nao vazio. Para cada x ∈ A, seja Cx = {y ∈ A | xγy}. Entao,

(i) qualquer que seja a ∈ A, o conjunto Ca e nao vazio.

(ii) se Ca ∩ Cb 6= ∅ entao Ca = Cb.

(iii) o conjunto A e a uniao dos conjuntos Ca, com a ∈ A.

Prova:

(i) ∀a ∈ A aγa, pela reflexividade de γ. Assim, ∀a ∈ A a ∈ Ca. Logo, Ca 6= ∅.

(ii) Vamos agora mostrar que se Ca ∩Cb 6= ∅ entao Ca ⊆ Cb, e Ca ⊇ Cb, pelo que Ca = Cb.

Como Ca ∩ Cb 6= ∅, 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 Proposicao

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 analogo se verifica que x ∈ Cb ⇒ x ∈ Ca

(iii) A ⊇ ⋃

a∈A Ca, ja 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 relacao θ em Z× Z+ assim definida:

(p, q) θ (p′, q′) sse pq′ = qp′.

Verificar que θ e de equivalencia. Notar que cada classe de equivalencia de θ corresponde a

um e um so racional no sentido seguinte: C(p,q) = {(x, y) ∈ Z× Z+ | x/y = p/q}.

5.3.2 Particoes e relacoes de equivalencia

Designa-se por particao de A um conjunto de subconjuntos de A que sao nao vazios, disjuntos

dois a dois, e cuja uniao e o conjunto A.

Exemplo 33 Para A = {1, 2, 3, 4}, o conjunto P1 = {{1, 2}, {3}, {4}} define uma particao de

A mas P2 = {{1, 2}, {3, 2}, {4}} nao, ja que {1, 2} ∩ {3, 2} 6= ∅. Tambem, P3 = {{1, 2}, {3}}nao define particao de A ja que 4 ∈ A e 4 nao pertence a nenhum dos subconjuntos de A que

constituem P3.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 62: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 54

Corolario 22.1 Se γ e uma relacao de equivalencia em A entao o conjunto das classes de

equivalencia de γ e uma particao do conjunto A.

O conjunto das classes de equivalencia de uma relacao de equivalencia γ 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}.

Proposicao 23 Seja A um conjunto nao vazio e seja Π uma particao de A. Existe uma e

uma so relacao γ de equivalencia em A tal que A/γ = Π. Essa relacao γ e

{(x, y) ∈ A×A | x e y pertencem a um mesmo elemento de Π}

Prova: Seja θ a relacao definida em A tal que

θ = {(x, y) ∈ A×A | x e y pertencem a um mesmo elemento de Π}

Vamos mostrar que θ e relacao de equivalencia em A.

A relacao θ e reflexiva, porque sendo Π uma particao de A, todo elemento de a ∈ A

pertence a algum subconjunto em Π, pelo que ∀a ∈ A aθa. Mostrar que θ e simetrica, e

mostrar que

∀a, b ∈ A ( aθb⇒ bθa),

o que segue trivialmente da definicao de θ. E transitiva porque quaisquer que sejam a, b, c ∈ A,

se a e b sao elementos dum mesmo conjunto em Π, e b e c sao elementos dum mesmo conjunto

em Π, entao esses conjuntos sao iguais (uma vez que os elementos de Π sao disjuntos dois a

dois). Logo, se aθb e bθc entao aθc. Concluimos assim que θ e de equivalencia.

Vamos mostrar que A/θ = Π. Seja x ∈ A, e Cx a classe de equivalencia de x para θ.

Seja Px ∈ Π tal que x ∈ Px. Vamos mostrar que Cx = Px. Por definicao de θ, e claro que

Px ⊆ Cx. Por outro lado, se Cx 6⊆ Px entao 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 Π. Entao existiria P ′ 6= Px,

P ′ ∈ Π tal que x ∈ Px ∩ P ′, o que e absurdo, pois Px e P ′ sao elementos duma particao,

P ′ 6= Px, sendo por isso disjuntos. Logo, tambem Cx ⊆ Px. Cada conjunto em A/θ (assim

como cada conjunto em Π) fica perfeitamente identificado com a indicacao dum elemento x

que lhe pertenca. Consequentemente, acabamos de mostrar que A/θ = Π.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 63: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 55

Seja γ uma relacao de equivalencia em A tal que A/γ = Π. Ja vimos que uma tal relacao

existe sempre, ja que θ e um exemplo. Vamos mostrar agora que existe uma so relacao nessas

condicoes, ou seja

∀γ ⊆ A×A [ ( γ de equivalencia ∧A/γ = Π ) ⇒ γ = θ

Como relacoes binarias sao, por definicao, conjuntos, para mostrar que γ = θ, vamos

mostrar que γ ⊆ θ ∧ γ ⊇ θ.

Sejam x e y elementos de A. Se (x, y) ∈ γ entao, por definicao de conjunto quociente

A/γ, existe um e um so subconjunto em Π, seja Cx tal que x, y ∈ Cx. Mas, por definicao de

θ, tem-se x, y ∈ Cx ∈ Π sse (x, y) ∈ θ. Logo γ ⊆ θ.

Verifiquemos agora que θ ⊆ γ. Se (x, y) ∈ θ entao existe P ∈ Π tal que x, y ∈ P . Como

Π e o conjunto das classes de equivalencia de γ, se x, y ∈ P entao xγy. ut

5.3.3 Classes de Compatibilidade

Se γ e de compatibilidade em A podemos considerar subconjuntos de A, nao vazios, e que nao

tenham elementos incompatıveis. Ou seja, subconjuntos C de A que satisfacam as condicoes

(i) e (ii) seguintes:

(i) C 6= ∅

(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 maxima de compatibilidade de γ qualquer classe de compatibilidade

de γ que nao esta contida propriamente noutra classe de compatibilidade de γ. Assim, C ⊆ A

e classe maxima de compatibilidade se e so se C satisfaz as condicoes (i) e (ii) anteriores e

ainda (iii):

(i) C 6= ∅

(ii) ∀a,b∈C aγb.

(iii) Se C ′ e uma classe de compatibilidade γ tal que C ⊆ C ′, entao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 64: Alguns Tópicos de Matemática Discreta

5.3. RELACOES DE COMPATIBILIDADE E DE EQUIVALENCIA 56

uma funcao do conjunto O no conjunto dos subconjuntos das cores, que indica quais as cores

de cada objecto. A relacao γ definida em O por

xγy sse x e y tem uma cor em comum

e de compatibilidade. As classes de compatibilidade de γ sao:

{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 maxima compatibilidade sao:

{o1, o2, o4}, {o1, o4, o6}, {o2, o3}, {o5, o6}, {o7}

Exercıcio 5.3.2 Mostrar que:

a) Se γ e de equivalencia em A entao para todo x ∈ A, a classe de equivalencia de x e uma

classe de compatibilidade de γ.

b) Se γ e de compatibilidade em A entao todo x ∈ A pertence a alguma classe maxima de

compatibilidade de γ.

c) Se γ e uma relacao de compatibilidade em A, entao a uniao das classes maximas de

compatibilidade de γ e o conjunto A.

d) Se γ e de equivalencia em A, entao o conjunto das classes maximas de compatibilidade

de γ e o conjunto quociente A/γ.

e) Se γ e de compatibilidade em A e Cγ(A) e o conjunto das classes maximas de compati-

bilidade de γ, entao γ = θθ−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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 65: Alguns Tópicos de Matemática Discreta

5.4. RELACOES DE ORDEM PARCIAL 57

5.4 Relacoes de Ordem Parcial

Uma relacao de ordem parcial definida num conjunto A e uma relacao binaria reflexiva,

antissimetrica e transitiva.

A relacao ≤ definida nos conjunto dos numeros 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 antissimetrica porque quaisquer que sejam x, y ∈ R se x ≤ y e y ≤ x entao 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 antissimetrica.

• ≤ e transitiva porque quaisquer que sejam x, y, z ∈ R se x ≤ y e y ≤ z entao 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 definicao).

A sua inversa ≤−1, que se denota por ≥, e tambem 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 tambem de ordem parcial.

Mais alguns exemplos:

• A ordem lexicografica em Rn definida por

(x1, . . . , xn) ≤lex (y1, . . . , yn) sse (∀i xi = yi) ou (k = min{i | xi 6= yi} ∧ xk ≤ yk)

A ordem do dicionario (de Portugues) e um exemplo duma “ordem lexicografica” no

conjunto das palavras de alfabeto {a, b, c, . . . , z} ∪ {−}.

• A relacao definida nos inteiros positivos pelos pares (m,n) tais que n e multiplo de m

tambem e de ordem parcial em Z+.

• Qualquer que seja o conjunto A, a relacao de inclusao ⊆ em 2A (conjunto dos subcon-

juntos de A) e de ordem parcial. A relacao inversa e ⊇, tambem e de ordem parcial.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 66: Alguns Tópicos de Matemática Discreta

5.4. RELACOES DE ORDEM PARCIAL 58

E usual representar as relacoes de ordem parcial por �. Um conjunto parcialmente

ordenado e um par (A,�) em que A e um conjunto e � uma relacao 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, ja que ∀x, y ∈ R ( x ≤ y ∨ y ≤ x).

(Z+, |) nao e totalmente ordenado, sendo | a relacao “divide”. Recorde que:

m|n sse ∃p ∈ Z+ n = mp

ou seja m|n sse n e multiplo de m. De facto, existem x, y ∈ Z+ tais que x nao divide y nem

y divide x. Por exemplo, (2, 3) /∈ |, e (3, 2) /∈ |.Seja D = {x ∈ Z+ | x divide 64}. Entao a restricao de | a D e uma ordem total, ou seja

(D, |) e totalmente ordenado.

(2A,⊆) nao e totalmente ordenado, se A tiver pelo menos dois elementos. Por exemplo,

A = {1, 2}, 2A = {∅, {1}, {2}, A}, e {2} 6⊆ {1} e {1} 6⊆ {2}.

(Rn,≤lex) e totalmente ordenado. Mas, (Rn,≤n), para n ≥ 2 (fixo), nao esta totalmente

ordenado.

Exercıcio 5.4.1 Mostrar que se R e de ordem parcial (total) em A entao R−1 tambem e de

ordem parcial (total) em A.

5.4.1 Diagrama de Hasse

Uma relacao de ordem parcial definida num conjunto finito, representa-se graficamente por

um Diagrama de Hasse. E um grafo nao dirigido que se obtem por simplificacao do grafo

da relacao removendo todos os lacetes e todos os ramos que podem ser deduzidos pela transiti-

vidade da relacao. Convenciona-se ainda que se um elemento precede (na relacao � definida)

um outro elemento, entao o vertice do primeiro ficara situado mais abaixo na figura, e por

isso pode-se substituir “setas” (ramos orientados) por “segmentos” (ramos nao orientados).

Exemplo 37 A esquerda apresenta-se o diagrama de Hasse da restricao da relacao divide

ao conjunto dos divisores de 16. A direita encontra-se o diagrama de Hasse para a restricao

da mesma relacao ao conjunto dos divisores de 30.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 67: Alguns Tópicos de Matemática Discreta

5.4. RELACOES DE ORDEM PARCIAL 59

16

8

4

2

1

30oooooo

PPPPPP

6OOOOOO 10

ooooooPPPPPP 15

nnnnnn

2OOOOOO 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}

>>>>

>>>>

>>>>

{1, 3}

>>>>

>>>>

>>>>

����

����

����

{2, 3, 4}nnnnnnn

PPPPPPP

{2, 3}ooooooo

{3, 4}nnnnnnnn

{2, 4}

ddddddddddddddddddddddddddddddd

nnnnnnnn

{1}

WWWWWWWWWWWWWWWWWWWW {2}OOOOOOOOO {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}}) \ {∅}, ⊆ ) nao tem mınimo, mas

tem maximo. Os elementos {1}, {2}, {3} e {4} sao elementos minimais.

{1, 2, 3, 4}XXXXXXXXXXXXXXXXX

mmmmmmm

{1, 2}

CCCC

CCCC

CCCC

C{1, 3}

CCCC

CCCC

CCCC

C

{{{{

{{{{

{{{{

{{2, 3, 4}

nnnnnnnPPPPPPP

{2, 3}

mmmmmmmmm{3, 4}

nnnnnnnn{2, 4}

dddddddddddddddddddddddddddddddddd

nnnnnnnn

{1} {2} {3} {4}

5.4.2 Maximos, mınimos, supremo, ınfimo, majorantes e minorantes

Seja � uma relacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 68: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO 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, entao s designa-se por maximo 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, entao s designa-se por mınimo de S.

• m ∈ S e elemento maximal de S se nao existe s′ ∈ S tal que s′ 6= s e s � s′.

• m ∈ S e elemento minimal de S se nao existe s′ ∈ S tal que s′ 6= 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 sao reticulados.

16

8

4

2

1

{1, 2, 3}nnnnnnn

PPPPPPP

{1, 2}PPPPPPPP{1, 3}

nnnnnnnnPPPPPPPP{2, 3}

nnnnnnnn

{1}QQQQQQQQQQ {2} {3}

mmmmmmmmmm

O conjunto parcialmente ordenado (Z+, |) e um reticulado, sendo | a relacao “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 multiplo comum e mdc o maximo 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 Relacao para uma Propriedade

Seja R uma relacao binaria em A. Se existir alguma relacao binaria em A que contenha R

e goze da propriedade P , entao a menor (no sentido da inclusao de conjuntos) das relacoes

satisfazendo tal condicao designa-se por fecho da relacao R para a propriedade P . Ou

seja, se RP for o fecho da relacao R para a propriedade P entao

(i) R ⊆ RP ⊆ A×A, e

(ii) toda relacao S ⊆ A×A que goze da propriedade P e contenha R, contem tambem RP .

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 69: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 61

Por exemplo, se Rsim denotar o fecho simetrico de R entao

• R ⊆ Rsim ⊆ A×A, e

• ∀S ⊆ A×A ((R ⊆ S ∧ S simetrica)⇒ S ⊇ Rsim), ou seja, qualquer relacao S definida

em A que seja simetrica e contenha R, contem tambem Rsim.

Exemplo 40 Seja A = {1, 2, 3, 4, 5} e sejam θ e β relacoes binarias 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 ��

// 2•GFEDBC

oo 3•GFEDBC

oo •4 •5O grafo de β:

•1@AGFED ��

// •2oo •3 •5

•4

OO

O fecho reflexivo de θ e θ ∪ {(4, 4), (5, 5)}. O fecho simetrico θ ∪ {(2, 1)}, e o fecho

transitivo e θ porque θ e transitiva.

O grafo do fecho reflexivo de θ:

•1@AGFED ��

// •2GFEDBC

oo •3GFEDBC

oo •4GFEDBC

oo •5GFEDBC

oo

O grafo do fecho simetrico de θ:

•1@AGFED ��

// •2ooGFEDBC

oo •3GFEDBC

oo •4 •5

O fecho reflexivo de β e β ∪ {(2, 2), (3, 3), (4, 4), (5, 5)}. O fecho simetrico β ∪ {(1, 4)} e

o transitivo e β ∪ {(2, 2), (4, 2)}.O grafo do fecho reflexivo de β:

•1@AGFED ��

// •2ooGFEDBC

oo •3BCEDGF��

•5BCEDGF��

•4

OO

GF@ABC OO

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 70: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 62

O grafo do fecho simetrico de β:

•1@AGFED ��

��

// •2oo •3 •5

•4

OO

O grafo do fecho transitivo de β:

•1@AGFED ��

// •2ooGFEDBC

oo •3 •5

•4

OO ==||||||||

O fecho simetrico e transitivo de β e β ∪ {(2, 2), (4, 2), (1, 4), (2, 4), (4, 4)}.

•1@AGFED ��

��

// •2oo

}}||||

||||

GFEDBCoo •3 •5

•4

OO ==||||||||

GF@ABC OO

Nao faz sentido falar em fecho antissimetrico. Se uma relacao nao e antissimetrica,

entao qualquer relacao que a contenha tambem nao e antissimetrica.

5.5.1 Fecho transitivo e percursos em grafos

Dada uma relacao R ⊆ A×A, define-se, para cada i ∈ Z+, a relacao Ri do modo seguinte:

R1 = R

Ri = RRi−1, i ≥ 2 (composta de R e Ri−1)

Proposicao 24 Uma relacao binaria R definida em A e transitiva se e so se R2 ⊆ R.

Prova: Se R2 6⊆ R entao existiam x, y ∈ A tais que (x, y) ∈ R2 e (x, y) /∈ R. Por

definicao R2 = RR, donde xR2y se e so 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 nao seria transitiva. Logo, se R

e transitiva entao R2 ⊆ R.

A prova do recıproco, deduz-se trivialmente do Corolario 25.1, o qual so sera demonstrado

a frente. De facto, desse Corolario, podemos concluir que se R2 ⊆ R entao R+ = R. Assim,

como R+ (fecho transitivo de R) e transitiva, R e transitiva. ut

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 71: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 63

Se A for finito, podemos desenhar o grafo de R. Dados dois vertices u, v ∈ A, chama-se

percurso de u para v no grafo a qualquer sequencia finita formada por um ou mais ramos do

grafo, tal que o extremo final de qualquer ramo da sequencia coincide com o extremo inicial

do ramo seguinte na sequencia. O comprimento do percurso e numero 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 so se existir um

percurso de u para v no grafo de R.

Lema 3 Seja R uma relacao definida em A. Para quaisquer elementos x e y de A, e qualquer

inteiro positivo k tem-se xRk+1y se e so se existem k elementos de A, sejam x1, . . . xk, tais

que xRx1 ∧ . . . ∧ xiRxi+1 ∧ . . . ∧ xkRy.

Prova: Mostremos, por inducao sobre k, que para todo k ∈ Z+ e quaisquer x, y ∈ A

xRk+1y sse ∃x1, . . . , xk ∈ A (xRx1 ∧ . . . ∧ xkRy) (5.3)

Mostrar que (5.3) e valida para k = 1, equivale a mostrar que xR2y se e so se existe x1

tal que xRx1 ∧ x1Ry, o que e trivialmente valido por definicao de R2.

Provemos agora que se (5.3) e valida para um dado k ∈ Z+ entao e valida para k + 1.

Sejam x, y ∈ A tais que xR(k+1)+1y. Entao, usando a definicao de R(k+1)+1, vem

xR(k+1)+1y sse ∃z ∈ A xRz ∧ zRk+1y

Mas, por hipotese de inducao,

zRk+1y sse ∃y1 . . . yk ∈ A (zRy1 ∧ . . . ∧ ykRy)

Assim,

xR(k+1)+1y sse ∃z, y1 . . . yk ∈ A (xRz ∧ zRy1 ∧ . . . ∧ ykRy)

Se fizermos x1 = z, x2 = y1, . . . , xk+1 = yk vem

xR(k+1)+1y sse ∃x1, x2 . . . xk+1 ∈ A (xRx1 ∧ x1Rx2 ∧ . . . ∧ xk+1Ry).

Logo, mostramos que (5.3) esta nas condicoes do princıpio de inducao. Logo, por tal princıpio,

(5.3) e valida para todo k ∈ Z+. ut

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 72: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 64

Exemplo 41 Seja R a relacao binaria em {1, 2, 3, 4, 5, 6, 7} representada pelo grafo seguinte.

1• // 2•

��

// 5• // 6•oo

��4•

OO

3•oo 7•

OO

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 3R 4 ∧ 4R 1 ∧ 1R 2 ∧ 2R 3.

• (5, 5) ∈ R+ pois (5, 5) ∈ R2 ja que 5R 6 ∧ 6R 5.

• Como 3R 4 ∧ 4R 1 ∧ 1R 2 ∧ 2R 5 ∧ 5R 6 ∧ 6R 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 sequencia 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 relacoes binarias

definidas em H por:

(x, y) ∈ m~ae sse x e mae 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 avo paterna de y, x e avo materno de y, x e avo ou avo de y, x e ascendente de y, e x e

descendente de y.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 73: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 65

Lema 4 A composicao de relacoes binarias e associativa.

Prova: Sejam α ⊆ A×B, β ⊆ B × C e γ ⊆ C ×D relacoes binarias. Entao,

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 composicao

e associativa. ut

Lema 5 Seja R uma relacao definida num conjunto A. Entao, quaisquer que sejam os in-

teiros positivos n e k tem-se Rn+k = RnRk.

Prova: Seja R ⊆ A×A. Vamos mostrar por inducao sobre n ∈ Z+ que

∀n ∈ Z+ ∀k ∈ Z+ Rn+k = RnRk. (5.4)

Se n = 1 entao por definicao de Ri tem-se R1+k = RRk para todo k ∈ Z+, pelo que a

proposicao e verdade para n = 1. Vamos mostrar agora que qualquer que seja n ∈ Z+,

( ∀k ∈ Z+ Rn+k = RnRk =⇒ ∀k ∈ Z+ Rn+1+k = Rn+1Rk ).

Sejam k, n quaisquer em Z+. Tem-se,

Rn+1+k = RRn+k (por definicao de Ri)

= R(RnRk) (por hipotese de inducao)

= (RRn)Rk (pela associatividade da composicao)

= (Rn+1)Rk (por definicao de Ri)

Mostramos que as condicoes do princıpio de inducao se verificam, pelo que se conclui por esse

princıpio a validade de (5.4) ut.

Proposicao 25 (Caracterizacao dos fechos) Seja R uma relacao binaria em A 6= ∅. O

fecho reflexivo de R e R∪IA, sendo IA a relacao identidade em A (i.e., IA = {(a, a) : a ∈ A}).O fecho simetrico de R e R ∪R−1. O fecho transitivo de R e

i∈Z+ Ri.

Prova: Qualquer relacao binaria em A que seja reflexiva tera que conter

{(a, a) | a ∈ A}

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 74: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 66

ou seja, IA. Por definicao, o fecho reflexivo de R, seja Rref, e uma relacao reflexiva, pelo que

Rref ⊇ IA. Ainda por definicao, Rref ⊇ R. Assim, Rref ⊇ R ∪ IA. R ∪ IA e reflexiva, e

qualquer relacao definida em A que seja reflexiva e contenha R, contem R∪ IA. Logo, R∪ IA

e o fecho reflexivo de R.

R∪R−1 contem R e e simetrica. Se (x, y) ∈ R∪R−1 entao (x, y) ∈ R∨ (x, y) ∈ R−1. Por

definicao de inversa, se (x, y) ∈ R entao (y, x) ∈ R−1, e se for (x, y) ∈ R−1 entao (y, x) ∈ R.

Portanto, se (x, y) ∈ R∪R−1 entao (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 relacao S definida em A que seja

simetrica e contenha R, contem R ∪ R−1, concluimos que R ∪ R−1 e o fecho simetrico de R

(por definicao de fecho simetrico). Ora, se S e simetrica e S ⊇ R, entao S ⊇ R−1. De facto,

(x, y) ∈ R−1 ⇒ (y, x) ∈ R (por definicao 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)

Comecamos pela primeira inclusao. Vamos provar que⋃

i∈Z+ Ri (⊆ A × A) e transitiva

e contem R, pelo que por definicao de fecho transitivo se concluira (5.5). Como R = R1

(por definicao 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 definicao de uniao de relacoes, se (x, y) ∈ ⋃

i∈Z+ Ri entao 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+ xRky ∧ yRpz,

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 75: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 67

o que implica ∃p, k ∈ Z+ xRkRpz. Entao, 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 tambem (5.6). Para tal, vamos usar inducao sobre n ∈ Z+ para

provar que

∀n ∈ Z+ R+ ⊇⋃

1≤i≤n

Ri

o que implica a validade de (5.6). Se n = 1 entao⋃

1≤i≤n Ri = R. E, R ⊆ R+ por definicao

de fecho. Supondo agora que R+ ⊇ ⋃

1≤i≤k Ri, vamos mostrar que entao R+ ⊇ ⋃

1≤i≤k+1 Ri.

Sejam x, y ∈ A tais que (x, y) ∈ ⋃

1≤i≤k+1 Ri. Queremos concluir que entao (x, y) ∈ R+.

Por definicao de uniao, (x, y) ∈ ⋃

1≤i≤k+1 Ri se e so se (x, y) ∈ ⋃

1≤i≤k Ri ou (x, y) ∈ Rk+1.

Se for (x, y) ∈ ⋃

1≤i≤k Ri entao, por hipotese de inducao xR+y. Se for (x, y) ∈ Rk+1,

entao existe z ∈ A tal que xRz ∧ zRky (uma vez que Rk+1 = RRk por definicao).

Como R ⊆ R+, e Rk ⊆ ⋃

1≤i≤k Ri, e por hipotese de inducao⋃

1≤i≤k Ri ⊆ R+,

(xRz ∧ zRky)⇒ (xR+z ∧ zR+y).

Como por definicao de fecho transitivo, R+ e transitiva, vem xR+y.

Logo, pelo princıpio de inducao matematica e verdade que

∀n ∈ Z+ R+ ⊇⋃

1≤i≤n

Ri

De (5.5) e (5.6) segue R+ =⋃

i∈Z+ Ri. ut

Notacao. Sendo R uma relacao binaria num conjunto, R+ designa o fecho transitivo de R

e R? o seu fecho transitivo e reflexivo.

Exemplo 42 Seja R a relacao definida em Z+ por

xRy sse y = x + 3, x, y quaisquer em Z+

R nao e transitiva porque por exemplo (1, 4) ∈ R, (4, 7) ∈ R e (1, 7) /∈ R. Assim,

R ⊆ R+ 6= R. Vamos determinar R+, calculando⋃

i∈Z+ Ri. Cada Ri e uma relacao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 76: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 68

Para n ∈ Z+, teremos

Rn+1 = RRn = {(x, y) | ∃z ∈ Z+ xRz ∧ zRny} = {(x, y) | y = x + 3(n + 1)}

o que pode ser provado por inducao sobre n. Assim,

R+ =⋃

i∈Z+

Ri = {(x, y) ∈ Z+ × Z+ | ∃k ∈ Z+ y = x + 3k}.

O fecho simetrico e transitivo de R, seja Rst, e

Rst = {(x, y) ∈ Z+ × Z+ | ∃k ∈ Z y = x + 3k}

Pode-se mostrar que o fecho simetrico e transitivo e sempre o fecho transitivo do fecho

simetrico.

Exercıcio 5.5.2 Seja R uma relacao definida em A.

a) Mostre que se R e simetrica entao R+ e simetrica.

b) Usando se necessario a alınea anterior, prove que o fecho simetrico e transitivo de R e

(R ∪R−1)+, ou seja o fecho transitivo do fecho simetrico de R.

c) Verifique se

(a) o fecho simetrico e transitivo e o fecho simetrico 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 relacao definida num conjunto finito

Mostramos que o fecho transitivo e dado por uma uniao infinita de relacoes. No entanto, em

certos casos essa uniao pode-se reduzir de facto a uma uniao finita.

Corolario 25.1 Seja R ⊆ A × A (com A nao necessariamente finito). Se existir algum

inteiro positivo m tal que Rm+1 ⊆ ⋃

1≤k≤m Rk, entao 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 inducao sobre k que

∀k ≥ m + 1 Rk ⊆ ⋃

1≤i≤m Ri (5.7)

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 77: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 69

pelo que, R+ =⋃

i∈Z+ Ri ⊆ ⋃

1≤i≤m Ri. Como tambem⋃

i∈Z+ Ri ⊇ ⋃

1≤i≤m Ri, conclui-se

R+ =⋃

1≤i≤m Ri.

A validade no caso k = m + 1 e trivial, ja que Rm+1 esta nas condicoes do corolario.

Tomemos como hipotese de inducao a validade de (5.7) para um qualquer k ≥ m+1 fixo,

e vamos mostrar que entao tambem e valida 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 definicao de Rk+1 tem-se (x, y) ∈ Rk+1 se e so se existe z ∈ A tal que xRz ∧ zRky.

Usando a hipotese de inducao sobre Rk, vem xRz e z⋃

1≤i≤m Ri y. Logo, por definicao de

uniao, 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 inducao matematica, (5.7) e valida. ut

Corolario 25.2 Seja R uma relacao definida em A (nao necessariamente finito). Se existir

m ∈ Z+ tal que Rm = ∅ entao R+ =⋃

1≤k≤m−1 Rk (supoe-se que e vazia a uniao das relacoes

Rk com 1 ≤ k ≤ 0).

Prova: Se Rm = ∅, para algum m ∈ Z+, entao ∀k ≥ m Rk = ∅. Assim, R+ =⋃m−1

k=1 Rk.

A prova tambem e imediata se se recorrer ao Corolario 25.1. Ja que Rm ⊆ ⋃m−1k=1 Rk se

Rm = ∅. ut

Corolario 25.3 Seja R uma relacao definida num conjunto finito A, e seja n = |A|. Entao

Rn+1 ⊆ ⋃

1≤j≤n Rj e R+ =⋃

1≤j≤n Rj

Prova: Sejam x, y ∈ A tais que xRn+1y. Entao pelo Lema 3, existem x1, . . . xn tais que

xRx1 ∧ . . . ∧ xnRy.

Como A so tem n elementos distintos, ou ocorrem repeticoes em x1, . . . , xn, ou x e y

ocorrem em x1, . . . xn.

Se for xi = xj para algum (i, j) com i 6= j, entao 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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 78: Alguns Tópicos de Matemática Discreta

5.5. FECHOS DUMA RELACAO PARA UMA PROPRIEDADE 70

Se nao existirem repeticoes em x1, . . . xn, entao x = xi para algum i.

Podemos entao 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 entao existe k ≤ n tal que xRky.

Logo, Rn+1 ⊆ ⋃

1≤j≤n Rj.

Entao, pelo Corolario 25.1, R+ =⋃

1≤j≤n Rj. ut

Exemplo 43 Seja R a relacao binaria em {1, 2, 3, 4, 5, 6, 7} representada pelo grafo seguinte.

1• // 2•

��

// 5• // 6•oo

��4•

OO

3•oo 7•

OO

Ja determinamos anteriormente R+ por analise do grafo. Tambem poderiamos ter determi-

nado R+ analiticamente: R+ = R ∪R2 ∪R3 ∪R4 ∪R5 ∪R6 ∪R7.

MR2 = (MR)2 = MRMR

MR3 = MR2MR

MR4 = (MR)4 = MR2MR2

MR5 = MR4MR

...

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 nao vazio, MR∪S [i, j] = MR[i, j] ∨MS [i, j] com 1 ≤ i, j ≤ |A|.

Exemplo 44 Note que se R for a relacao definida em {1, 2, 3, 4} representada pelo grafo

seguinte1• // 2•

��4•

OO

3•oo

entao (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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 79: Alguns Tópicos de Matemática Discreta

Capıtulo 6

Grafos e Multigrafos

Os grafos representam um modelo fundamental em Computacao, surgindo em

• problemas de caminhos (por exemplo, caminho mınimo ou maximo);

• representacao de redes (por exemplo, de computadores);

• descricao de sequencia de programas;

• desenho de circuitos integrados;

• representacao de relacoes (por exemplo, ordenacao, emparelhamento);

• analise sintactica de linguagens (arvores sintaticas), etc.

frase

{{vvvvv

**UUUUUUUUUUUUU

fn

##HHHH

HH

}}{{{{

fv

##GGGG

G

zzuuuuu

uu

det

��

n

��

v

��

fn

zzvvvvv

��det

��

n

��o rato cacou o gato

6.1 Grafos Dirigidos

Um grafo dirigido e definido por um par G = (V,E) em que V e um conjunto de vertices e

E um conjunto de ramos orientados que ligam pares de vertices de V , nao existindo mais do

que um ramo com a mesma orientacao a ligar dois vertices.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 80: Alguns Tópicos de Matemática Discreta

6.1. GRAFOS DIRIGIDOS 72

Quando o conjunto de vertices e finito (o que implica que o conjunto de ramos tambem

o seja), o grafo e finito, podendo-se desenhar. Por exemplo,

•1

��

// •2GFEDBC

oo // •3 •5GFEDBC

oo •6

•4

OO ==||||||||

GF@ABC OO

e um grafo em que o conjunto de ramos e E = {(1, 4), (1, 2), (2, 2), (2, 3), (4, 1), (4, 4), (5, 5)} e

o conjunto de vertices e V = {1, 2, 3, 4, 5, 6}.Se (x, y) ∈ E, entao o vertice x e a origem e o vertice y o fim do ramo (x, y), dizendo-se

que x e y sao 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 vertice, chamam-se lacetes.

No exemplo, sao tres os ramos incidentes no vertice 2, isto e, que terminam no vertice 2.

Este vertice tem grau de entrada tres e grau de saıda dois.

O grau de entrada dum vertice e o numero de ramos que tem fim nesse vertice. O grau

de saıda e o numero de ramos que tem origem nesse vertice.

No exemplo, os vertices 5 e 6 sao vertices isolados, pois nao sao origem nem fim de

nenhum ramo com algum extremo noutro vertice.

Um percurso (finito) e uma sequencia 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 sequencia. Um percurso num grafo dirigido fica bem identificado se se indicar a sequencia

de vertices por onde passa. Para o exemplo, o percurso (1, 4), (4, 1), (1, 2), (2, 2), (2, 2), (2, 3)

pode ser dado pela sequencia de vertices 1, 4, 1, 2, 2, 2, 3.

A origem do percurso e a origem do primeiro ramo no percurso e o 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 numero de ramos que o constituem.

Assim, 1, 4, 1, 2, 2, 2, 3 tem origem em 1, fim em 3 e comprimento seis, nao sendo um

circuito. Note que, qualquer percurso de comprimento k envolve k + 1 vertices, nao necessa-

riamente distintos.

Neste percurso, alguns vertices sao visitados mais do que uma vez, concretamente os

vertices 1 e 2, e o ramo (2, 2) e usado mais do que uma vez.

Na terminologia moderna para grafos, caminho e um percurso sem repeticao de vertices

e ciclo e um percurso fechado que nao tem repeticao de vertices com excepcao do inicial e

final. Designa-se por pista um percurso que nao contem repeticao de ramos.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 81: Alguns Tópicos de Matemática Discreta

6.1. GRAFOS DIRIGIDOS 73

A terminologia de grafos e pouco consistente, pelo que e sempre necessario contextualizar

cada termo usado na bibliografia da area. Na terminologia classica de grafos usava-se a

designacao de caminho como sinonimo de percurso. Chamava-se entao caminho simples a um

percurso em que nenhum ramo ocorre duas ou mais vezes e caminho elementar a um percurso

em que nenhum vertice ocorre duas ou mais vezes. De acordo com a mesma terminologia,

ciclo era sinonimo de circuito, chamando-se “ciclo simples” se fosse tambem caminho simples.

6.1.1 Multigrafos dirigidos.

O conceito de grafo pode ser de certo modo generalizado para permitir a existencia de varios

ramos com a mesma origem e fim. Multigrafo dirigido e um terno (V,A,Φ) em que V e um

conjunto de vertices (ou nos), A um conjunto de ramos (ou arestas) e Φ e uma funcao

de A em V × V que a cada ramo associa um par de vertices.

Assim, um grafo dirigido (simples) e um multigrafo dirigido (V,A,Φ) em Φ e uma

funcao injectiva. Cada par ordenado de vertices fica associado por Φ quando muito a um

ramo. Um grafo dirigido fica bem definido por um par (V, ρ) em que ρ e uma relacao binaria

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) sao os vertices u e v respecti-

vamente. Usam-se tambem as designacoes de: no inicial (final), vertice inicial (final) e

extremos.

Num multigrafo dirigido, o grau de entrada dum vertice e o numero de ramos que tem

fim nesse vertice; o grau de saıda e o numero de ramos que tem origem nesse vertice.

Exemplo 45 Considere o multigrafo dirigido representado na figura.

v1

~α5

��

~α6

��

~α7

��

@AGF~α1ED �� ~α2 //

v2

~α3

oo EDBC ~α4@AOO

v3

~α8

>>}}}}}}}}}}}}}}}}

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. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 82: Alguns Tópicos de Matemática Discreta

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 sequencia de ramos ~α1~α5~α8~α3 ~α6 e um percurso de v1 para v3 (tem ciclos). Este percurso

nao fica bem determinado se so indicar a sequencia de vertices por onde passa.

Um percurso (finito) num multigrafo e uma sequencia 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 sequencia. 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 sequencia de vertices

por onde passa. Assim, se ~αi = (vi, vi+1), entao (v1, . . . vk, vk+1) representa um e um so

percurso num grafo dirigido. Tambem 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 numero 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 relacoes binarias

Grafo de uma relacao binaria R definida em A e um grafo dirigido (V, ρ): os vertices

do grafo identificam-se com os elementos do conjunto A e a relacao ρ com a relacao R.

Proposicao 26 (cf. Lema 3, capıtulo 5) Seja G = (V, ρ) um grafo dirigido e sejam u e

v vertices em V. Dado k ∈ Z+ existe percurso de u para v de comprimento k se e so se

(u, v) ∈ ρk.

Corolario 26.1 (cf. Proposicao 25, capıtulo 5)) Seja G = (V, ρ) um grafo dirigido. Sejam

u e v vertices em V. Existe algum percurso de u para v se e so se (u, v) ∈ ρ+, sendo ρ+ o

fecho transitivo de ρ.

Notando que qualquer percurso de comprimento k envolve k + 1 vertices facilmente se

mostra a seguinte proposicao.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 83: Alguns Tópicos de Matemática Discreta

6.2. GRAFOS NAO DIRIGIDOS 75

Corolario 26.2 Seja G = (V, ρ) um grafo dirigido finito. Qualquer percurso de ordem maior

ou igual a |V| contem um circuito.

Corolario 26.3 (por Corolarios 25.3, capıtulo 5)) e 26.2 ) Seja G = (V, ρ) um grafo dirigido

finito. Sejam u e v vertices em V. Existe algum percurso de u para v se e so se existe algum

percurso de u para v de ordem nao superior ao |V|. E, se u 6= v entao existe algum percurso

de u para v se e so se existe algum percurso de u para v de ordem inferior ao |V|.

Paralelamente, tambem se pode mostrar que se R e uma relacao binaria num conjunto

finito A, |A| = n ≥ 2 e x, y ∈ A sao distintos, entao xRny se e so se existir p, tal que

1 ≤ p < n e (x, y) ∈ Rp. Verifique que este resultado nao pode ser generalizado a pares da

forma (x, x). Compare com o Corolario 25.3, capıtulo 5.

Dados u e v vertices de um multigrafo dirigido, diz-se que v e acessıvel de u se e so se

u = v ou existe no multigrafo algum percurso de u para v.

Um multigrafo dirigido G e fortemente conexo se e so se qualquer vertice e acessıvel de

qualquer outro vertice nesse multigrafo.

Corolario 26.4 Um grafo dirigido G = (V, ρ) e fortemente conexo se e so se ρ? = V × V ,

sendo ρ? o fecho transitivo e reflexivo de ρ.

6.2 Grafos Nao Dirigidos

Multigrafo nao dirigido e um terno (V, E ,Φ) em que V e um conjunto de vertices (ou

nos), E um conjunto de ramos e Φ e uma funcao de E no conjunto de pares nao ordenados

de elementos de V. Escreve-se Φ(α) = 〈u, v〉. Usaremos 〈u, v〉 ou {u, v} para representar um

par nao ordenado.

Grafo nao dirigido (simples) e um multigrafo nao dirigido (V, E ,Φ) em que Φ e uma

funcao injectiva. Cada par de vertices nao ordenado fica associado por Φ quando muito a um

ramo.v1

v2

BBBB

BBBB

||||

||||

v3 v4

v1 v5

v2

BBBB

BBBB

||||

||||

v3 v4

A esquerda esta representado um multigrafo nao dirigido que nao e grafo dirigido, ja que ha

mais do que um ramo a ligar v1 e v2. A direita temos um grafo nao dirigido.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 84: Alguns Tópicos de Matemática Discreta

6.2. GRAFOS NAO DIRIGIDOS 76

Multigrafo adjunto de um multigrafo nao dirigido G = (V, E ,Φ) e um multigrafo diri-

gido GA = (V,A,Ψ) tal que a cada ramo de E unindo vertices diferentes correspondem dois

ramos em A, e vice-versa. Se Φ(α) = 〈u, v〉 e u 6= v entao existem dois ramos ~α1 e ~α2 em Atais que Ψ( ~α1) = (u, v) e Ψ( ~α2) = (v, u).

O grafo adjunto de um grafo nao dirigido G = (V, E ,Φ) e um grafo dirigido (V, ρ) em que

ρ e simetrica. Tem-se (u, v) ∈ ρ e (v, u) ∈ ρ sse Φ(α) = 〈u, v〉 para algum α ∈ E .

Se Φ(α) = 〈u, v〉 entao u e v dizem-se extremos do ramo α.

Um percurso (finito) num multigrafo nao dirigido e uma sequencia finita formada por

um ou mais ramos do multigrafo que corresponde a um percurso no multigrafo adjunto.

Num grafo nao dirigido (〈v0, v1〉, 〈v1, v2〉, . . . 〈vk−1, vk〉) representa um percurso entre v0 e

vk. Se se indicar a sequencia de vertices 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 numero de ramos.

Um circuito num grafo nao 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 nao

tem repeticao de vertices com excepcao do inicial e final.

Um grafo nao dirigido e acıclico se e so se nao contem ciclos (nem lacetes).

v1

v2

BBBB

BBBB

||||

||||

v3 v4

v1 v5

v2

BBBB

BBBB

||||

||||

v3 v4

tem circuitos tem ciclos (simples)

nao tem ciclos (simples) nao e acıclico

Grau de um vertice num grafo nao dirigido e o numero de ramos que tem esse vertice

como extremo.

Um subgrafo1 de um grafo G = (V, E) e um grafo G′ = (V ′, E ′) em que V ′ ⊆ V, E ′ ⊆ E .Tambem se pode definir subgrafo de um multigrafo (dirigido ou nao).

1Alguns autores consideram ainda que E ′ tera que ter todos os ramos de E que unem vertices em V ′,

chamando subgrafo parcial se algum ramo que liga vertices em V ′ nao pertencer a E ′.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 85: Alguns Tópicos de Matemática Discreta

6.2. GRAFOS NAO DIRIGIDOS 77

6.2.1 Grafos Conexos

Num multigrafo nao dirigido, dado um par de vertices u, v diz-se que v e acessıvel de u se

e so se u = v ou existe no multigrafo algum percurso entre u e v. Facilmente se reconhece

que a relacao “acessibilidade” e de equivalencia.

Um multigrafo nao dirigido G e conexo se e so se qualquer vertice e acessıvel de qualquer

outro vertice nesse multigrafo.

Dado um qualquer multigrafo nao dirigido G, pode-se mostrar que cada classe de equi-

valencia da relacao de acessibilidade corresponde a um subgrafo de G que e conexo e que

e maximo (no sentido deixa de ser conexo se se tentar juntar mais algum vertice de G).

Tais subgrafos dizem-se componentes conexas de G. Por abuso de linguagem, chamare-

mos ainda componentes conexas as classes de equivalencia da relacao de acessibilidade. O

conjunto de vertices na componente identifica-a perfeitamente.

O multigrafo (nao dirigido) seguinte tem duas componentes conexas.

v1

v2

LLLLLLLLLLLL

rrrrrr

v3 v4

v5 v6

iiiiiiiiiiiiii

v7

LLLLLL

v8

A relacao de acessibilidade nao depende da existencia de varios ramos entre dois vertices.

A cada multigrafo nao dirigido podemos associar um grafo nao dirigido substituindo cada

conjunto de ramos entre um mesmo par de vertices por apenas um ramo. Podemos ainda

retirar todos os lacetes. O grafo nao dirigido assim definido determina a mesma relacao de

acessibilidade que o multigrafo dado.

Proposicao 27 Um multigrafo nao dirigido e conexo se e so se o seu multigrafo adjunto e

fortemente conexo.

Lema 6 Seja G = (V, ρ) um grafo nao 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 vertice de G. Se v tem grau m, entao se retirar v e todos os ramos com

extremo em v, o grafo resultante tem quando muito m componentes conexas.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 86: Alguns Tópicos de Matemática Discreta

6.2. GRAFOS NAO 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 nao inclui o ramo 〈u, v〉}

e mostre que se V\Av 6= ∅ entao u /∈ Av e V\Av e o conjunto

{w ∈ V | w = u ou existe algum percurso em G entre w e u que nao inclui o ramo 〈u, v〉}

e Av e V\Av correspondem a subgrafos conexos (e maximais) de G, ou seja componentes

conexas. Para (ii), use inducao sobre o numero de ramos retirados.

6.2.2 Condicao necessaria para um grafo ser conexo

Pretende-se ligar um conjunto de localidades, seja {l1, l2, . . . , ln}, por estradas. Qual o numero

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 questao – “pelo

menos n−1 estradas terao que ser construıdas”. Esse numero e suficiente desde que as ligacoes

sejam feitas com algum cuidado (cf. Proposicao 29 a frente).

Proposicao 28 E condicao necessaria para que um qualquer grafo nao dirigido e finito (V, E)seja conexo que |E| ≥ |V| − 1.

Prova: Vamos mostrar por inducao sobre o numero de vertices do grafo que

∀n ∈ Z+ ∀G G = (V, E) grafo nao dirigido conexo, |V| = n ⇒ |E| ≥ |V| − 1

A condicao e verdadeira para n = 1 ja que o grafo nao dirigido com 1 so vertice e zero

ramos e trivialmente conexo. Vamos tomar como hipotese de inducao a validade da condicao

para todos os grafos nao dirigidos e conexos cujo numero de vertices nao excede k. Ou seja,

∀1 ≤ i ≤ k ∈ Z+ ∀G G = (V, E) grafo nao dirigido conexo, |V| = i ⇒ |E| ≥ |V| − 1

e vamos mostrar que entao a proposicao e valida para grafos com k + 1 vertices.

Seja G um grafo nao dirigido conexo e com k + 1 vertices. Como G nao tem vertices

isolados (ja que G e conexo e k + 1 ≥ 2) seja v um qualquer vertice de V e seja p ≥ 1 o

seu grau. Considere-se o subgrafo que se obtem retirando v e os p ramos com extremo em v.

Pelo Lema 6, tal grafo e constituıdo por m (m ≤ p) componentes conexas: sejam G1, . . . Gm.

Cada um dos Gi e nao dirigido, conexo, e tem um numero de vertices (seja ni) nao superior

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 87: Alguns Tópicos de Matemática Discreta

6.3. ARVORES 79

a k. Entao, por hipotese de inducao, o numero 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 vertice pertence a uma so componente conexa, pelo que∑m

i=1 ni = k.

Conclui-se assim por inducao matematica que se G = (V, E) e nao dirigido, finito e conexo,

entao |E| ≥ |V| − 1. ut

Exercıcio 6.2.2 Mostre que o recıproco da Proposicao 28 e falso ou seja, que existem grafos

nao dirigidos que nao sao conexos embora |E| ≥ |V| − 1.

Lema 7 Seja G um grafo nao dirigido conexo. Se G nao e acıclico entao e possıvel retirar

algum ramo a G de modo que o grafo resultante seja tambem conexo.

Lema 8 Seja G um grafo nao dirigido conexo e com pelo menos 2 vertices, tal que se se

retirar algum ramo, o grafo resultante e nao conexo. Entao G tem pelo menos dois vertices

de grau 1.

Exercıcio 6.2.3 Prove os Lemas 7 e 8. Para mostrar 8 use inducao sobre o numero de

vertices do grafo, e se necessario o resultado (i) do Lema 6.

6.3 Arvores

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

ramos) diz-se arvore degenerada.

•tttttt

JJJJJJ

• •JJJJJJ

tttttt •

• •

• •iiiiiiiiiiiii

•JJJJJJ

•JJJJJJ •

• •tttttt

•JJJJJJ

tttttt • •

• •arvore nao e arvore arvore

Proposicao 29 (caracterizacao das arvores) Sao equivalentes as seguintes caracterizacoes

de arvores nao degeneradas. Arvore nao degenerada e um grafo nao dirigido com n > 1

vertices

1. conexo e acıclico.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 88: Alguns Tópicos de Matemática Discreta

6.3. ARVORES 80

2. tal que entre cada par de vertices (distintos) existe um so caminho.

3. conexo, e se se retirar algum ramo (〈u, v〉, u 6= v) o grafo deixa de ser conexo.

4. conexo e se se juntar mais algum ramo sem alterar o conjunto de vertices, o grafo fica

com um e um so ciclo (simples).

5. acıclico e com n− 1 ramos.

6. conexo e com n− 1 ramos.

Prova: Vamos provar a equivalencia das caracterizacoes mostrando

(1)⇒ (2)⇒ (3)⇒ (4)⇒ (1)

(1)⇒ (5)⇒ (6)⇒ (1).

• (1) ⇒ (2) ja que se C e C ′ fossem dois caminhos distintos entre u e v, para algum par

de vertices u, v de G, entao CC ′ seria um circuito em G (e conteria um ciclo) pelo que

G nao seria acıclico.

• (2) ⇒ (3) ja que se se retirar um ramo, seja 〈u, v〉, o grafo deixa de ser conexo, pois

passa a nao existir caminho entre u e v, uma vez que entre cada par de vertices de G

existia um e um so caminho.

• (3)⇒ (4) se se juntar mais um ramo, seja 〈u, v〉 = α entao como ja 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, entao α tem tambem que estar nesse ciclo. Seja αC ′, esse outro ciclo.

Entao 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 nao conexo (cf. Lema 7),

o que contraria (3).

• (4)⇒ (1) se G ja tivesse algum ciclo entao se se juntar um ramo entre dois vertices 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) sao equivalentes. Para completar a prova da

Proposicao, vamos mostrar agora a equivalencia de (1), (5) e (6).

• (1) ⇒ (5) (por inducao sobre o numero de vertices) Se o grafo tiver exactamente 2

vertices entao tem apenas um ramo, e se for um vertice isolado, entao tem 0 ramos

(senao nao seria acıclico). Tomamos como hipotese de inducao a validade da condicao

para grafos com i vertices, 1 ≤ i ≤ k. E, vamos mostrar que entao ainda e valida para

grafos com k + 1 vertices.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 89: Alguns Tópicos de Matemática Discreta

6.3. ARVORES 81

Seja G = (V, E) um grafo com k + 1 vertices, conexo e acıclico. Como G e conexo e

tem pelo menos dois vertices, entao tem ramos. Retire-se um ramo de G, seja 〈u, v〉.Como ja mostramos que (1) e (3) sao equivalentes, o grafo resultante e nao conexo. Pelo

Lema 6 podemos afirmar que tem exactamente duas componentes conexas: sejam G1 e

G2. Sejam n1 e n2 o numero de vertices respectivos. Entao 1 ≤ ni ≤ k, e como cada

Gi e um subgrafo acıclico (senao G conteria ciclos) e conexo, tera que ter ni − 1 ramos

(por hipotese de inducao). Consequentemente,

|E| = (n1 − 1) + (n2 − 1) + 1 = (n1 + n2)− 1 = (k + 1)− 1 = k = |V| − 1.

Portanto, por inducao matematica podemos concluir que qualquer grafo nao dirigido

finito, acıclico e conexo tem exactamente menos um ramo do que vertices.

• (5)⇒ (6) Seja G um grafo qualquer com k vertices acıclico e com k−1 ramos. Se G nao

for conexo, entao seja m o numero 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 numero de vertices. Isto porque, ja mostramos que (1) ⇒ (5), e se alguma das

componentes se reduzir a um vertice tera que ter zero ramos.

Entao k− 1 =∑m

i=1(ni− 1) = k−m. Logo, m = 1, ou seja, G so tem uma componente

conexa, sendo portanto conexo.

• (6)⇒ (1) Se o grafo nao fosse acıclico entao, pelo Lema 7, poderiamos retirar um ramo,

sendo o grafo resultante ainda conexo. Como o grafo dado tinha n− 1 ramos, entao o

novo grafo teria n−2 ramos e seria conexo, o que contraria o resultado da Proposicao 28.

Logo, se G e conexo com n− 1 ramos entao G e conexo e acıclico. 2

Numa arvore nao degenerada, os vertices com grau 1 chamam-se folhas e os de grau

superior chamam-se nos internos ou simplesmente nos.

6.3.1 Arvores com raız

Arvore com raız e um grafo dirigido com n vertices e n− 1 ramos e tal que existe um e um

so vertice do qual todos sao acessıveis. Tal vertice chama-se a raız da arvore. As folhas numa

arvore com raız sao os vertices com grau de saıda zero. A raız da arvore e o unico vertice

com grau de entrada zero. Numa arvore com raız os filhos ou descendentes directos de

um no v sao os extremos finais de ramos com origem em v. Os descendentes de um no sao

os filhos desse no e os descendentes dos filhos desse no. Um no e pai dos seus filhos.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 90: Alguns Tópicos de Matemática Discreta

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 vertice esta totalmente ordenado.

As arvores sintacticas sao arvores ordenadas.

frase

}}zzzz

))SSSSSSSSSSS

fn

!!DDDD

D

������

fv

!!CCC

C

||yyyyy

y

det

��

n

��

v

��

fn

}}zzzz

��det

��

n

��o rato cacou o gato

expr

yysssss

��

**UUUUUUUUUUU

expr

��

expr

yysssss

��

%%KKKKK

inteiro

��

expr

��

expr

��inteiro

��

inteiro

��5 + 3 + 8

As arvores seguintes poderiam iguais se se considerasse que eram arvores com raız, mas

sao diferentes se se considerar que sao arvores ordenadas (e 1 < 2).

•1

��~~~~

~~~

2

��@@@

@@@@

•1

��~~~~

~~~

2

��@@@

@@@@

• •

•1

��~~~~

~~~

2

��@@@

@@@@

• •1

��~~~~

~~~

2

��@@@

@@@@

• •Os valores atribuıdos aos ramos especificam a ordem subentendida. Em geral, nao se colocam

esses valores pois convenciona-se que a representacao ja 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 vertice nao excede n. As arvores das figura anterior sao arvores binarias.

Quando se tem uma arvore binaria e usual falar da sub-arvore direita e na sub-arvore

esquerda dum no.

6.4 Percursos Eulerianos e Hamiltonianos

Um percurso de Euler num multigrafo e uma pista (ie, percurso sem repeticao de ramos)

que inclui todos os ramos desse multigrafo. Se tal percurso e um circuito diz-se circuito de

Euler.

Um exemplo classico de aplicacao e o Problema das sete pontes de Konigsberg ([Euler,

1736]): pretende-se partir dum local da cidade e regressar ao mesmo local passando por cada

ponte exactamente uma vez.

AAAA AAAA

��������

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 91: Alguns Tópicos de Matemática Discreta

6.5. GRAFOS PLANARES 83

Proposicao 30 Seja G um grafo nao dirigido, finito e sem vertices isolados. Existe um

circuito de Euler em G se e so se G e conexo e todos os vertices de G tem grau par. Existe

um percurso de Euler em G se e so se G e conexo e o numero de vertices 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 lapis

do papel e sem desenhar duas vezes a mesma linha, baseando-se na Proposicao 30.

Um percurso de Hamilton (1859) num multigrafo e um percurso que passa por cada

vertice do multigrafo uma e uma so vez.

Um circuito de Hamilton e um circuito com origem e fim no mesmo vertice e que passa

por cada um dos restantes vertices do multigrafo uma e uma so vez. Serve de modelo ao

Problema do caixeiro viajante, que tendo que visitar varias localidades, pretende saber qual

o melhor caminho a percorrer sem passar (se possıvel) duas vezes na mesma localidade.

Nao se conhece qualquer condicao necessaria e suficiente que garanta a existencia dum

percurso (nem dum circuito) de Hamilton num grafo. Apenas para alguns casos particulares.

Por exemplo: existe percurso hamiltoniano em qualquer grafo nao dirigido completo com pelo

menos dois vertices.

Um grafo nao dirigido, finito e sem lacetes, e tal que existe um ramo entre cada par de

vertices diferentes, diz-se completo. O grafo completo com n vertices, denota-se por Kn.

6.5 Grafos Planares

Um grafo e planar sse for possıvel representa-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 nao dirigido (V, E) diz-se bipartido se e so se existir uma particao {V1, V2} do

conjunto V tal que para todo 〈v1, v2〉 ∈ E se tem v1 ∈ V1 e v2 ∈ V2.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 92: Alguns Tópicos de Matemática Discreta

6.6. ISOMORFISMO DE GRAFOS 84

Se cada vertice em V1 estiver ligado a cada um dos vertices 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, nao bipartido).

@@@@

@@@

////

////

////

//•

~~~~~~~

@@@@

@@@ •

~~~~~~~

�������������� •

~~~~

~~~

@@@@

@@@

��������������

////

////

////

//

OOOOOOOOOOOOOO •

oooooooooooooo

• •

Estes dois grafos nao sao planares.

O Teorema de Kuratowski (1930) afirma que um grafo nao dirigido finito nao e planar

se e so se tiver como subgrafo K5 ou K3,3 ou algum grafo que possa ser obtido de K5 ou K3,3

por insercao ou eliminacao de vertices de grau 2. A prova deste teorema esta fora do ambito

da disciplina.

6.6 Isomorfismo de Grafos

Dois grafos dirigidos (V1, E1) e (V2, E2) sao isomorfos se e so se existir uma bijeccao f de V1

em V2 tal que (v1, v2) ∈ E1 sse (f(v1), f(v2)) ∈ E2. De modo semelhante, diz-se que dois

grafos nao dirigidos (V1, E1) e (V2, E2) sao isomorfos se e so se existir uma bijeccao f de V1

em V2 tal que 〈v1, v2〉 ∈ E1 sse 〈f(v1), f(v2)〉 ∈ E2. Tais bijeccoes preservam a estrutura de

ligacoes do grafo.

Por exemplo, os dois grafos seguintes sao 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 nao dirigidos conexos

que tem n vertices, para 1 ≤ n ≤ 4.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 93: Alguns Tópicos de Matemática Discreta

6.7. COLORACAO DE GRAFOS 85

1

2

3

4

6.7 Coloracao de Grafos

Considere o mapa da Europa. Qual e o numero mınimo de cores necessario para colorir o

mapa de forma que paıses que tem fronteira comum sejam coloridos com cores diferentes? O

problema tem por modelo o seguinte problema de grafos.

Seja G = (V, E) nao dirigido finito. O numero cromatico e o menor numero de cores

necessarias para colorir os vertices do grafo de forma que se u 6= v e 〈u, v〉 ∈ E , entao u e v

ficam com cores distintas.

Exercıcio 6.7.1 Qual o numero cromatico de cada um dos grafos seguintes?

Qual e o numero cromatico duma arvore nao degenerada? E dum grafo bipartido? E de Kn?

O Teorema das 4 cores diz que o numero cromatico de qualquer grafo nao dirigido finito

que seja planar nao excede quatro. Este teorema foi durante mais de 100 anos uma conjectura

(ie, resultado cuja validade nao foi demonstrada nem a falsidade). Enunciado por F. Guthrie

em 1850, so foi provado em 1976 por K. Appel e W. Haken, com ajuda dum computador para

efectuar a analise dalguns casos relevantes. A sua prova esta fora do ambito da disciplina.

Exercıcio 6.7.2 Uma loja de animais de estimacao, recebeu uma encomenda de peixes tro-

picais. Algumas das especies comem outras especies. Sabendo que o grafo (nao conexo)

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 94: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 86

apresentado no exercıcio anterior representa as incompatibilidades das diferentes especies,

justifique que o numero mınimo de aquarios necessarios e igual ao numero cromatico do

mesmo. Justifique que e sempre assim, qualquer que seja a relacao 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 funcao de E no conjunto dos reais nao

negativos. So iremos considerar reais nao negativos.

Para um grafo dirigido podemos reduzir o quarteto a um terno (V, ρ,L). Se o grafo for

finito, entao podemos associar uma matriz de distancias 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 sao elementos de R+0 ∪ {∞}.

No exemplo seguinte, o valor que marca cada ramo representa a distancia associada a esse

ramo.a

1

������

���� 5

��>>>

>>>>

>

b10

������

����

2 //

2

��<<<

<<<<

< e

2

��===

====

=

c d3

oo

7

@@��������

1// f

A matriz D das distancias 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 convencao de que a distancia de um vertice

a si proprio e zero.

Se nao existir ramo de u para v convencionamos que a distancia associada ao “ramo”de

u para v e ∞. Leia-se ∞ como indeterminado ou indefinido.

Os problemas de calculo de distancia mınima entre localidades e custo mınimo de producao

de um dado produto tem muitas vezes por modelo um grafo como o descrito.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 95: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 87

A distancia associada a um percurso de u para v e a soma das distancias associadas

aos ramos no percurso. Podemos definir uma operacao binaria2 ⊕ em R+0 ∪ {∞} que

prolongue a operacao usual de adicao em R+0 assim:

x⊕ y = x + y sse x ∈ R+0 e y ∈ R+

0

x⊕ y = ∞ sse x =∞ ou y =∞Se nao existir percurso de u para v, a distancia de u para v e ∞.

6.8.1 Determinacao da distancia mınima

Dados dois vertices u e v num grafo finito (V, ρ,L) como determinar a distancia mınima de

u para v? Seja Cuv o conjunto dos percursos de u para v, u 6= v. Se Cuv = ∅ convencionamos

que a distancia mınima para aceder de u a v e ∞. Se Cuv 6= ∅ entao a distancia mınima e

min{dγ | dγ e a distancia pelo percurso γ, para γ ∈ Cuv.}

Como o grafo e finito, tal mınimo e

min{dγ | dγ e a distancia por γ ∈ Cuv e a ordem de γ nao excede |V| − 1}

pois os percursos com ordem (comprimento) maior que |V|−1 contem circuitos, correspondendo-

lhes por isso distancias iguais ou superiores.

Dado um grafo finito (V, ρ,L), convencionamos que a distancia mınima entre vertices

iguais era zero. Em cada caso pratico deve-se verificar se esta convencao faz sentido.

Algoritmo de Bellman-Ford

Vamos designar por Dm a matriz das distancias mınimas por percursos de ordem nao

superior a m. Se tivermos calculado Dm, podemos obter as distancias mınimas por percursos

de ordem nao superior a m+1, analisando a distancia associada a percursos que tem mais um

ramo do que os percursos mınimos obtidos anteriormente. Se esses percursos com mais um

ramo nao forem melhores entao deve-se dar preferencia aos anteriores. Assim, Dm+1 pode

ser obtida a custa de Dm e de D1 = D, por (6.1)

Dm+1ij = min( Dm

ij , min{ Dmik ⊕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

2Operacao binaria num conjunto A e uma funcao de A × A em A.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 96: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 88

A matriz das distancias mınimas e uma matriz Dm tal que Dm+1 = Dm, isto e que

se mantem invariante quando se efectuar a transformacao descrita.

Observacao: A transformacao corresponde ao calculo da matriz Dm + Dm ×D em que +

e uma “soma” de matrizes e × e um “produto” de matrizes, para matrizes quadradas cujas

entradas sao elementos da estrutura (R+0 ∪ {∞},min,⊕). Esta observacao deve ficar clara

na disciplina de Elementos de Algebra Linear. Compare ainda com a matriz da composta de

relacoes binarias.

Convencionando Dii = 0, para 1 ≤ i ≤ |V|, podemos simplificar a formula (6.1):

Dm+1ij = min{Dm

ik ⊕Dkj | 1 ≤ k ≤ |V|}

Para o exemplo anterior, as tres primeiras linhas da matriz D2 sao

0 1 11 3 3 7

∞ 0 5 2 2 3

∞ ∞ 0 ∞ ∞ ∞

no exemplo acima indicado. A determinacao das restantes linhas e o calculo da matriz das

distancias mınimas (absolutas) ficam ao cuidado do leitor. Devera obter:

0 1 6 3 3 4

∞ 0 5 2 2 3

∞ ∞ 0 ∞ ∞ ∞∞ ∞ 3 0 7 1

∞ ∞ ∞ ∞ 0 2

∞ ∞ ∞ ∞ ∞ 0

Algoritmo de Floyd

Supoe-se que os vertices em V foram numerados de 1 a n = |V|. O algoritmo de Floyd (1962),

apresentado na figura 6.1, permite determinar a distancia e um percurso mınimo para todos

os pares de vertices.

O processo de construcao da matriz das distancias mınimas e iterativo: na iteracao k

obtem-se a matriz Dk das distancias mınimas por percursos que so podem ter como vertices

intermedios v1, . . . , vk. (NB: Esta matriz Dk nao e a mesma que se definiu acima!) Agora,

para 1 ≤ k < n,

Dk+1ij = min(Dk

ij , Dki k+1 + Dk

k+1 j)

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 97: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 89

Dados: a matriz D das distancias e numero de vertices n

Resultado: a matriz das distancias mınimas em D e a matriz P

Inicializar P .

Para k ← 1 ate n

Para i← 1 ate n

Para j ← 1 ate n

Se D[i, j] > D[i, k] + D[k, j] entao

D[i, j]← D[i, k] + D[k, j];

P [i, j]← P [i, k];

Figura 6.1: Algoritmo de Floyd

ja que qualquer percurso optimo de vi para vj que so possa ter v1, . . . , vk, vk+1 como vertices

intermedios e ou um percurso optimo que so pode ter v1, . . . , vk como vertices intermedios ou

a concatenacao (juncao) dum percurso optimo de vi a vk+1 com um percurso optimo de vk+1

a vj, ambos so podendo ter v1, . . . , vk como vertices intermedios.

Note que esta descricao do algoritmo nao corresponde exactamente ao algoritmo apre-

sentado na figura 6.1, pois nao foi considerada uma matriz de distancias para cada iteracao.

Para permitir tambem determinar o percurso mınimo, o algoritmo apresentado vai

construindo uma matriz P k: a posicao P kij guarda sempre o segundo vertice no melhor percurso

de vi para vj que se encontrou ate a iteracao k. Inicialmente, pode-se definir,

Pij =

{

j se i = j ou (vi, vj) ∈ E0 se i 6= j e (vi, vj) /∈ E

Poder-se-ia ter definido a matriz P doutras formas. Por exemplo, podemos tomar P kij

como o vertice intermedio no percurso (mınimo) de i para j que foi usado para determinar o

melhor valor de Dkij . Assim, considerando que os vertices estao numerados de 1 a n, podemos

inicialmente fazer Pij ← 0 para todo i e todo j (significando que nao e conhecido nenhum

vertice intermedio no percurso de i para j). Na actualizacao, quando D[i, j] > D[i, k]+D[k, j],

far-se-ia Pij ← k, ja que o percurso melhor de i para j encontrado ate a iteracao k passa por k.

No final, se Dij <∞, sendo i 6= j, entao o percurso mınimo de i para j e a sequencia formada

por i, os vertices intermedios nesse percurso e finalmente j. Para determinar os vertices

intermedios no percurso de i para j, verifica-se Pij 6= 0, e se for o caso, entao imprimem-se

os vertices intermedios no percurso de i para Pij , imprime-se Pij e finalmente imprimem-se

os vertices intermedios no percurso de Pij para j.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 98: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 90

Algoritmo de Dijkstra

O algoritmo de Dijkstra (1959), apresentado na figura 6.2, calcula a distancia mınima dum

dado vertice a todos os outros.

Dados: Um grafo G = (V, E , d) dirigido com valores nos arcos, e u0 ∈ V.

Resultado: O vector Dest das distancias mınimas de v a cada um dos vertices.

Inicializar M ← {u0}, Dest[u0]← 0 e Dest[v]←∞ para todo v ∈ V \ {u0}.Enquanto M 6= V fazer

seja w o ultimo vertice colocado em M ;

actualizar a estimativa das distancias 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 vertices em M sao aqueles para os quais ja e conhecida a distancia

mınima a partir de u0. O valor de Dest[v] para v ∈M a distancia mınima de u0 a v.

• Se substituir a condicao M 6= V por uf /∈M (sendo dado uf ∈ V), o algoritmo termina

quando a distancia mınima de u0 a uf for conhecida. Todos os vertices que podem

ocorrer no percurso mınimo de u0 para uf estao em M .

• Dado uf ∈ V \{u0}, o percurso mınimo de u0 para uf pode ser obtido por analise para

tras do modo seguinte: escolher v ∈M com (v, uf ) ∈ E e Dest[v]+d(v, uf ) = Dest[uf ];

se v 6= u0, escolher v′ ∈ M tal que (v′, v) ∈ E e Dest[v′] + d(v, v′) = Dest[v]. . . e assim

sucessivamente ate chegar a u0. O percurso de u0 para uf e dado pela sequencia de

vertices seleccionados, na ordem inversa da de seleccao: a ultima escolha e o 1o¯ vertice

no percurso, a penultima o 2o¯, . . .

• Note que a instrucao 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 penultimo vertice nesse percurso. Se registar esse facto, por exemplo

num vector Prec, fazendo Prec[v] ← w, entao, no final, na analise para tras, basta

imprimir

uf , P rec[uf ], P rec[Prec[uf ]], . . . , u0

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 99: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 91

para ter os vertices 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 6= u0 entao escreve_percurso(Prec[v])

Escreve v

Exemplo 46 E necessario enviar uma encomenda para um cliente em C, a qual pode ser

enviada via A, H ou G, demorando tres, um e oito dias, respectivamente a chegar a esses

locais. O quadro seguinte indica os pares de locais entre os quais ha 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 maxima 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.

A2

1

9999

9999

9999

9999

B4

199

9999

9 D

8G

7

O

3

�������������� 1

8 9999

999 H

6E

17

3

��������������C

G4

F

210

�������

∞ 2

1

====

====

====

====

= ∞ 4

1

====

=== ∞

8∞7

0

3

������������� 1

8 ::::

::: ∞ 6 ∞ 17

3

�������������� ∞

∞4

∞2

10

�������

Para nao complicar o grafo, representamo-lo como um grafo nao dirigido, devendo ser claro

que d(u, v) = d(v, u). Aplicamos o algoritmo de Dijkstra para determinar a distancia mınima

da origem a cada um dos locais: acima, a direita, indicamos os valores iniciais de D. A

medida que formos efectuando actualizacoes, registamos o vertice que as determinou, para no

fim poder, por analise para tras, recuperar o caminho mınimo.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 100: Alguns Tópicos de Matemática Discreta

6.8. GRAFOS COM VALORES ASSOCIADOS AOS RAMOS 92

3, O2

1

====

====

====

====

=∞ 4

1

;;;;

;;;;

8∞7

0

3

�������������� 1

8 ::::

::: 1, O

6 ∞ 17

3

�������������� ∞

8, O4

∞2

10

��������

3, O2

1

????

????

????

????

?∞ 4

1

????

????

8∞7

0

3

�������������� 1

8 ::::

::: 1, O

67,H

17

3

��������������∞

8, O4

∞2

10

��������

3, O2

1

AAAA

AAAA

AAAA

AAAA

AA5, A

4

1

AAAA

AAAA

8∞7

0

3

�������������� 1

8 ::::

::: 1, O

64, A

17

3

��������������∞

8, O4

∞2

10

��������

3, O2

1

AAAA

AAAA

AAAA

AAAA

AAA

5, A4

1

BBBB

BBBB

7, E

811, E

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

���������������21, E

8, O4

6, E

210

zzzzzzzz

Depois desta iteracao, sabe-se, por exemplo, que o melhor caminho de O para E tem

comprimento 4 e e O,A,E (e util recordar as designacoes dadas inicialmente aos nos).

Continuando. . .

3, O2

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

86, B

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

21, E

8, O4

6, E

210

||||||||

3, O2

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

86, B

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

16, F

8, O4

6, E

210

||||||||

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 101: Alguns Tópicos de Matemática Discreta

6.9. GRAFOS COM SIMBOLOS ASSOCIADOS AOS RAMOS 93

3, O2

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

86, B

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

16, F

8, O4

6, E

210

||||||||

3, O2

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

86, B

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

15, D

8, O4

6, E

210

||||||||

3, O2

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

86, B

7

0

3

��������������� 1

8 ::::

::: 1, O

64, A

17

3

15, D

8, O4

6, E

210

||||||||

3, O2

��@@@

@@@@

@@@@

@@@@

@@@@

1

@@@@

@@@@

@@@@

@@@@

@@@

5, A4

1

@@@@

@@@

7, E

��

86, B

7

0

3

���������������

HH��������������� 1

8 ::::

::: 1, O

64, A

17

FF

3

15, D

8, O4

6, E

210

||||||||

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 resolucao do problema a mao, pode efectuar as alteracoes num so grafo: para

poder conferir os passos, e conveniente nao apagar as marcacoes anteriores (quando as altera),

devendo antes risca-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 funcao de Eem Σ que a cada ramo associa um elemento de Σ. A cada percurso num multigrafo dessa

forma corresponde uma sequencia de sımbolos.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 102: Alguns Tópicos de Matemática Discreta

6.9. GRAFOS COM SIMBOLOS ASSOCIADOS AOS RAMOS 94

Considere-se por exemplo o grafo representado a seguir.

m0GFED@ABCBCEDbGF��a // m1GFED@ABCBCEDcGF��

O conjunto Σ de sımbolos e {a, b, c}. As sequencias em

{b, bb, bbb, bbbb, bbbbb, bbbbbb, . . .}

correspondem a percursos de m0 para m0. Assim esses percursos determinam as sequencias

de sımbolos de Σ que so tem b’s. As sequencias em

{c, cc, ccc, cccc, ccccc, . . .}

correspondem a percursos de m1 para m1. As sequencias 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

sequencias de sımbolos de Σ que tem um e um so 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 sequencias que correspondem a percursos de “procura

digıto” para “procura ponto” sao sequencias de dıgitos e as que terminam em “procura nao

dıgito” sao da forma “x.y” ou “x.”, em que x e y sao duas sequencias de dıgitos quaisquer.

procura dıgitodıgito

// procura pontoBCED dıgitoGF��

ponto// procura nao dıgito

BCED dıgitoGF��

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

formas “x”, “x.” e “x.y”, em que x e y sao duas sequencias de dıgitos quaisquer, cada um

dos nos identifica um estado. Os ramos definem transicoes de estado. Para ver que assim e,

analise a sequencia 56.099971, partindo de “procura dıgito” (estado inicial).

Estes grafos sao de facto modelos formais de computacao e serao estudados em profundi-

dade na disciplina de Modelos de Computacao.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP

Page 103: Alguns Tópicos de Matemática Discreta

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. Tomas. Notas de Topicos de Matematica Discreta, DCC, FCUP, 1997.

[6] A. P. Tomas. Modelos de Computacao – Acetatos das aulas teoricas, DCC, FCUP, 1998.

[7] A. P. Tomas, N. Moreira. Introducao aos Computadores – Notas e Exercıcios, DCC,

FCUP, 1996.

c©A. P. Tomas – Dep. de Ciencia de Computadores – FCUP