matem atica discreta para computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · no cap tulo 12,...

96
Matem´ atica Discreta para Computa¸ ao vers˜ ao 11.0 Ruy Luiz Milidi´ u 26 de junho de 2015

Upload: lynhu

Post on 18-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Matematica Discretapara Computacao

versao 11.0

Ruy Luiz Milidiu

26 de junho de 2015

Page 2: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Sumario

1 Introducao 11.1 Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Nocoes Elementares 72.1 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Relacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Funcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Argumentacao 93.1 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Algebra Booleana . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1 Axiomas . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2 Propriedades . . . . . . . . . . . . . . . . . . . . . . . 133.2.3 Dualidade . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Implicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.1 Definicao . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.2 Ordenacao . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4 Raciocınio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.4.1 Equacoes . . . . . . . . . . . . . . . . . . . . . . . . . 183.4.2 Deducao . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Inducao Fraca 234.1 Os Naturais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 O Princıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3.1 Somas . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

i

Page 3: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

ii SUMARIO

4.3.2 Divisibilidade Exata . . . . . . . . . . . . . . . . . . . 25

4.3.3 Combinatoria . . . . . . . . . . . . . . . . . . . . . . . 26

4.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 Inducao Forte 29

5.1 O Princıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6 Inducao Estrutural 31

6.1 Sequencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6.2 O Princıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6.3 Numeros de Fibonacci . . . . . . . . . . . . . . . . . . . . . . 32

6.4 Sequencias de Parenteses . . . . . . . . . . . . . . . . . . . . . 34

7 Arvores e Florestas Livres 39

7.1 Arvores Livres . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.2 Representacao Sequencial . . . . . . . . . . . . . . . . . . . . 41

7.3 Florestas Livres . . . . . . . . . . . . . . . . . . . . . . . . . . 42

8 Arvores Binarias 43

8.1 Arvores Binarias Estendidas . . . . . . . . . . . . . . . . . . . 43

8.2 Arvores Estritamente Binarias . . . . . . . . . . . . . . . . . . 45

8.3 Arvores Binarias Cheias . . . . . . . . . . . . . . . . . . . . . 46

8.4 Arvores Binarias Balanceadas por Altura . . . . . . . . . . . . 46

8.5 Arvores de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . 47

8.6 Arvores Binarias Posicionais . . . . . . . . . . . . . . . . . . . 48

9 Florestas de Uniao e Busca 49

10 O Algoritmo de Euclides 53

10.1 Maximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . 53

10.2 O Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.3 Corretude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

10.4 Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

11 O Teorema de Stone 57

11.1 Atomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

11.2 Decomposicao Estrutural . . . . . . . . . . . . . . . . . . . . . 58

Page 4: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

SUMARIO iii

12 Grafos 5912.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . 59

12.1.1 Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . 5912.1.2 Arestas . . . . . . . . . . . . . . . . . . . . . . . . . . 5912.1.3 Incidencia . . . . . . . . . . . . . . . . . . . . . . . . . 60

12.2 Grafos e Subgrafos . . . . . . . . . . . . . . . . . . . . . . . . 60

13 Grafos Simples 6313.1 Representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 6313.2 Grafos Derivados . . . . . . . . . . . . . . . . . . . . . . . . . 6513.3 Passeios, Trilhas e Caminhos . . . . . . . . . . . . . . . . . . . 6513.4 Circuitos e Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . 6713.5 Esparsidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6713.6 Arvores Livres e Geradoras . . . . . . . . . . . . . . . . . . . . 6713.7 Componentes Conexos . . . . . . . . . . . . . . . . . . . . . . 6713.8 Grafos Bipartidos . . . . . . . . . . . . . . . . . . . . . . . . . 6913.9 Articulacoes e Pontes . . . . . . . . . . . . . . . . . . . . . . . 7013.10Componentes Biconexos . . . . . . . . . . . . . . . . . . . . . 70

14 Grafos Dirigidos 7314.1 Representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 7314.2 Grafos Derivados . . . . . . . . . . . . . . . . . . . . . . . . . 7414.3 Passeios, Trilhas e Caminhos . . . . . . . . . . . . . . . . . . . 7414.4 Circuitos e Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . 7514.5 Grafos Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . 7514.6 Grafos Acıclicos . . . . . . . . . . . . . . . . . . . . . . . . . . 7514.7 Ordenacao Topologica . . . . . . . . . . . . . . . . . . . . . . 7614.8 Componentes Fortemente Conexos . . . . . . . . . . . . . . . 76

15 Otimizacao em Grafos 7715.1 Pareamentos Maximos . . . . . . . . . . . . . . . . . . . . . . 7715.2 Pareamentos Perfeitos . . . . . . . . . . . . . . . . . . . . . . 7815.3 Arvores Geradoras Mınimas . . . . . . . . . . . . . . . . . . . 79

15.3.1 Geracao de Arestas Candidatas . . . . . . . . . . . . . 8015.3.2 Integracao de Arestas Candidatas . . . . . . . . . . . . 8015.3.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 80

15.4 Arvores de Huffman . . . . . . . . . . . . . . . . . . . . . . . . 8115.5 Arvores de Busca Ponderadas Mınimas . . . . . . . . . . . . . 81

Page 5: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

iv SUMARIO

16 Princıpios Basicos de Contagem 8316.1 Adicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8316.2 Multiplicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

17 O Princıpio do Pombal 8517.1 O Princıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8517.2 Aplicacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

18 Coeficientes Binomiais 8718.1 Arranjos, permutacoes e combinacoes . . . . . . . . . . . . . . 8718.2 Coeficientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8818.3 Triangulo de Pascal . . . . . . . . . . . . . . . . . . . . . . . . 8818.4 Binomio de Newton . . . . . . . . . . . . . . . . . . . . . . . . 8918.5 Propriedades . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Page 6: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 1

Introducao

1.1 Computadores

Os computadores estao por toda parte. Sua versatilidade e fabulosa. Estaopresentes no acionamento dos despertadores que tocam diariamente, no con-trole das agendas de atividades, na apuracao de saldos bancarios, e no geren-ciamento do trafego e das comunicacoes. Estas sao apenas algumas de suasinumeras aplicacoes. Algumas delas, como a Internet e a World Wide Web,revolucionam o nosso dia-a-dia.

A universalidade da computacao repousa em princıpios simples originadosna Logica e na Matematica.

Os computadores sao um artefato que mecaniza o raciocınio logico com-binado com operacoes matematicas. Esta concepcao tao abstrata permiteaplicar os computadores aos mais variados processos, da mesma forma queos numeros inteiros sao utilizados para equacionarmos os mais variados tiposde grandezas de nosso interesse.

1.2 Programas

Os computadores sao versateis porque atraves da programacao adaptamosseu uso para diferentes tarefas. E com os programas que tornarmos umamaquina de uso generico num artefato especializado para cada tarefa denosso interesse.

O exemplo classico utilizado na apresentacao de qualquer linguagem deprogramacao e o popular Hello World!. O exemplo a seguir tem o mesmo

1

Page 7: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

2 CAPITULO 1. INTRODUCAO

tipo de simplicidade, sendo utilizado para ilustrar as tecnicas de prova decorretude. Observe que ele inclue um loop de repeticao!

Exemplo 1 (Soma de P.A.) O programa somaPA determina o valor dasoma dos n primeiros numeros inteiros, isto e, o valor de 1 + 2 + · · ·+ n.

1. int somaPA (int n) {2. int somaParcial;3. somaParcial = 0;4. for i= 1 to n {5. somaParcial = somaParcial + i6. }7. return (somaParcial)8. }

Os artefatos computacionais de boa qualidade devem executar correta-mente as tarefas para as quais foram projetados. Alem disso, como todobem de natureza economica, devem ser parcimoniosos no consumo de recur-sos humanos e materiais.

Para demonstrar a corretude do programa somaPA, vamos monitorar osvalores assumidos pela variavel somaParcial.

Na linha 3, somaParcial tem seu valor inicializado como 0. Assim, pode-mos garantir esse valor nesse ponto do programa. Apos a linha 5, afirmamosque o valor de somaParcial e 1 + 2 + ...+ i. Esta e uma afirmativa generica,que estamos fazendo para cada iteracao do valor i no loop. Finalmente, aosair do loop, afirmamos que o valor de somaParcial e 1 + 2 + ...+ n.

Acrescentemos estas observacoes como comentarios em nosso programa.

1. int somaPA (int n) {2. int somaParcial;3. somaParcial = 0;

// neste ponto, somaParcial vale 0

4. for i= 1 to n {5. somaParcial = somaParcial + i

// neste ponto, somaParcial vale 1+2+...+i

6. }

Page 8: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

1.2. PROGRAMAS 3

// neste ponto, somaParcial vale 1+2+...+n

7. return (somaParcial)8. }

Das tres afirmacoes anteriores, a segunda, por ser generica, e a mais difıcilde ser demonstrada. Para demonstrar essa afirmativa vamos definir uma se-quencia de valores s0, s1, s2, · · · , sn como sendo os n+1 valores sucessivamenteassumidos pela variavel somaParcial. Como ilustracao, computamos os oitoprimeiros valores obtendo

0, 1, 3, 6, 10, 15, 21, 28, · · · .

A afirmativa generica pode ser reformulada como

si tem valor igual a 1 + 2 + ...+ i

para i = 1, 2, · · · , n.Observe que a linha 3 estabelece que

s0 = 0

e a linha 5 estabelece quesi = si−1 + i.

Assim, e facil verificar que

s1 = s0 + 1 = 1.

Portanto, a afirmativa e valida na primeira passagem do loop. Se a afirmativae valida na iteracao anterior, entao na iteracao atual temos que

si = si−1 + i = [1 + 2 + ...+ (i− 1)] + i,

dondesi = 1 + 2 + ...+ i

isto e, a afirmativa tambem e valida na iteracao atual.Com a estrategia de argumentacao apresentada, garantimos a corretude

de somaPA sem a necessidade de efetuar qualquer tipo de teste com entradaspara nosso programa.

Page 9: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

4 CAPITULO 1. INTRODUCAO

1.3 Enfoque

O objetivo central deste texto e apresentar os fundamentos matematicos dacomputacao de forma intuitiva, sucinta e precisa.

Nossa enfase e na apresentacao das tecnicas elementares de argumentacao,aplicadas as estruturas basicas da computacao. Assim, examinamos as questoesde corretude, essenciais na construcao de artefatos computationais de boaqualidade. Nos capıtulos 3 a 15, tratamos deste tema.

Adicionalmente, apresentamos as tecnicas elementares de contagem, es-senciais na analise da eficiencia dos artefatos propostos. Os capıtulos 17 a18 constituem a segunda parte deste texto, cobrindo este tema.

No capıtulo 2, apresentamos as nocoes elementares de conjuntos e suasoperacoes, relacoes e funcoes.

No capıtulo 3, apresentamos os fundamentos da Argumentacao. Paraisso, introduzimos as algebras Booleanas. Este formalismo permite exploraras propriedades dos bits logicos.

No capıtulo 4, apresentamos o Princıpio da Inducao Matematica Fraca.Com este princıpio exploramos inicialmente as propriedades dos numerosnaturais.

No capıtulo 5, apresentamos o Princıpio da Inducao Matematica Forte.

No capıtulo 6, apresentamos o Princıpio da Inducao Estrutural. Parailustrar o uso deste princıpio, examinamos os numeros de Fibonacci e asSequencias Bem Formadas de Parenteses.

No capıtulo 7, aplicamos a Inducao Estrutural para demonstrar diversaspropriedades das arvores e florestas livres.

No capıtulo 8, aplicamos a Inducao Estrutural para demonstrar diversaspropriedades das Arvores Binarias.

No capıtulo 9, aplicamos a Inducao Estrutural para demonstrar diversaspropriedades das Florestas de Uniao e Busca.

No capıtulo 10, aplicamos a Inducao Estrutural para demonstrar a cor-retude e analisar a eficiencia do Algoritmo de Euclides.

No capıtulo 11, aplicamos a Inducao Estrutural para demonstrar a cor-retude do Teorema de Stone.

No capıtulo 12, introduzimos os conceitos e definicoes basicos da Teoriados Grafos.

No capıtulo 13, examinamos as propriedades elementares de conectividadeem Grafos Simples.

Page 10: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

1.3. ENFOQUE 5

No capıtulo 14, examinamos as propriedades elementares de conectividadeem Grafos Dirigidos.

No capıtulo 15, apresentamos alguns problemas classicos em OtimizacaoCombinatoria.

No capıtulo 17, introduzimos e ilustramos o Princıpio do Pombal.No capıtulo 18, apresentamos os coeficientes binomiais e suas principais

propriedades.

Page 11: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

6 CAPITULO 1. INTRODUCAO

Page 12: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 2

Nocoes Elementares

2.1 Conjuntos

2.2 Relacoes

2.3 Funcoes

7

Page 13: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

8 CAPITULO 2. NOCOES ELEMENTARES

Page 14: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 3

Argumentacao

Uma argumentacao rigorosa esta fundamentada nos solidos princıpios daLogica.

Um dos objetivos centrais da argumentacao e estabelecer se uma deter-minada afirmacao e verdadeira ou falsa.

Esta dicotomia entre o verdadeiro e o falso pode ser representada de formabinaria:

1. - o valor 1 representa verdadeiro;

2. - o valor 0 representa falso.

Usualmente, iniciamos com algumas proposicoes para as quais sabemosseus valores-verdade. A partir das inter-relacoes entre essas proposicoes de-terminamos os valores-verdade de novas proposicoes de interesse. Argumen-tando desta forma, estabelecemos se as novas proposicoes sao verdadeiras oufalsas.

A algebra Booleana e uma maneira elegante e concisa de representarmosos conceitos e operacoes dos referidos processos de argumentacao.

Neste capıtulo, apresentamos dois fundamentos matematicos: o calculoproposicional e a algebra de conjuntos. Para isto, utilizamos os bits.

3.1 Bits

O bit e a unidade de informacao. Sua primeira aplicacao e para representaros valores-verdade utilizados em expressoes logicas que controlam o fluxo

9

Page 15: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

10 CAPITULO 3. ARGUMENTACAO

das operacoes em nossos programas. Uma outra aplicacao fundamental e arepresentacao de conjuntos atraves de vetores de bits.

Por exemplo, considere os seguintes conjuntos de pessoas:

A = {Guilherme, Paula, Pedro}

eB = {Eraldo, Carlos,Guilherme,Benjamim}.

Associemos os elementos

Guilherme, Paula, Eraldo, Pedro, Carlos e Benjamim

