Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem...

95
Apontamentos para a Unidade de Forma¸ c˜ao: Matem´ atica Discreta Instala¸ ao e Manuten¸ ao de Redes e Sistemas Inform´ aticos Nuno Concei¸ c˜ao Departamento de Matem´atica Escola Superior de Tecnologia de Viseu Instituto Polit´ ecnico de Viseu Janeiro 2009

Transcript of Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem...

Page 1: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Apontamentos para a Unidade de Formacao:

Matematica Discreta

Instalacao e Manutencao

de Redes e Sistemas Informaticos

Nuno Conceicao

Departamento de Matematica

Escola Superior de Tecnologia de Viseu

Instituto Politecnico de Viseu

Janeiro 2009

Page 2: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

2

Page 3: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Conteudo

Introducao i

1 Nocao de base de um sistema de numeracao 1

1.1 Representacao de um numero em bases diferentes. . . . . . . . . . . . . . . . 1

1.2 Conversao de numeros entre bases. . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Limitacao de representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4 Operacoes aritmeticas de base 2 . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.5 Representacao em complemento para 2 . . . . . . . . . . . . . . . . . . . . . 13

1.6 Exercıcios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Algebras de Boole 15

2.1 Definicao e valor logico de uma proposicao . . . . . . . . . . . . . . . . . . . 15

2.2 Definicao e propriedades de Algebra de Boole . . . . . . . . . . . . . . . . . 22

2.3 Funcoes Booleanas e Tabelas de verdade . . . . . . . . . . . . . . . . . . . . 24

2.4 Formas canonicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.5 Mapas de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.6 Simplificacao de funcoes Booleanas . . . . . . . . . . . . . . . . . . . . . . . 40

2.7 Exercıcios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3 Matrizes 49

3.1 Matrizes: Motivacao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.2 Matrizes: Primeiras definicoes. . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.3 Matrizes especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.4 Operacoes com matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.4.1 Produto de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.4.2 Uma aplicacao do produto de matrizes . . . . . . . . . . . . . . . . . 58

3.5 Introducao ao software MatLab . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.6 Sistemas de Equacoes Lineares (SEL) . . . . . . . . . . . . . . . . . . . . . . 62

3.7 Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3

Page 4: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

4 Teoria dos Grafos 69

4.1 Introducao. Grafo (nao orientado) e sua representacao . . . . . . . . . . . . 69

4.2 Conceitos fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.3 Caminhos de um grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.4 Exercıcios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.5 Matriz de adjacencia de um grafo . . . . . . . . . . . . . . . . . . . . . . . . 77

4.6 Potencias da matriz de adjacencia e algumas propriedades . . . . . . . . . . 77

4.7 Exercıcios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4.8 Problemas do Caminho mais Curto . . . . . . . . . . . . . . . . . . . . . . . 79

4.9 Exercıcios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Bibliografia 85

Indice Remissivo 86

Page 5: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,
Page 6: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Introducao

Estes apontamentos foram escritos com o objectivo de servir como base de apoio as aulas da

Unidade Curricular de Matematica Discreta, integrada no CET de Instalacao e Manutencao

de Redes e Sistemas Informaticos. Tendo em conta a genese deste tipo de formacao, os

conteudos programaticos desta Unidade e o tempo disponıvel, optou-se por uma abordagem

a privilegiar as motivacoes praticas de cada materia, seguida de uma formulacao mais precisa

e com o rigor necessario ao tratamento Matematico da informacao.

Os temas que normalmente se incluem Matematica Discreta sao muito sabrangentes e tem

tido um grande desenvolvimento, em grande parte, potenciado pelas aplicacoes que se tem

revelado em grande numero em areas como Ciencias da Computacao, Telecomunicacoes, Se-

guranca na Transmissao de Dados, Desenho de Circuitos Integrados, Redes de Transportes,

etc. Como tal, revela-se necessario conhecer e dominar alguns conhecimentos e tecnicas

basicas que se procuraram tornar claras, acessıveis e suficientemente desafiantes para o aluno.

Espera-se que o estudo destes apontamentos forneca um conjunto de competencias basicas

ao nıvel do calculo numerico e matricial, logica e da teoria dos grafos. Nao foi o objectivo,

nem seria possıvel neste tipo de trabalho, apresentar um estudo exaustivo sobre os temas

mas sim apresenta-los de forma a que pudessem ser facilmente apreendidos e possibilitassem

algumas ferramentas para o trabalho e os fins a que se destinam.

Page 7: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

ii

Page 8: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Capıtulo 1

Nocao de base de um sistema de

numeracao

Livros para este capıtulo: [1] [3] [4] [7]

1.1 Representacao de um numero em bases diferentes.

Nesta seccao, sera abordada a forma de representacao de numeros em diferentes bases. No

dia-a-dia (populacao de uma cidade, peso de uma pessoa, temperaturas, precos no super-

mercado, . . .) a base que e (quase) sempre utilizada e a decimal, ou, a base 10 . Isto quer

dizer que dispomos de 10 dıgitos para descrever qualquer numero que necessitemos. No en-

tanto, existem determinadas situacoes em que outras bases sao utilizadas. Por exemplo, se

neste momento sao 15 horas entao daqui a 20 horas sao... 11 horas, e nao 35! Isto acontece

porque dividimos o dia em 24 horas e apenas faz sentido falar numa hora compreendida entre

0 e 23. O sistema horario e de base 24. Cada hora, por seu lado, e dividida em 60 min-

utos e, por isto, so falamos em minutos de 0 a 59... Temos, neste caso, um sistema de base 60.

Cada base define um sistema de numeracao e, apesar de utilizarmos varios no nosso quotidi-

ano, e fundamental que todos tenham caracterısticas comuns para que nos possamos adaptar

a cada um deles sem grandes problemas. Independentemente do sistema de numeracao que

utilizemos, este deve:

1. representar um conjunto grande de numeros (numeros naturais, numeros fraccionarios,

numeros reais, . . .);

2. ser biunıvoco;

3. manter as propriedades algebricas e aritmeticas dos numeros.

1

Page 9: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

2

A importancia do primeiro ponto reflete-se na propria utilidade do sistema de numeracao.

Um sistema que permita representar poucos numeros esgota-se rapidamente e e posto de

parte. O segundo ponto significa que cada numero deve ter uma unica traducao num dado

sistema de numeracao e que, inversamente, ao escrevermos um numero em determinada base

este traduza uma quantidade unica e inconfundıvel. Por ultimo, e essencial que as diferentes

formas de escrever os numeros tenham propriedades que permitam a sua facil manipulacao

e a realizacao de operacoes aritmeticas.

Mas voltemos ao sistema decimal ou, equivalentemente, de base 10.

Os dıgitos utilizados no sistema decimal sao: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Com estes dıgitos,

podemos transmitir qualquer informacao numerica. Por exemplo: a cidade de Viseu tinha,

em 2005, 47250 habitantes. (fonte: www.ine.pt)

Isto significa que Viseu tinha

4× 10000 + 7× 1000 + 2× 100 + 5× 10 + 0× 1 habitantes.

De outra forma, Viseu tinha

4× (10)4 + 7× (10)3 + 2× (10)2 + 5× (10)1 + 0× (10)0 habitantes.

Esquematicamente:10000 1000 100 10 1

4 7 2 5 0

Para a representacao de qualquer numero nesta base podemos, prolongar o esquema anterior:

· · · · · · 10000 1000 100 10 1

· · · · · · ∗ ∗ ∗ ∗ ∗

Ou entao, utilizando a notacao base 10:

· · · · · · 104 103 102 101 100

· · · · · · ∗ ∗ ∗ ∗ ∗

Repare-se que, nesta base e nas que veremos a seguir, e fundamental perceber que o signifi-

cado de um determinado dıgito depende da sua posicao relativa no numero. Isto tem reflexos

em tudo o que se segue, em particular na conversao de numeros de uma base para outra.

Para que a escrita seja precisa e nao existam confusoes, quando queremos especificar a

base numerica a que nos estamos a referir, utilizamos ındices. Por exemplo:

Page 10: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

3

13210 ou (132)10 significam “132 na base 10”.

Consideremos agora o sistema de numeracao de base 2: o sistema binario. Os 2 dıgitos que

nos vao permitir escrever todos os numeros nesta base sao o 0 e o 1.

Os primeiros numeros nesta base sao

base 10 base 2

0 0

1 1

2 10

3 11

4 100

5 101

6 110

7 111

8 1000

9 1001

10 1010...

...

Tabela 1.1: Os primeiros numeros decimais convertidos em numeros binarios

Tendo por base os esquemas anteriores, e facil converter um numero escrito em base 2 para

base 10. Basta atendermos a que, neste caso, temos:

· · · · · · 24 23 22 21 20

· · · · · · ∗ ∗ ∗ ∗ ∗

Assim, para converter o numero (101001)2 em decimal:

32 16 8 4 2 1

1 0 1 0 0 1

Calculos: 1× 32 + 1× 8 + 1× 1 = 41 . Isto e: (101001)2 = (41)10 = 41 .

Aquilo que ja fizemos para a numeracao em base 2 pode ser feito noutras bases e, nesta

seccao, vamos ainda analisar as numeracoes em base 8 (sistema octal) e em base 16 (sistema

hexadecimal).

Quando trabalhamos em base 8, os dıgitos que utilizamos sao: 0, 1, 2, 3, 4, 5, 6, 7. Nesta

Page 11: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

4

base 10 base 8

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 10

9 11

10 12

11 13

12 14

13 15

14 16

15 17

16 20

17 21

18 22...

...

Tabela 1.2: Os primeiros numeros decimais convertidos em base 8

base, os primeiros numeros inteiros representam-se conforme esta descrito tabela seguinte:

Tal como foi feito atras, vamos considerar as sucessivas potencias de 8

80, 81, 82, 83, . . .

e ver como podemos visualizar um numero escrito nesta base:

· · · · · · 84 83 82 81 80

· · · · · · ∗ ∗ ∗ ∗ ∗

Assim, torna-se facil fazer a conversao: sistema octal→ sistema decimal. Vejamos um exem-

plo: qual o numero em base decimal representado por (12751)8?

Calculos: 1× 84 + 2× 83 + 7× 82 + 5× 81 + 1× 80 = 5609. Isto e:

(12751)8 = (5609)10

Page 12: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

5

Muito utilizada em Informatica e a base 16. Os dıgitos desta base sao:

0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E , F

e a correspondencia com a base decimal e a seguinte:

base 10 base 16

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 10

9 9

10 A

11 B

12 C

13 D

14 E

15 F

16 10

17 11

18 12...

...

Tabela 1.3: A correspondencia base 10 ↔ base 16

Como nos casos anteriores, consideremos as sucessivas potencias de 16

160, 161, 162, 163, . . .

Esquematicamente:· · · · · · 164 163 162 161 160

· · · · · · ∗ ∗ ∗ ∗ ∗

Por exemplo: a que numero corresponde, base decimal, o numero (2C7)16 ? Vejamos:

162 161 160

2 C 7

Page 13: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

6

Logo: (2C7)16 = 2× 162 + 12× 16 + 7× 1 = (711)10 .

1.2 Conversao de numeros entre bases.

Vimos na seccao anterior como converter numeros escritos nas bases 2, 8 e 16 em numeros

de base decimal. Poe-se-nos agora a questao de como fazer a conversao no sentido inverso.

Isto e: como escrever o (823)10 (em base decimal) em base 2? E em base hexadecimal?

Para responder ao problema acima exposto, existe um metodo simples e rapido que per-

mite, atraves de divisoes sucessivas , obter o resultado pretendido. Este metodo, pode ser

resumido neste quadro, em que b representa a base para a qual pretendemos converter o

numero dado em base 10:

1. Dividir o numero por b e guardar o quociente Q. Memorizar o resto.

2. Se Q = 0, parar o processo.

3. Se Q 6= 0 voltar ao passo 1, e usar o quociente guardado.

Resultado: escrever os restos pela ordem inversa a que foram obtidos.

Vamos agora ver um exemplo de aplicacao deste algoritmo.

Exemplo 1.1. escrever (522)10 na base 2

Vejamos:

522 a dividir por 2 Q = 261 R=0

261 a dividir por 2 Q = 130 R=1

130 a dividir por 2 Q = 65 R=0

65 a dividir por 2 Q = 32 R=1

32 a dividir por 2 Q = 16 R=0

16 a dividir por 2 Q = 8 R=0

8 a dividir por 2 Q = 4 R=0

4 a dividir por 2 Q = 2 R=0

2 a dividir por 2 Q = 1 R=0

1 a dividir por 2 Q = 0 R=1

STOP

Page 14: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

7

Assim, tendo em conta o algoritmo descrito, concluimos que:

(522)10 = (1000001010)2

Neste momento devera conseguir fazer a conversao de numeros: base 10↔ base b , qualquer

que seja a base b considerada.

Exercıcios:

1. Os numeros seguintes estao escritos na base 2. Escreva-os na base 10:

(a) 110 ; (b) 101101 ; (c) 101010101 ; (d) 110011010110 .

2. Os numeros seguintes estao escritos na base 4. Escreva-os na base 10:

(a) 31 ; (b) 210 ; (c) 1212 ; (d) 20013 .

3. Os numeros seguintes estao escritos na base 8. Escreva-os na base 10:

(a) 37 ; (b) 451 ; (c) 7777 ; (d) 12321 .

4. Os numeros seguintes estao escritos na base 16. Escreva-os na base 10:

(a) 3D ; (b) 21E ; (c) 1F01 ; (d) A1B2C .

Acabamos de ver como converter numeros nas bases 2, 8 e 16 em base decimal e tambem

o processo inverso. No entanto, podemos converter um numero em base 8 num numero em

base 2 sem ter de passar pelo correspondente em bade 10. As conversoes podem fazer-se

directamente, no sentido das setas do diagrama seguinte:

8

10 2 10

16

@@

@@R?-

@@

@@R

��

��� 6

-

?

6

��

���

Vejamos entao um exemplo que ilustra o processo de conversao base 8→ base 2. Suponhamos

que temos de converter o numero (17246)8 para base 2:

1︸︷︷︸

001

7︸︷︷︸

111

2︸︷︷︸

010

4︸︷︷︸

100

6︸︷︷︸

110︸ ︷︷ ︸

001111010011110

Page 15: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

8

Logo:

(17246)8 = (1111010100110)2

Ou seja: convertemos cada um dos dıgitos do numero escrito em base 8 para binario, de

modo a que cada novo numero tenha sempre tres dıgitos, acrescentando zeros sempre que

necessario. Em seguida, colocamos estes grupos de tres dıgitos em sequencia e obtemos a

traducao do numero inicial em base binaria.

Reciprocamente, a conversao base 2→ base 8 tambem se concretiza facilmente, conforme se

ilustra no exemplo seguinte, em que se pretende converter o numero (1010100110101)2 em

base 8:

001︸︷︷︸

1

010︸︷︷︸

2

100︸︷︷︸

4

110︸︷︷︸

6

101︸︷︷︸

5︸ ︷︷ ︸

12465

Portanto:

(1010100110101)2 = (12465)8

Neste caso, agrupamos os dıgitos do numero inicial tres a tres, da direita para a esquerda,

acrescentando zeros (se necessario) no ultimo grupo. Em seguida, converte-se cado um dos

numeros no seu correspondente na base 8 e colocam-se em sequencia para terminar a con-

versao.

Raciocınios semelhantes sao utilizados para as conversoes base 2 ↔ base 16, como a seguir

se mostra.

Vejamos como converter (A3F5)16 num numero binario:

A︸︷︷︸

1010

3︸︷︷︸

0011

F︸︷︷︸

1111

5︸︷︷︸

0101

Isto e:

(A3F5)16 = (1010001111110101)2

No sentido inverso, vamos converter o numero (100110110010110)2 no seu correspondente

no sistema hexadecimal:

0100︸︷︷︸

4

1101︸︷︷︸

D

1001︸︷︷︸

9

0110︸︷︷︸

6︸ ︷︷ ︸

4D96

Repare-se que agora sao utilizados grupos de quatro dıgitos (em vez de grupos de tres dıgitos

utilizados na conversao binario → octal).

Page 16: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

9

Nestes processos rapidos de conversao de numeros em base 8 ou em base 16 usamos, como

auxiliar, a tabela seguinte:

base 10 base 2 base 8 base 16

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Tabela 1.4: Tabela de conversoes

Exercıcios:

5. Converter (1E2A5)16 em base 2 e em base 8.

6. Converter (1001110101101001)2 em base 8 e em base 16.

7. Converter (1724152)8 em base 2 e em base 16.

1.3 Limitacao de representacao

Ate agora apenas analisamos as representacoes e conversoes de numeros inteiros positivos em

diferentes bases. Nesta seccao, analisaremos os numeros nao inteiros (positivos e negativos)

e dos problemas que essa representacao coloca. Por exemplo, como representar 0.625 em

numeracao binaria? E em hexadecimal?

Page 17: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

10

Comecemos por fazer o exercıcio inverso e ver como podemos converter um numero frac-

cionario escrito em forma binaria para a base decimal. Para isto, vamos estender a formula

que utilizamos atras para as conversoes de inteiros positivos, sendo que agora vamos utilizar

potencias negativas de 2:

O que quer dizer que

(0.1011)2 = 1× 2−1 + 0× 2−2 + 1× 2−3 + 1× 2−4 = 0.6875

0 2−1 2−2 2−3 2−4 · · · · · ·

0 1 0 1 1 · · · · · ·

Se o nosso objectivo for o de escrever um um numero decimal na sua representacao binaria,

utilizamos um metodo que designaremos por multiplicacoes sucessivas. Ilustremos este

metodo com um exemplo: a conversao de 0.40625 em formato binario.

0.40625× 2 = 0.8125 → guardo o 0

0.8125× 2 = 1.625 → guardo o 1

0.625× 2 = 1.25 → guardo o 1

0.25× 2 = 0.5 → guardo o 0

0.5× 2 = 1.0 → guardo o 1

STOP

Conclusao: 0.40625 = (0.01101)2 .

Esta conversao esta, obviamente, dependente da quantidade de dıgitos (bits) que temos

disponıveis para a representracao dos numeros. Por exemplo, se apenas tivermos disponıveis

4 casas decimais para estas representacoes entao os numeros (representados em base deci-

mal) 0.8125 e 0.8524 tem exactmente a mesma representacao binaria 0.1101. A (grande)

diferenca e que no primeiros caso a representacao e exacta, enquanto que no segundo apenas

conseguimos ter uma aproximacao, com um erro associado.

Neste caso, o erro e assim calculado

0.8524− 0.8125

0.8125≈ 0.0491 = 4.91% ,

o que, em muitos casos, e um erro inadmissıvel e coloca em causa a validade dos resultados

obtidos.

Page 18: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

11

Para tentar ultrapassar este problema, podemos acrescentar bits a representacao binaria

ate obtermos a precisao pretendida. No entanto, ao fazer isto, estamos limitados a capaci-

dade da maquina armazenar numeros binarios tao extensos quanto nos queiramos. Ha outras

tecnicas para manipular numeros binarios (representacao em ponto flutuante) que nao serao

aqui abordadas.

1.4 Operacoes aritmeticas de base 2

Para alem de representar numeros (informacao) em diversas bases, importa que possamos

efectuar operacoes aritmeticas com esses numeros, independentemente da base em que ele

esta representado. Em seguida, veremos como efectuar as operacoes de adicao, subtraccao,

multiplicacao e divisao binarias, isto e, com os numeros representados na base 2.

Estas operacoes seguem algoritmos muito parecidos aqueles que ja conhecemos, os de base

decimal. Vejamos, para nos ajudar, a tabela da adicao de numeros binarios:

+2 0 1

0 0 1

1 1 10

Sabendo isto, passemos a um exemplo de como somar dois numeros binarios.

Qual o resultado de (10010011011010)2 +2 (1001011010)2.

O algoritmo e o mesmo da soma em base decimal:

1 0 0 1 0 0 1 1 0 1 1 0 1 0

+2 0 0 0 0 1 0 0 1 0 1 1 0 1 0

1 0 0 1 1 1 0 0 1 1 0 1 0 0

0 0 0 0 0 0 1 1 0 1 1 0 1 0 a transportar

Assim: (10010011011010)2 +2 (1001011010)2 = (10011100111100)2 .

Vejamos agora atraves de um exemplo, como proceder a subtraccao:

(1001101101)2 −2 (10100011)2.

1 0 0 1 1 0 1 1 0 1

−2 0 0 1 0 1 0 0 0 1 1

0 1 1 1 0 0 1 0 1 0

0 1 1 1 0 1 1 0 1 0 a transportar

Page 19: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

12

Logo: (1001101101)2 −2 (10100011)2 = (111001010)2

Vemos, a seguir, como efectuar a multiplicacao binaria:

(10101)2 ×2 (110)2 = ?

Tal como atras, vejamos a tabela da multiplicacao:

×2 0 1

0 0 0

1 0 1

O algoritmo, neste caso, e como o do caso decimal:

0 0 0 0 1 0 1 1 1

×2 0 0 0 0 0 0 1 1 0

0 0 0 0 0 0 0 0 0

0 0 1 0 1 1 1

+2 1 0 1 1 1

0 1 0 0 0 1 0 1 0

0 0 1 1 1 1 1 0 0 a transportar

Para terminar, referimos apenas que a divisao de dois numeros binarios se faz tal qual se

tratassem de numeros decimais.

Exercıcios:

8. Proceda as somas seguintes:

(a) 110102 + 1112 ; (b) 1001012 + 1011012 ; (c) 246108 + 57128 ;

(d) 2014408 + 12543038 ; (e) 19A516 + D2E116 ; (f) 15E12B16 + 2D3B16 .

9. Efectue os calculos seguintes:

(a) 110102 − 1112 ; (b) 1001012 − 1011012 ; (c) 246108 − 57128 ;

(d) 2014408 − 143038 ; (e) 19A516 −A2E116 ; (f) 15E12B16 − 2DB16.

Page 20: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

13

10. Determine o resultado das multiplicacoes seguintes:

(a) 11102 × 112 ; (b) 101012 × 111012 ; (c) 241508 × 51728 ;

(d) 2011408 × 125038 ; (e) 19A516 × 2E116 ; (f) 15E12B16 × 2DB16 .

11. Indique o quociente e o resto das divisoes seguintes:

(a) 110102 : 1112 ; (b) 1001012 : 1011012 ; (c) 246108 : 57128 ;

(d) 201408 : 253038 ; (e) 19A516 : D2E116 ; (f) 15E2B16 : 2D316.

1.5 Representacao em complemento para 2

A representacao em complemento para 2 surgiu da neessidade de optimizar os recursos de

uma maquina e, na pratica, e util para a execucao de subtraccoes. Como? Transforma uma

subtracao a-b numa soma a+(-b) e tira partido das propriedades da adicao para efectuar

esta operacao. Na verdade, esta operacao pode ser definida qualquer seja a base numerica

em causa, mas aqui vamos apenas estudar o caso da representacao em complemento para

dois. Por ser a linguagem utilizada pelos computadores, e especialmente util dominar esta

tecnica. Para melhor a entender, avancemos com o primeiro exemplo: calcular

100110110− 010100101.

Note-se que os numeros tem o mesmo numero de algarismos, ou bits.

O primeiro passo e calcular o complemento de 010100101. No caso da base binaria isto

e, simplesmente, transformar os zeros em uns e os uns em zeros. Assim, o complemento

de 010100101 e 101011010. A seguir somam-se 100110110 com o complemento anterior:

100110110 + 101011010 = 1010010000. Soma-se 1 a este resultado e no caso de a soma

ter um numero de bits superior ao das parcelas, elimina-se o um mais a esquerda. Entao:

100110110− 010100101 = 010010001 .

Exercıcios:12. Efectue as seguintes operacoes, pelo metodo do complemento para 2:

(a) 10011010− 01010101 ; (b) 1011010110− 0110001101 ;

(c) 10101010101− 10001010101 ; (d) 110110011001101− 100101101001001.

Page 21: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

14

1.6 Exercıcios Propostos

13. Converta em numero de base 2 os seguintes numeros:

(a) (755)10 ; (b) (431)10 ; (c) (391)10 ; (d) (2008)10 ;

(e) (0.432)10 ; (f) (7854.321)10 ; (g) (57.0023)10 ; (h) (321.527)10

14. Converta em numero de base 16 os seguintes numeros:

(a) (10111101101)2 ; (b) (101010101111100)2 ; (c) (1010110011011111)2;

(d) (0.10101111)2 ; (e) (100011.00110011)2 ; (f) (1011011101.11101111)2.

15. Efectue as seguintes operacoes em base 2:

(a) 1010110011 + 1010101010 + 11110000 + 101010111 ;

(b) 11011100 + 10101000 + 1010111 + 11001100 ;

(c) 101110101101− 100011101111, utilizando a representacao em complemento para

2 ;

(d) 110100100110− 101111100001, utilizando a representacao em complemento para

2 ;

(e) 10110101× 101 ;

(f) 110000110111× 10111 ;

(g) 11011101× 1110 .

16. Converta os resultados obtidos no exercıcio anterior em numeros hexadecimais.

17. Converta os numeros hexadecimais seguintes na sua forma binaria:

(a) 0.67 ; (b) 0A8 ; (c) 0.7B ; (d) 0.1F;

(e) 0.1F20 ; (f) 0.0ABC ; (g) 0.70D2 ; (h) 0.86BA .

18. Converta os resultados obtidos no exercıcio anterior em numeros de base 10.

Page 22: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Capıtulo 2

Algebras de Boole

Livros para este capıtulo: [1] [2] [3] [4] [7]

2.1 Definicao e valor logico de uma proposicao

Na vida do dia-a-dia, na definicao de condicoes varias, na transmissao de uma mensagem,

na programacao, etc, ha um conjunto de regras que todos seguimos. Na tentativa de pre-

cisar todos estes conceitos surge a necessidade de definir e utilizar regras que nao oferecam

duvidas acerca do seu significado.

Assim, diremos que uma proposicao e uma expressao sobre a qual se pode dizer que e ver-

dadeira ou falsa. De outro modo, e sempre possıvel indicar o valor logico de uma proposicao:

verdade ou falso. Por exemplo, as expressoes seguintes sao proposicoes:

• Lisboa e a capital de Portugal.

• O sol e um planeta.

• 2 + 2 = 1000.

• O conjunto {0, 1, 2, 3, 4} tem 5 elementos.

com valores logicos, respectivamente: verdade, falso, falso, verdade.

Por outro lado, existem muitas expressoes que nao sao proposicoes, por exemplo:

• Que horas sao?

• Cuidado com o cao.

• O livro e interessante.

15

Page 23: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

16

• 1 + 2 = x.

Acerca destas expressoes, nao se pode afirmar serem verdadeiras (V) ou falsas (F) e, por

isto, nao sao consideradas proposicoes.

Vamos, muitas vezes, usar letras para designar proposicoes.

Assim, seja p a proposicao “Lisboa e a capital de Portugal.”. Podemos representar este facto

assim:

p : Lisboa e a capital de Portugal

Uma forma de obtermos novas proposicoes e usar operadores logicos ou conectivos logicos .

O primeiro que vamos considerar e o de negacao, assim definido:

se p e uma proposicao, entao a negacao de p e uma proposicao representada por ¬p que e

verdade se p e falsa e e falsa se p e verdade.

Mais a frente vamos ver outros conectivos logicos, mas introduzimos aqui uma forma de

esquematizar o resultado da aplicacao dos conectivos logicos a proposicoes: a tabela de ver-

dade. A tabela 2.1 e a tabela de verdade do operador negacao.

p ¬p

V F

F V

Tabela 2.1: Tabela de verdade do operador negacao

Sejam agora dadas duas proposicoes p e q:

p : A capital da Polonia e Praga

q : O autor de “Memorial do Convento” e Jose Saramago.

O valor logico da disjuncao de duas proposicoes e verdade se uma delas e verdade e e falso,

se ambas sao falsas. Para indicar este tipo de operacao escreve-se

or(p, q) ou p ∨ q

Em geral, utilizaremos esta ultima notacao. Para facilitar a linguagem, quando p e q sao

duas proposicoes e queremos efectuar a disjuncao das duas diremos, simplesmente, “p ou q”.

No exemplo dado, o valor logico da proposicao A capital da Polonia e Praga. ou

O autor de “Memorial do Convento” e Jose Saramago e verdadeiro pois o autor de “Memo-

rial do Convento” e, de facto, Jose Saramago.

Page 24: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

17

p q p ∨ q

V V V

V F V

F V V

F F F

Tabela 2.2: Tabela de verdade do operador disjuncao

O operador disjuncao exclusiva difere do anterior pelo facto de considerar falsa a disjuncao

exclusiva de duas proposicoes verdadeiras. Isto e, a disjuncao exclusiva de duas proposicoes

e verdade se uma, e apenas uma, das proposicoes e verdade. A notacao utilizada e a tabela

de verdade deste operador estao descritas a seguir:

p q p⊕ q

V V F

V F V

F V V

F F F

Tabela 2.3: Tabela de verdade do operador disjuncao exclusiva

Quanto a conjuncao de proposicoes, dizemos que a conjuncao das proposicoes p e q e ver-

dadeira se ambas as proposicoes sao verdadeiras e falsa se uma delas e falsa. Simbolicamente,

and(p, q) ou p ∧ q .

Em geral, utilizaremos a ultima notacao e diremos “p e q”.

p q p ∧ q

V V V

V F F

F V F

F F F

Tabela 2.4: Tabela de verdade do operador conjuncao

Podemos ainda construir proposicoes compostas, que resultam da combinacao de proposicoes

e da aplicacao dos varios operadores logicos as expressoes. Sempre que necessario, usaremos

parentesis para especificar a ordem das operacoes em causa.

Exercıcios:

Page 25: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

18

19. Diga quais das expressoes seguintes sao proposicoes:

(a) Viseu e uma cidade.

(b) Viseu e uma cidade bonita.

(c) A nota em circulacao em Portugal com valor facial mais elevados e a de 5 euros.

(d) Esta bom tempo.

20. Sejam p, q e r as proposicoes seguintes:

p : Nao ha pessoas na lua.

q : Moscovo e a capital da Russia.

r : Lewis Hamilton e o campeao mundial de F1.

Escreva, em linguagem corrente, as proposicoes:

(a) ¬p , ¬q e ¬r

(b) p ∨ q , p ∧ ¬r e q ⊕ ¬p.

21. Sejam p, q, r, s proposicoes. Escreva a tabela de verdade das proposicoes:

(a) (p ∨ q)⊕ (r).

(b) (p ∧ q) ∨ (r ⊕ s).

(c) (p ∨ s) ∧ ((r) ∧ q).

(d) (((q ∨ (s)) ∧ p)⊕ r)