as posicoes 1, 2, 3, 4, 5 e 6, respectivamente.Neste caso, temos que os conjuntos A e B podem ser representados como

vetores de bits por

A = (1, 1, 0, 1, 0, 0) e B = (1, 0, 1, 0, 1, 1),

onde o bit ligado na posicao k indica que o k−esimo elemento pertence aocorrespondente conjunto.

3.2 Algebra Booleana

3.2.1 Axiomas

Uma algebra Booleana (B, +, .,−) e uma estrutura algebrica constituida porquatro elementos, a saber:

B um conjunto finito;

+ uma operacao binaria de B ×B → B;

. uma operacao binaria de B ×B → B;

− uma operacao unaria de B → B.

Alem disso, temos a seguinte ordem de precedencia entre parentesis eoperacoes: ( ), −, ., +

Nesta estrutura algebrica, valem quatro grupos de axiomas descritos aseguir.

Para todo x, y, z ∈ B temos:

Page 16: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.2. ALGEBRA BOOLEANA 11

Axioma 1 (Identidade) existem dois elementos 0, 1 ∈ B tais que

0 + x = x + 0 = x

1 . x = x . 1 = x

Axioma 2 (Complemento)

x + x = 1

x . x = 0

Axioma 3 (Comutatividade)

x + y = y + x

x . y = y . x

Axioma 4 (Distributividade)

x . (y + z) = x . y + x . z

x + (y . z) = (x + y) . (x + z)

Exemplo 2 (Logica Booleana) Consideremos o caso em que B = {0, 1}e as tres operacoes sao definidas pelas tabelas a seguir.

+ 0 1 . 0 1 x x0 0 1 0 0 0 0 11 1 1 1 0 1 1 0

Exemplo 3 Consideremos o caso em que B = {F, T} e as tres operacoessao definidas pelas tabelas a seguir.

+ F T . F T x xF F T F F F F TT T T T F T T F

Exemplo 4 Consideremos o caso em que B = {a, b} e as tres operacoes saodefinidas pelas tabelas a seguir.

+ a b . a b x xa a b a a a a bb b b b a b b a

Page 17: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

12 CAPITULO 3. ARGUMENTACAO

Exemplo 5 Consideremos o caso em que B = {a, b, c, d} e as tres operacoessao definidas pelas tabelas a seguir.

+ a b c d . a b c d x xa a b c d a a a a a a db b b d d b a b a b b cc c d c d c a a c c c bd d d d d d a b c d d a

Exemplo 6 (Vetores de Bits) Consideremos o caso em que B = {00, 01, 10, 11}e as tres operacoes sao definidas pelas tabelas a seguir.

+ 00 01 10 11 . 00 01 10 11 x x00 00 01 10 11 00 00 00 00 00 00 1101 01 01 11 11 01 00 01 00 01 01 1010 10 11 10 11 10 00 00 10 10 10 0111 11 11 11 11 11 00 01 10 11 11 00

Exemplo 7 (Algebra de Conjuntos) Consideremos o caso em que B ={X|X ⊆ U} e as tres operacoes sao definidas como

X + Y = X⋃Y X.Y = X

⋂Y X = U −X.

Exemplo 8 (Divisores de 30) Seja B o conjunto dos divisores de 30, istoe, B = {1, 2, 3, 5, 6, 10, 15, 30} Para x, y ∈ B as tres operacoes sao definidascomo

x+ y = mmc(x, y) x.y = mdc(x, y) x = 30/x.

Exemplo 9 (Algebra Produto) Considere duas algebras booleanas A′

eA′′

tais que A′

= (B′, +

′, .′, −′) e A

′′= (B

′′, +

′′, .′′, −′′) com os respectivos

neutros aditivos e multiplicativos dados por 0′, 1′ ∈ B′ e 0

′′, 1′′ ∈ B′′.

Para B = B′×B′′, temos a estrutura produto A dada por (A = B, +, ., −),

onde as tres operacoes em B sao definidas para todo (a′, a′′), (b′, b′′) ∈ B por

(a′, a′′) + (b′, b′′) = (a′ +′b′, a′′ +

′′b′′)

(a′, a′′).(b′, b′′) = (a′.′b′, a′′.

′′b′′)

(a′, a′′) = (a′′, a′′

′′)

e os respectivos neutros sao definidos por

0 = (0′, 0′′) 1 = (1

′, 1′′).

Neste caso, a estrutura A tambem e uma algebra booleana.

Page 18: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.2. ALGEBRA BOOLEANA 13

Exercıcio 1 Mostre que as estruturas definidas nos exemplos 2 a 9 saoalgebras Booleanas.

3.2.2 Propriedades

Seja (B, +, .,−) uma algebra Booleana. A seguir, enumeramos uma serie depropriedades validas nesta estrutura.

AB 1 (Unicidade dos Neutros) O neutro aditivo e unico. O neutro mul-tiplicativo e unico.

AB 2 (Idempotencia)

x = x.x x = x+ x