Vejamos ainda mais dois conectivos logicos. Dadas duas proposicoes p e q, a implicacao

p→ q e falsa se p e verdadeira e q falsa e e verdadeira nos restantes casos. Isto e:

p q p→ q

V V V

V F F

F V V

F F V

Tabela 2.5: Tabela de verdade da implicacao

p→ q pode ler-se: p implica q, se p entao q ou q se p. Por exemplo, se

p : Hoje chove em Viseu.

Page 26: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

19

e

q : Trago comigo um guarda-chuva.

entao:

• se p e V e q e V, entao p→ q e verdade.

• se p e V e q e F, entao p→ q e falso.

• se p e F e q e V, entao p→ q e verdade.

• se p e F e q e F, entao p→ q e verdade.

A partir da implicacao definimos a equivalencia: p ↔ q e verdade se p e q tem o mesmo

valor logico, e falso caso contrario.

p q p↔ q

V V V

V F F

F V F

F F V

Tabela 2.6: Tabela de verdade da equivalencia

Exercıcios:

22. Considere as proposicoes

p: Vou estacionar o carro em cima da passadeira.

q: Vou ser multado.

Escreva, usando estas definicoes e os conectivos logicos, as proposicoes:

(a) Nao vou ser multado.

(b) Vou estacionar o carro em cima da passadeira e nao vou ser multado.

(c) Se estacionar o carro em cima da passadeira entao vou ser multado.

(d) Se nao estacionar o carro em cima da passadeira entao nao vou ser multado.

(e) Se sou multado entao estacionei o carro em cima da passadeira.

(f) Sou multado entao nao estacionei o carro em cima da passadeira.

(g) Sou multado se e so se estaciono o carro em cima da passadeira.

Page 27: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

20

23. Identifique as proposicoes presentes em cada frase e escreva-as, de forma codificada,

utilizando letras e conectivos logicos:

Por exemplo: Amanha e domingo e eu vou a um concerto.

p: Amanha e domingo.

q: Eu vou a um concerto.

p ∧ q

(a) Na hora de almoco vou comer fora ou vou a piscina.

(b) Se chegar atrasado tomo pequeno almoco ou falto a reuniao.

(c) Se a bateria do telemovel acabar telefono numa cabine ou numa estacao dos

correios.

(d) Vou de ferias para as Maldivas e levo 4 malas se e so se ganhar o EuroMilhoes ou

conseguir mudar de trabalho.

24. Sejam p, q, r e s proposicoes. Escreva as tabelas de verdade para as proposicoes

compostas seguintes:

(a) p ∨ (q ↔ r) .

(b) q ∧ ((p→ q) ∨ (r ↔ s)) .

(c) (p→ (q ∧ s))↔ (r ∨ q) .

(d) ((r ∧ q) ∨ (r → s))↔ (p ∨ q) .

25. Uma tautologia e uma proposicao verdadeira. Mostre que as proposicoes sao tautolo-

gias, isto e, sao verdadeiras independentemente dos valores logicos de p, q e r:

(a) p ∧ q ∨ p .

(b) p→ (p→ q) .

(c) (p ∧ q)→ (p→ q) .

(d) (p ∧ q)→ (p ∨ q) .

(e) (p→ q) ∨ (q → r) ∨ (r → p) .

(f) (p⊕ q) ∨ (q ∨ r) ∨ (r ∨ p) .

26. Mostre que as proposicoes seguintes sao equivalentes, isto e, definem a mesma tabela

de verdade :

(a) p e p ∨ p .

(b) p e p ∧ p .

Page 28: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

21

(c) p e p ∨ V .

(d) p e p ∧ F .

(e) p ∨ q e q ∨ p .

(f) p ∧ q e q ∧ p .

(g) p ∨ q e p ∧ q .

(h) p ∧ q e p ∨ q

(i) p ∨ (q ∧ r) e (p ∨ q) ∧ (p ∨ r) .

(j) p ∧ (q ∨ r) e (p ∧ q) ∨ (p ∧ r) .

(k) p ∨ q e p→ q .

Page 29: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

22

2.2 Definicao e propriedades de Algebra de Boole

Comecemos esta seccao referindo e definindo alguns dos termos que serao necessarios no seu

desenvolvimento. Iremos falar, nomeadamente, de conjuntos e de elementos que pertecem a

conjuntos.

Lembramos que: se A e um conjunto e x e um elemento, escrevemos

• x ∈ A se quisermos representar que x pertence ao conjunto A .

• x /∈ A se quisermos representar que x nao pertence ao conjunto A .

Uma operacao binaria + definida num conjunto A e uma operacao que a dois elementos

de A, x e y, faz corresponder um elemento z de A, ou seja:

x, y ∈ A⇒ x + y = z ∈ A .

Uma estrutura algebrica e um sistema constituido por um conjunto, por operacoes sobre os

elementos desse conjunto e pelas propriedades (axiomas) que os elementos e as operacoes

satisfazem.

Uma Algebra de Boole e uma estrutura algebrica (B,∨,∧), em que B e um conjunto nao

vazio, ∨ e ∧ sao operacoes binarias e tal que, se a, b, c ∈ B, temos os axiomas seguintes:

A1. Comutatividade

a ∨ b = b ∨ a ; a ∧ b = b ∧ a .

A2. Distributividade:

a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) ; a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) .

A3. Elemento neutro:

existe um elemento 0 ∈B tal que: a ∨ 0 = 0 ∨ a = a, para todo o elemento a ∈ B .

existe um elemento 1 ∈B tal que: a ∧ 1 = 1 ∧ a = a, para todo o elemento a ∈ B .

A4. Idempotencia: se a ∈B entao

a ∨ a = a e a ∧ a = a

Page 30: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

23

A5. Existencia de complemento: se a ∈B entao existe a ∈B tal que

a ∨ a = 1 e a ∧ a = 0 .

Um exemplo simples de uma Algebra de Boole e: ({0, 1},∨,∧), em que as operacoes estao

definidas por∨ 0 1

0 0 1

1 1 1

e

∧ 0 1

0 0 0

1 0 1

As operacoes numa Algebra de Boole chamamos operadores booleanos e os quadros anteriores

sao uma outra forma de representar tabelas de verdade.

Trabalharemos com expressoes/funcoes booleanas que sao sequencias de variaveis e operacoes

(ambas boolenas) e tentaremos desenvolver a capacidade de avaliacao de funcoes booleanas.

Uma funcao booleana e uma funcao com n variaveis booleanas e que tem como resultado

“0”ou “1”.

Exercıcios:

27. Mostre que, numa Algebra de Boole, sao validas as propriedades seguintes (associa-

tividade):

(a) (a ∧ b) ∧ c = a ∧ (b ∧ c) ;

(b) (a ∨ b) ∨ c = a ∨ (b ∨ c) .

28. Mostre que, numa Algebra de Boole, sao equivalentes as igualdades seguintes (Leis de

De Morgan):

(a) p ∧ q = p ∨ q ;

(b) p ∨ q = p ∧ q .

29. A proposicao dual de uma proposicao que contenha apenas os conectivos A, ∨ e ∧ e a

proposicao obtida substituindo ∨ por ∧, ∧ por ∨, V por F e F por V . Escreva o dual

de:

(a) p ∧ q ∧ r .

(b) (p ∧ q ∧ r) ∨ s .

(c) (p ∨ F ) ∧ (q ∨ V ) .

Page 31: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

24

Axiomas e Propriedades Expressoes Duais

Comutatividade pq = qp p + q = q + p

Distributividade p(q + r) = pq + pr p + (qr) = (p + q)(p + r)

Associatividade (p + q) + r = p + (q + r) (pq)r = p(qr)

Elementos Neutros p1 = p p + 0 = p

Complementos pp = 0 p + p = 1

Idempotencia pp = p q + q = q

Elementos absorventes p0 = 0 p + 1 = 1

Absorcao p(p + q) = p p + pq = p

Leis de De Morgan pq = p + q p + q = p q

Involucao p = p

Tabela 2.7: Resumo de algumas propriedades

2.3 Funcoes Booleanas e Tabelas de verdade

Vamos considerar as operacoes booleanas ∨ e ∧ acima descritas.

Usando uma linguagem logica, e fazendo a correspondencia “0”=F e “1”=V, cada uma das

operacoes ∨ e ∧ definem uma funcao booleana, a saber:

F∨(A, B) = A ∨ B e F∧(A, B) = A ∧ B

Vejamos, com algum detalhe, uma das funcoes: F∨ e uma funcao que tem como input duas

variaveis e como resultado “0”ou “1”.

Ja sabemos que, por exemplo: F∨(0, 1) = 0 ∨ 1 = 1. Isto e F∨V=V.

Utilizando a linguagem de sistemas digitais, com “0” e “1” a corresponderem a “desligado”

e “ligado” respectivamente, podemos perceber que “1”e o resultado da operacao A ∨ B, se

A = 0 e B = 1:

b b

b

b

b

b

b

b

b

B

A

E claro que as funcoes sao, na pratica, mais complexas que esta. Para ja, facamos alguns

calculos com as duas operacoes ja conhecidas.

Page 32: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

25

Vamos agora ver como “desenhar”circuitos simples recorrendo as operacoes ∨ e ∧.

Por exemplo, o circuito

A

B

b b

corresponde a funcao F (A, B) = A ∨B.

Por sua vez, o circuito

A Bb b

corresponde a funcao F (A, B) = A ∧B.

Exercıcios:

30. Considere a funcao F (A, B, C) = (A ∨B) ∧ C. Calcule:

(a) F (1, 1, 0) ; (b) F (1, 0, 1) ; (c) F (0, 1, 0) ; (d) F (0, 1, 1) .

31. Considere a funcao F (A, B, C, D) = (A ∨B ∨ C) ∧D. Calcule:

(a) F (1, 1, 0, 1) ; (b) F (0, 1, 0, 1) ; (c) F (1, 0, 1, 0) ; (d) F (0, 0, 1, 1) .

32. Desenhe os circuitos correspondentes as funcoes:

(a) F (A, B) = A ∨ (A ∧B) ; (b) F (A, B) = (A ∨ B) ∧A ;

(c) F (A, B) =(A ∧ B

)∨

(A ∧ B

); (d) F (A, B) = B ∨

(A ∧B

).

33. Desenhe os circuitos correspondentes as funcoes:

(a) F (A, B, C) = (A ∧B) ∨ (A ∧ C) ∨(B ∧ C

);

(b) F (A, B, C) =(A ∧B ∧ C

)∨

(A ∧ B ∧ C

);

(c) F (A, B, C, D) =((

A ∨ C)∧

(B ∨

(C ∧D

))∨ A

)∨ (B ∧D) .

Para simplificar a notacao e torna-la mais intuitiva vamos, muitas vezes daqui para frente

representar a operacao ∨ pelo sinal + enquanto que a operacao ∧ sera omitida. Estas

operacoes tambam se podem chamar soma logica e produto logico, respectivamente.

Com esta convencao, as operacoes podem escrever-se assim:

0 + 0 = 0 00 = 0

1 + 0 = 1 10 = 0

0 + 1 = 1 01 = 0

1 + 1 = 1 11 = 1

Page 33: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

26

Repare-se que temos de distinguir, nesta situacao, que 01, por exemplo, representa a operacao

0 ∧ 1 e nao o numero binario correspondente.

Vejamos agora como representar duas funcoes booleanas, usando esta notacao:

A ∨B ∧ C ∨D ≡ A + BC + D

e

A ∨ B ∧ A ∨ C ∧A ∨ C ≡ A + BA + CA + C .

As funcoes booleanas que ja vimos estao atras representadas por quadros a que chamamos

tabelas de verdade. Esta e uma forma alternativa de apresentar uma funcao booleana.

Vejamos agora como representar a funcao booleana:

F (A, B) = AB + B .

Esta funcao pode ser representada pela tabela de verdade:

A B AB AB + B

0 0 0 0

0 1 0 1

1 0 0 0

1 1 1 1

E se tivermos uma funcao booleana com 3 variaveis? Vejamos a caso em que a funcao em

causa e

F (A, B, C) = AB + BC + AC + A

Como cada variavel toma um de dois valores e temos tres variaveis, a tabela de verdade ira

ter 23 = 8 linhas:

A B C AB BC AC AB + BC + AC + A

0 0 0 0 0 0 0

0 0 1 0 0 0 0

0 1 0 0 0 0 0

0 1 1 0 1 0 1

1 0 0 0 0 0 1

1 0 1 0 0 0 1

1 1 0 1 0 0 1

1 1 1 1 1 1 1

Page 34: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

27

Vejamos outro caso:

F (A, B) = A + AB + AB

A tabela de verdade desta funcao e:

A B A B AB AB A + AB + AB

0 0 1 1 0 0 0

0 1 1 0 1 0 1

1 1 0 0 0 1 1

1 1 0 0 0 0 1

Exercıcios:

34. Construa as tabelas de verdade das funcoes seguintes:

(a) F (A, B) = A + B ; (b) F (A, B) = AB + AB ; (c) F (A, B) = AB + A.

35. Construa as tabelas de verdade das funcoes seguintes:

(a) F (A, B, C) = AB + AC + BC ; (b) F (A, B, C) = ABC + ABC ;

(c) F (A, B, C, D) = AB + BC + CD ;

(d) F (A, B, C, D) = ABC + B CD + AB + CD .

36. Represente as funcao do exercıcios anterior utlizando circuitos.

37. Escreva a funcao representada pelos circuitos

(a)

b bA

A

B

A

B

B

(b)

Page 35: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

28

b b

C A

C

B

B

A

A

B

CC

C

C

B

(c)

b bD

A

C

A

A

D

A

B

D

D

B

C

A

Page 36: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

29

2.4 Formas canonicas

Ja sabemos que ha varias formas equivalentes de escrever a mesma funcao e nesta seccao

iremos estudar formas particulares de representar uma funcao: as formas canonicas. Este

nome vem do factos de se escreverem as funcoes recorrendo somente a somas e produtos

logicos.

De entre as varias possibilidades, vamos concentrar o estudo nas formas canonica disjuntiva

e canonica conjuntiva de funcoes. A primeira apresenta a estrutura de uma soma logica

de produtos de variaveis enquanto que a segunda tem a estrutura de um produto de somas

de variaveis. Por esta razao, tambem se chama soma de produtos (SP) a primeira forma

e produtos de somas (PS) a segunda. Antes de saber como calcular cada uma destas for-

mas, vejamos dois exemplos das formas canonica disjuntiva e canonica conjuntiva da mesma

funcao: f(A, B, C) = A + AB + BC

F1(A, B, C) = fSP (A, B, C) = ABC + ABC + ABC + ABC + AB C

F2(A, B, C) = fPS(A, B, C) = (A + B + C)(A + B + C)(A + B + C)

A primeira e uma soma de termos produto e a segunda um produto de termos soma. Os

termos produto tambem sao chamados de mintermos e os termos soma de maxtermos. Es-

pecificando:

• Os mintermos sao produtos de todas as variaveis de uma funcao, complementadas ou

nao.

• Os maxtermos sao somas de todas as variaveis da funcao, complementadas ou nao.

Por exemplo, numa funcao booleana de 2 variaveis ha:

• 4 mintermos: AB, AB, AB e AB ;

• 4 maxtermos: A + B, A + B, A + B e A + B .

Exercıcios:

38. Mostre que as funcoes f, F1 e F2, acima definidas, sao equivalentes.

39. Escrever os mintermos de uma funcao de 3 variaveis.

40. Escrever os mintermos de uma funcao de 4 variaveis.

Uma das formas de simplificar uma expressao e aplicando as propriedades algebricas:

F1(A, B) = (A + B)B + B(A + B

)e F2(A, B) = AB + AB

Page 37: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

30

Vejamos:

F1(A, B) = (A + B) B + B(A + B

)=

= AB + BB + BA + BB =

= AB + 1 + BA + 1 =

= AB + BA = F2(A, B) .

logo F1 e F2 sao equivalentes. Isto quer dizer que para os mesmos inputs apresentam os

mesmos resultados.

Este metodo pressupoe a utilizacao das propriedades da tabela da pagina 24. Outro exemplo:

f(A, B, C) = (A + B)(B + C) + B + BC =

= AB + AC + BB + BC + B + BC =

= AB + AC + BC + B + BC =

= AB + AC + B(C + C) + B =

= AB + AC + B + B =

= AB + BC + B .

A simplificacao de expressoes booleanas de modo a optimizar os procedimentos, eliminar

operacoes redundantes e minimizar o tempo de execucao de uma operacao e importante

pois, na pratica, tem implicacoes na implementacao dos circuitos, no seu preco e na eficacia

do produto final.

Tendo em conta o que esta visto atras, resta dizer que as formas canonicas disjuntiva e

conjuntiva sao unicas e, por isto, para saber se duas funcoes sao equivalentes podemos deter-

minar as respectivas formas canonicas e, caso sejam equivalentes, concluir que as expressoes

originais tambem o sao. Nestas condicoes, devera ser usada aquela que menos tempo e re-

cursos consumir para dar o resultado de um input.

Por outro lado, ao desenhar um circuito logico, temos de garantir que nao existem operacoes

que se repitam ou cuja eliminacao nao influenciem o resultado final.

Vamos agora ver como calcular as formas canonicas ja referidas. Em primeiro lugar va-

mos ver como encontrar a forma canonica disjuntiva de uma funcao. Como ja foi referido,

esta tem a estrutura de uma soma de mintermos. Nos calculos que se seguem nesta seccao,

utilizam-se se, em grande medida, as propriedades:

p + p = 1 , p + p = p , p1 = p , p + ab = (p + a)(p + b) , p(a + b) = pa + pb.

Metodo algebrico:

neste caso, tentamos de forma algebrica e utilizando as regras das Algebras de Boole,

Page 38: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

31

chegar a uma expressao que seja soma de mintermos. Por exemplo, consideremos a funcao:

F (A, B, C) = A + BC + AB. Procedendo a operacoes algebricas:

F (A, B, C) = A + BC + AB =

= A(B + B)(C + C) + (A + A)BC + AB(C + C) =

= A(BC + BC + BC + B C) + ABC + ABC + ABC + AB C =

= ABC + ABC + ABC + AB C + ABC + ABC + ABC + AB C =

= ABC + ABC + ABC + ABC + AB C

Com a funcao tem 3 variaveis, cada mintermo tem 3 factores. Em cada parcela identificam-se

as variaveis inextistentes e completa-se, na parcela, com os produtos (p+p) das variaveis em

falta. Finalmente, procedem-se as operacoes ate chegar a forma pretendida.

Podemos resumir este processo em 4 etapas:

1. escrever a funcao atraves de somas de produtos das variaveis;

2. se uma das parcelas (P ) nao tiver uma das variaveis (por exemplo: A ou A) fazemos

o produto logico dessa parcela por (A + A): P (A + A);

3. nas parcelas a que aplicamos o passo 2., utilizamos a propriedade distributiva para

obter PA + PA. Continuamos a ter, deste modo, a expressao original escrita como

soma de produtos;

4. repetimos este processo em cada parcela obtendo a expressao como soma de mintermos;

5. no final, eliminamos as parcelas redundantes.

Page 39: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

32

Exercıcios:

41. Utilize este metodo para mostrar que a funcao anterior e equivalente a

G(A, B, C) = AC + BC + B + BC + AC + ABC + ABC + ABC + AB C

42. Determine a forma canonica disjuntiva das funcoes:

(a) F (A, B, C) = AB + BAC + BC + A .

(b) F (A, B, C) = (AC + ABC)(AB + BC) .

(c) F (A, B, C, D) = ABD + (ACD + ABD)(ACD) .

Metodo das tabelas de verdade:

construa-se a tabela de verdade da funcao F (A, B, C) = A + BC + AB:

A B C mintermo B BC AB A + BC + AB

0 0 0 A B C 1 0 0 0

0 0 1 A BC 1 0 0 0

0 1 0 ABC 0 0 0 0

0 1 1 ABC 0 0 1 1

1 0 0 AB C 1 0 1 1

1 0 1 ABC 1 0 1 1

1 1 0 ABC 0 0 0 1

1 1 1 ABC 0 1 0 1

Com a tabela de verdade, podemos escrever a forma canonica somando os mintermos asso-

ciados as combinacao das variaveis cujo output e 1:

F (A, B, C) = ABC + ABC + ABC + ABC + AB C .

Exercıcios:

43. Escreva as formas canonicas disjuntivas das funcoes seguintes, pelo metodo algebrico:

(a) F (A, B) = AB + B

(b) F (A, B, C) = AB + BC + CD + AB + A

(c) F (A, B, C) = ABC + A + BC + B

(d) F (A, B, C, D) = ABC + ABD + AD + CD + BCD .

Page 40: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

33

44. Escreva a forma canonica disjuntiva das funcoes seguintes, pelo metodo das tabelas de

verdade:

(a) F (A, B) = AB + A

(b) F (A, B, C) = AC + AC + AD + AC + A

(c) F (A, B, C) = BC + AB + ABC + C

(d) F (A, B, C, D) = AB + ABD + AD + ABD + BD .

Passamos agora ao calculo da forma canonica conjuntiva.

Reforcemos as propriedades que mais utilizaremos:

p + ab = (p + a)(p + b) e pp = 0 .

Metodo algebrico:

Vamos agora utilizar as regras das Algegras de Boole e chegar a uma expressao que seja

produto de maxtermos. Por exemplo, consideremos a funcao: F (A, B, C) = A+BC. Proce-

dendo a operacoes algebricas:

F (A, B, C) = A + BC =

= (A + B)(A + C) =

= (A + B + CC)(A + C + BB) =

= (A + B + C)(A + B + C)(A + C + B)(A + C + B) =

= (A + B + C)(A + B + C)(A + B + C)

O metodo algebrico para determinar a forma canonica conjuntiva e, muitas vezes, mais

complexo e demorado que o metodo para determinar a forma canonica conjuntiva. No

entanto, tentemos resumi-lo aos passos essenciais:

1. escrever a funcao atraves de produtos de somas das variaveis; (nota: p + ab = (p +

a)(p + b));

2. se um dos factores (P ) nao tiver uma das variaveis (por exemplo: A ou A) fazemos a

soma logica nesse factor por (AA): P + AA;

3. nas parcelas a que aplicamos o passo 2., utilizamos a propriedade distributiva para

obter (P + A)(P + A). Continuamos a ter, deste modo, a expressao original escrita

como produtos de somas;

Page 41: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

34

4. repetimos este processo em cada factor obtendo a expressao como produto de maxter-

mos;

5. no final, eliminamos os factores redundantes.

Metodo das tabelas de verdade:

construa-se a tabela de verdade da funcao F (A, B, C) = A + BC:

A B C maxtermo BC A + BC

1 1 1 A + B + C 1 1

1 1 0 A + B + C 0 1

1 0 1 A + B + C 0 1

1 0 0 A + B + C 0 1

0 1 1 A + B + C 1 1

0 1 0 A + B + C 0 0

0 0 1 A + B + C 0 0

0 0 0 A + B + C 0 0

Com a tabela de verdade, podemos escrever a forma canonica conjuntiva que e o produto

dos maxtermos associados as combinacao das variaveis cujo output e 0:

F (A, B, C) = (A + B + C)(A + B + C)(A + B + C) .

Exercıcios:

45. Escreva as formas canonicas conjuntivas das funcoes seguintes, pelo metodo algebrico:

(a) F (A, B) = AB + B

(b) F (A, B, C) = AB + BC

(c) F (A, B, C) = ABC + A

(d) F (A, B, C, D) = ABC + ABD .

46. Escreva a forma canonica conjuntiva das funcoes seguintes, pelo metodo das tabelas

de verdade:

(a) F (A, B) = AB + A

(b) F (A, B, C) = AC + AC + AD + AC + A

(c) F (A, B, C) = BC + AB + ABC + C

(d) F (A, B, C, D) = AB + ABD + AD + ABD + BD .

Page 42: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

35

2.5 Mapas de Karnaugh

Nesta seccao, vamos comecar por ver como representar funcoes booleanas numa forma

grafica, utilizando mapas de Karnaugh. Veremos, depois, uma forma de os utilizar de modo

a simplificar funcoes booleanas e a encontrar as suas formas canonicas.

Os mapas de Karnaugh sao construıdos a partir da tabela de verdade de uma funcao e

constituıdos por celulas. Cada uma destas corresponde a um mintermo e a um maxtermo.

Se quisermos escrever a forma canonica disjuntiva (soma dos mintermos) temos de ter em

conta as celulas que tem valor 1; se for a forma canonica conjuntiva (produto de maxtermos)

tomamos em consideracao as de valor 0. Cada uma das celulas e numerada com o ındice dos

mintermos/maxtermos que lhe corresponde. Para esta numeracao, definimos os mintermos

como os mi e os maxtermos como os Mi, de acordo com as tabelas seguintes:

A B mintermo sımbolo maxtremo sımbolo

0 0 A B m0 A + B M0

0 1 AB m1 A + B M1

1 0 AB m2 A + B M2

1 1 AB m3 A + B M3

Tabela 2.8: mintermos mi e dos maxtermos Mi para F com 2 variaveis.

A B C mintermo sımbolo maxtremo sımbolo

0 0 0 A B C m0 A+B+C M0

0 0 1 A B C m1 A + B + C M1

0 1 0 A B C m2 A + B + C M2

0 1 1 ABC m3 A + B + C M3

1 0 0 AB C m4 A + B + C M4

1 0 1 ABC m5 A + B + C M5

1 1 0 ABC m6 A + B + C M6

1 1 1 ABC m7 A + B + C M7

Tabela 2.9: mintermos mi e dos maxtermos Mi para F com 3 variaveis.

Page 43: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

36

A B C D mintermo sımbolo maxtremo sımbolo

0 0 0 0 A B C D m0 A + B + C + D M0

0 0 0 1 A B CD m1 A + B + C + D M1

0 0 1 0 A BCD m2 A + B + C + D M2

0 0 1 1 A BCD m3 A + B + C + D M3

0 1 0 0 ABC D m4 A + B + C + D M4

0 1 0 1 ABCD m5 A + B + C + D M5

0 1 1 0 ABCD m6 A + B + C + D M6

0 1 1 1 ABCD m7 A + B + C + D M7

1 0 0 0 A B C D m8 A + B + C + D M8

1 0 0 1 AB CD m9 A + B + C + D M9

1 0 1 0 ABCD m10 A + B + C + D M10

1 0 1 1 ABCD m11 A + B + C + D M11

1 1 0 0 ABC D m12 A + B + C + D M12

1 1 0 1 ABCD m13 A + B + C + D M13

1 1 1 0 ABCD m14 A + B + C + D M14

1 1 1 1 ABCD m15 A + B + C + D M15

Tabela 2.10: mintermos mi e dos maxtermos Mi para F com 4 variaveis.

Vemos, em seguida, alguns exemplos:

Exemplo 1: f1(A, B) = A + AB + AB .

Exemplo 2: f2(A, B, C) = AB + AC + BC .

Exemplo 3: f3(A, B, C, D) = ABD + AC + CD .

Construamos as tabelas de verdade e os mapas de Karnaugh respectivos:

Exemplo 1:

A B B AB AB f1

0 0 1 0 0 0

0 1 0 0 0 0

1 0 1 0 1 1

1 1 0 1 0 1

Tabela 2.11: Tabela de verdade da funcao f1(A, B) = A + AB + AB

Page 44: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

37

f1(A, B)

00

01

12

13

A

B

Exemplo 2:

A B C B C AB AC BC f2

0 0 0 1 1 0 0 0 0

0 0 1 1 0 0 0 1 1

0 1 0 0 1 0 0 0 0

0 1 1 0 0 0 0 0 0

1 0 0 1 1 0 1 0 1

1 0 1 1 0 0 0 1 1

1 1 0 0 1 1 1 0 1

1 1 1 0 0 1 0 0 1

Tabela 2.12: Tabela de verdade da funcao f2(A, B, C) = AB + AC + BC

f2(A, B, C)

00

11

02

03

14

15

16

17

A

B

C

Page 45: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

38

Exemplo 3:

A B C D A B D ABD AC CD f3

0 0 0 0 1 1 1 0 0 0 0

0 0 0 1 1 1 0 0 0 0 0

0 0 1 0 1 1 1 0 1 1 1

0 0 1 1 1 1 0 0 1 0 1

0 1 0 0 1 0 1 0 0 0 0

0 1 0 1 1 0 0 0 0 0 0

0 1 1 0 1 0 1 0 1 1 0

0 1 1 1 1 0 0 0 1 0 1

1 0 0 0 0 1 1 0 0 0 0

1 0 0 1 0 1 0 1 0 0 1

1 0 1 0 0 1 1 0 0 1 1

1 0 1 1 0 1 0 1 0 0 1

1 1 0 0 0 0 1 0 0 0 0

1 1 0 1 0 0 0 0 0 0 0

1 1 1 0 0 0 1 0 0 1 1

1 1 1 1 0 0 0 0 0 0 0

Tabela 2.13: Tabela de verdade da funcao f3(A, B, C, D) = ABD + AC + CD

f3(A, B, C, D)

00

01

12

13

04

05

06

17

08

19

110

111

012

013

114

015A

B

C

D

Page 46: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

39

Vejamos como escrever as formas canonicas de uma funcao escrita sob a forma de mapa de

Karnaugh. Por exemplo, a funcao f de 3 variaveis A, B, C representada por

f(A, B, C)

10

01

02

13

04

05

06

17

A

B

C

Tendo em conta a tabela da pagina 35:

f(A, B, C) = m0 + m3 + m7 = A B C + ABC + ABC .

e

f(A, B, C) = M1M2M4M5M6 = (A+B+C)(A+B+C)(A+B+C)(A+B+C)(A+B+C) .

Vejamos agora um exemplo de uma funcao com 4 variaveis:

f(A, B, C, D)

10

11

02

03

04

05

06

17

18

19

110

011

112

013

114

015A

B

C

D

Neste caso:

f(A, B, C, D) = m0 + m1 + m7 + m8 + m9 + m10 + m12 + m14 ⇔

⇔ f(A,B,C,D) = A B C D+A B CD+ABCD+AB C D+AB CD+ABCD+ABC D+ABCD

e

f(A, B, C, D) = M2M3M4M5M6M11M13M15 =

= (A+B+C +D)(A+B+C +D)(A+B +C +D)(A+B+CD)(A+B +C +D)(A+B+C +D)(A+B+C +D)(A+B+C +D)

Page 47: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

40

2.6 Simplificacao de funcoes Booleanas

Para simplificacao de expressoes algebricas podemos, com ja foi visto, utilizar as proprieda-

des algebricas das operacoes booleanas conforme descrito na tabela da pagina 24.

Nesta seccao iremos dedicar-nos a utilizacao de mapas de Karnaugh para a simplificacao

de funcoes booleanas. O Exemplo 1. anterior