AB 3 (Caracterizacao do Complemento) Se temos que{x+ y = 1x.y = 0

entao y = x.

AB 4 (Involucao)

x = x

AB 5

0 = 1 1 = 0

AB 6 (Dominacao)

x.0 = 0 x+ 1 = 1

AB 7 (Absorcao)

x+ x.y = x x.(x+ y) = x

AB 8 (Absorcao Generalizada)

x.(y + (x+ z)) = x x+ (y.(x.z)) = x

Page 19: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

14 CAPITULO 3. ARGUMENTACAO

AB 9 (Associatividade)

x+ (y + z) = (x+ y) + z x.(y.z) = (x.y).z

AB 10 (Leis de DeMorgan)

x+ y = x.y x.y = x+ y

Exercıcio 2 Demonstre a validade das dez propriedades anteriores.

Exercıcio 3 Mostre que se 0 = 1 entao |B| = 1.

Exercıcio 4 Mostre que se existe um elemento b ∈ B tal que b = b entao|B| = 1.

Exercıcio 5 Mostre que |B| 6= 3.

Exercıcio 6 Mostre que se |B| > 1 entao |B| e par.

No capıtulo 11, mostraremos que existe k = 0, 1, 2, . . . tal que |B| = 2k.Este resultado e o chamado Teorema de Stone.

3.2.3 Dualidade

Os axiomas que definem uma algebra Booleana foram apresentados aos pares.Uma consequencia disso e que as propriedades decorrentes tambem ocorremaos pares.

Nesta secao, vamos introduzir o conceito de dualidade que sistematizaessas observacoes.

Definicao 1 (Expressao Dual) Seja F (x1, · · · , xn) uma expressao boole-ana nas variaveis x1, · · · , xn. Definimos FD como a expressao dual de Fatraves da seguinte relacao

FD(x1, · · · , xn) = F (x1, · · · , xn)

Exemplo 10 Seja F (x, y, z) = (x+ y).z.

Neste caso, temos que a expressao dual FD e dada por

Page 20: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.2. ALGEBRA BOOLEANA 15

FD(x, y, z) = (x+ y).z (definicao de dual)

= (x+ y) + z (de Morgan)= (x.y) + z (de Morgan)= (x.y) + z (involucao)

As seguintes propriedades da dualidade sao facilmente demonstraveis.

DUAL 1 (FD)D

= F

DUAL 2 (0)D = 1

DUAL 3 (1)D = 0

DUAL 4 (x)D = x

DUAL 5 (x)D = x

DUAL 6 (x+ y)D = x.y

DUAL 7 (x.y)D = x+ y

DUAL 8 (E1(x1, · · · , xn) + E2(x1, · · · , xn))D = ED1 (x1, · · · , xn).ED

2 (x1, · · · , xn)

DUAL 9 (E1(x1, · · · , xn).E2(x1, · · · , xn))D = ED1 (x1, · · · , xn)+ED

2 (x1, · · · , xn)

DUAL 10 Se para todo x1, · · · , xn ∈ B temos que E1(x1, · · · , xn) = E2(x1, · · · , xn)entao para todo x1, · · · , xn ∈ B temos tambem que ED

1 (x1, · · · , xn) = ED2 (x1, · · · , xn).

Agora, podemos revisitar o exemplo 10 com o auxılio das propriedadesda dualidade.

Exemplo 11 Seja F (x, y, z) = (x+ y).z.Utilizando a dualidade, obtemos a expressao dual FD por

FD(x, y, z) = ((x+ y).z)D

= (x+ y)D + z= (x.y) + z

Exercıcio 7 Demonstre a validade das nove propriedades da dualidade.

Page 21: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

16 CAPITULO 3. ARGUMENTACAO

Como consequencia da dualidade, podemos formular a seguinte regrapratica.

REGRA 1 (Dualizacao) Para determinar a expressao dual, substitua+ por . . por +0 por 1 1 por 0

e a expressao resultante e a dual.

Exemplo 12 Seja F (x, y, z) = (x+ y).z.Pela regra de dualizacao, obtemos a expressao dual FD como

FD(x, y, z) = ((x + y) . z)D

= (x . y) + z

Exercıcio 8 Determine a expressao dual de (x+ y.z) + w.(z + y.x).

Exercıcio 9 Determine a propriedade dual de x.(x+ y) = x.

Exercıcio 10 Determine a propriedade dual de x.0 = 0.

3.3 Implicacao

3.3.1 Definicao

A partir das operacoes basicas de uma algebra booleana podemos definiroperacoes auxiliares. Estas operacoes reunem combinacoes interessantes econvenientes dos operadores basicos. Por sua alta frequencia de uso, recebemum novo sımbolo especial que as identifica.

A mais importante delas e a implicacao, que definimos a seguir. O seusımbolo e a seta para a direita mostrada abaixo

Definicao 2 (Implicacao) Numa algebra booleana, definimos a operacaobinaria a→ b por

a→ b = a+ b

IMPL 1 (Contraposicao)

a→ b = b→ a

Page 22: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.3. IMPLICACAO 17

IMPL 2

a.(a→ b) = a.b

IMPL 3 a→ b = 1 se e somente se a.b = a

Exercıcio 11 Demonstre a validade das tres propriedades da implicacao.

3.3.2 Ordenacao

Numa algebra booleana, uma relacao muito especial ocorre entre dois ele-mentos a e b quando temos que

a.b = a

Neste caso, dizemos que a e menor ou igual a b e denotamos por

a ≤ b

OBL 1 a ≤ b se e somente se a→ b = 1

OBL 2 a ≤ b se e somente se a+ b = b

OBL 3 (Extremos) 0 ≤ a ≤ 1

OBL 4 (Ordem Parcial)

reflexiva a ≤ a

anti-simetrica se a ≤ b e b ≤ a entao a = b

transitiva se a ≤ b e b ≤ c entao a ≤ c

OBL 5 a.b ≤ a ≤ a+ b

OBL 6 a ≤ b se e somente se b ≤ a

OBL 7 se a ≤ b entao a+ c ≤ b+ c.

OBL 8 se a ≤ b entao c.a ≤ c.b.

OBL 9 se a ≤ b e c ≤ d entao a+ c ≤ b+ d.

Page 23: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

18 CAPITULO 3. ARGUMENTACAO

OBL 10 se a ≤ b e c ≤ d entao a.c ≤ b.d.

OBL 11 a ≤ b e a ≤ c se e somente se a ≤ b.c.

OBL 12 a ≤ b e a ≤ b se e somente se a = 0.

OBL 13 b ≤ a e b ≤ a se e somente se a = 1.

Exercıcio 12 Demonstre a validade das treze propriedades da ordenacaobooleana.

3.4 Raciocınio

As algebras Booleanas traduzem num formato algebrico diferentes concei-tos estruturais. Dentre eles destacamos aqueles necessarios a uma boa ar-gumentacao, bem como os envolvidos no tratamento de conjuntos e seuselementos.

3.4.1 Equacoes

A partir de expressoes envolvendo variaveis e operadores de uma algebraBooleana podemos estabelecer interessantes equacoes. Estas sao as chamadasequacoes booleanas.

A seguir, examinamos algumas equacoes extremamente simples apresen-tando suas respectivas solucoes.

EQN 1 x+ y = 0

Neste caso,x+ y = 0

(x+ y).x = 0.x(x+ y).x = 0

x = 0

Pela comutatividade da adicao segue que

y = 0

Exercıcio 13 Resolva a equacao x + y = 0 utilizando as propriedades daordem parcial ≤ definida na algebra Booleana.

Page 24: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.4. RACIOCINIO 19

EQN 2 x.y = 1

Neste caso,x.y = 1

(x.y) + x = 1 + x(x.y) + x = 1

x = 1

Pela comutatividade da adicao segue que

y = 1

Exercıcio 14 Resolva a equacao x.y = 1 utilizando as propriedades da or-dem parcial ≤ definida na algebra Booleana.

Como para os neutros temos obviamente que 0 + 0 = 0 e 1 + 1 = 1,podemos concluir entao que

x+ y = 0⇔ x = 0 , y = 0

ex.y = 1⇔ x = 1 , y = 1

Uma consequencia imediata do resultado anterior e que um sistema deequacoes booleanas do tipo

expression1 = 1expression2 = 1

...expressionn = 1

e equivalente a uma unica equacao dada por

expression1.expression2. · · · .expressionn = 1

Exemplo 13 O sistema de equacoes booleanas dado por(x+ y).(z + w) = 1w + y = 1z.y = 1

equivale a[(x+ y).(z + w)].(w + y).(z.y) = 1

Page 25: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

20 CAPITULO 3. ARGUMENTACAO

3.4.2 Deducao

Aqui vamos mostrar como diversas regras de deducao podem ser obtidas viaa manipulacao algebrica de alguns sistemas simples de relacoes booleanas.

RD 1 (Modus Ponens) Para o sistema de relacoes booleanas{x = 1x ≤ y

temos que y = 1.

RD 2 (Silogismo Hipotetico) Para o sistema de relacoes booleanas{x ≤ yy ≤ z

temos que x ≤ z.

RD 3 Para o sistema de relacoes booleanasx1 ≤ x2x2 ≤ x3

...xn−1 ≤ xn

temos que x1 ≤ xn.

RD 4 (Contraposicao) y ≤ x se e so se x ≤ y

RD 5 (Modus Tolens) Para o sistema de relacoes booleanas{x = 1y ≤ x

temos que y = 1.

RD 6 (Reducao a Casos) Para o sistema de relacoes booleanas{c ≤ xc ≤ x

temos que x = 1.

Page 26: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

3.4. RACIOCINIO 21

RD 7 (Resolucao) Para o sistema de relacoes booleanas{c ≤ xc ≤ y

temos que x+ y = 1.

RD 8 (Reducao ao Absurdo) x.y ≤ 0 se e so se x ≤ y

Exercıcio 15 Demonstre a validade das oito regras de deducao apresenta-das.

Page 27: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

22 CAPITULO 3. ARGUMENTACAO

Page 28: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 4

Inducao Fraca

4.1 Os Naturais

4.2 O Princıpio

Para o sistema de relacoes booleanas

x1 = 1x1 ≤ x2x2 ≤ x3

...xn−1 ≤ xn

...

temos que xn = 1 para n = 1, 2, ....Dem.:De fato, pois se assim nao o fosse terıamos por absurdo um inteiro

k tal que xk 6= 1. Seja k∗ o menor inteiro tal que xk 6= 1. E obvio quek∗ > 1, pois x1 = 1 por hipotese. Por outro lado, temos que xk∗−1 ≤ xk∗ .Como xk∗−1 = 1 logo 1 ≤ xk∗ . Portanto, xk∗ = 1, o que e um absurdo peladefinicao de k∗.

Reformulando, se pudermos mostrar que{x1 = 1 (passo basico)xn ≤ xn+1 para n = 1, 2, · · · (passo indutivo)

entao temos quexn = 1 para n = 1, 2, · · ·

23

Page 29: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

24 CAPITULO 4. INDUCAO FRACA

Assim, basta mostrar a validade do passo basico e do passo indutivo.Como consequencia temos xn = 1 para n = 1, 2, · · ·.

4.3 Exemplos

4.3.1 Somas

Exemplo 14 (Soma de Inteiros) Para n = 1, 2, ... temos que

n∑i=1

i = n.(n+ 1)/2

Exemplo 15 (Soma de ımpares) Para n = 1, 2, ... temos que

n∑i=1

(2.i− 1) = n2

Exemplo 16 (Soma de Quadrados) Para n = 1, 2, ... temos que

n∑i=1

i2 = n.(n+ 1).(2n+ 1)/6

Exemplo 17 Para n = 1, 2, ... temos que

n∑i=1

i.(i+ 1) = n.(n+ 1).(n+ 2)/3

Exemplo 18 (Soma de Cubos) Para n = 1, 2, ... temos que

n∑i=1

i3 = n2.(n+ 1)2/4

Exemplo 19 (Soma com Fatoriais) Para n = 1, 2, ... temos que

n∑i=1

i(i!) = (n+ 1)!− 1.

Exemplo 20 (Soma da P.G.) Para n = 1, 2, ... temos que

n∑i=0

bi ≤ (b+ 1)n

Page 30: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

4.3. EXEMPLOS 25

Exemplo 21 (Soma de bits) Para n = 1, 2, ... temos que

n∑i=0

2i = 2n+1 − 1

Exemplo 22 Para n = 1, 2, ... temos que

n∑i=1

1

i.(i+ 1)= 1− 1

n+ 1

Exemplo 23 (Soma Telescopica) Para n = 0, 1, 2, ... temos que

n∑i=0

(ai+1 − ai) = an+1 − a0

Exemplo 24 Seja p um inteiro positivo. Para n = 1, 2, ... temos que

n∑i=1

(1

i− 1

(i+ p)

)=

p∑i=1

1

i−

p∑i=1

1

(n+ i)

Exemplo 25 Para n = 0, 1, ... temos que

n∑i=0

1√i+√i+ 1

=√n+ 1

4.3.2 Divisibilidade Exata

Definicao 3 (Multiplo) Sejam a e b dois inteiros. Dizemos que a e multiplode b quando existe um inteiro c tal que

a = c.b .

Exemplo 26 Para n = 1, 2, ... temos que

n.(n+ 1) e multiplo de 2.

Exemplo 27 Para n = 1, 2, ... temos que

n.(n+ 1).(n+ 2) e multiplo de 3.

Page 31: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

26 CAPITULO 4. INDUCAO FRACA

Exemplo 28 Seja k um inteiro maior que 1. Para n = 1, 2, ... temos que

n.(n+ 1). · · · .(n+ k − 1) e multiplo de k.

Exemplo 29 Para n = 1, 2, ... temos que

n3 − n e multiplo de 3.

Exemplo 30 Seja b um natural fixo. Para n = 1, 2, ... temos que

bn − 1 e multiplo de b− 1.

Exemplo 31 Seja b um natural fixo. Para n = 1, 2, ... temos que

bn − 1 = (b− 1).n−1∑i=0

bi.

Exemplo 32 Para n = 0, 1, ... temos que

10n − 1 e multiplo de 9.

Exemplo 33 Para n = 0, 1, ... temos que

11n+2 + 122n+1 e multiplo de 133.

Exemplo 34 Para n = 0, 1, ... temos que

5n+1 + 2.3n + 1 e multiplo de 8.

4.3.3 Combinatoria

Exemplo 35 (Cobertura com Triominos) Considere um tabuleiro T com2n× 2n casas. Um triomino e um conjunto de tres casas adjacentes no tabu-leiro, no formato de um L. Uma cobertura de T por triominos e um conjuntode triominos com as seguintes propriedades:

1. os triominos sao disjuntos dois a dois;

2. apenas uma unica casa de T nao pertence a algum dos triominos.

Seja c ∈ T . Mostre que existe uma cobertura de T por triominos cujacasa nao coberta e exatamente a casa c.

Page 32: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

4.4. EXERCICIOS 27

Exemplo 36 (Princıpio do Pombal) Para n = 1, 2, ... temos que

Se n+1 pombos entram num pombal com n casas, ent~ao pelo

menos dois pombos compartilham uma mesma casa.

Exemplo 37 (Combinatoria) Para n = 1, 2, ... temos que

Se S ⊂ {1, 2, · · · , 2n} e |S| = n + 1 ent~ao existem a, b ∈ Stais que b e multiplo de a.

4.4 Exercıcios

Para cada um dos exercıcios a seguir, demonstre por inducao fraca a validadeda correspondente propriedade enunciada.

Exercıcio 16 Para n = 1, 2, ... temos que

n∑i=1

i.(i+ 1).(i+ 2) = n.(n+ 1).(n+ 2).(n+ 3)/4

Page 33: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

28 CAPITULO 4. INDUCAO FRACA

Page 34: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 5

Inducao Forte

5.1 O Princıpio

Para o sistema de relacoes booleanas

x1 = 1x1 ≤ x2x1.x2 ≤ x3

...x1.x2. · · · .xn−1 ≤ xn

...

temos que xn = 1 para n = 1, 2, ....Dem.: Vamos mostrar que a inducao forte implica na inducao fraca. Para

isto, observe que se n ≥ 3 temos que{ ∏n−2i=1 xi ≤ xn−1∏n−1i=1 xi ≤ xn

. Donde, { ∏n−1i=1 xi = xn−1∏ni=1 xi = xn

E assim, temos que

xn.xn−1 = xn.n−1∏i=1

xi =n∏i=1

xi = xn.

O que implica em xn−1 ≤ xn.

29

Page 35: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

30 CAPITULO 5. INDUCAO FORTE

5.2 Exemplos

Exemplo 38 (Selos Postais) Para cada inteiro n ≥ 12 temos que existema e b tais que

n = a.4 + b.5 .

Exemplo 39 Uma barra retangular de chocolate e constituida por n qua-drados de igual dimensao. Vamos quebrar a barra de chocolate, ao longodas linhas que delimitam os quadrados, ate separarmos a barra em seus nquadrados. Para n = 1,2,3,... temos que o numero necessario de quebras esempre n-1.

Exemplo 40 (Divisao por 3) Para cada natural n considere a sua repre-sentacao decimal dada por

n = dk . . . d0

onde di ∈ {0, 1, 2, . . . , 9} para i = 0, 1, . . . , k, dk 6= 0 e n =∑ki=0 di.10i.

Assim, temos quen e multiplo de 3 se e so se dk + . . .+ d0 e multiplo de 3.

Exemplo 41 (Teorema Fundamental da Aritmetica) Para cada inteiron ≥ 2 temos que existem k primos p1, p2, · · · , pk tais que

n = p1.p2. · · · .pk .

Page 36: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 6

Inducao Estrutural

Ate aqui, trabalhamos apenas com tres tipos elementares de dados, a saber:

bits com as operacoes logicas de e, ou e nao;

conjuntos com as operacoes de intersecao, uniao e complemento; e,

naturais com as operacoes de soma, subtracao, mutiplicacao e divisao.

Agora, vamos criar tipos especiais, mais interessantes para nossas aplicacoes.Os novos tipos sao criados a partir de combinacoes dos tipos elementares.Dentre eles, examinaremos os seguintes: sequencias, expressoes bem forma-das, arvores e grafos.

Com estes tipos vamos ilustrar o uso da inducao estrutural.

6.1 Sequencias

Exemplo 42 (Numeros Primos) Considere a sequencia de numeros na-turais

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, . . . .

Enfatizemos os numeros que so tem divisores triviais, isto e, apenas oproprio numero e 1 sao os seus divisores. Assim, temos

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, . . . .

Eliminando os nao enfatizados, obtemos a sequencia de interesse

2, 3, 5, 7, 11, 13, . . . .

31

Page 37: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

32 CAPITULO 6. INDUCAO ESTRUTURAL

Esta e a sequencia dos numeros primos.

Os numeros primos tem propriedades muito poderosas, exaustivamenteestudadas por alguns dos mais brilhantes matematicos. Algumas delas sao abase para a elaboracao do conhecido Sistema RSA de criptografia por chaves-publicas.

Na secao 6.3, vamos examinar um caso especial: os numeros de Fibonacci.Este e o caso mais simples onde usamos a Inducao Estrutural para demonstrardiversas propriedades da correspondente sequencia.

6.2 O Princıpio

6.3 Numeros de Fibonacci

Seja R um retangulo com lados de tamanho a e a + 1, onde 1 < a < 2. eclaro que este retangulo contem um quadrado Q de lado a. Se retirarmos Qde R, sobra um retangulo menor R′. O lado menor de R′ mede 1 e o maiormede a.

Vamos escolher o valor de a de tal forma que os retangulos R e R′ sejamsemelhantes. Para isto, devemos ter

a+ 1

a=a

1.

Consequentemente,a+ 1 = a2

a2 − a− 1 = 0.

As raızes dessa equacao sao 1+√5

2e 1−

√5

2. Como a > 1, segue-se entao

que a = 1+√5

2≈ 1.618.

A razao entre os lados maiores de R e R′ e igual a a. Portanto, quandoescolhemos a = 1+

√5

2, obtemos a chamada razao aurea, cujo valor e aproxi-

madamente igual a1.6180339887.

Exercıcio 17 A partir de uma busca na web para a expressao golden ratio,identifique quatro manifestacoes naturais e esteticas apresentadas para arazao aurea.

Page 38: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

6.3. NUMEROS DE FIBONACCI 33

Definicao 4 A sequencia de numeros de Fibonacci e definida recursivamentepor {

f0 = 0 f1 = 1 (caso base)fn = fn−1 + fn−2 para n = 2, 3, · · · (relacao estrutural)

Observe as similaridades e diferencas com a definicao recursiva dos numerosnaturais apresentada abaixo.

Definicao 5 A sequencia dos numeros naturais e definida recursivamentepor {

a0 = 0 (caso base)an = an−1 + 1 para n = 1, 2, · · · (relacao estrutural)

A seguir, enumeramos diversas propriedades dos numeros de Fibonacci.Todas elas podem ser facilmente demonstradas utilizando inducao estrutural.

FIBO 1 Para n = 3, 4, · · · temos que

fn ≥ (√

2)n−1

FIBO 2 Para n = 2, 3, · · · temos que

fn ≥ φn−2

onde φ = 1+√5

2.

FIBO 3 Para n = 2, 3, · · · temos que

n−2∑i=0

fi = fn − 1

FIBO 4 Para n = 0, 1, · · · temos que

n∑i=0

f 2i = fn.fn+1

FIBO 5 Para n = 1, 2, · · · temos que

n−1∑i=0

f2i+1 = f2n

Page 39: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

34 CAPITULO 6. INDUCAO ESTRUTURAL

FIBO 6 Para n = 1, 2, · · · temos quen∑i=0

(−1)i.fi = (−1)n.fn−1 − 1

FIBO 7 Para n = 1, 2, · · · temos que

fn−1.fn+1 − f 2n = (−1)n

FIBO 8 Para n = 1, 2, · · · temos que

2n−1∑i=0

fi.fi+1 = f 22n

FIBO 9 Para n = 2, 3, · · · temos quen∑i=2

1

fi−1.fi+1

= 1− 1

fn.fn+1

.

FIBO 10 Para n = 0, 1, · · · temos que

fn =1√5

[φn − (1− φ)n]

onde φ = 1+√5

2.

6.4 Sequencias de Parenteses

Em expressoes aritmeticas, usamos parenteses para indicar a ordem de pre-cedencia entre as diversas operacoes. A expressao

((5 + 7).(4− 1))/(14− (3.4)),

cujo resultado e 18, ilustra claramente esse uso dos parenteses. Eliminandoos parenteses, obtemos a expressao

5 + 7.4− 1/14− 3.4,

cujo resultado e 293/14, evidentemente diferente de 18.Usamos tambem parenteses para indicar a decomposicao de uma frase

nas suas oracoes. Na maioria dessas aplicacoes, os parenteses formam umaestrutura aninhada.

O tamanho de uma sequencia S = s1s2 · · · sk e k. Usamos |S| para denotaro tamanho de S.

Page 40: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

6.4. SEQUENCIAS DE PARENTESES 35

Definicao 6 (Concatenacao) Sejam S = s1s2 · · · sk e T = t1t2 · · · tl duassequencias quaisquer de sımbolos abre-parenteses e fecha-parenteses. Defini-mos a concatenacao ST de S e T por

ST = s1s2 · · · skt1t2 · · · tl.

Definicao 7 Uma Sequencia Bem Formada de Parenteses (SBFP) S e de-finida recursivamente por

S = ( ) (caso base)S = AB A e B sao SBFP (relacao estrutural)S = (A) A e SBFP (relacao estrutural)

A seguir, enumeramos diversas propriedades das SBFP. Todas elas podemser facilmente demonstradas utilizando inducao estrutural.

SBFP 1 Toda sequencia bem formada de parenteses tem como primeirosımbolo um abre-parenteses.

SBFP 2 Toda sequencia bem formada de parenteses tem como ultimo sımboloum fecha-parenteses.

SBFP 3 Toda sequencia bem formada de parenteses e constituida por umnumero par de sımbolos.

SBFP 4 Toda sequencia bem formada de parenteses tem o numero total deabre-parenteses igual ao numero total de fecha-parenteses.

Existe um teste muito simples e eficiente para verificar se uma sequenciade parenteses e ou nao e uma SBFP. Esse teste esta baseado em percorrer asequencia mantendo dois contadores: um para o numero acumulado de abre-parenteses, e outro para o numero acumulado de fecha-parenteses. Paraformalizar este processo vamos definir esses contadores.

Definicao 8 (Indicadoras) Seja s um abre-parenteses ou um fecha-parenteses.Definimos as variaveis indicadoras Iabre(s) e Ifecha(s) por

Iabre(s) =

{1 se s e um abre parenteses0 caso contrario

e por

Ifecha(s) =

{1 se s e um fecha parenteses0 caso contrario

Page 41: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

36 CAPITULO 6. INDUCAO ESTRUTURAL

Definicao 9 (Contadores) Seja S = s1s2 · · · sk uma sequencia qualquer desımbolos abre-parenteses e fecha-parenteses. Para i = 1, · · · , k definimos oscontadores nabre(S, i) e nfecha(S, i) por

nabre(S, i) =∑ij=1 Iabre(sj)

nfecha(S, i) =∑ij=1 Ifecha(sj).

SBFP 5 Seja S = s1s2 · · · sk uma sequencia qualquer de sımbolos abre-parenteses e fecha-parenteses. Para i = 1, · · · , k, temos que

nabre(S, i) = i− nfecha(S, i).

SBFP 6 Seja S = s1s2 · · · sk uma sequencia qualquer de sımbolos abre-parenteses e fecha-parenteses. Para i = 1, · · · , k, as tres afirmacoes abaixosao equivalentes:

(i) nabre(S, i) ≥ nfecha(S, i)(ii) 2.nabre(S, i) ≥ i(iii) 2.nfecha(S, i) ≤ i.

SBFP 7 Seja S = XY uma sequencia qualquer de sımbolos abre-parentesese fecha-parenteses. Para i = 1, · · · , |S|, temos que

nabre(S, i) =

{nabre(X, i) se i ≤ |X|nabre(X, |X|) + nabre(Y, i− |X|) se i > |X|.

SBFP 8 Seja S = s1s2 · · · sk uma sequencia bem formada de parenteses.Neste caso, temos que

nabre(S, k) = nfecha(S, k).

SBFP 9 Seja S = s1s2 · · · sk uma sequencia bem formada de parenteses.Para i = 1, · · · , k, temos que

nabre(S, i) ≥ nfecha(S, i).

SBFP 10 Seja S = s1s2 · · · sk uma sequencia bem formada de parenteses.Neste caso, temos que

2.nabre(S, k) = k.

Page 42: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

6.4. SEQUENCIAS DE PARENTESES 37

SBFP 11 Seja S = s1s2 · · · sk uma sequencia bem formada de parenteses.Para i = 1, · · · , k, temos que

2.nabre(S, i) ≥ i.

SBFP 12 (Caracterizacao I) Seja S = s1s2 · · · sk uma sequencia qualquerde sımbolos abre-parenteses e fecha-parenteses, com k ≥ 2.

A sequencia S e uma SBFP se e somente se

(i) nabre(S, i) ≥ nfecha(S, i) para i = 1, · · · , k(ii) nabre(S, k) = nfecha(S, k).

A propriedade a seguir permite construir um verificador de SBFP’s tes-tando apenas o contador de abre-parenteses.

SBFP 13 (Caracterizacao II) Seja S = s1s2 · · · sk uma sequencia qual-quer de sımbolos abre-parenteses e fecha-parenteses, com k ≥ 2.

A sequencia S e uma SBFP se e somente se

(i) 2.nabre(S, i) ≥ i para i = 1, · · · , k(ii) 2.nabre(S, k) = k.

A propriedade a seguir permite construir um verificador de SBFP’s tes-tando apenas o contador de fecha-parenteses.

SBFP 14 (Caracterizacao III) Seja S = s1s2 · · · sk uma sequencia qual-quer de sımbolos abre-parenteses e fecha-parenteses, com k ≥ 2.

A sequencia S e uma SBFP se e somente se

(i) 2.nfecha(S, i) ≤ i para i = 1, · · · , k(ii) 2.nfecha(S, k) = k.

Exercıcio 18 Formule um algoritmo que, em apenas uma passada numasequencia de parenteses, determine se a mesma e ou nao e uma SBPF.

Page 43: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

38 CAPITULO 6. INDUCAO ESTRUTURAL

Page 44: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 7

Arvores e Florestas Livres

7.1 Arvores Livres

Definicao 10 Uma Arvore Livre T = (V,A) e definida recursivamente por{T = ({v}, {}) (caso base)T = (V1 ∪ {v}, A1 ∪ {{v, u}}) (relacao estrutural)

onde v /∈ V1, u ∈ V1, e T1 = (V1, A1) e uma arvore livre.

AL 1 Seja T = (V,A) uma arvore livre. Para toda aresta a ∈ A, temos que

(i) a ⊆ V(ii) |a| = 2 .

AL 2 Seja T = (V,A) uma arvore livre com n vertices e m arestas. Nestecaso, temos que

m = n− 1.

Definicao 11 (Indicadoras) Seja T = (V,A) uma arvore livre e W umconjunto tal que V ⊆ W . Para cada par w ∈ W e a ∈ A definimos a variavelindicadora Ia(w) por

Ia(w) =

{1 se w ∈ a0 caso contrario

Quando Ia(w) = 1, dizemos que a aresta a e incidente no vertice w.

39

Page 45: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

40 CAPITULO 7. ARVORES E FLORESTAS LIVRES

AL 3 Seja T = (V,A) uma arvore livre. Neste caso, se a ∈ A e w /∈ Ventao Ia(w) = 0.

Definicao 12 Seja T = (V,A) uma arvore livre. Para todo vertice v ∈ Vdefinimos o grau(v) por

grau(v) =∑a∈A

Ia(v).

E facil ver que o grau(v) e o numero total de arestas incidentes em v.

AL 4 Seja T1 = (V1, A1) uma arvore livre e T = (V1 ∪ {v}, A1 ∪ {{v, u}}),com v /∈ V1 e u ∈ V1. Neste caso, para todo vertice x ∈ V temos que

grauT (x) = grauT1(x) + I{v,u}(x).

AL 5 Seja T = (V,A) uma arvore livre com |V | ≥ 2. Para todo verticev ∈ V temos que

grau(v) ≥ 1.

Exercıcio 19 Seja T = (V,A) uma arvore livre. Para v ∈ V , formule umadefinicao recursiva para o grau(v).

AL 6 (Teorema do Aperto de Mao) Seja T = (V,A) uma arvore livre.Para |A| = m temos que ∑

v∈Vgrau(v) = 2.m .

Definicao 13 Seja T = (V,A) uma arvore livre. Dizemos que um verticev ∈ V e uma folha se e so se

grau(v) ≤ 1.

AL 7 Seja T = (V,A) uma arvore livre com |V | ≥ 2. Neste caso, temos queT tem pelo menos duas folhas.

AL 8 Seja T = (V,A) uma arvore livre com |V | ≥ 3. Neste caso, temos queT tem pelo menos um vertice v ∈ V tal que

grau(v) > 1.

Page 46: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

7.2. REPRESENTACAO SEQUENCIAL 41

AL 9 Seja T = (V,A) uma arvore livre com |V | ≥ 2. Se f ∈ V , {f, w} ∈ Ae grau(f) = 1 entao T ′ = (V −{f}, A−{f, w}) tambem e uma arvore livre.

AL 10 Seja T = (V,A) uma arvore livre com |V | ≥ 2. Seja ainda T ′ =(V − {f}, A− {f, w}) com f ∈ V , {f, w} ∈ A e grauT (f) = 1. Entao

(i) grauT (f) = 1(ii) grauT (w) = 1 + grauT ′(w)(iii) grauT (v) = grauT ′(v) v ∈ V − {f, w}

AL 11 Sejam T1 = (V1, A1) e T2 = (V2, A2) duas arvores livres com |V1 ∩V2| = φ. Seja ainda T = (V1∪V2, A1∪A2∪{{v1, v2}}) com v1 ∈ V1 e v2 ∈ V2.Entao, T e uma arvore livre.

7.2 Representacao Sequencial

Definicao 14 Seja T = (V,A) uma arvore livre com |V | ≥ 2, sendo V umsubconjunto dos naturais. Definimos recursivamente a representacao sequen-cial S(T ) de T por{

S(T ) = (V, ε) se |V | = 2 (caso base)S(T ) = (V,w W ′) se |V | ≥ 3 (relacao estrutural)

onde ε e a sequencia vazia, T ′ = (V − {f}, A − {{f, w}}, S(T ′) = (V −{f},W ′), f = min{v ∈ V |grau(v) = 1} e {f, w} ∈ A.

Exemplo 43 Considere T = ({1, 2, 3, 4, 5}, {{1, 4}, {2, 4}, {2, 3}, {2, 5}}). Nestecaso, temos que a representacao sequencial e dada por S(T ) = ({1, 2, 3, 4, 5}, (4 2 2).

AL 12 Seja T = (V,A) uma arvore livre com n vertices. Se S(T ) =(V,w1w2 · · ·wk) e a representacao sequencial de T entao

k = n− 2.

AL 13 Seja T = (V,A) uma Arvore livre com n vertices. Se S(T ) =(V,w1w2 · · ·wn−2) e a representacao sequencial de T entao, para todo v ∈ V ,temos que

v e folha de T se e so se v 6= wi para i = 1, · · · , n− 2.

Page 47: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

42 CAPITULO 7. ARVORES E FLORESTAS LIVRES

AL 14 Seja T = (V,A) uma arvore livre com n vertices. Se S(T ) =(V,w1w2 · · ·wn−2) e a representacao sequencial de T entao para todo v ∈ Vtemos que

grau(v) = 1 +n−2∑i=1

Iv(wi),

onde

Iv(w) =

{1 se w = v0 caso contrario.

AL 15 Seja V um conjunto com n numeros naturais. Seja W = w1w2 · · ·wn−2uma sequencia tal que wi ∈ V para i = 1 · · ·n− 2. Neste caso, existe exata-mente uma unica arvore livre T = (V,A) tal que

S(T ) = (V,W ).

AL 16 (Cayley) Seja V um conjunto com n elementos. Existem exata-mente nn−2 arvores livres cujo conjunto de vertices e V .

7.3 Florestas Livres

Definicao 15 Uma Floresta Livre F = (V,A) e definida recursivamente porF = ({v}, {}) (caso base)F = (V1 ∪ {v}, A1) (relacao estrutural)F = (V1 ∪ {v}, A1 ∪ {{v, u}}) (relacao estrutural)

onde v /∈ V1, u ∈ V1, e F1 = (V1, A1) e uma floresta livre.

FL 1 Seja F = (V,A) uma floresta livre com n vertices e m arestas. Nestecaso, existem k arvores livres T1, · · · , Tk tais que

(i) Ti = (Vi, Ai) i = 1, · · · , k(ii) V = ∪ki=1Vi(iii) A = ∪ki=1Ai(iv) Vi ∩ Vj = ∅ 1 ≤ i < j ≤ k

Neste caso, dizemos que as k arvores livres compoem F .

FL 2 Seja F = (V,A) uma floresta livre com n vertices e m arestas. Nestecaso, temos que

m = n− konde k e o numero total de arvores livres que compoem F .

Page 48: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 8

Arvores Binarias

As arvores binarias mais usadas na computacao sao as posicionais. Numaarvore posicional, cada vertice pode ter um filho a esquerda e outro a direita.Nas arvores binarias nao posicionais, cada vertice pode ter ate dois filhos,sendo irrelevante a nocao de posicao desses filhos.

Neste capıtulo, apresentamos inicialmente as arvores binarias nao posi-cionais, aqui denominadas resumidamente de arvores binarias. Dentre elas,destacamos diferentes tipos de arvores binarias: estendidas, estritas, cheias,balanceadas por altura e de Fibonacci.

Na secao 8.6, apresentamos entao as arvores binarias posicionais.

8.1 Arvores Binarias Estendidas

Definicao 16 Uma arvore Binaria Estendida T = (V,A) de raız r e definidarecursivamente por

T = ({r}, {}) (caso base)T = ({r} ∪ V1, {(r, r1)} ∪ A1) (relacao estrutural)T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores binarias estendidas de raızesr1 e r2 respectivamente, V1 ∩ V2 = ∅ e r /∈ V1 ∪ V2.

As arvores T1 e T2 sao denominadas de componentes de T .Para uma arvore binaria estendida T , definimos adicionalmente o seu

numero total de vertices n(T ) e o seu numero total de arestas m(T ) por

n(T ) = |V | m(T ) = |A|.

43

Page 49: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

44 CAPITULO 8. ARVORES BINARIAS

A sua altura h(T ) e definida recursivamente porh(({r}, {})) = 0 (caso base)h(T ) = 1 + h(T1) (T com uma componente)h(T ) = 1 +max{h(T1), h(T2)} (T com duas componentes)

Exercıcio 20 Formule as definicoes recursivas de n(T ) e m(T ).

AB 1 Seja T uma arvore binaria estendida com n(T ) vertices e m(T ) ares-tas. Neste caso,

m(T ) = n(T )− 1

AB 2 Seja T uma arvore binaria com n(T ) nos e de altura h(T ). Nestecaso,

n(T ) ≤ 2h(T )+1 − 1

Definicao 17 (Indicadoras) Seja T = (V,A) uma arvore binaria esten-dida. Para cada v ∈ V e a ∈ A definimos as variaveis indicadoras I ina (v) eIouta (v) por

I ina (v) =

{1 se a = (w, v)0 caso contrario

e

Iouta (v) =

{1 se a = (v, w)0 caso contrario

Quando I ina (v) = 1, dizemos que a aresta a entra no vertice v. Analoga-mente, quando Iouta (v) = 1, dizemos que a aresta a sai no vertice v.

Definicao 18 Seja T = (V,A) uma arvore binaria estendida. Para todovertice v ∈ V definimos grauin(v) e grauout(v) por

grauinT (v) =∑a∈A I

ina (v)

grauoutT (v) =∑a∈A I

outa (v).

AB 3 Seja T = (V,A) uma arvore binaria estendida. Neste caso, a raız r eo unico vertice v ∈ V tal que

grauinT (v) = 0.

Page 50: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

8.2. ARVORES ESTRITAMENTE BINARIAS 45

AB 4 Seja T = (V,A) uma arvore binaria estendida de raız r. Neste caso,para todo vertice v ∈ V − {r} temos que

grauinT (v) = 1.

AB 5 Seja T = (V,A) uma arvore binaria estendida. Neste caso, para todovertice v ∈ V − {r} temos que

grauoutT (v) = grauoutT1(v) + grauoutT2

(v).

AB 6 Seja T = (V,A) uma arvore binaria estendida. Neste caso, para todovertice v ∈ V temos que

grauoutT (v) ≤ 2.

Definicao 19 Seja T = (V,A) uma arvore binaria estendida. Dizemos quev ∈ V e uma folha de T se e so se

grauoutT (v) = 0.

Definicao 20 Seja T = (V,A) uma arvore binaria estendida. Dizemos quev ∈ V e um vertice interno de T se e so se

grauoutT (v) > 0.

8.2 Arvores Estritamente Binarias

Definicao 21 Uma arvore Estritamente Binaria T = (V,A) de raız r edefinida recursivamente por{

T = ({r}, {}) (caso base)T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores estritamente binarias deraızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.

AB 7 Toda arvore estritamente binaria tambem e uma arvore binaria es-tendida.

AB 8 O numero total de vertices de uma arvore estritamente binaria e sem-pre ımpar.

Page 51: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

46 CAPITULO 8. ARVORES BINARIAS

AB 9 Seja T = (V,A) uma arvore estritamente binaria. Neste caso, paratodo vertice v ∈ V temos que

grauoutT (v) ∈ {0, 2}.

AB 10 Numa arvore estritamente binaria com nf folhas e ni vertices inter-nos, temos que

ni = nf − 1.

8.3 Arvores Binarias Cheias

Definicao 22 Uma arvore Binaria Cheia T = (V,A) de raız r e definidarecursivamente por{

T = ({r}, {}) (caso base)T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores binarias cheias de raızes r1 er2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, alem disso,

n(T1) = n(T2).

ABC 1 Seja T uma arvore binaria cheia de raız r, com subarvores T1 e T2,n(T ) vertices, nF (T ) folhas e altura h(T ). Neste caso, temos que

(i) h(T1) = h(T2) para T = (r, T1, T2)(ii) n(T ) = 2h(T )+1 − 1(iii) nF (T ) = 2h(T )

8.4 Arvores Binarias Balanceadas por Altura

Definicao 23 Uma arvore Binaria T Balanceada por Altura com raız r edefinida recursivamente por

T = ({r}, {}) (caso base)T = ({r, f}, {(r, f)}) (caso base)T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relacao estrutural)

Page 52: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

8.5. ARVORES DE FIBONACCI 47

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores binarias balanceadas poraltura de raızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, alemdisso,

|h(T1)− h(T2)| ≤ 1.

ABBA 1 Seja T uma arvore binaria balanceada por altura com n(T ) verticese altura h(T ). Neste caso, temos que

n(T ) ≥ fh(T )+3 − 1.

onde fi e o i−esimo numero de Fibonacci.

ABBA 2 Seja T uma arvore binaria balanceada por altura com n(T ) verticese altura h(T ). Neste caso, temos que

n(T ) ≥ φh(T )+1 − 1

onde φ = 1+√5

2.

ABBA 3 Seja T uma arvore binaria balanceada por altura com n(T ) verticese altura h(T ). Neste caso, temos que

h(T ) < C. lg (n(T ) + 1)

onde C = 1lg(φ)

.

8.5 Arvores de Fibonacci

Definicao 24 Uma arvore de Fibonacci T com raız r e conjunto de verticesV e definida recursivamente por

T = ({r}, {}) (caso base)T = ({r, f}, {(r, f)}) (caso base)T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores binarias balanceadas poraltura de raızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, alemdisso,

|h(T1)− h(T2)| = 1.

AF 1 Seja T uma arvore de Fibonacci com n(T ) vertices e altura h(T ).Neste caso, temos que

n(T ) = fh(T )+3 − 1.

onde fi e o i−esimo numero de Fibonacci.

Page 53: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

48 CAPITULO 8. ARVORES BINARIAS

8.6 Arvores Binarias Posicionais

Numa arvore binaria nao posicional, um arco que vai do vertice pai para overtice filho e identificado por

(pai, filho).

Numa arvore binaria posicional, um arco que vai do vertice pai para o verticefilho pode ser esquerdo ou direito. Assim, esse arco e representado por

(pai, filho,0)

ou por(pai, filho,1)

onde 0 indica esquerdo e 1 indica direito.

Definicao 25 Uma arvore Posicional Binaria Estendida T = (V,A) de raızr e definida recursivamente porT = ({r}, {}) (caso base)T = ({r} ∪ V1, {(r, r1,0)} ∪ A1) (relacao estrutural)T = ({r} ∪ V2, {(r, r2,1)} ∪ A2) (relacao estrutural)T = ({r} ∪ V1 ∪ V2, {(r, r1,0), (r, r2,1)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores posicionais binarias estendi-das de raızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.

A arvore T1 e a subarvore a esquerda de r, enquanto que a arvore T2 e asubarvore a direita de r.

Definicao 26 Uma arvore Posicional Estritamente Binaria T = (V,A) deraız r e definida recursivamente por{T = ({r}, {}) (caso base)T = ({r} ∪ V1 ∪ V2, {(r, r1,0), (r, r2,1)} ∪ A1 ∪ A2) (relacao estrutural)

onde T1 = (V1, A1) e T2 = (V2, A2) sao arvores posicionais estritamentebinarias de raızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.

Exercıcio 21 Para as arvores posicionais, formule propriedades similares asdas arvores nao posicionais. Alem disso, demonstre que essas propriedadessao verdadeiras.

Page 54: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 9

Florestas de Uniao e Busca

Definicao 27 Seja S um conjunto finito. Uma (FUB) Floresta de Uniao eBusca F = (V,A) em S e definida recursivamente por{F = ({(s, 0, 1)|s ∈ S}, {}), (caso base)F = (V1 − {(s2, h2, l2)} ∪ {(s2, h′, l′)}, A1 ∪ {(s1, s2)}) (relacao estrutural)

onde F1 = (V1, A1) e uma FUB, com

(i) (s1, h1, l1), (s2, h2, l2) ∈ V1 s1 6= s2 h1 ≤ h2(ii) grauoutF1

(s1) = 0 grauoutF1(s2) = 0

(iii) l′ = l1 + l2 h′ = h2 + Ih1(h2)

Se (s, h, l) ∈ V dizemos que este vertice e rotulado por s, tem altura h el descendentes.

Definicao 28 (Indicadoras) Seja F = (V,A) uma FUB em S. Para cadav ∈ S e a ∈ A definimos as variaveis indicadoras I ina (v) e Iouta (v) por

I ina (v) =

{1 se a = (w, v)0 caso contrario

e

Iouta (v) =

{1 se a = (v, w)0 caso contrario

Quando I ina (v) = 1, dizemos que a aresta a entra no vertice v. Analoga-mente, quando Iouta (v) = 1, dizemos que a aresta a sai no vertice v.

49

Page 55: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

50 CAPITULO 9. FLORESTAS DE UNIAO E BUSCA

Definicao 29 Seja F = (V,A) uma FUB em S. Para todo vertice (s, h, l) ∈V definimos grauoutF (s) por

grauoutF (s) =∑a∈A

Iouta (v).

FUB 1 Seja F = (V,A) uma FUB sobre o conjunto S. Sejam (s, h, l), (s, h∗, l∗) ∈V . Neste caso, temos que

h = h∗ e l = l∗ .

FUB 2 Seja F = (V,A) uma FUB sobre o conjunto S. Neste caso, temosque

|V | = |S| .

FUB 3 Seja F = (V,A) uma FUB. Neste caso, temos que

grauoutF (s) ∈ {0, 1}

para todo (s, h, l) ∈ V .

Definicao 30 (Representantes) Seja F = (V,A) uma FUB sobre o con-junto S. Dizemos que s ∈ S e um representante em F se e so se

grauoutF (s) = 0 .

Denotamos por R o conjunto constituido pelos representantes em F , isto e,

R = {s ∈ S | grauoutF (s) = 0} .

FUB 4 Seja F = (V,A) uma FUB sobre S, com |V | = n e cujo conjunto derepresentantes e. Neste caso, temos que∑

s∈R, (s,h,l)∈Vl = n .

FUB 5 Seja F = (V,A) uma FUB, com |V | = n. Neste caso, temos que

n ≥ l

para todo (s, h, l) ∈ V .

Page 56: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

51

FUB 6 Seja F = (V,A) uma FUB. Neste caso, temos que

l ≥ 2h

para todo (s, h, l) ∈ V .

FUB 7 Seja F = (V,A) uma FUB. Neste caso, temos que

h ≤ lg(n)

para todo (s, h, l) ∈ V .

Page 57: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

52 CAPITULO 9. FLORESTAS DE UNIAO E BUSCA

Page 58: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 10

O Algoritmo de Euclides

10.1 Maximo Divisor Comum

Definicao 31 Sejam a e b dois numeros naturais. O maximo divisor comumde a e b e dado por

mdc(a, b) = max {d ∈ N | d\a, d\b} .

MDC 1 Seja a um inteiro positivo. Entao mdc(a, 0) = a.

MDC 2 Sejam a e b dois inteiros positivos, com b 6= 0. Entao mdc(a, b) =mdc(b, a mod(b)).

10.2 O Algoritmo

O Algoritmo 1, apresentado a seguir, determina o mdc(a, b). Observe que oesforco total deste algoritmo e O(min(a, b)) sempre.

Ja o Algoritmo 2, resolve o mesmo problema com esforco totalO(min(a, b))no pior caso.

Finalmente, apresentamos o Algoritmo 3, que tambem determina omdc(a, b).Posteriormente, vamos demonstrar que o esforco total deste terceiro algo-ritmo e O(log(min(a, b))) no pior caso.

53

Page 59: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

54 CAPITULO 10. O ALGORITMO DE EUCLIDES

Algorithm 1 Forca Bruta.

maiorCandidato ← min(a,b)for candidato = 1 to maiorCandidato do

if (candidato \ a and candidato \ b) thenmdc ← candidato

end ifend forreturn mdc

Algorithm 2 Forca Bruta melhorado.

maiorCandidato ← min(a,b)for candidato = maiorCandidato downto 1 do

if (candidato \ a and candidato \ b) thenreturn candidato

end ifend for

Algorithm 3 Algoritmo de Euclides.

primeiro ← max(a,b)segundo ← min(a,b)while segundo > 0 do

resto ← primeiro mod segundoprimeiro ← segundosegundo ← resto

end whilereturn primeiro

Page 60: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

10.3. CORRETUDE 55

10.3 Corretude

Nao e obvio que o Algoritmo de Euclides calcula corretamente o valor domdc. Vamos usar da Inducao Estrutural para provar este fato. Para isto,considere a sequencia

resto1, . . . , reston

de valores atribuidos a variavel resto durante a execucao do algoritmo. Ob-serve que restoi e o resto da i-esima divisao efetuada pelo algoritmo.

Por exemplo, ao calcular o mdc(783, 534) obtemos a sequencia de restos

249, 36, 33, 3, 0

concluindo que mdc(783, 534) = 3.Para i = 3, 4, . . . , n temos que

restoi = primeiroi mod segundoi.

esegundoi+1 = restoi primeiroi+1 = segundoi.

donde,primeiroi = segundoi−1 = restoi−2.

Portanto, temos a seguinte equacao recursiva

restoi = restoi−2 mod restoi−1

para i = 3, 4, . . . , n.E facil ver que, definindo resto0 = min(a, b) e resto−1 = max(a, b), obte-

mos a sequencia expandida

resto−1, resto0, resto1, . . . , reston

que satisfaz a equacao recursiva

restoi = restoi−2 mod restoi−1

para i = 1, 2, . . . , n.No calculo do mdc(783, 534) a sequencia expandida de restos e

783, 534, 249, 36, 33, 3, 0.

Seja n o numero total de divisoes efetuadas pelo Algoritmo de Euclides.As seguintes propriedades demonstram a corretude deste algoritmo.

Page 61: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

56 CAPITULO 10. O ALGORITMO DE EUCLIDES

EUC 1 Se n = 0 entao mdc(a, b) = max(a, b).

EUC 2 Se n > 0 entao, para i = 0, 1, . . . , n, temos que

(i) restoi−1 > restoi;(ii) reston = 0;(iii) mdc(a, b) = mdc(restoi−1, restoi);(iv) mdc(a, b) = reston−1.

10.4 Eficiencia

Seja n o numero total de divisoes efetuadas pelo Algoritmo de Euclides. Asequencia de valores de restos gerada no calculo do mdc(a, b) pelo Algoritmode Euclides obedece as seguintes equacoes

resto−1 = max(a, b) (caso base)resto0 = min(a, b) (caso base)restoi = restoi−2 mod restoi−1 (relacao estrutural)

onde i = 1, 2, · · · , n.As seguintes propriedades estabelecem a eficiencia deste algoritmo.

EUC 3 Se n > 0 entao, para i = 0, 1, . . . , n− 2, temos que

(i) reston = 0;(i) reston−1 ≥ 1 reston−2 ≥ 2;(ii) restoi ≥ restoi+1 + restoi+2;(iii) restoi ≥ 2.restoi+2;

(iii) restoi ≥ (√

2)n−1−i;

(iv) resto0 ≥ (√

2)n−1.

EUC 4 Seja n o numero total de divisoes efetuadas pelo Algoritmo de Eu-clides no calculo do mdc(a, b). Temos que

n ≤ 1 + 2. lg2(min(a, b)).

Page 62: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 11

O Teorema de Stone

Neste capıtulo, mostramos que toda algebra booleana finita (B, +, .,−) eisomorfa a uma algebra de conjuntos. Este e o Teorema de Stone.

Para |B| = 1, a demonstracao e trivial. Apresentamos uma demonstracaopor inducao estrutural para o caso em que |B| ≥ 2.

Uma consequencia imediata deste teorema e que para toda algebra boo-leana finita (B, +, .,−) existe um numero natural k tal que |B| = 2k.

11.1 Atomos

Definicao 32 Seja (B, +, ., −) uma algebra booleana. Dizemos que um ele-mento a ∈ B e um atomo se e so se para todo x ≤ a temos que x ∈ {0, a}.

Diversas propriedades da ordenacao booleana estao fortemente associadasa nocao de atomo. A seguir, apresentamos algumas destas.

OBL 14 a ≤ b e a ≤ c e b.c = 0 entao a = 0.

OBL 15 a ≤ b.c entao a ≤ b+ c.

OBL 16 a ≤ b entao b = a+ b.a.

OBL 17 a+ b = a.b+ b.a+ a.b.

OBL 18 (a.b).(a.b) = (a.b).(b.a) = (a.b).(b.a).

OBL 19 c = a+ b e a, b /∈ {0, c} entao a 6= b.

ATM 1 Sejam a1 e a2 dois atomos distintos de uma algebra booleana (B, +, ., −).Neste caso, temos que a1.a2 = 0.

57

Page 63: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

58 CAPITULO 11. O TEOREMA DE STONE

11.2 Decomposicao Estrutural

Definicao 33 Dizemos que b < a se e so se b ≤ a e b 6= a.

STN 1 Se b nao e um atomo, entao existe c ∈ B tal que

0 < c < b.

STN 2 Se b ∈ B nao e um atomo, entao existem x, y ∈ B tais que

(i) x, y 6= 0(ii) x.y = 0(iii) x, y < b(iv) b = x+ y.

STN 3 Para todo b ∈ B existem um inteiro k e a1, · · · , ak ∈ B tais que

(i) ai 6= 0(ii) ai.aj = 0 para i 6= j(iii) ai e atomo(iv) b = a1 + · · ·+ ak.

para i, j = 1, · · · , k. Alem disso, essa decomposicao e unica.

STN 4 Seja b = a1 + · · ·+ak a decomposicao de b em atomos. Seja tambema um atomo tal que a ≤ b. Neste caso, temos que existe 1 ≤ i ≤ k tal quea = ai.

STN 5 Sejam b =∑ki=1 ai e b′ =

∑k′

i=1 a′i as respectivas decomposicoes de b

e b′ em atomos. Sejam s = b+ b′ e p = b.b′. Neste caso, temos que

(i) s =∑ji=1 xi

(ii) p =∑li=1 yi

onde {x1, · · · , xj} = {a1, · · · , ak}∪{a′1, · · · , a′k′} e {y1, · · · , yl} = {a1, · · · , ak}∩{a′1, · · · , a′k′}.

Page 64: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 12

Grafos

12.1 Conceitos Basicos

Os elementos atomicos empregados na construcao de grafos sao os vertices eas arestas.

Primeiramente, vamos definir esses elementos. A partir deles, vamosentao construir os grafos.

12.1.1 Vertices

Um conjunto nao vazio V com n vertices e simplesmente um conjunto comn elementos distintos, isto e,

V = {v1, · · · , vn}

onde n ≥ 1.

12.1.2 Arestas

Um conjunto A com m arestas e simplesmente um conjunto com m elementosdistintos, isto e,

A = {a1, · · · , am}

onde m ≥ 0.

59

Page 65: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

60 CAPITULO 12. GRAFOS

12.1.3 Incidencia

A cada aresta a ∈ A estao associados dois vertices u, v ∈ V nos quais dizemosque a aresta a incide. Desta forma, fazemos as arestas incidirem nos vertices.

Definimos dois tipos diferentes de incidencia: a dirigida e a nao dirigida.

Na incidencia dirigida, a aresta a e associada a um par ordenado (u, v) ∈V × V . Neste caso, a e dita dirigida de u para v.

Na incidencia nao dirigida, a aresta a e associada a um conjunto {u, v}.Neste caso, a e dita nao dirigida entre u e v.

Formalmente, a incidencia dirigida e uma funcao f : A→ V × V .

Analogamente, a incidencia nao dirigida e uma funcao f : A→ V (2), ondeV (2) = {{u, v}|u, v ∈ V }.

Observe que para u ∈ V temos que os elementos do tipo {u} ∈ V (2), pois{u} = {u, u}.

12.2 Grafos e Subgrafos

Definicao 34 (Grafo) Um grafo G e uma estrutura composta de tres ele-mentos, isto e,

G = (V,A, f)

onde V e um conjunto de vertices, A e um conjunto de arestas e f e umafuncao de incidencia.

Quando as arestas deG estao dirigidas, dizemos queG e um grafo dirigido.Se f(a) = (u, u), dizemos que a aresta a e um lacete dirigido.

Quando as arestas de G estao nao dirigidas,, dizemos que G e um grafonao dirigido. Se f(a) = {u}, dizemos que a aresta a e um lacete nao dirigido.

Duas arestas distintas a1 e a2 de um grafo G sao ditas paralelas quandof(a1) = f(a2).

Exemplo 44 Seja G = (V,A, f), com V = {1, 2, 3, 4}, A = {1, 2, 3, 4, 5, 6, 7}e f = {(1, {4, 3}), (2, {1, 4}), (3, {2, 4}), (4, {1, 2}), (5, {1, 2}), (6, {3, 2}), (7, {2, 3})}.

O grafo G do exemplo 44 tem cinco vertices e sete arestas nao dirigidas.Observe que as arestas 3, 4, 5, 6 e 7 sao incidentes no vertice 2. Nesse grafo,as arestas 6 e 7 sao paralelas entre si, bem como as arestas 4 e 5.

Page 66: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

12.2. GRAFOS E SUBGRAFOS 61

Os grafos sao classificados segundo varios criterios, como por exemplo osseguintes: o direcionamento ou nao das arestas, a presenca ou nao de lacetes,e a presenca ou nao de arestas paralelas.

Grafos nao dirigidos, sem lacetes nem arestas paralelas, sao denominadosGrafos Simples.

Grafos com arestas nao dirigidas, sem lacetes mas com arestas paralelas,sao denominados Multigrafos.

Grafos com arestas nao dirigidas, com lacetes e com arestas paralelas, saodenominados Pseudografos.

Grafos com arestas dirigidas, com lacetes e sem arestas paralelas, saodenominados Grafos Dirigidos.

Grafos com arestas dirigidas, com lacetes e com arestas paralelas, saodenominados Multigrafos Dirigidos.

Definicao 35 Seja G = (V,A, f) um grafo nao dirigido. Dizemos que ografo H = (V ′, A′, f ′) e um subgrafo de G se e somente se

(i) V ′ ⊆ V ;(ii) A′ ⊆ A;(iii) a ∈ A′ entao f ′(a) = f(a) ⊆ V ′.

Um subgrafo de um grafo dirigido e definido de maneira analoga. QuandoH e um subgrafo de G, denotamos por H ≤ G. Adicionalmente, se H ≤ Ge H 6= G, denotamos por H < G.

Definicao 36 Seja α uma famılia de grafos. Seja G um grafo. Dizemos queH e um componente-α de G se e somente se

(i) H ≤ G;(ii) H ∈ α;(iii) nao existe H ′ ∈ α tal que H < H ′ ≤ G.

Page 67: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

62 CAPITULO 12. GRAFOS

Page 68: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 13

Grafos Simples

13.1 Representacao

Seja G = (V,A, f) um grafo simples. Para a ∈ A e f(a) = {u, v} temosque nao existe outra a′ ∈ A com f(a′) = {u, v}. Portanto, o par de vertices{u, v} identifica a aresta A. Assim, podemos representar G por

G = (V, f(A))

onde f(A) = {{u, v}|∃a ∈ A, f(a) = {u, v}}.Observe que f(A) ⊆ V (2).Identificando A com f(A), obtemos a seguinte definicao simplificada para

os Grafos Simples.

Definicao 37 Dizemos que G = (V,A) e um grafo simples se e somente se

(i) A ⊆ V (2);

(ii) para todo v ∈ V temos que {v} /∈ A,

onde V (2) = {{u, v}|u, v ∈ V }.

SIM 1 Seja T = (V,A) uma arvore livre. Neste caso, T e tambem um grafosimples.

Alternativamente, podemos definir um grafo simples recursivamente.

63

Page 69: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

64 CAPITULO 13. GRAFOS SIMPLES

Definicao 38 Um Grafo Simples G = (V,A) e definido recursivamente porT = ({v}, {}) (caso base)T = (V1 ∪ {v}, A1) (relacao estrutural)T = (V1, A1 ∪ {{u,w}}) (relacao estrutural)

onde v /∈ V1, u,w ∈ V1, {u,w} /∈ A1, e G1 = (V1, A1) e um grafo simples.

Definicao 39 (Indicadoras) Seja G = (V,A) um grafo simples. Para v ∈V e a ∈ A, definimos a variavel indicadora Ia(v) por

Ia(v) =

{1 se v ∈ a0 se v /∈ a

Definicao 40 Seja G = (V,A) um grafo simples. Para todo vertice v ∈ Vdefinimos o grau(v) por

grau(v) =∑a∈A

Ia(v)

SIM 2 (Teorema do Aperto de Mao) Seja G = (V,A) um grafo sim-ples. Para |A| = m temos que∑

v∈Vgrau(v) = 2.m .

SIM 3 Seja G = (V,A) um grafo simples. Para |V | = n e |A| = m temosque

m ≤ n.(n− 1)

2.

SIM 4 Seja G = (V,A) um grafo simples, com |V | = n e |A| = m. Segrau(v) = 2 para todo v ∈ V entao temos que m = n.

Exercıcio 22 Seja T o numero total de vertices de grau ımpar em G. Mostreque T e par.

Exercıcio 23 Generalize o Teorema do Aperto de Mao para o caso em queG e um multigrafo.

Definicao 41 Se grau(v) = 0 dizemos que v e um vertice isolado de G.

Definicao 42 Se grau(v) = 1 dizemos que v e uma folha de G.

A seguir, relembramos uma propriedade relativa a folhas em uma ArvoreLivre.

SIM 5 Seja T = (V,A) uma arvore livre com n ≥ 2, onde n = |V |. Nestecaso, temos que T tem pelo menos duas folhas.

Page 70: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

13.2. GRAFOS DERIVADOS 65

13.2 Grafos Derivados

Definicao 43 Seja G = (V,A) um grafo simples. Seja tambem A = {{u, v} ∈V (2) | u 6= v, {u, v} /∈ A}. Definimos o grafo complemento Gc por

Gc = (V, A)

CPL 1 (Gc)c = G.

13.3 Passeios, Trilhas e Caminhos

Seja G = (V,A) um grafo simples.

Definicao 44 (Passeio) Dizemos que p e um passeio de tamanho k em Gse somente se

(i) p = (v0, v1, · · · , vk)(ii) vi ∈ V i = 0, · · · , k(iii) {vi−1, vi} ∈ A i = 1, · · · , k.

onde k ≥ 0.

Neste caso, dizemos que p vai de v0 a vk. Alem disso, os vertices v0 e vksao denominados terminais do passeio p. O vertice v0 e a origem do passeio,enquanto o vertice vk e o destino do passeio. Usamos ‖p‖ para denotar otamanho de p.

Para u ∈ V , temos que (u) e um passeio de tamanho 0 em G de u a u.

PSS 1 Se p = (v0, v1, · · · , vk) e um passeio em G, entao p′ = (vk, vk−1, · · · , v0)tambem e um passeio em G.

Observe que p vai de v0 a vk, enquanto p′ vai de vk a v0.

PSS 2 Se p1 = (v0, v1, · · · , vk) e p2 = (u0, u1, · · · , ul) sao dois passeios emG e vk = u0, entao p3 = (v0, v1, · · · , vk, u1, · · · , ul) tambem e um passeio emG e ‖p3‖ = k + l.

Definicao 45 (Trilha) Dizemos que um passeio p = (v0, v1, · · · , vk) e umatrilha em G se somente se {vi−1, vi} 6= {vj−1, vj} para 1 ≤ i < j ≤ k.

Page 71: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

66 CAPITULO 13. GRAFOS SIMPLES

Definicao 46 (Caminho) Dizemos que um passeio p = (v0, v1, · · · , vk) eum caminho em G se somente se

(i) vi 6= vj 1 ≤ i < j < k(ii) vi 6= vj 1 < i < j ≤ k

CAM 1 Todo caminho de tamanho ≥ 3 em G e tambem uma trilha em G.

CAM 2 Seja p = (v0, · · · , vk) um caminho em G, com k ≥ 3. Neste caso,para i = 1, · · · , k − 1 temos que

grau(vi) ≥ 2.

Definicao 47 (Conexo) Um grafo simples G = (V,A) e dito conexo se eso se para todo par de vertices u, v ∈ V temos que existe um caminho em Gde u a v.

CAM 3 Seja T = (V,A) uma arvore livre. Sejam u, v ∈ V . Neste caso,existe um unico caminho de u a v em T .

CAM 4 Toda arvore livre e um grafo conexo.

CAM 5 Seja T = (V,A) uma arvore livre com n ≥ 2, onde n = |V |. Nestecaso, u e v sao as unicas folhas de T se e so se existe um caminho de tamanhon− 1 em T de u a v.

CAM 6 Sejam T = (V,A) uma arvore livre e S ⊂ V . Sejam ainda u ∈ S ev ∈ V − S. Neste caso, existe um caminho de u a v em T que contem pelomenos uma aresta a tal que

|a ∩ S| = |a ∩ (V − S)| = 1.

Definicao 48 Dizemos que um passeio ou trilha p = (v0, v1, · · · , vk) e fe-chado em G se somente se

v0 = vk.

Caso contrario, p e aberto em G.

PSS 3 Seja p um passeio fechado em G. Neste caso,

‖p‖ 6= 1.

Page 72: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

13.4. CIRCUITOS E CICLOS 67

13.4 Circuitos e Ciclos

Definicao 49 (Circuito) Uma trilha fechada em G e denominada circuito.

Definicao 50 (Ciclo) Um caminho fechado de tamanho k ≥ 3 em G edenominado ciclo.

CIC 1 Se p e um passeio fechado de tamanho tres entao p e um ciclo.

CIC 2 Se G contem um passeio fechado de tamanho ımpar entao G contemum ciclo de tamanho ımpar.

CIC 3 Se G contem dois passeios distintos de u a v entao G contem umpasseio fechado iniciando por u e passando por v.

CIC 4 Se G nao tem ciclos nem vertices isolados entao G tem pelo menosduas folhas.

CIC 5 Sejam T = (V,A) uma arvore livre, u, v ∈ V e {u, v} /∈ A. Nestecaso, o grafo G = (V,A ∪ {{u, v}}) tem um unico ciclo.

CIC 6 Sejam G = (V,A) um grafo conexo, onde grau(v) = 2 para todov ∈ V . Neste caso, o grafo G e um ciclo.

13.5 Esparsidade

13.6 Arvores Livres e Geradoras

13.7 Componentes Conexos

Seja G = (V,A) um grafo simples com n vertices e m arestas.

Definicao 51 Dizemos que H e um componente conexo de G se e somentese

(i) H ≤ G(ii) H e conexo(iii) nao existe H ′ conexo, com H < H ′ ≤ G

CMP 1 Se G e conexo entao G e seu unico componente conexo.

Page 73: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

68 CAPITULO 13. GRAFOS SIMPLES

CMP 2 Se G tem c componentes conexos entao n− c ≤ m.

CMP 3 Se G e conexo entao n− 1 ≤ m.

Definicao 52 Sejam u e v dois vertices quaisquer em V . Dizemos que u _ vse e somente se existe um caminho de u a v em G.

CMP 4 A relacao _ e uma relacao de equivalencia em V , isto e,

(i) reflexiva;(ii) simetrica;(iii) transitiva.

Definicao 53 Seja u um vertice qualquer em V . Definimos o subgrafo Hu =(Vu, Au) por

Vu = {v ∈ V |u _ v}Au = {a ∈ A| a ⊂ V }.

CMP 5 Se x _ y entao Vx = Vy.

CMP 6 Se x _ y entao Ax = Ay.

CMP 7 Se x _ y entao Hx = Hy.

CMP 8 Se x ∈ V entao Hx e conexo maximal.

CMP 9 (Caracterizacao) H e um componente conexo de G se e somentese existe um u ∈ V tal que H = Hu.

CMP 10 (Graus Pequenos) Se para todo v ∈ V temos grau(v) ≤ 2 entaoos componentes conexos de G sao

(i) ou vertices isolados;(ii) ou ciclos;(iii) ou caminhos.

Page 74: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

13.8. GRAFOS BIPARTIDOS 69

13.8 Grafos Bipartidos

Definicao 54 Seja G = (V,A) um grafo simples. Dizemos que G e um grafobipartido em S e T se e somente se

(i) V = S ∪ T S ∩ T = φ(ii) a ∈ A ⇒ |a ∩ S| = |a ∩ T | = 1

Quando isto ocorre, denotamos por G = (S, T ;A).

BIP 1 Seja G um grafo bipartido. Entao G tem pelo menos dois vertices.

BIP 2 Seja T arvore livre com pelo menos dois vertices. Entao, T e umgrafo bipartido.

Dem.: por inducao estrutural.

BIP 3 Seja G um grafo bipartido. Se H ≤ G e um subgrafo com pelo menosdois vertices entao H e um grafo bipartido.

BIP 4 G e um grafo bipartido se e somente se todos os componentes conexosde G sao grafos bipartidos.

BIP 5 Seja G um grafo bipartido em S e T e (v0, v1, · · · , vk) um passeio emG. Se v0 ∈ S entao

(i) v2i ∈ S para i = 0, 1, · · · , k/2;

(ii) v2i+1 ∈ T para i = 0, 1, · · · , (k − 1)/2.

BIP 6 Se G e um grafo bipartido entao todo ciclo de G tem tamanho par.

BIP 7 Se G e conexo e todo ciclo de G tem tamanho par entao G e umgrafo bipartido.

BIP 8 (Caracterizacao - Konig, 1936) G e um grafo bipartido se e so-mente se todo ciclo de G tem tamanho par.

Page 75: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

70 CAPITULO 13. GRAFOS SIMPLES

13.9 Articulacoes e Pontes

Seja G = (V,A) um grafo simples.

Definicao 55 Dizemos que v ∈ V e um ponto de articulacao de G se esomente se existem x, y ∈ V tais que

(i) x _ y(ii) todo caminho de x a y passa por v

ART 1 (Caracterizacao) O vertice v ∈ V e um ponto de articulacao deG se e somente se existem arcos {r, v}, {v, s} ∈ A tais que todo caminho der a s passa por v.

Definicao 56 Dizemos que a ∈ A e uma ponte em G se e somente se existemx, y ∈ V tais que

(i) x _ y(ii) todo caminho de x a y contem a

PNT 1 Se {u, v} ∈ A e v e uma folha de G entao {u, v} e uma ponte emG.

PNT 2 Se {u, v} ∈ A e u e v sao pontos de articulacao de G entao {u, v}e uma ponte em G.

PNT 3 (Caracterizacao) O arco {u, v} ∈ A e uma ponte em G se e so-mente se ocorre exatamente uma das seguintes alternativas

(i) u e v sao pontos de articulacao(ii) u ou v sao folhas.

13.10 Componentes Biconexos

Seja G = (V,A) um grafo simples.

Definicao 57 Dizemos que G e biconexo se e somente se(i) G e conexo(ii) G nao tem pontos de articulacao.

BCX 1 G e biconexo e |V | ≥ 3 se e somente se para todo par u, v ∈ Vexistem dois caminhos vertices disjuntos de u a v.

Page 76: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

13.10. COMPONENTES BICONEXOS 71

BCX 2 G e biconexo e |V | ≥ 3 se e somente se para todo par u, v ∈ V existeum ciclo contendo u e v.

BCX 3 G e biconexo e |V | ≥ 3 se e somente se para toda tripla u, v, w ∈ Vexiste um ciclo contendo u, v e w.

Definicao 58 Dizemos que H e um componente biconexo de G se e somentese

(i) H ≤ G(ii) H e biconexo(iii) nao existe H ′ biconexo, com H < H ′ ≤ G

Definicao 59 Sejam a, a′ ∈ A. Dizemos que a ≡ a′ se e somente se ocorreexatamente uma das seguintes alternativas

(i) a = a′

(ii) existe um ciclo em G que contem a e a′.

BCX 4 A relacao ≡ e uma relacao de equivalencia em A, isto e,

(i) reflexiva;(ii) simetrica;(iii) transitiva.

Definicao 60 Seja a uma aresta qualquer em V . Definimos o subgrafo Ha =(Va, Aa) por

Aa = {a′ ∈ A|a′ ≡ a}.Va = {v ∈ V |v ∈ a′ ∈ Aa}

BCX 5 Se a ≡ b entao Aa = Ab.

BCX 6 Se a ≡ b entao Ha = Hb.

BCX 7 Para todo a ∈ A, Ha e biconexo.

BCX 8 Se Aa ∩ Ab = φ entao |Va ∩ Vb| ≤ 1.

BCX 9 Se Aa ∩Ab = φ e v ∈ Va ∩ Vb entao v e um ponto de articulacao deG.

BCX 10 H e um componente biconexo de G se e somente se existe uma ∈ A tal que H = Ha.

BCX 11 Os componentes biconexos formam uma estrutura de arborescencia.

Page 77: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

72 CAPITULO 13. GRAFOS SIMPLES

Page 78: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 14

Grafos Dirigidos

14.1 Representacao

Por nao terem arestas paralelas, os grafos dirigidos tambem tem uma de-finicao simplificada.

Definicao 61 Dizemos que G = (V,A) e um grafo dirigido se e somente seA ⊆ V × V .

Definicao 62 (Indicadoras) Para cada v, w ∈ V e a ∈ A definimos avariavel indicadora Ia(v, w) por

Ia(v, w) =

{1 se a = (v, w)0 caso contrario

Definicao 63 Para todo vertice v ∈ V definimos o grauin(v) e o grauout(v)respectivamente por

grauin(v) =∑a∈A

∑w∈V Ia(w, v)

grauout(v) =∑a∈A

∑w∈V Ia(v, w).

Definicao 64 Se grauin(v) = 0 dizemos que v e uma fonte em G.

Definicao 65 Se grauout(v) = 0 dizemos que v e um sumidouro em G.

73

Page 79: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

74 CAPITULO 14. GRAFOS DIRIGIDOS

14.2 Grafos Derivados

Definicao 66 Seja G = (V,A) um grafo dirigido. Seja tambem AT ={(v, u)|(u, v) ∈ A}. Definimos o grafo transposto GT por

GT = (V,AT )

TRP 1 (GT )T = G.

TRP 2 O vertice v e uma fonte em G se e somente se o vertice v e umsumidouro em GT .

TRP 3 O vertice v e um sumidouro em G se e somente se o vertice v e umafonte em GT .

14.3 Passeios, Trilhas e Caminhos

Seja G = (V,A) um grafo dirigido.

Definicao 67 (Passeio) Dizemos que p e um passeio de tamanho k em Gse somente se

(i) p = (v0, v1, · · · , vk)(ii) vi ∈ V i = 0, · · · , k(iii) (vi−1, vi) ∈ A i = 1, · · · , k.

onde k ≥ 0.

Neste caso, dizemos que p vai de v0 a vk. Alem disso, os vertices v0 e vksao denominados terminais do passeio p. O vertice v0 e a origem do passeio,enquanto o vertice vk e o destino do passeio. Usamos ‖p‖ para denotar otamanho de p.

Para u ∈ V , temos que (u) e um passeio de tamanho 0 em G de u a u.

PSS 4 Se p1 = (v0, v1, · · · , vk) e p2 = (u0, u1, · · · , ul) sao dois passeios emG e vk = u0, entao p3 = (v0, v1, · · · , vk, u1, · · · , ul) tambem e um passeio emG e ‖p3‖ = k + l.

Definicao 68 (Trilha) Dizemos que um passeio p = (v0, v1, · · · , vk) e umatrilha em G se somente se (vi−1, vi) 6= (vj−1, vj) para 1 ≤ i < j ≤ k.

Page 80: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

14.4. CIRCUITOS E CICLOS 75

Definicao 69 (Caminho) Dizemos que um passeio p = (v0, v1, · · · , vk) eum caminho em G se somente se vi 6= vj para 1 ≤ i < j ≤ k

CAM 7 Todo caminho em G e tambem uma trilha em G.

Definicao 70 Dizemos que um passeio ou trilha p = (v0, v1, · · · , vk) e fe-chado em G se somente se

v0 = vk.

Caso contrario, p e aberto em G.

14.4 Circuitos e Ciclos

Definicao 71 (Circuito) Uma trilha fechada em G e denominada circuito.

Definicao 72 (Ciclo) Dizemos que um passeio p = (v0, v1, · · · , vk) e umciclo em G se somente se

(i) 3 ≤ k;(ii) p = (v0, v1, · · · , vk−1) e um caminho;(iii) v0 = vk.

CIC 7 Se G contem um passeio fechado de tamanho ımpar entao G contemum ciclo de tamanho ımpar.

14.5 Grafos Especiais

14.6 Grafos Acıclicos

Definicao 73 Seja G = (V,A) um grafo dirigido. Dizemos que G e umgrafo dirigido acıclico se e somente se nao existem ciclos dirigidos em G.

GDA 1 G e um grafo dirigido acıclico se e somente se todo subgrafo de Ge dirigido acıclico.

GDA 2 G e um grafo dirigido acıclico se e somente se GT e um grafo diri-gido acıclico.

GDA 3 Todo grafo dirigido acıclico G tem pelo menos uma fonte.

Page 81: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

76 CAPITULO 14. GRAFOS DIRIGIDOS

GDA 4 Todo grafo dirigido acıclico G tem pelo menos um sumidouro.

GDA 5 (Caracterizacao) G e um grafo dirigido acıclico se e somente setodo subgrafo de G tem pelo menos uma fonte.

Exercıcio 24 Projete um algoritmo para testar se um grafo e acıclico, uti-lizando a caracterizacao anterior.

GDA 6 G e um grafo dirigido acıclico se e somente se todo subgrafo de Gtem pelo menos um sumidouro.

14.7 Ordenacao Topologica

Seja G = (V,A) um grafo dirigido com |V | = n.

Definicao 74 Dizemos que uma bijecao f : V −→ {1, · · · , n} e uma or-denacao topologica de G se e somente se

f(u) < f(v) para (u, v) ∈ A.

OTP 1 (Caracterizacao) G e um grafo dirigido acıclico se e somente seG tem uma ordenacao topologica.

Exercıcio 25 Projete um algoritmo para testar se um grafo e acıclico, uti-lizando a caracterizacao anterior.

14.8 Componentes Fortemente Conexos

FCX 1 Os componentes fortemente conexos formam uma estrutura dirigidaacıclica.

Page 82: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 15

Otimizacao em Grafos

15.1 Pareamentos Maximos

Seja G = (V,A) um grafo bipartido.

Definicao 75 Seja P ⊆ A. Dizemos que P e um pareamento em G se esomente se

a1 ∩ a2 = φ para todo par a1, a2 ∈ A.

A definicao anterior garante que arcos diferentes nao compartilham vertices.Dado um pareamento P em G, classificamos os vertices e arcos de G

conforme descrito a seguir. Observe que esta classificacao e relativa ao pare-amento P .

Arco pareado: se a ∈ P dizemos que a e um arco pareado.

Arco livre: se a /∈ P dizemos que a e um arco livre.

Vertice pareado: se {u, v} ∈ P dizemos que u e um vertice pareado.

Vertice livre: se u nao e um vertice pareado dizemos que u e um verticelivre.

Definicao 76 Seja P um pareamento de G. Dizemos que P e um parea-mento maximo de G se e somente se para todo pareamento P ′ de G temosque

|P ′| ≤ |P |.

77

Page 83: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

78 CAPITULO 15. OTIMIZACAO EM GRAFOS

Definicao 77 Seja P um pareamento de G. Dizemos que T e um caminhoalternante de P em G se e somente se para cada par de arcos consecutivosem T , um e pareado e o outro e livre.

Definicao 78 Seja P um pareamento de G. Dizemos que T e um caminhoaumentante de P em G se e somente se T e alternante e seu primeiro e seuultimo vertices sao livres.

AUM 1 Todo caminho aumentante tem comprimento ımpar.

AUM 2 Todo caminho aumentante de comprimento 2.k + 1 tem k arcospareados e k + 1 arcos livres.

AUM 3 Seja T = (v0, . . . , vr) um caminho aumentante de P em G. Sejaainda A(T ) = {{vi−1, vi}|i = 1, . . . , r} o conjunto de arestas de T . ParaP+ = (P − A(T )) ∪ (A(T )− P ) temos que

(i) P+e um pareamento em G;(ii) |P+| = |P |+ 1.

AUM 4 (Caracterizacao) P e um pareamento maximo de G se e somentese P nao tem caminhos aumentantes.

15.2 Pareamentos Perfeitos

Seja G = (V,A) um grafo bipartido.

Definicao 79 Seja P ⊆ A um pareamento em G. Dizemos que P e umpareamento perfeito em G se e somente se⋃

a∈Pa = V .

PRF 1 Seja P um pareamento perfeito em G = (S, T ;A). Neste caso, temosque |S| = |T |.

PRF 2 Seja P um pareamento perfeito em G e H = (V ′, A′) um subgrafode G. Neste caso, temos que P ∩ A′ e um pareamento perfeito em H.

Page 84: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

15.3. ARVORES GERADORAS MINIMAS 79

Definicao 80 Seja G = (S, T ;A) um grafo bipartido em S e T . Para cadas ∈ S definimos a vizinhanca N(x) de x por

N(x) = {t ∈ T |{x, t} ∈ A} .

Alem disso, para X ⊂ S definimos a vizinhanca N(X) do conjunto X por

N(X) =⋃x∈X

N(x) .

PRF 3 Seja G = (S, T ;A) um grafo bipartido em S e T . Se G tem umpareamento perfeito entao para todo X ⊂ S temos que

|X| ≥ |N(X)| .

PRF 4 (Teorema de Hall, 1935) Seja G = (S, T ;A) um grafo bipartidoem S e T . Neste caso, G tem um pareamento perfeito se e so se para todoX ⊂ S temos que

|X| ≥ |N(X)| .

15.3 Arvores Geradoras Mınimas

Seja G = (V,A) um grafo simples conexo. Vamos enriquecer esta estruturaacrescentando pesos nas arestas. Seja w : A −→ N uma funcao que atribuium inteiro natural w(a) a cada aresta a ∈ A. Assim, temos uma estruturaR, denominada rede, definida por R = (G,w).

O Problema das Arvores Geradoras Mınimas e um problema de Oti-mizacao em Redes. Para formular este problema, necessitamos de algumasdefinicoes preliminares.

Definicao 81 Seja T ≤ G. Dizemos que T e uma arvore geradora de G see somente se

(i) T e uma arvore livre;

(ii) todos os vertices de G estao em T .

Definicao 82 Seja T uma arvore geradora de G. Definimos o custo c(T )da arvore T na rede R = (G,w) por

c(T ) =∑a∈T

w(a).

Page 85: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

80 CAPITULO 15. OTIMIZACAO EM GRAFOS

Definicao 83 Seja T uma arvore geradora de G. Dizemos que T e umaarvore geradora mınima em R = (G,w) se e somente se para toda arvoregeradora T ′ de G temos que

c(T ) ≤ c(T ′).

15.3.1 Geracao de Arestas Candidatas

AGM 1 Seja a uma aresta em A tal que w(a) = min{w(e)|e ∈ A}. Nestecaso, existe uma arvore geradora mınima T ∗ em R = (G,w) que contem aaresta a.

AGM 2 Seja v ∈ V . Seja ainda a uma aresta em A, com v ∈ a, tal quew(a) = min{w(e)|e ∈ A, v ∈ e}. Neste caso, existe uma arvore geradoramınima T ∗ em R = (G,w) que contem a aresta a.

AGM 3 Seja S ⊂ V . Seja ainda a uma aresta em A com |a∩S| = |a∩(V −S)| = 1, tal que w(a) = min{w(e)|e ∈ A, |e∩S| = |e∩ (V −S)| = 1}. Nestecaso, existe uma arvore geradora mınima T ∗ em R = (G,w) que contem aaresta a.

15.3.2 Integracao de Arestas Candidatas

AGM 4 Seja F ≤ G. Seja ainda F = (V ′, A′) acıclico, sendo que para todoa ∈ A′ existe uma arvore geradora mınima em R = (G,w) contendo a. Nestecaso, existe uma arvore geradora mınima T ∗ em R = (G,w) tal que

H ≤ T ∗ ≤ G.

15.3.3 Algoritmos

AGM 5 (PRIM) Sejam T ≤ T ∗ ≤ G, onde T = (V ′, A′) e uma arvorelivre, e T ∗ e uma arvore geradora mınima em R = (G,w). Seja ainda a ∈ Atal que

w(a) = min{w(e)|e ∈ A, |e ∩ V ′| = 1}.

Neste caso, existe uma arvore geradora mınima T ∗∗ em R = (G,w) tal que

T + a ≤ T ∗∗ ≤ G.

Page 86: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

15.4. ARVORES DE HUFFMAN 81

AGM 6 (KRUSKAL) Sejam F ≤ T ∗ ≤ G, onde F = (V ′, A′) e umafloresta livre, e T ∗ e uma arvore geradora mınima em R = (G,w). Sejaainda a ∈ A tal que

w(a) = min{w(e)|e ∈ A, F + e e f loresta livre}.

Neste caso, existe uma arvore geradora mınima T ∗∗ em R = (G,w) tal que

F + a ≤ T ∗∗ ≤ G.

15.4 Arvores de Huffman

15.5 Arvores de Busca Ponderadas Mınimas

Page 87: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

82 CAPITULO 15. OTIMIZACAO EM GRAFOS

Page 88: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 16

Princıpios Basicos de Contagem

16.1 Adicao

Princıpio 1 Seja A um conjunto. Alem disso, sejam B1, · · · , Bk subconjun-tos de A tais que:

(i) Bi⋂Bj = ∅ para 1 ≤ i < j ≤ k;

(ii) A =⋃ki=1Bi.

Neste caso, temos que

|A| =k∑i=1

|Bi| .

16.2 Multiplicacao

Muitas vezes, ao particionar o universo de contagem A em k componentes,encontramos simetrias entre os diversos componentes. A consequencia distoe que todas os componentes tem mesmo tamanho. Logo, temos que |A| = k.l,onde l e o tamanho padrao de um componente.

Princıpio 2 Seja A um conjunto tal que A = B1 × · · · × Bk. Neste caso,temos que

|A| =k∏i=1

|Bi| .

83

Page 89: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

84 CAPITULO 16. PRINCIPIOS BASICOS DE CONTAGEM

Princıpio 3 Seja T uma arvore dirigida de altura h. Sejam n0, · · · , nh−1inteiros positivos. Alem disso, assuma que se v e um no do nıvel i entaograuout(v) = ni, para i = 1, · · · , h − 1. Neste caso, o numero total N decaminhos de comprimento h em T e dado por

N =h−1∏i=0

ni .

Page 90: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 17

O Princıpio do Pombal

Uma brincadeira muito comum em festas infantis e a famosa danca das ca-deiras. Nessa danca, um grupo de pessoas circula em torno de um grupode cadeiras. Sempre que a musica para, todos tentam sentar numa das ca-deiras. Porem, ha uma cadeira a menos do que a quantidade de pessoas.Esta escassez de cadeiras faz com que pelo menos uma pessoa seja levada atentar sentar em uma cadeira ja ocupada. E esta disputa e o momento maisdivertido da brincadeira. Sempre sobra uma pessoa em pe. Quem sobra eexcluido da danca, juntamente com a retirada de mais uma cadeira. E amusica recomeca...

Num grupo de 13 pessoas, pelo menos duas aniversariam no mesmo mes.Analogamente, num grupo de 13 pessoas, pelo menos duas tem o mesmosigno.

Qual a razao disto?Uma forma pictorica de reapresentar estes resultados e utilizando pombos

e sua ocupacao de um pombal : se 13 pombos entram num pombal de 12casas, entao pelo menos dois pombos compartilham uma mesma casa!

O Princıpio do Pombal generaliza esta afirmacao.

17.1 O Princıpio

Se n+1 pombos entram num pombal com n casas, ent~ao pelo

menos dois pombos compartilham uma mesma casa.

Como acreditar que este princıpio e correto? Ele parece tao evidente,que, neste ponto, ja estamos convencidos da sua validade. Todavia, vamos

85

Page 91: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

86 CAPITULO 17. O PRINCIPIO DO POMBAL

apresentar uma argumentacao por absurdo que estabelece rigorosamente avalidade do referido princıpio.

Imagine que fosse possıvel acomodar os pombos nas n casas, com nomaximo um pombo por casa. Como temos n casas, terıamos no maximon pombos acomodados. Isto leva a uma contradicao, pois admitimos queacomodamos os n+1 pombos.

Assim, nao e possıvel acomodar os pombos nas n casas, com no maximoum pombo por casa.

Portanto, pelo menos dois pombos devem ocupar uma mesma casa!Desta forma, concluimos que o princıpio e correto. E claro que quem

brincou alguma vez de danca das cadeiras ja vivenciou a forca deste princıpio.

17.2 Aplicacoes

Diversas aplicacoes do Prıncipio do Pombal sao possıveis. O segredo e iden-tificar os pombos e as casas na situacao em estudo.

Aniversarios & Signos Num grupo de 13 pessoas, pelo menos duas ani-versariam no mesmo mes. Neste caso, basta denominar as pessoas comosendo os pombos e os 12 meses como as casas.

Nao estamos sos! Existem pelo menos duas pessoas no Rio de Janeiro coma mesma quantidade de fios de cabelo.

Popularidade Numa festa com varias pessoas, pelo menos duas pessoasconhecem a mesma quantidade de pessoas presentes a festa.

Graus Num grafo simples com dois ou mais vertices, pelo menos dois dessesvertices tem mesmo grau.

Combinatoria Para n = 1, 2, ... temos que

Se S ⊂ {1, 2, · · · , 2n} e |S| = n+1 ent~ao existem a, b ∈S tais que b e multiplo de a.

Page 92: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

Capıtulo 18

Coeficientes Binomiais

18.1 Arranjos, permutacoes e combinacoes

Por definicao, vamos assumir que 0! = 1.

Definicao 84 Seja S um conjunto finito com n elementos. Seja k um inteirocom 0 ≤ k ≤ n. Um arranjo de k elementos em S e por definicao umasequencia de k elementos distintos de S.

ARR 1 Seja S um conjunto finito com n elementos. Seja k um inteiro com0 ≤ k ≤ n. Se P (n, k) e o numero total de arranjos de tamanho k em Sentao

P (n, k) = n.(n− 1). · · · .(n− k + 1).

ARR 2 Seja S um conjunto finito com n elementos. Seja k um inteiro com0 ≤ k ≤ n. Se P (n, k) e o numero total de arranjos de tamanho k em Sentao

P (n, k) = n!/(n− k)!.

Definicao 85 Seja S um conjunto finito com n elementos. Uma permutacaode S e por definicao uma arranjo de n elementos em S.

ARR 3 Seja S um conjunto finito com n elementos. Se P (n) e o numerototal de permutacoes de S entao

P (n) = n!.

87

Page 93: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

88 CAPITULO 18. COEFICIENTES BINOMIAIS

Definicao 86 Seja S um conjunto finito com n elementos. Seja k um inteirocom 0 ≤ k ≤ n. Uma combinacao de k elementos em S e por definicao umsubconjunto de k elementos distintos de S.

ARR 4 Seja S um conjunto finito com n elementos. Seja k um inteiro com

0 ≤ k ≤ n. Se

(nk

)denota o numero total de combinacoes de tamanho k

em S entao (nk

)=

n!

k!(n− k)!

18.2 Coeficientes

Sejam n ∈ N e k ∈ Z.Para 0 ≤ k ≤ n, definimos os correspondentes coeficientes binomiais por(

nk

)=

n!

k!(n− k)!

Para k < 0 ou k > n, definimos os correspondentes coeficientes binomiaispor (

nk

)= 0.

BINO 1 Seja n ∈ N . Neste caso, temos que(nn

)=

(n0

)= 1.

BINO 2 Sejam n ∈ N e k ∈ Z. Neste caso, temos que(nk

)=

(n

n− k

).

18.3 Triangulo de Pascal

BINO 3 (Pascal) Sejam n ∈ N e k ∈ Z. Neste caso, temos que(nk

)=

(n− 1k − 1

)+

(n− 1k

)

Page 94: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

18.4. BINOMIO DE NEWTON 89

18.4 Binomio de Newton

BINO 4 (Newton) Sejam n ∈ N e a, b ∈ <. Neste caso, temos que

(a+ b)n =n∑k=0

(nk

)akbn−k.

18.5 Propriedades

BINO 5 Seja n ∈ N . Neste caso, temos que(2nn

)e multiplo de n+ 1.

Para isto, observe que

1

n+ 1

(2nn

)=

(2nn

)−(

2nn− 1

).

Os famosos numeros de Catalan sao definidos por

1

n+ 1

(2nn

).

BINO 6 Sejam n ∈ N , k ∈ Z e k 6= −1. Neste caso, temos que

n∑j=0

(jk

)=

(n+ 1k + 1

).

BINO 7 Seja n ∈ N . Neste caso, temos que

n∑j=0

j2 = 2

(n+ 1

3

)+

(n+ 1

2

).

BINO 8 Sejam n ∈ N e x ∈ <. Neste caso, temos que

(1 + x)n =n∑k=0

(nk

)xk.

Page 95: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

90 CAPITULO 18. COEFICIENTES BINOMIAIS

BINO 9 Seja n ∈ N . Neste caso, temos que

n∑k=0

(nk

)= 2n.

BINO 10 Seja n ∈ N . Neste caso, temos que

n∑k=0

(−1)k(nk

)= 0.

BINO 11 Seja n ∈ N . Neste caso, temos que

n∑k=0

k

(nk

)= n.2n−1.

BINO 12 Seja n ∈ N . Neste caso, temos que

d∑k=0

(nk

)≤ 1 + nd.

BINO 13 (Vandermonde) Seja n ∈ N . Neste caso, temos que

r∑k=0

(nk

)(n

r − k

)=

(m+ nr

).

BINO 14 Seja n ∈ N . Neste caso, temos que

n∑k=0

(nk

)2

=

(2nn

).

BINO 15 Para n = 2, 3, 4, ..., temos que

(1 +

1

n

)n= 2 +

n∑k=2

1

k!.(

1− 1

n

). · · · .

(1− k − 1

n

).

BINO 16 Para n = 2, 3, 4, ..., temos que

2 <(

1 +1

n

)n< 3.

Page 96: Matem atica Discreta para Computa˘c~ao vers~ao 11milidiu/inf1631/apostila.pdf · No cap tulo 12, introduzimos os conceitos e de ni˘c~oes b asicos da Teoria dos Grafos. No cap tulo

18.5. PROPRIEDADES 91

BINO 17 Para n = 2, 3, 4, ..., temos que(1 +

1

n

)n<(

1 +1

n+ 1

)n+1

.

BINO 18

limn→∞

(1 +

1

n

)n= 1 +

∞∑k=1

1

k!.

BINO 19 Para n = 2, 3, 4, ..., temos que

1− 1

n=(

1 +1

n− 1

)−1.

BINO 20

limn→∞

(1− 1

n

)n=

(1 +

∞∑k=1

1

k!

)−1.