f1(A, B):

00

01

12

13

A

B

traduz a funcao booleana com 2 variaveis: f1(A, B) = A + AB + AB .

Este metodo consiste em encontrar celulas adjacentes com valor 1.

� A

f1(A, B):

00

01

12

13

A

B

Marcando essas celulas, podemos formar rectangulos com 1, 2, 4, 8, . . ., 2n . . . celulas.

Analisando os quadrados assinalados, verificamos que intersectam a fronteira da variavel

B e, portanto, esta desaparece. Como os quadrados assinalados estao totalmente dentro da

area da variavel A, e este o resultado. Logo:

f1(A, B) = A + AB + AB = A .

Vejamos agora a funcao do Exemplo 2. : f2(A, B, C) = AB + AC + BC

� A

-A BC0

0

11

02

03

14

15

16

17

A

B

C

Assim:

f2(A, B, C) = AB + AC + BC = A BC + A .

Page 48: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

41

E vejamos agora o caso da funcao de 4 variaveis do Exemplo 3.:

f3(A, B, C, D) = ABD + AC + CD

@@

@R

BC

� AB CD

� ABCD

� ABCD

00

01

12

13

04

05

06

17

08

19

110

111

012

013

114

015A

B

C

D

Neste caso:

f3(A, B, C, D) = ABD + AC + CD = BC + ABCD + ABCD + AB CD

a “simplificacao” conduz, aparentemente, a uma funcao mais complexa que a inicial. Na

pratica, optamos pela forma que utlize menos operacoes.

Na pagina 42 apresentam-se 3 tabelas que nos podem auxiliar nestas simplificacoes.

Nota: “literal” significa uma variavel, complementada ou nao.

Todos estes procedimentos conduzem a uma forma simplificada de uma funcao, na forma

disjuntiva (soma de produtos). Uma outra interpretacao dos mapas de Karnaugh leva-no

a uma simplificacao na forma conjuntiva (produto de somas). Esta ultima e deixada como

exercıcio.

Page 49: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

42

no de celulas no rectangulo da origem a . . .

1 mintermo

2 1 literal

4 0 ou 1

Tabela 2.14: Simplificacao de funcoes com 2 variaveis

no de celulas no rectangulo da origem a . . .

1 mintermo

2 2 literais

4 1 literal

8 0 ou 1

Tabela 2.15: Simplificacao de funcoes com 3 variaveis

no de celulas no rectangulo da origem a . . .

1 mintermo

2 3 literais

4 2 literais

8 1 literal

16 0 ou 1

Tabela 2.16: Simplificacao de funcoes com 4 variaveis

Page 50: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

43

2.7 Exercıcios Propostos

47. Escrever as tabelas de verdade das funcoes

(a) f(A, B) = (m0 + m1)M2

(b) f(A, B, C) = M1M4 + m5 + m7

(c) f(A, B, C, D) = (m3 + m9)M7M11(m10 + m14)

48. Represente as funcoes do exercıcio 47. atraves de mapas de Karnaugh.

49. Represente, atraves de mapas de Karnaugh, as funcoes

(a) f1(A, B, C) = m0 + m1 + m4 + m7

(b) f2(A, B, C, D) = m0 + m1 + m5 + m7 + m10 + m14 + m15

(c) f3(A, B, C) = M0M1M4M7

(d) f4(A, B, C, D) = M0M1M5M7M10M14M15

50. Construa, directamente, os mapas de Karnaugh de

(a) f1(A, B, C) = ABC + AB + A BC

(b) f2(A, B, C, D) = AB + AC + ABD + BCD

(c) f3(A, B, C, D) = (A + B + C)(A + B + D)(A + B + C + D)

(d) f4(A, B, C, D) = (C + D)(A + B + D)(A + B + C + D)(A + D)

51. Indique expressoes simplificadas para as funcoes (representadas por mapas de Kar-

naugh) seguintes:

(a)

10

11

12

03

04

15

06

07

A

B

C

(b)

00

11

02

13

14

15

06

17

A

B

C

Page 51: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

44

(c)

00

01

12

13

04

05

06

17

08

19

110

111

012

013

114

015A

B

C

D

(d)

00

11

02

13

04

15

06

17

08

19

110

011

012

013

014

115A

B

C

D

52. Utilize os mapas construidos no exercıcio 49 para obter expressoes simplificadas das

funcoes.

53. Utilizar mapas de Karnaugh para obter as formas canonicas disjuntiva e conjuntiva

das funcoes:

(a) f(A, B, C) = (A + B)(A + B + C)(A + C)

(b) f(A, B, C, D) = AB + ACD + BCD

(c) f(A, B, C, D) = (A + B)(C + D)(A + C)

54. De entre as funcoes booleanas seguintes, determinar as que sao equivalentes:

(a) f1(A, B, C, D) = AC + BD + AB D

(b) f2(A, B, C, D) = AB D + AB + ABC

(c) f3(A, B, C, D) = BD + AB D + ACD + ABC

(d) f4(A, B, C, D) = AC + AB C D + ABD + BCD

(e) f5(A, B, C, D) = (B + D)(A + B)(A + C)

Page 52: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

45

Resolucao resumida de alguns exercıcios

Na resolucao dos exercıcios 47.(b), 48.(b), 49.(a) e 49.(d) recorre-se as tabelas da pagina 35.

Exercıcio 47. (b):

f(A, B, C) = M1M4 + m5 + m7 = (A + B + C)(A + B + C) + AB + ABC

A B C A B C A + B + C A + B + C . ABC ABC f

0 0 0 1 1 1 1 1 1 0 0 1

0 0 1 1 1 0 0 1 0 0 0 0

0 1 0 1 0 1 1 1 1 0 0 1

0 1 1 1 0 0 1 1 1 0 0 1

1 0 0 0 1 1 1 0 0 0 0 0

1 0 1 0 1 0 1 1 1 1 1 1

1 1 0 0 0 1 1 1 1 0 1 1

1 1 1 0 0 0 1 1 1 0 0 1

Exercıcio 48. (b): f(A, B, C) = M1M4 + m5 + m7

10

01

12

13

04

15

16

17

A

B

C

Exercıcio 49. (a): f1(A, B, C) = m0 + m1 + m4 + m7

10

11

02

03

14

05

06

17

A

B

C

Exercıcio 49. (d): f4(A, B, C, D) = M0M1M5M7M10M14M15

Page 53: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

46

00

01

12

13

14

05

16

07

18

19

010

111

112

113

014

015A

B

C

D

Exercıcio 50. (a): f1(A, B, C) = ABC + AB + A BC

00

11

02

03

14

15

06

07

A

B

C

A parcela ABC da origem a 1 nas celula 5.

A parcela AB da origem a 1’s nas celulas 5 e 4.

A parcela A BC da origem a 1 na celula 1.

As restantes celulas sao preenchidas com 0’s.

Exercıcio 50. (c): f3(A, B, C, D) = (A + B + C)(A + B + D)(A + B + C + D)

00

01

02

03

14

15

16

17

18

19

110

111

112

113

114

115A

B

C

D

O factor (A + B + C) da origem aos zeros nas celulas 0 e 1.

O factor (A + B + D) da origem aos zeros nas celulas 0 e 2.

O factor (A + B + C + D) da origem ao zero na celula 3.

As restantes celulas sao preenchidas com 1’s.

Exercıcio 51. (a):

Page 54: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

47

- �A C BC1

0

11

12

03

04

15

06

07

A

B

C

Forma simplificada disjuntiva: f(A, B, C) = A C + BC

B + C

A + C1

0

11

12

03

04

15

06

07

A

B

C

Forma simplificada conjuntiva: f(A, B, C) = (A + C)(B + C)

Exercıcio 52. (d):

- �

�- A + B + C

A + B + CA + B + C

A + B + C + D

00

01

12

13

14

05

16

07

18

19

010

111

112

113

014

015A

B

C

D

Forma simplificada conjuntiva:

f(A, B, C, D) = (A + B + C)(A + B + C)(A + B + C)(A + B + C + D)

Page 55: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

48

�-

AC

ABDA BCD

BCD

00

01

12

13

14

05

16

07

18

19

010

111

112

113

014

015A

B

C

D

Forma simplificada disjuntiva:

f(A, B, C, D) = A C + BCD + ABD + A BCD

Exercıcio 53. (c): f(A, B, C, D) = (A + B)(C + D)(A + C)

10

01

12

13

04

05

06

07

08

09

110

111

012

013

114

115A

B

C

D

Page 56: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Capıtulo 3

Matrizes

Livros para este capıtulo: [4] [5]

3.1 Matrizes: Motivacao.

As matrizes surgem, naturalmente, quando se coloca o problema de guardar um conjunto de

valores. Suponhamos que pretendemos guardar os valores da temperatura em Viseu as 12h

durante o mes de Dezembro de 2008. Isto pode ser feito, por exemplo, criando 31 variaveis

(uma por cada dia do mes. . .) e guardando em cada uma das variaveis o valor referente a

cada um dos dias. E uma hipotese que resolve o problema mas que o torna muito complexo

se precisarmos de manipular os dados. . .

De outra forma, podemos guardar os valores das temperaturas numa unica variavel, de forma

ordenada. Esta variavel guarda todos os valores e temos acesso a esse valor sabendo que a

ordem e a dos dias. Se pretendermos saber qual a temperatura no dia 25, esse valor e o que

estiver na posicao 25 da variavel utilizada. Esquematicamente, designemos a variavel de h:

h ≡ 9.2 9.3 8.8 8.1 8.3 9.1 9.2 7.9 . . . . . .

Neste esquema, ja sabemos que a temperatura no dia 1 foi de 9.2, no dia 2 de 9.3, no dia 3

de 8.8, . . .

Se em vez de apenas querermos os dados de 2008 se tornar necessario guardar os dados

desde 2001, podiamos optar por definir uma variavel para cada ano, e cada uma destas

variaveis era construida conforme foi a h: a para o ano de 2001, b para o ano de 2002, c para

o ano de 2003, . . .

A ideia de matriz surge como uma forma de agrupar numa mesma variavel, dados com

49

Page 57: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

50

tres dimensoes (neste caso: ano, dia do mes e temperatura). Vejamos como fica esta nova

variavel:8.1 8.3 8.7 8.1 7.6 7.1 6.5 6.2 . . . . . .

6.9 7.3 7.5 7.5 7.4 5.4 4.9 4.1 . . . . . .

8.5 8.2 7.9 7.8 7.6 8.9 9.2 9.9 . . . . . ....

......

......

......

.... . .

. . .

Se designarmos esta variavel por T , podemos convencionar que T (n, m) (n = 1, 2, . . . , 8

e n = 1, 2, . . . , 31) representa a temperatura em Viseu as 12h no dia m de Dezembro de

200n . . . Assim sabemos ainda que a temperatura no dia 7 de Dezembro de 2003 foi de 9.2

graus.

E esta a origem das matrizes e sua estrutura ordenada permite que possamos guardar,

mover, copiar, manipular, . . ., os dados consoante as necessidades.

Nesta exemplo, a nossa matriz tem 8 linhas (series de dados na horizontal) e 31 colunas

(series de dados na vertical) e, por isto, dizemos que a variavel e matricial de dimensao

8× 31 ou, simplesmente, e uma matriz 8× 31.

3.2 Matrizes: Primeiras definicoes.

Uma matriz e, entao, uma tabela de numeros. A cada um destes numeros chamamos ele-

mentos , entradas, ou componentes de uma matriz. A dimensao e o numero de linhas e de

colunas que a formam:

(Numero de linhas)×(Numero de colunas) .

Outra matriz pode ser formada pelas vendas de uma marca de automoveis, com tres modelos

diferentes, durante o ano de 2008:

Jan Fev Mar Abr Mai Jun

modelo a 10 12 13 9 13 9

modelo b 19 22 21 19 23 25

modelo c 37 42 43 39 41 45

Nesta situacao, a matriz subjacente a estes dados e

10 12 13 9 13 9

19 22 21 19 23 25

37 42 43 39 41 45

.

Esquematicamente, a delimitacao das tabelas numericas por [ e ] indicam-nos que estamos

na presenca de uma matriz.

Page 58: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

51

Consideremos entao a matriz A anterior. Isto e

A =

10 12 13 9 13 9

19 22 21 19 23 25

37 42 43 39 41 45

.

Existem varias formas de identificar cada um dos elementos de uma matriz mas, em comum,

todos fazem referencia a designacao da matriz e aos nos da linha e da coluna onde esta o

elemento em causa. Por exemplo

[A]24 ; A(2, 4) ; A24 ; a24

sao representacoes validas para o elemento da linha 2 e coluna 4 da matriz A.

3.3 Matrizes especiais

Pela sua forma particular e pela sua aplicacao, existem matrizes com designacoes proprias,

como veremos nesta seccao.

Uma matriz de dimensao 1× n e uma matriz linha. Por exemplo:

A =[

0 −1 −2 2]

e uma matriz linha de dimensao 1× 4.

Por outro lado, uma matriz de dimensao n× 1 e uma matriz coluna.

Por exemplo: B =

0

−1

3

e uma matriz coluna de dimensao 3× 1.

Sao matrizes quadradas as que tem igual numero de linhas e de colunas. Por exemplo:

[−1 3

1 2

]

;

1 0 1

9 −2 3

7 −4 −1

;

0 −1 −2 2

−1 0 1 1

3 1 −1 0

−1 0 0 1

sao matrizes quadradas de dimensao 2 , 3 e 4 , respectivamente.

Numa matriz quadrada, tera importancia saber identificar a sua diagonal principal . Por

exemplo, na matriz

A =

0 −1 −2 2

−1 0 1 1

3 1 −1 0

−1 0 0 1

Page 59: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

52

a diagonal principal e:

A =

0 −1 −2 2

−1 0 1 1

3 1 -1 0

−1 0 0 1

Uma matriz quadrada e triangular superior se todos os elementos abaixo da diagonal prin-

cipal forem 0. Por exemplo:

A =

-3 −1 2 2

0 0 1 −1

0 0 -1 0

0 0 0 1

e triangular superior.

Uma matriz quadrada e triangular inferior se todos os elementos abaixo da diagonal principal

forem 0. Por exemplo:

A =

2 0 0

2 1 0

0 −3 -1

e triangular inferior.

Uma matriz quadrada e uma matriz diagonal se apenas tem elementos diferentes de 0 na

diagonal principal. Por exemplo:

A =

-3 0 0

0 0 0

0 0 1

e diagonal.

3.4 Operacoes com matrizes

Como vimos, as matrizes sao uteis para o armazenamento de informacao. Na pratica,

para o tratamento de informacao e/ou resolucao de problemas, torna-se necessario efectuar

operacoes e estas serao o tema desta seccao. Entre matrizes, vamos considerar as operacoes

seguintes:

• igualdade de matrizes;

• transposicao;

• soma de matrizes;

• produto escalar;

• produto de matrizes.

Page 60: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

53

A igualdade de matrizes e definida de forma natural desta forma:

Duas matrizes A e B sao iguais se tem a mesma dimensao e os mesmos elementos nas

posicoes respectivas. Por exemplo

1 2 0

0 1 −1

1 0 1

3×3

=

2− 1 2 3− 3

0 14 (−1)3

50 0 1

3×3

.

A transposicao e util, nomeadamente, em duas situacoes: organizacao da informacao e

operacoes aritmeticas. E um operador unario, isto e, o input e uma matriz. Se esta matriz

e A = [aij ] do dimensao m× n entao o resultado e a matriz AT = [aji] de dimensao n×m.

Por exemplo:

A =

[0 −1 0

0 1 −1

]

2×3

−→ AT =

0 0

−1 1

0 −1

3×2

Em situacoes varias e necessario somar matrizes: se A, B sao duas matrizes da mesma

dimensao, entao a sua soma e uma outra matriz da mesma dimensao cujas componentes sao

a soma das componentes respectivas em A e B. Por exemplo :

1 0

9 −2

7 −4

−1 2

︸ ︷︷ ︸

A 2×4

+

0 −1

−4 2

−1 0

2 −1

︸ ︷︷ ︸

B 4×2

=

1 −1

5 0

6 −4

1 1

︸ ︷︷ ︸

A+B 4×2

.

Notas:

1. se A e B tem dimensoes distintas a sua soma nao e possıvel;

2. a diferenca de duas matrizes define-se do mesmo modo que a sua soma, trocando os

papeis dos operadores + e - .

Vejamos agora como definir o produto escalar . Esta operacao consiste em multiplicar todos

os elementos de uma matriz por um mesmo valor (o escalar). Em rigor: seja α ∈ R e A uma

matriz de dimensao m×n. O produto escalar de α por A e uma matriz da mesma dimensao

de A em que cada elemento aij e transformado em αaij. Por exemplo:

−2︸︷︷︸

α

−1 1 0 2

3 −2 −1 0

1 2 −1 −4

0 −1 −1 2

︸ ︷︷ ︸

A 4×4

=

2 −2 0 −4

−6 4 2 0

−2 −4 2 8

0 2 2 −4

︸ ︷︷ ︸

αA 4×4

.

Page 61: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

54

Exercıcios:

55. Escreva a matriz C cujas componentes sao definidas por: cij = i2 − j

56. Determine x e y de tal forma que

(a)

[1 3

2 −4

]

=

[x− y 3

2 −x− 1

]

(b)

2 −1

x 2

3 y

− 2

[x− y

21 −1

−2 −x2

2

]T

=

0 6

−1 3

5 −2

(c)

y 0

0 −1

x 1

×

[2 3 −1

x 1 −y

2

]

=

−4 −6 2

−x −1 −1

3 −2y 0

57. Determine a matriz D tal que: 2D +

[−5 8

1 −3

]

=

[4 7

−1 5

]

58. Uma empresa tem tres fabricas. As vendas de cada uma estao representadas na matriz

seguinte, em que as colunas representam as quatro semanas de Fevereiro:

320 430 190 318

212 189 300 260

290 450 385 273

(a) Qual o valor das vendas da fabrica 3 na 2a semana de Fevereiro?

(b) Qual o valor das vendas da fabrica 1 na ultima semana de Fevereiro?

(c) Qual o valor das vendas da fabrica 2 ao longo do mes de Fevereiro?

(d) Qual o valor das vendas totais da empresa na 2a semana de Fevereiro?

3.4.1 Produto de matrizes

O produto de matrizes e uma operacao que nos merece uma seccao autonoma por ter um

algoritmo mais demorado, embora simples, de executar. Comecemos pela questao seguinte:

uma empresa vende 4 produtos diferentes (p1, p2, p3 e p4) com os precos unitarios de 1.6, 2.2,

0.8 e 1.2, respectivamente. Como calcular o valor a pagar por uma compra de 2000 unidades

de p1, 1250 unidades de p2, 1350 unidades de p3 e 1850 unidades de p4? Evidentemente:

2000× 1.6 + 1250× 2.2 + 1350× 0.8 + 1850× 1.2 = 9250 .

Page 62: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

55

Se as quantidades estiverem guardadas (de forma ordenada) numa matriz-linha

a = [2000 1250 1350 1850]

e os precos unitarios (ordenados) numa matriz-coluna b =

1.6

2.2

0.8

1.2

, este calculo e, simples-

mente: a× b ou ab .

Este exemplo torna claro a utilidade o produto de matrizes no tratamento numerico da

informacao. Ilustra ainda a multiplicacao de uma matriz-linha por uma matriz-coluna. Note-

se que o numero de colunas (valores) da matriz-linha e igual ao numero de linhas (valores)

da matriz-coluna e que, se invertermos a ordem pela qual efectuamos a multiplicacao, esta

torna-se impossıvel. Esta observacao e, de facto, uma das condicoes da definicao do produto

de duas matrizes A e B: o numero de colunas da matriz A tem de ser igual ao numero de

linhas da matriz B. Mais rigorosamente:

Sejam A uma matriz de dimensao n× p e B uma matriz de dimensao p×m.

O produto destas matrizes A e B e uma matriz C:

An×p × Bp×m = Cn×m .

Isto e, dadas duas matrizes, a expressao anterior diz-nos quais as condicoes para a possibili-

dade (ou nao) do produto e qual a dimensao da matriz resultante da operacao. Vejamos um

exemplo: sejam

A =

[1 −1 0 1

−2 1 1 −1

]

e B =

2 −3 −1

3 −2 0

1 0 2

1 −1 0

As dimensoes de A e B sao respectivamente 2× 4 e 4× 3. Neste caso, o produto A×B (ou

AB) e possıvel e a matriz resultante tem dimensao 2× 3. Seja C esta matriz. A sua forma

geral e:

C =

[c11 c12 c13

c21 c22 c23

]

O calculo dos cij faz-se a partir da linha i da matriz A e da coluna j da matriz B: por

exemplo:

c11 =[

1 −1 0 1]

2

3

1

1

= 1× 2 + (−1)× 3 + 0× 1 + 1× 1 = 2− 3 + 0 + 1 = 0

Page 63: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

56

Isto e:

C =

[0 c12 c13

c21 c22 c23

]

Restantes calculos para completar a matriz C:

c12 =[

1 −1 0 1]

−3

−2

0

1

= 1×(−3)+(−1)×(−2)+0×0+(−1)×1 = −3+2+0−1 = −2

c13 =[

1 −1 0 1]

−1

0

2

0

= 1× (−1) + (−1)× 0 + 0× 2 + 1× 0 = −1 + 0 + 0 + 0 = −1

E esta calculada a 1a linha de C:

C =

[0 −2 −1

c21 c22 c23

]

Quanto a 2a linha:

c21 =[−2 1 1 −1

]

2

3

1

1

= (−2)× 2 + 1× 3 + 1× 1 + (−1)× 1 = −4 + 3 + 1− 1 = −1

c22 =[−2 1 1 −1

]

−3

−2

0

−1

= (−2)×(−3)+1×(−2)+1×0+(−1)×(−1) = 6−2+0+1 = 5

c23 =[−2 1 1 −1

]

−1

0

2

0

= (−2)× (−1)+1×0+1×2+(−1)×0 = 2+0+2+0 = 4

Logo:

C =

[0 −2 −1

−1 5 4

]

Page 64: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

57

As operacoes que ja vimos, tem um conjunto de propriedades que em muitos casos sao se-

melhantes as dos numeros reais e operacoes respectivas. No entanto, ha umas excepcoes

importantes. Algumas propriedades e excepcoes sao as que a seguir se enumeram:

Sejam A, B e C matrizes com dimensoes compatıveis com as operacoes em causa:

• A + B = B + A, a soma de matrizes e comutativa;

• (A + B) + C = A + (B + C), a soma de matrizes e associativa;

• A(B + C) = AB + AC e (B + C)A = BA + CA, propriedades distributivas;

• (AB)C = A(BC), o produto de matrizes e associativa;

• AB 6= BA, o produto de matrizes nao e comutativa!;

• AB = AC ; B = C e BA = CA ; B = C, nao ha a lei do corte;

• (A + B)T = AT + BT ;

• (AB)T = BT AT .

Exercıcios:

59. Sejam:

A =

[−1 0 1 2

0 2 3 −1

]

; B =

1 2 0

−1 1 −1

−1 1 2

0 2 −1

; C =

1 0 2 1

1 2 −1 −2

0 1 0 −1

Calcule:

(a) A×B

(b) B × C

(c) A×(3B + CT

)

60. Sejam A =

[2 −1 4

2 −3 −2

]

, B =

[−1 2 0

0 1 −1

]

, C =

[0 −3 2

1 0 −1

]

.

Calcule: (a) A + B ; (b) A− C ; (c) ABT + BCT ; (d) (−2)BT C + 3AT A.

Page 65: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

58

3.4.2 Uma aplicacao do produto de matrizes

Nesta seccao vamos exmplificar uma aplicacao das matrizes e do produto de matrizes. Con-

sideremos o esquema:

b1 c1

a1 b2 c2 d1

a2 b3 c3 d2

b4

A partir deste diagrama, definamos 3 matrizes:

• P , em que pij = 1 se e possıvel ir de ai para bj ; restantes casos pij = 0;

• Q, em que qij = 1 se e possıvel ir de bi para cj ; restantes casos qij = 0;

• R, em que rij = 1 se e possıvel ir de ci para dj ; restantes casos rij = 0.

Matricialmente:b1 b2 b3 b4

a1 1 1 1 0

a2 0 0 1 1

−→ P =

[1 1 1 0

0 0 1 1

]

c1 c2 c3

b1 1 1 0

b2 0 1 0

b3 0 1 1

b4 0 0 1

−→ Q =

1 1 0

0 1 0

0 1 1

0 0 1

d1 d2

c1 1 0

c2 1 1

c3 0 1

−→ R =

1 0

1 1

0 1

Os produtos das matrizes anteriores (PQ, QR e PQR) tem um significado pratico util em

muitas situacoes. Por exemplo:

PQ =

[1 1 1 0

0 0 1 1

]

1 1 0

0 1 0

0 1 1

0 0 1

=

[1 3 1

0 1 2

]

.

Page 66: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

59

O elemento pqij indica-nos o numero de formas diferentes que existem para ir de ai a cj.

Por exemplo, ha apenas uma forma para ir de a2 ate c2: a2 −→ b3 −→ c2 .

Ha 3 formas para ir de a1 ate c2:

a1 −→ b1 −→ c2 ; a1 −→ b2 −→ c2 ; a1 −→ b3 −→ c2 .

Diagramas como o anterior sao ferramentas para muitas aplicacoes reais. O proximo capıtulo

motiva, exemplifica e esquematiza algumas dessas aplicacoes.

3.5 Introducao ao software MatLab

O MatLab e um software muito poderoso e versatil, apto para as tarefas mais exigentes de

calculo matematico. A base do seu funcionamento sao as matrizes e, com alguns topicos,

podemos desde logo comecar a explorar a suas potencialidades. Ao iniciar o programa,

abre-se a janela de comandos.

As varias versoes do software podem ter algumas diferencas no layout mas em todas, ao

iniciar o software, o cursor fica depois do sımbolo >>, indicando ao utilizador que o programa

aguarda a introducao de instrucoes. Para alem destas poderem ser introduzidas directamente

(por exemplo, calculos numericos), ha a possibilidade de utilizar funcoes ja implementadas,

escrever programas que interagem com o utilizador

input −→ output ,

Page 67: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

60

gravar o ambiente de trabalho, gravar as variaveis em utilizacao, . . .

Aqui vamos ver como criar, manipular e operar com matrizes. Introduzindo as matrizes

directamente no MatLab:

>>A=[-1 3 2;-1 0 2;-3 1 0]

significa que declaramos a variavel A que guarda a matriz

−1 3 2

−1 0 2

−3 1 0

.

A seguir, enumeram-se algumas formas de manipular uma matriz e as instrucoes MatLab que

lhes correspondem:

• Alterar o elemento da L2C3 (linha 2, coluna 3) da matriz A:

>>A(2,3)=-2

−1 3 2

−1 0 −2

−3 1 0

.

• Alterar a 2a linha da matriz A:

>>A(2,:)=[0 1 2]

−1 3 2

0 1 2

−3 1 0

.

• Alterar a 3a coluna da matriz A:

>>A(:,3)=[-1;0;-1]

−1 3 −1

0 1 0

−3 1 −1

.

• Definir a matriz B a partir da matriz A, resultante da interseccao das linhas 1 e 2 e

das colunas 1 e 3 de A

>>B=A([1 2],[1 3])

B =

[−1 −1

0 0

]

.

Page 68: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

61

• Acrescentar linhas a uma matriz:

>>B(3,:)=[0 1];B(4,:)=[-1 -4]

B =

−1 −1

0 0

0 1

−1 −4

.

• Acrescentar colunas a uma matriz:

>>B(:,3)=[-1;0;1;0];B(4,:)=[1;2;-1;4]

B =

−1 −1 −1 1

0 0 0 2

0 1 1 −1

−1 −4 0 4

.

• As operacoes de soma, diferenca, produto escalar e produto de matrizes sao executadas

com os operadores usuais: + , - , * .

• Transposta de A: >>A’ ;

• A igualdade e um operador booleano que, no MatLab, se interpreta da seguinte forma:

– se A e B tem a mesma dimensao, retorna uma matriz com a mesma dimensao

e em que cada componente vale 1 (nos casos em que as componentes respectivas

em A e B sao iguais) ou 0 (nos casos em que as componentes respectivas em A e

B sao diferentes);

Page 69: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

62

– se A e B nao tem a mesma dimensao, retorna a mensagem de erro

Matrix dimensions must agree.

• Matriz nula: >>zeros(4,3)

Q =

0 0 0

0 0 0

0 0 0

0 0 0

.

• Matriz de 1’s: >>ones(3,4)

W =

1 1 1 1

1 1 1 1

1 1 1 1

.

• Matriz diagonal: >>diag([1 2 3 4])

D =

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

.

• Matriz identidade: >>id=eye(3)

id =

1 0 0

0 1 0

0 0 1

.

Ha outras matrizes que pela sua aplicabilidade vamos agora referir. Em Estatıstica e na

Simulacao e necessario recorrer a dados aleatorios. O MatLab permite a construcao deste

tipo de matrizes

>>al=rand(3,4).

3.6 Sistemas de Equacoes Lineares (SEL)

Um sistema de 3 equacoes com 3 incognitas tem a forma seguinte:

a11x + a12y + a13z = b1

a21x + a22y + a23z = b2

a31x + a32y + a33z = b3

(3.1)

Page 70: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

63

e pode ser representado matricialmente. Se considerarmos:

A =

a11 a12 a13

a21 a22 a23

a31 a32 a33

; x =

x

y

z

; b =

b1

b2

b3

.

o sistema (3.1) escreve-se, simplesmente: Ax = b .

A e a matriz dos coeficientes, x a matriz das incognitas e b a matriz dos termos independentes

do sistema. Por exemplo, o SEL

2x + 4y − 3z = −4

3x + 3y + z = 8

−x + 2y + 2z = −1

pode representar-se na forma Ax = b, em que

A =

2 4 −3

3 3 1

−1 2 2

; x =

x

y

z

; b =

−4

8

−1

.

Uma solucao de um SEL e uma sequencia ordenada de valores numericos, tal que, ao subs-

tituir no SEL as incognitas pelos valores que lhes correspondem, as igualdades do sistema

sao todas verdadeiras.

Um SEL pode ser

• Impossıvel (SI), se nao tiver solucoes;

• Possıvel determinado (SPD), se tiver um so solucao;

• Possıvel indeterminado (SPI) se tiver mais do que uma solucao.

Resolver um SEL consiste em calcular todas as suas solucoes ou concluir que o sistema e

impossıvel. O MatLab pode ajudar-nos a calcular as solucoes de um SEL. Comecamos por

definir e declarar as matrizes A e b. A teoria diz-nos que a solucao de um SEL e dada por

inv(A)× b, em que inv(A) e a inversa de A.

Se A e uma matriz quadrada de dimensao n, a inversa de A e uma matriz B (com a mesma

dimensao de A tal que A× B = B ×A = eye(n). Chamamos a atencao de que ha matrizes

que nao tem inversa e que a inversa, se existir, e unica. Assim, designamos a inversa de A

por A−1.

Page 71: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

64

Retomando a resolucao de um SEL, se este e representado matricialmente por Ax = b e

e possıvel, entao a sua solucao e dada por x = inv(A) ∗ b. Caso nao seja o SEL nao seja

possıvel, o MatLab retorna uma mensagem de erro e temos de averiguar se o SEL e impossıvel

ou possıvel indeterminado. Vejamos o exemplo anterior:

A =

2 4 −3

3 3 1

−1 2 2

; x =

x

y

z

; b =

−4

8

−1

.

A solucao e dada por

inv(A) ∗ b = inv

2 4 −3

3 3 1

−1 2 2

−4

8

−1

=

3

−1

2

x = 3

y = −1

z = 2

Tentemos agora resolver o sistema

2x + 4y − 2z = −4

4x + 3y + z = 8

−x + 2y − 3z = −1

Declarando as matrizes A e b do sistema, a instrucao

>>inv(A)*b

retorna a mensagem de erro

Warning: Matrix is singular to working precision.

o que significa que a matriz A do sistema nao e invertıvel, isto e, nao tem inversa. Vamos

resolver esta situacao recorrendo a matriz aumentada do sistema, que podemos representar

por [A|b] e declarar no MatLab assim

>>C=[A b]

Neste caso, C e a matriz

2 4 −2 −4

4 3 1 8

−1 2 −3 −1

.

Se executarmos a instrucao

>>rref(C)

Page 72: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

65

obtemos

1 0 1 0

0 1 −1 0

0 0 0 1

.

A ultima linha, lida em termos de um SEL, diz-nos que 0 = 1 o que significa que este SEL

e impossıvel.

O sistema definido pelas matrizes

A =

2 3 −2

−1 −1 1

1 2 −1

; b =

−4

8

4

tambem da origem a mensagem de erro anterior devido ao facto de A nao ter inversa. No

entanto, definindo a matriz aumentada (C)

>>rref(C)

da origem a matriz:

A =

1 0 −1 −20

0 1 0 12

0 0 0 0

Rescrevendo sob a forma de sistema:

x− z = −20

y = 12

0 = 0

{x− z = −20

y = 12⇔

{x = −20 + z

y = 12

Isto quer dizer que o SEL e possıvel indeterminado (pela forma como esta resolvido, a

indeterminacao e na variavel z). O conjunto das solucoes do sistema e representado assim

{(−20 + z, 12, z) : z ∈ R}

Este SEL tem um numero infinito de solucoes, algumas das quais podemos escrever atribuindo

valores a z. Alguns exemplos:

(−20, 12, 0) , (−10, 12, 10) , (0, 12, 20) , (−25, 12,−5), . . .

Exercıcios:

Page 73: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

66

61. Utilize o MatLab para calcular A + BT − 3AT B , em que

A =

1 2 3

0 3 1

1 2 2

; B =

−1 0 −1

2 1 1

1 2 0

62. Ordene as matrizes seguintes de forma a ser possıvel o produto e calcule esse produto.

A =

[1 0 1

−1 1 1

]

; B =

[1 1

1 −1

]

; C =

[1

2

]

; D =

1 0

0 1

1 1

63. Resolva os SEL:

(a)

x + y − z = 0

x− y + z = 2

x− y − z = −4

; (b)

2x− z = 9

y + 2z = 5

2x− y − 3z = 4

; (c)

2x− y − 3z = 4

x− y + z = −1

x− 4z = 2

3.7 Matrizes Esparsas

Uma matriz esparsa tem um numero elevado de zeros entre os seus elementos. Por exemplo,

uma matriz diagonal pode ser considerado esparsa pois so tem elementos diferentes de zero

na diagonal principal. Esta caracterıstica, e o facto de serem comuns em casos praticos, leva

a que no MatLab tenham uma forma particular de se declararem. Vejamos um exemplo:

A =

1 −1 0 0 0 0

0 2 0 0 0 0

0 −1 1 0 0 0

0 0 0 −1 0 0

0 0 0 −1 2 0

0 0 0 0 0 1

Esta matriz tem 36 elementos, dos quais 27 sao zeros. Vejamos como representar esta matriz

no Matlab. Os elementos diferentes de zero sao:

• C(1, 1) = 1;

• C(1, 2) = −1;

• C(2, 2) = 2;

• C(3, 2) = −1;

Page 74: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

67

• C(3, 3) = 1;

• C(4, 4) = −1;

• C(5, 4) = −1;

• C(5, 5) = 2;

• C(6, 6) = 1;

Definam-se no MatLab:

• >>P1=[1 1 2 3 3 4 5 5 6];

• >>P2=[1 2 2 2 3 4 4 5 6];

• >>P3=[1 − 1 2 − 1 1 − 1 − 1 2 1];

em que P1 e a sequencia ordenada das linhas que contem os elementos diferentes de 0 em A;

P2 e a sequencia ordenada das colunas que contem os elementos diferentes de 0 em A; P3 e

a sequencia ordenada dos elementos diferentes de 0 em A. A instrucao

>>SA=sparse(P1,P2,P3,6,6) cria na memoria do MatLab a matriz SA. A grande van-

tagem e a poupanca de recursos. Definamos a matriz FA, que e a versao expandida de SA:

FA=full(SA)

Vejamos o espaco de memoria em uso pelas variaveis ja declaradas:

>>whos

SA ocupa menos de metade do espaco que FA. Em matrizes de dimensao superior (varias

dezenas ou centenas de linhas) a poupanca, em termos percentuais, e ainda maior.

Exercıcios:64. Defina, no MatLab, as matrizes seguintes utilizando a instrucao sparse. Confirme o

seu resultado utilizando a instrucao full.

(a) A =

1 −1 0 0 0 0

0 2 0 0 −2 0

0 −1 0 0 −1 0

0 0 0 −1 2 0

0 1 0 0 2 0

−1 0 0 0 0 −3

Page 75: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

68

(b) B =

0 0 0 0 0 1

0 −2 0 0 1 0

0 0 0 0 −1 0

0 0 1 −1 0 0

0 1 0 0 0 0

1 0 0 −3 0 0

65. Considere o diagrama seguinte:

b1 c1 d1 e1

a1 b2 c2 d2

a2 b3 c3 d3 e2

b4

Determine, utilizando os conhecimentos que tem de matrizes esparsas em MatLab , o

numero de formas diferentes para ir de a1 ate e2 e de a2 ate e1 .

Page 76: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Capıtulo 4

Teoria dos Grafos

Livros para este capıtulo: [4] [6]

4.1 Introducao. Grafo (nao orientado) e sua repre-

sentacao

Um esquema como este

b1 c1

a1 b2 c2 d1

a2 b3 c3 d2

b4

pode ser o resumo de uma informacao recolhida nos mais variados contextos, consoante este-

jamos a considerar: mapa de estradas, diagramas de circuitos, conexoes entre componentes

de uma rede, . . .

E este o ponto de partida para o estudo de grafos: um conjunto de objectos (a que chamamos

vertices) e de linhas (a que chamamos arestas) que os unem. Mais rigorosamente:

Um grafo consiste num conjunto finito de vertices (ou pontos, ou nos) e num conjunto

finito de arestas (ou arcos). Cada uma das arestas tem um vertice em cada uma das suas

extremidades.

69

Page 77: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

70

• Vertice: b1

• Dois vertices unidos por uma aresta: a b

O conjunto de vertices do grafo G vai ser denotado por V (G) e o conjunto das suas arestas

por E(G). Cada aresta e representada pelos seu vertices. Por exemplo, reltivamente ao grafo

Ga b c

d e f g

• V (G) = {a, b, c, d, e, f, g} ;

• E(G) = {de, da, ae, eb, fc, cg, fg} .

Os grafos anteriores sao nao orientados no sentido em que de e ed representam a mesma

aresta. Esta aresta e definida pelos dois vertices.

Na linguagem de grafos, referimos ainda que dois vertices sao adjacentes se existe uma

aresta a uni-los e uma aresta e incidente num vertice se esse vertice e um dos dois que define

a aresta.

Nota 4.1. Fazemos, neste ponto, a referencia aos grafos orientados. Diferem dos anteriores

pelo facto de as arestas terem orientacao. Graficamente as arestas sao setas que unem o

vertice inicial ao vertice final. Neste sentido, a aresta de e distinta da aresta ed. Sendo H

o grafo:

a b c

d e f g

temos que V (H) = {a, b, c, d, e, f, g} e E(H) = {da, ae, de, eb, fc, fg, cg}. Este tipo de grafo

e um digrafo.

No que se segue, todos os grafos sao nao orientados.

4.2 Conceitos fundamentais

Ha ocasioes em que se torna necessario considerar grafos em que ha pares de vertices unidos

por mais do que uma aresta (arestas paralelas) e outros em que, para alem de arestas

Page 78: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

71

paralelas, tem arestas que incidem no mesmo vertice com ambas as extremidades (lacete ou

loop). Estes grafos sao os multigrafos e os pseudografos. Respectivamente:

a b c

d e f g

x y

z w

Os grafos que iremos estudar sao grafos simples, isto e, que nao tem arestas paralelas nem

loops.

Um caso particular sao os grafos completos. Estes tem n vertices e todos os seus vertices

sao adjacentes. Para cada n ∈ N, representamos o grafo completo respectivo por Kn. Aqui

ficam alguns exemplos:

3

4

2

1

3

2

1

8

7

6

5

4

1

13

6

12

3

11

5

10

8

9

4

15

7

2

14

Figura 4.1: K4, K8 e K15.

Em grafos com um numero grande de vertices e de arestas, pode ainda haver necessidade de

considerar grafos mais pequenos dentro daqueles. Se um grafo G e definido pelos conjuntos

V (G) e E(G), um seu subgrafo H e definido por um subconjunto V (H) de V (G) e um

subconjunto E(H) de E(G) de arestas cujos vertices estejam em V (H). Por exemplo, se G

e o grafo completo

1 2

3 4

entao1 2

3 4

1 2

3 4

1 2

3

sao subgrafos de G.

Page 79: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

72

4.3 Caminhos de um grafo

Vamos agora estudar com mais pormenor um dos pontos essenciais da Teoria de Grafos:

sequencias de arestas que formam caminhos.

Seja G e um grafo simples. Um caminho entre dois vertices v1 e vn e uma sequencia de

arestas em que:

• a primeira aresta e incidente com v1;

• em cada aresta (excepto na primeira) um dos seus vertices coincide com um dos vertices

da aresta anterior;

• a ultima aresta e incidente com vn.

Vamos considerar o grafo G seguinte e identificar, para alem dos vertices, tambem as arestas:

v1 v2

v3 v4

b

c

ed f

a

Exemplos de caminhos: dcaf , bfe , afecb . Num caminho pode haver repeticao de arestas.

Por exemplo no caminho dcbefcb . O comprimento de um caminhos e o numero de arestas

que o compoem. Os caminhos anteriores tem comprimentos 4, 3, 5 e 7, respectivamente. A

distancia entre dois vertices e o menor dos comprimentos de todos os caminhos que unem

esses vertices. Claro que um caminho pode ser definido, equivalentemente, pelos vertices

das arestas. Nos quatro exemplo anteriores, a relacao entre a representacao de um caminho

usando as arestas ou os vertices e a seguinte

Arestas ←→ vertices

dcaf ←→ v3v1v2v2v4

bfe ←→ v1v2v4v1

afecb ←→ v2v2v4v1v2v1

dcbefcb ←→ v3v1v2v1v4v2v1v2

Esta relacao merece algumas notas:

• o numero de vertices que determinam um caminho e superior (em uma unidade) ao

numero de arestas respectivo;

Page 80: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

73

• num caminho em que existem loops, ha repeticoes na sequencia de vertices;

• num grafo em que ha arestas paralelas, duas sequencias diferentes de arestas podem

corresponder a mesma sequencia de vertices;

• num grafo sem arestas paralelas nem loops, a cada sequencia de arestas corresponde

uma so sequencia de vertices. O recıproco tambem e verdadeiro.

Os caminhos podem ter caracterısticas que os tornem interessantes do ponto vista das

aplicacoes. Definamos alguns tipos particulares de caminhos:

• Caminho simples e aquele que nao tem arestas repetidas;

• Caminho elementar e aquele que nao tem vertices repetidos.

Num caminho fechado os primeiro e ultimo vertices sao o mesmo. No grafo anterior, bafecb

e abefbc , com as sequencias de vertices v1v2v2v4v1v2v1 e v2v2v1v4v2v1v2 , respectivamente,

sao caminhos fechados. Um ciclo e um caminho fechado eficiente, no sentido de nao serem

repetidas arestas e de os vertices que o definem serem todos distintos a excepcao do primeiro

e do ultimo (que sao o mesmo, pela defincao de caminho fechado). Logo, feb e um ciclo. No

caminho fechado dcfed uma aresta e repetida e em cafe (sequencia de vertices: v1v2v2v4v1)

ha a repeticao de v2.

Um grafo acıclico e aquele que nao tem ciclos. Observe-se o grafo

v2 v4 v6

v1 v3 v5

v7

v8 v9 v10 v11

a b

g

c d e

f

h

j ki

E facil concluir que este grafo tem um ciclo. Do mesmo modo

v2 v4 v6

v1 v3 v5

v7

v8 v9 v10 v11

a b

g

c d e

f

h

ki

Page 81: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

74

e acıclico.

Um dos problemas mais antigos sobre grafos e o das pontes de Konigsberg e consiste no

seguinte: a cidade de Konigsberg e atravessada por um rio e, num dado local, ha duas ilhas.

Como dar um passeio em que atravessemos todas pontes exactamente uma vez, terminando

a caminhada no ponto de partida?

Figura 4.2: Konigsberg e as suas pontes

Podemos, entao, generalizar o problema ao estudo do (multi)grafo

a

b c

d

O matematico suico Leonhard Euler resolveu este problema em 1736. Sera o leitor capaz de

fazer o mesmo?

No grafo anterior, os vertices representam “terra firme” enquanto que as arestas representam

as pontes. O problema consiste em responder a questao: existe um caminho fechado em que

todas as arestas sao utilizadas exactamente uma vez?

Um caminho com estas caracterısticas chama-se ciclo de Euler . Sera que o grafo anterior

tem um ciclo de Euler? Se sim, o problema esta resolvido; se nao, o problema e impossıvel.

Para responder a isto, temos de introduzir outro conceito: o de grau de um vertice. O

grau e o numero de arestas que incidem nesse vertice. No caso em estudo:

grau(a) = 3 ; grau(b) = 5 ; grau(c) = 3 ; grau(d) = 3 .

O que Euler mostrou foi que para um grafo ter um ciclo de Euler todos os vertices tem de

ter grau par. Um raciocınio simples pode ajudar-nos a perceber este facto: inicie o percurso

Page 82: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

75

num qualquer vertice e va de vertice para vertice eliminando a aresta pela qual “caminhou”.

Ou seja, em cada vertice apaga a aresta pela qual “chega”ao vertice e aquele pela qual

“sai”. E cada vertice elimina 2 arestas de cada vez que por ele passa. No vertice de partida,

independentemente do numero de arestas (sempre em numero par!), a primeira e a ultima

aresta sao tambem em numero par. Assim, podemos concluir que o problema das pontes

atras descrito e impossıvel. Por outro lado, nao e suficiente que todos os vertices tenham

grau par para exista um ciclo de Euler. Vejamos este caso:

a b

c d e f

Apesar de todos os vertices terem grau par, o grafo nao e conexo, isto e, ha pares de vertices

nao ligados por caminhos. Por exemplo, nao ha um caminho que ligue os vertices a e c. Para

que fizue bem explıcito aquilo que foi dito, enunciemos o

Teorema 4.2. Num grafo conexo existe um ciclo de Euler se, e so se, todos os vertices tem

grau par.

4.4 Exercıcios Propostos

Considere os grafos G, H e J seguintes:

G :

t x

s v w z

u y H :

v

w x

y z

J :

s t

u v w x

y z

66. Qual dos seguintes sequencias de vertices descreve um caminho em G?(a) stuvwxyz (b) tvwzyx

(c) stus (d) tuss

(e) vwvwvwv (f) wvustvw

Page 83: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

76

67. Quais dos caminhos descritos no exercıcio 66. sao caminhos fechados?

68. Quais dos caminhos descritos no exercıcio 66. sao ciclos?

69. No grafo G, escreva a sequencia de vertices do caminho mais curto que liga os pares

de vertices seguintes. Em cada alınea, indique a distancia.(a) s e v (b) s e z

(c) u e y (d) v e w

70. Para cada par de vertices do exercıcio 69., descreva todos os caminhos simples que

ligam os vertices e indique o mais longo.

71. Quais dos grafos G, H, J tem ciclos de Euler? Para os que nao tem, diga porque; para

os que tem, indique um.

72. Verdadeiro ou Falso:

(a) Se ha uma aresta de u para v entao ha uma aresta de v para u .

(b) Se ha uma aresta do vertice u para o vertice v e uma aresta do vertice v para

o vertice w, entao ha uma aresta do vertice u para o vertice w.

73. O mesmo que o exercıcio 72. substituindo aresta por caminho.

74. O mesmo que o exercıcio 72. substituindo aresta por caminho de comprimento par.

75. O mesmo que o exercıcio 72. substituindo aresta por caminho de comprimento ımpar.

76. De um exemplo de um grafo com os vertices x, y, z que satisfaca as propriedades:

• ha um ciclo que contem os vertices x e y ;

• ha um ciclo que contem os vertices y e z ;

• nenhum ciclo contem os vertices x e z .

77. (a) Para cada um dos grafos G, H, J calcule

i. a soma dos graus de todos os vertices;

ii. o numero de arestas.

(b) Observe a relacao enter a “soma de todos os graus”e o “numero”de arestas de um

grafo.

(c) A soma dos graus de todos os vertices pode ser um numero ımpar?

Page 84: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

77

4.5 Matriz de adjacencia de um grafo

Considere-se o grafo

v1 v2

v3 v4 v5 v6

v7 v8

e construa-se a matriz A, em que cada elemento e dado por:

aij =

{1, se existe aresta que uma vi a vj;

0, se nao existe aresta que uma vi a vj.

Esta funcao gera, a partir do grafo anterior, a matriz:

A =

0 0 1 1 0 0 1 0

0 0 0 0 1 1 0 1

1 0 0 0 0 0 1 0

1 0 0 0 1 0 1 0

0 1 0 1 0 0 0 1

0 1 0 0 0 0 0 1

1 0 1 1 0 0 0 0

0 1 0 0 1 1 0 0

Aqui consideramos grafos sem arestas paralelas e sem loops. Esta matriz e a matriz de

adjacencias do grafo G. Note-se que se, em alternativa, nos for dada uma matriz de ad-

jacencias de um grafo, podemos representar o grafo por um diagrama. Neste aspecto, toda

a informacao do grafo esta na matriz e vide-versa.

4.6 Potencias da matriz de adjacencia e algumas pro-

priedades

A matriz de adjacencias de um grafo tem uma aplicacao pratica que se utiliza em contagem

de caminhos .

Dada uma matriz de adjacencias M o elemento da posicao (i, j) da matriz Mk, k ∈ IN

indica-nos o numero de caminhos de comprimento igual a k distintos que ligam o vertice

ai ao vertice aj (no nosso caso, nao faz sentido considerar k = 0) .

Page 85: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

78

No caso da matriz anterior:

A3 = A× A× A =

4 1 5 6 1 0 5 1

1 4 0 1 6 5 1 5

5 0 2 2 2 0 5 0

6 1 2 2 5 2 6 1

1 6 2 5 2 2 1 6

0 5 0 2 2 2 0 5

5 1 5 6 1 0 4 1

1 5 0 1 6 5 1 4

Por exemplo, o elemento A3(4, 3) = 2 significa que existem 2 caminhos de comprimento 3

entre os vertices v4 e v3 .

4.7 Exercıcios Propostos

78. Escreva as matrizes da adjacencias dos grafos

H :

v1

v2 v3

v4 v5 J :

v1 v2

v3 v4 v5 v6

v7 v8

79. Desenhe um grafo cuja matriz de adjacencias seja

Adj(G) =

0 0 1 1 0 0 0 0 0 0

0 0 1 1 0 0 1 0 0 0

1 1 0 0 0 1 0 0 0 0

1 1 0 0 0 0 0 0 0 1

0 0 0 0 0 1 0 1 1 0

0 0 1 0 1 0 0 1 0 0

0 1 0 0 0 0 0 1 0 1

0 0 0 0 1 1 1 0 0 0

0 0 0 0 1 0 0 0 0 0

0 0 0 1 0 0 1 0 0 0

80. Determine:

Page 86: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

79

(a) Quantos caminhos de comprimentos 3 ha entre os vertices v2 e v5 dos grafos do

exercıcio 78.

(b) Quantos caminhos de comprimentos 5 ha entre os vertices v1 e v5 dos grafos do

exercıcio 78.

(c) Quantos caminhos de comprimentos 7 ha entre os vertices v2 e v5 do grafo H do

exercıcio 78.

(d) Quantos caminhos de comprimentos 8 ha entre os vertices v2 e v7 do grafo J do

exercıcio 78.

81. Desenhe o grafo G caracterizado por:

• V (G) = {v1, v2, v3, v4, v5, v6, v7}

• E(G) = {v1v2, v2v3, v3v5, v5v6, v5v7, v2v4, v4v6, v6v7, v1v7}

(a) Determine o grau de cada vertice de G .

(b) Escreva a matriz de adjacencias do grafo e determine quantos caminhos de com-

primento 5 existem entre os vertices v1 e v6 .

4.8 Problemas do Caminho mais Curto

Um grafo com pesos e um grafo em que cada aresta tem um valor (nao negativo) associado.

Este valor pode corresponder a distancia entre os dois vertices, o custo para ir de um vertice

a outro, o tempo gasto. . . Pretendem resolver-se problemas em que se encontrem os percursos

mais baratos, mais rapidos ou mais curtos. . .

Vamos supor que o mapa de Portugal e o da figura seguinte, existem apenas as estradas

desenhadas e as distancias sao as indicadas. Qual o trajecto mais curto de Faro a Viana do

Castelo?

Este mapa pode ser representado por um grafo com pesos em que

• os vertices sao as cidades ;

• as arestas sao as estradas ;

• os pesos sao as distancias .

Vamos agora descrever um algoritmo que resolve problemas como os referidos anteriormente:

o Algoritmo de Dijkstra. Este e um algoritmo eficiente, no sentido em que encontra uma

solucao para o problema num numero finito de passos. Na verdade, permite-nos saber qual

o caminho mais curto e a soma dos pesos associados a esse caminho. No caso do mapa de

Page 87: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

80

Figura 4.3: Distancia entre as cidades portuguesas

Portugal, permite-nos calcular o trajecto mais curto entre as duas cidades e a respectiva

distancia.

Seja G um grafo com pesos e V (G) = {v1, v2, v3, . . . , vk} e c(vi, vj) o peso da aresta que

liga vi a vj. Vejamos uma forma de esquematizar o Algoritmo de Dijkstra, para o calculo

do caminho mais curto entre v1 e vn:

1. L(v1) = 0 e L(vi) =∞, i > 1 e S = {v1} e v1 = v∗;

2. Enquanto vn /∈ S fazer:

(a) para todos os vertices adjacentes a v∗ que nao pertencem a S fazer L(vi) =

L(v∗) + c(v∗, vi) ;

(b) escolher o menor dos valores L(vi) calculados; fazer o vertice correspondente = v∗

e incluir v∗ em S;

Page 88: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

81

3. o comprimento do caminho mais curto entre v1 e vn e L(vn).

Enquanto fazemos estes calculos, podemos etiquetar os vertices com a sequencia de vertices

que a ele conduzem atraves do Algoritmo de Dijkstra para, no final, termos tambem a

descricao do caminho mais curto.

Vejamos um exemplo: calcular a distancia e o caminho mais curto entre os vertices a3 e a4

do grafo:

a1 a2

a3 a4

a5 a6

4

2

1

5

10

82

6

3

Ao vertice inicial atribuimos o valor 0: L(a3) = 0 (aos outros, para fins computacionais,

atribuimos o valor ∞)

A seguir consideramos os vertices adjacentes a a3 e calculamos:

L(a1) = L(a3) + 4 = 4 ; L(a5) = L(a3) + 2 = 2

e como o menor destes valores e 2, o vertice a5 fica com o valor 2 fixo (caminho: a3a5). Emseguida consideramos os vetices adjacentes a a5:

L(a1) = L(a5) + 1 = 3 ; L(a2) = L(a5) + 8 = 10 ; L(a6) = L(a5) + 10 = 12

O valor mais baixo e 3 e este passa a ser o valor fixo de a1 (caminho: a3a5a1).

So ha um vertice adjacente a a1:

L(a2) = L(a1) + 5 = 8

Como este e o valor mais baixo ainda nao fixado, 8 passa a ser valor fixo de a2 (caminho:

a3a5a1a2). A seguir:

L(a4) = L(a2) + 6 = 14 ; L(a6) = L(a2) + 2 = 10

e este ultimo (que e o menor dos calculados neste passo), fica o valor fixo de a6 (caminho:

a3a5a1a2a6). Adjacente a este vertice so esta a4:

L(a4) = L(a6) + 3 = 13

e este valor substitui o anterior valor L(a4) (caminho: a3a5a1a2a6a4).

Logo, o caminho mais curto de a3 a a4 e a3a5a1a2a6a4 de comprimento 13.

Page 89: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

82

4.9 Exercıcios Propostos

82. Calcule o caminho mais curto entre v1 e v7 no grafo de pesos:

v2 v4 v6

v1

v3 v5 v7

3

7 2

48

5

4

9

21

7 9

83. Encontre o trajecto mais curto entre as cidades de Faro e Viana do Castelo, no mapa

anterior.

84. Uma empresa de Viana do Castelo com delegacao em Faro tem necessidade de utilizar

uma rede informatica para a transmissao de dados. Para isso, conta com um mapa de

distancias, outro com o tempo de transmissao e outro com o custo mensal de utilizacao

da rede entre as varias cidades. Os mapas estao descrito a seguir. Determine:

(a) a distancia minıma (e o caminho correspondente) que os dados percorrem entre

as cidades;

(b) o custo mınimo mensal (e o caminho correspondente);

(c) o tempo mınimo de transmissao (e o caminho correspondente) por unidade de

quantidade de dados.

V.Castelo Braga

Aveiro V iseu

Santarem Portalegre

Lisboa

Evora

Sines

Faro

50

150 18590

235150

190

27570

175

150

160

250

120

Page 90: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

83

Mapa de distancias

V.Castelo Braga

Aveiro V iseu

Santarem Portalegre

Lisboa

Evora

Sines

Faro

75

250 125125

110105

175

45075

90

150

80

150

100

Mapa de custos

Page 91: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

84

V.Castelo Braga

Aveiro V iseu

Santarem Portalegre

Lisboa

Evora

Sines

Faro

5

25 815

510

20

255

12

10

12

8

15

Mapa de tempos

Page 92: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Bibliografia

[1] Carlos Serro, Sistemas Digitais, 1st Press - Instituto Superior Tecnico, 2003, ISBN

972846925.

[2] Jacob Daghlian, Logica e Algebras de Boole, Publicacao Atlas, 1986, ISBN

85-224-0132-2.

[3] John Uyemura, Sistemas Digitais, Pioneira Thompson Learning, 2002, ISBN

85-221-0268-6.

[4] J. C. Molluzzo e F. Buckley, A First Course in Discrete Mathmatics, Wadsworth Pub-

lishing Company, 1986, ISBN 0-534-05310-6.

[5] J. Vitoria, T. P. Lima, Algebra Linear, Universidade Aberta, 1998, ISBN

975-674-218-8.

[6] Kenneth H. Rosen, Discrete Mathematics and its Applications, McGraw-Hill Interna-

tional Editions, 1999, ISBN 0-07-116756-0.

[7] L. Cuesta, A. Gil Padilla, F. Remiro, Electronica Digital, McGraw-Hill, 1994, ISBN

972-9241-64-3.

(o ındice remissivo ainda nao esta completo)

85

Page 93: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

Indice Remissivo

Algebra de Boole, 22

aresta, 69

loop, 71

incidente, 70

lacete, 71

paralela, 71

associatividade, 23

axioma, 22

base, 1

bits, 10

caminho, 72

comprimento, 72

ciclo de Euler, 74

complemento, 23

comutatividade, 22

conectivos logicos, 16

conjuncao, 17

conjunto, 22

contagem de caminhos, 77

conversao entre bases, 7

diagonal principal, 51

digrafo, 70

disjuncao, 16

disjuncao exclusiva, 17

distributividade, 22

divisoes sucessivas, 6

elemento neutro, 22

equivalencia, 19

erro, 10

estrutura algebrica, 22

formas canonicas, 29

conjuntiva, 29

disjuntiva, 29

funcao booleana, 24

grafo, 69

completo, 71

conexo, 75

multigrafo, 71

nao orientado, 70

orientado, 70

pseudografo, 71

simples, 71

grau, 74

idempotencia, 22

implicacao, 18

index, 16

Leis de Morgan, 23

literal, 41

metodo

algebrico, 30, 33

das tabelas de verdade, 32, 34

mapas de Karnaugh, 35

Matlab

full, 67

inv, 64

rref, 65

sparse, 67

whos, 67

86

Page 94: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,

87

matriz, 49

aumentada do sistema, 64

coluna, 51

componentes, 50

diagonal, 52

elementos, 50

entradas, 50

esparsa, 66

igualdade, 53

inversa, 63

linha, 51

produto, 54

produto escalar, 53

quadrada, 51

soma, 53

transposicao, 53

triangular inferior, 52

triangular superior, 52

maxtermos, 29

mintermos, 29

operacao binaria, 22

operador booleano, 23

operadores logicos, 16

produto logico, 25

produtos de somas, 29

proposicao, 15

proposicao dual, 23

sistema

binario, 3

de numeracao, 1

decimal, 1

hexadecimal, 3

octal, 3

soma logica, 25

somas de produtos, 29

subgrafo, 71

tabela da adicao, 11

tabela de verdade, 16

tautologia, 20

termos produto, 29

termos soma, 29

vertice, 69

adjacente, 70

distancia, 72

valor logico, 15

Page 95: Apontamentos para a Unidade de Formac¸˜ao - estgv.ipv.pt · Os temas que normalmente se incluem Matematica Discreta s˜ao muito sabrangentes e tˆem tido um grande desenvolvimento,