Buscar

Apostila de Aula Prof. Ruy Milidiu

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Matema´tica Discreta
para Computac¸a˜o
versa˜o 11.0
Ruy Luiz Milidiu´
12 de agosto de 2013
Suma´rio
1 Introduc¸a˜o 1
1.1 Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Noc¸o˜es Elementares 7
2.1 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Relac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Func¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Argumentac¸a˜o 9
3.1 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 A´lgebra Booleana . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Axiomas . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Propriedades . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3 Dualidade . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Implicac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Definic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Ordenac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Racioc´ınio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.1 Equac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.2 Deduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Induc¸a˜o Fraca 21
4.1 Os Naturais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 O Princ´ıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.1 Somas . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
i
ii SUMA´RIO
4.3.2 Divisibilidade Exata . . . . . . . . . . . . . . . . . . . 22
4.3.3 Combinato´ria . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Exerc´ıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5 Induc¸a˜o Forte 25
5.1 O Princ´ıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Induc¸a˜o Estrutural 27
6.1 Sequencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 O Princ´ıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3 Nu´meros de Fibonacci . . . . . . . . . . . . . . . . . . . . . . 28
6.4 Sequencias de Pareˆnteses . . . . . . . . . . . . . . . . . . . . . 30
7 A´rvores e Florestas Livres 35
7.1 A´rvores Livres . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 Representac¸a˜o Sequencial . . . . . . . . . . . . . . . . . . . . 37
7.3 Florestas Livres . . . . . . . . . . . . . . . . . . . . . . . . . . 38
8 A´rvores Bina´rias 39
8.1 A´rvores Bina´rias Estendidas . . . . . . . . . . . . . . . . . . . 39
8.2 A´rvores Estritamente Bina´rias . . . . . . . . . . . . . . . . . . 41
8.3 A´rvores Bina´rias Cheias . . . . . . . . . . . . . . . . . . . . . 42
8.4 A´rvores Bina´rias Balanceadas por Altura . . . . . . . . . . . . 42
8.5 A´rvores de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . 43
8.6 A´rvores Bina´rias Posicionais . . . . . . . . . . . . . . . . . . . 44
9 Florestas de Unia˜o e Busca 45
10 O Algoritmo de Euclides 49
10.1 Ma´ximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . 49
10.2 O Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.3 Corretude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.4 Eficieˆncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11 O Teorema de Stone 53
11.1 A´tomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.2 Decomposic¸a˜o Estrutural . . . . . . . . . . . . . . . . . . . . . 54
SUMA´RIO iii
12 Grafos 55
12.1 Conceitos Ba´sicos . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.1.1 Ve´rtices . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.1.2 Arestas . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12.1.3 Incideˆncia . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.2 Grafos e Subgrafos . . . . . . . . . . . . . . . . . . . . . . . . 56
13 Grafos Simples 59
13.1 Representac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
13.2 Grafos Derivados . . . . . . . . . . . . . . . . . . . . . . . . . 61
13.3 Passeios, Trilhas e Caminhos . . . . . . . . . . . . . . . . . . . 61
13.4 Circuitos e Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . 63
13.5 Esparsidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
13.6 A´rvores Livres e Geradoras . . . . . . . . . . . . . . . . . . . . 63
13.7 Componentes Conexos . . . . . . . . . . . . . . . . . . . . . . 63
13.8 Grafos Bipartidos . . . . . . . . . . . . . . . . . . . . . . . . . 65
13.9 Articulac¸o˜es e Pontes . . . . . . . . . . . . . . . . . . . . . . . 65
13.10Componentes Biconexos . . . . . . . . . . . . . . . . . . . . . 66
14 Grafos Dirigidos 69
14.1 Representac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
14.2 Grafos Derivados . . . . . . . . . . . . . . . . . . . . . . . . . 70
14.3 Passeios, Trilhas e Caminhos . . . . . . . . . . . . . . . . . . . 70
14.4 Circuitos e Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . 71
14.5 Grafos Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . 71
14.6 Grafos Ac´ıclicos . . . . . . . . . . . . . . . . . . . . . . . . . . 71
14.7 Ordenac¸a˜o Topolo´gica . . . . . . . . . . . . . . . . . . . . . . 72
14.8 Componentes Fortemente Conexos . . . . . . . . . . . . . . . 72
15 Otimizac¸a˜o em Grafos 73
15.1 Pareamentos Ma´ximos . . . . . . . . . . . . . . . . . . . . . . 73
15.2 Pareamentos Perfeitos . . . . . . . . . . . . . . . . . . . . . . 74
15.3 A´rvores Geradoras Mı´nimas . . . . . . . . . . . . . . . . . . . 75
15.3.1 Gerac¸a˜o de Arestas Candidatas . . . . . . . . . . . . . 76
15.3.2 Integrac¸a˜o de Arestas Candidatas . . . . . . . . . . . . 76
15.3.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 76
15.4 A´rvores de Huffman . . . . . . . . . . . . . . . . . . . . . . . . 77
15.5 A´rvores de Busca Ponderadas Mı´nimas . . . . . . . . . . . . . 77
iv SUMA´RIO
16 Princ´ıpios Ba´sicos de Contagem 79
16.1 Adic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
16.2 Multiplicac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17 O Princ´ıpio do Pombal 81
17.1 O Princ´ıpio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
17.2 Aplicac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
18 Coeficientes Binomiais 83
18.1 Arranjos, permutac¸o˜es e combinac¸o˜es . . . . . . . . . . . . . . 83
18.2 Coeficientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
18.3 Triaˆngulo de Pascal . . . . . . . . . . . . . . . . . . . . . . . . 84
18.4 Binoˆmio de Newton . . . . . . . . . . . . . . . . . . . . . . . . 85
18.5 Propriedades . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Cap´ıtulo 1
Introduc¸a˜o
1.1 Computadores
Os computadores esta˜o por toda parte. Sua versatilidade e´ fabulosa. Esta˜o
presentes no acionamento dos despertadores que tocam diariamente, no con-
trole das agendas de atividades, na apurac¸a˜o de saldos banca´rios, e no geren-
ciamento do tra´fego e das comunicac¸o˜es. Estas sa˜o apenas algumas de suas
inu´meras aplicac¸o˜es. Algumas delas, como a Internet e a World Wide Web,
revolucionam o nosso dia-a-dia.
A universalidade da computac¸a˜o repousa em princ´ıpios simples originados
na Lo´gica e na Matema´tica.
Os computadores sa˜o um artefato que mecaniza o racioc´ınio lo´gico com-
binado com operac¸o˜es matema´ticas. Esta concepc¸a˜o ta˜o abstrata permite
aplicar os computadores aos mais variados processos, da mesma forma que
os nu´meros inteiros sa˜o utilizados para equacionarmos os mais variadostipos
de grandezas de nosso interesse.
1.2 Programas
Os computadores sa˜o versa´teis porque atrave´s da programac¸a˜o adaptamos
seu uso para diferentes tarefas. E´ com os programas que tornarmos uma
ma´quina de uso gene´rico num artefato especializado para cada tarefa de
nosso interesse.
O exemplo cla´ssico utilizado na apresentac¸a˜o de qualquer linguagem de
programac¸a˜o e´ o popular Hello World!. O exemplo a seguir tem o mesmo
1
2 CAPI´TULO 1. INTRODUC¸A˜O
tipo de simplicidade, sendo utilizado para ilustrar as te´cnicas de prova de
corretude. Observe que ele inclue um loop de repetic¸a˜o!
Exemplo 1 (Soma de P.A.) O programa somaPA determina o valor da
soma dos n primeiros nu´meros 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 + i
6. }
7. return (somaParcial)
8. }
Os artefatos computacionais de boa qualidade devem executar correta-
mente as tarefas para as quais foram projetados. Ale´m disso, como todo
bem de natureza econoˆmica, devem ser parcimoniosos no consumo de recur-
sos humanos e materiais.
Para demonstrar a corretude do programa somaPA, vamos monitorar os
valores assumidos pela varia´vel somaParcial.
Na linha 3, somaParcial tem seu valor inicializado como 0. Assim, pode-
mos garantir esse valor nesse ponto do programa. Apo´s a linha 5, afirmamos
que o valor de somaParcial e´ 1 + 2 + ...+ i. Esta e´ uma afirmativa gene´rica,
que estamos fazendo para cada iterac¸a˜o do valor i no loop. Finalmente, ao
sair do loop, afirmamos que o valor de somaParcial e´ 1 + 2 + ...+ n.
Acrescentemos estas observac¸o˜es como comenta´rios 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. }
1.2. PROGRAMAS 3
// neste ponto, somaParcial vale 1+2+...+n
7. return (somaParcial)
8. }
Das treˆs afirmac¸o˜es anteriores, a segunda, por ser gene´rica, e´ a mais dif´ıcil
de ser demonstrada. Para demonstrar essa afirmativa vamos definir uma se-
quencia de valores s0, s1, s2, · · · , sn como sendo os n+1 valores sucessivamente
assumidos pela varia´vel somaParcial. Como ilustrac¸a˜o, computamos os oito
primeiros valores obtendo
0, 1, 3, 6, 10, 15, 21, 28, · · · .
A afirmativa gene´rica 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 que
si = si−1 + i.
Assim, e´ fa´cil verificar que
s1 = s0 + 1 = 1.
Portanto, a afirmativa e´ va´lida na primeira passagem do loop. Se a afirmativa
e´ va´lida na iterac¸a˜o anterior, enta˜o na iterac¸a˜o atual temos que
si = si−1 + i = [1 + 2 + ...+ (i− 1)] + i,
donde
si = 1 + 2 + ...+ i
isto e´, a afirmativa tambe´m e´ va´lida na iterac¸a˜o atual.
Com a estrate´gia de argumentac¸a˜o apresentada, garantimos a corretude
de somaPA sem a necessidade de efetuar qualquer tipo de teste com entradas
para nosso programa.
4 CAPI´TULO 1. INTRODUC¸A˜O
1.3 Enfoque
O objetivo central deste texto e´ apresentar os fundamentos matema´ticos da
computac¸a˜o de forma intuitiva, sucinta e precisa.
Nossa eˆnfase e´ na apresentac¸a˜o das te´cnicas elementares de argumentac¸a˜o,
aplicadas as estruturas ba´sicas da computac¸a˜o. Assim, examinamos as questo˜es
de corretude, essenciais na construc¸a˜o de artefatos computationais de boa
qualidade. Nos cap´ıtulos 3 a 15, tratamos deste tema.
Adicionalmente, apresentamos as te´cnicas elementares de contagem, es-
senciais na ana´lise da eficieˆncia dos artefatos propostos. Os cap´ıtulos 17 a
18 constituem a segunda parte deste texto, cobrindo este tema.
No cap´ıtulo 2, apresentamos as noc¸o˜es elementares de conjuntos e suas
operac¸o˜es, relac¸o˜es e func¸o˜es.
No cap´ıtulo 3, apresentamos os fundamentos da Argumentac¸a˜o. Para
isso, introduzimos as a´lgebras Booleanas. Este formalismo permite explorar
as propriedades dos bits lo´gicos.
No cap´ıtulo 4, apresentamos o Princ´ıpio da Induc¸a˜o Matema´tica Fraca.
Com este princ´ıpio exploramos inicialmente as propriedades dos nu´meros
naturais.
No cap´ıtulo 5, apresentamos o Princ´ıpio da Induc¸a˜o Matema´tica Forte.
No cap´ıtulo 6, apresentamos o Princ´ıpio da Induc¸a˜o Estrutural. Para
ilustrar o uso deste princ´ıpio, examinamos os nu´meros de Fibonacci e as
Sequencias Bem Formadas de Pareˆnteses.
No cap´ıtulo 7, aplicamos a Induc¸a˜o Estrutural para demonstrar diversas
propriedades das a´rvores e florestas livres.
No cap´ıtulo 8, aplicamos a Induc¸a˜o Estrutural para demonstrar diversas
propriedades das A´rvores Bina´rias.
No cap´ıtulo 9, aplicamos a Induc¸a˜o Estrutural para demonstrar diversas
propriedades das Florestas de Unia˜o e Busca.
No cap´ıtulo 10, aplicamos a Induc¸a˜o Estrutural para demonstrar a cor-
retude e analisar a eficieˆncia do Algoritmo de Euclides.
No cap´ıtulo 11, aplicamos a Induc¸a˜o Estrutural para demonstrar a cor-
retude do Teorema de Stone.
No cap´ıtulo 12, introduzimos os conceitos e definic¸o˜es ba´sicos da Teoria
dos Grafos.
No cap´ıtulo 13, examinamos as propriedades elementares de conectividade
em Grafos Simples.
1.3. ENFOQUE 5
No cap´ıtulo 14, examinamos as propriedades elementares de conectividade
em Grafos Dirigidos.
No cap´ıtulo 15, apresentamos alguns problemas cla´ssicos em Otimizac¸a˜o
Combinato´ria.
No cap´ıtulo 17, introduzimos e ilustramos o Princ´ıpio do Pombal.
No cap´ıtulo 18, apresentamos os coeficientes binomiais e suas principais
propriedades.
6 CAPI´TULO 1. INTRODUC¸A˜O
Cap´ıtulo 2
Noc¸o˜es Elementares
2.1 Conjuntos
2.2 Relac¸o˜es
2.3 Func¸o˜es
7
8 CAPI´TULO 2. NOC¸O˜ES ELEMENTARES
Cap´ıtulo 3
Argumentac¸a˜o
Uma argumentac¸a˜o rigorosa esta´ fundamentada nos so´lidos princ´ıpios da
Lo´gica.
Um dos objetivos centrais da argumentac¸a˜o e´ estabelecer se uma deter-
minada afirmac¸a˜o e´ verdadeira ou falsa.
Esta dicotomia entre o verdadeiro e o falso pode ser representada de forma
bina´ria:
1. - o valor 1 representa verdadeiro;
2. - o valor 0 representa falso.
Usualmente, iniciamos com algumas proposic¸o˜es para as quais sabemos
seus valores-verdade. A partir das inter-relac¸o˜es entre essas proposic¸o˜es de-
terminamos os valores-verdade de novas proposic¸o˜es de interesse. Argumen-
tando desta forma, estabelecemos se as novas proposic¸o˜es sa˜o verdadeiras ou
falsas.
A a´lgebra Booleana e´ uma maneira elegante e concisa de representarmos
os conceitos e operac¸o˜es dos referidos processos de argumentac¸a˜o.
Neste cap´ıtulo, apresentamos dois fundamentos matema´ticos: o ca´lculo
proposicional e a a´lgebra de conjuntos. Para isto, utilizamos os bits.
3.1 Bits
O bit e´ a unidade de informac¸a˜o. Sua primeira aplicac¸a˜o e´ para representar
os valores-verdade utilizados em expresso˜es lo´gicas que controlam o fluxo
9
10 CAPI´TULO 3. ARGUMENTAC¸A˜O
das operac¸o˜es em nossos programas. Uma outra aplicac¸a˜o fundamental e´ a
representac¸a˜o de conjuntos atrave´s de vetores de bits.
Por exemplo, considere os seguintes conjuntos de pessoas:
A = {Guilherme, Paula, Pedro}
e
B = {Eraldo, Carlos,Guilherme,Benjamim}.
Associemos os elementos
Guilherme, Paula, Eraldo, Pedro, Carlos e Benjamim
as posic¸o˜es 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 posic¸a˜o k indica que o k−e´simo elemento pertence ao
correspondente conjunto.
3.2 A´lgebra Booleana
3.2.1 Axiomas
Uma a´lgebra Booleana (B, +, .,−) e´ uma estrutura alge´brica constituida por
quatro elementos, a saber:
B um conjunto finito;+ uma operac¸a˜o bina´ria de B ×B → B;
. uma operac¸a˜o bina´ria de B ×B → B;
− uma operac¸a˜o una´ria de B → B.
Ale´m disso, temos a seguinte ordem de precedeˆncia entre parentesis e
operac¸o˜es: ( ), −, ., +
Nesta estrutura alge´brica, valem quatro grupos de axiomas descritos a
seguir.
Para todo x, y, z ∈ B temos:
3.2. A´LGEBRA 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 (Lo´gica Booleana) Consideremos o caso em que B = {0, 1}
e as treˆs operac¸o˜es sa˜o definidas pelas tabelas a seguir.
+ 0 1 . 0 1 x x
0 0 1 0 0 0 0 1
1 1 1 1 0 1 1 0
Exemplo 3 Consideremos o caso em que B = {F, T} e as treˆs operac¸o˜es
sa˜o definidas pelas tabelas a seguir.
+ F T . F T x x
F F T F F F F T
T T T T F T T F
Exemplo 4 Consideremos o caso em que B = {a, b} e as treˆs operac¸o˜es sa˜o
definidas pelas tabelas a seguir.
+ a b . a b x x
a a b a a a a b
b b b b a b b a
12 CAPI´TULO 3. ARGUMENTAC¸A˜O
Exemplo 5 (Vetores de Bits) Consideremos o caso em que B = {00, 01, 10, 11}
e as treˆs operac¸o˜es sa˜o definidas pelas tabelas a seguir.
+ 00 01 10 11 . 00 01 10 11 x x
00 00 01 10 11 00 00 00 00 00 00 11
01 01 01 11 11 01 00 01 00 01 01 10
10 10 11 10 11 10 00 00 10 10 10 01
11 11 11 11 11 11 00 01 10 11 11 00
Exemplo 6 (a´lgebra de Conjuntos) Consideremos o caso em que B =
{X|X ⊆ U} e as treˆs operac¸o˜es sa˜o definidas como
X + Y = X
⋃
Y X.Y = X
⋂
Y X = U −X.
Exemplo 7 (Divisores de 30) Seja B o conjunto dos divisores de 30, isto
e´, B = {1, 2, 3, 5, 6, 10, 15, 30} Para x, y ∈ B as treˆs operac¸o˜es sa˜o definidas
como
x+ y = mmc(x, y) x.y = mdc(x, y) x = 30/x.
Exerc´ıcio 1 Mostre que as estruturas definidas nos exemplos 2 a 7 sa˜o
a´lgebras Booleanas.
3.2.2 Propriedades
Seja (B, +, .,−) uma a´lgebra Booleana. A seguir, enumeramos uma se´rie de
propriedades va´lidas nesta estrutura.
AB 1 (Unicidade dos Neutros) O neutro aditivo e´ u´nico. O neutro mul-
tiplicativo e´ u´nico.
AB 2 (Idempoteˆncia)
x = x.x x = x+ x
AB 3 (Unicidade do Complemento) Se x+y = 1 e x.y = 0 enta˜o y = x.
AB 4 (Involuc¸a˜o)
x = x
3.2. A´LGEBRA BOOLEANA 13
AB 5
0 = 1 1 = 0
AB 6 (Dominac¸a˜o)
x.0 = 0 x+ 1 = 1
AB 7 (Absorc¸a˜o)
x+ x.y = x x.(x+ y) = x
AB 8 (Absorc¸a˜o Generalizada)
x.(y + (x+ z)) = x x+ (y.(x.z)) = x
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 enta˜o |B| = 1.
Exerc´ıcio 4 Mostre que se existe um elemento b ∈ B tal que b¯ = b enta˜o
|B| = 1.
Exerc´ıcio 5 Mostre que |B| 6= 3.
Exerc´ıcio 6 Mostre que se |B| > 1 enta˜o |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.
14 CAPI´TULO 3. ARGUMENTAC¸A˜O
3.2.3 Dualidade
Os axiomas que definem uma a´lgebra Booleana foram apresentados aos pares.
Uma consequencia disso e´ que as propriedades decorrentes tambe´m ocorrem
aos pares.
Nesta sec¸a˜o, vamos introduzir o conceito de dualidade que sistematiza
essas observac¸o˜es.
Definic¸a˜o 1 (Expressa˜o Dual) Seja F (x1, · · · , xn) uma expressa˜o boole-
ana nas variaveis x1, · · · , xn. Definimos FD como a expressa˜o dual de F
atrave´s da seguinte relac¸a˜o
FD(x1, · · · , xn) = F (x1, · · · , xn)
Exemplo 8 Seja F (x, y, z) = (x+ y).z.
Neste caso, temos que a expressa˜o dual FD e´ dada por
FD(x, y, z) = (x+ y).z (definic¸a˜o de dual)
= (x+ y) + z (de Morgan)
= (x.y) + z (de Morgan)
= (x.y) + z (involuc¸a˜o)
As seguintes propriedades da dualidade sa˜o 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).ED2 (x1, · · · , xn)
3.2. A´LGEBRA BOOLEANA 15
DUAL 9 (E1(x1, · · · , xn).E2(x1, · · · , xn))D = ED1 (x1, · · · , xn)+ED2 (x1, · · · , xn)
DUAL 10 Se para todo x1, · · · , xn ∈ B temos que E1(x1, · · · , xn) = E2(x1, · · · , xn)
enta˜o para todo x1, · · · , xn ∈ B temos tambe´m que ED1 (x1, · · · , xn) = ED2 (x1, · · · , xn).
Agora, podemos revisitar o exemplo 8 com o aux´ılio das propriedades da
dualidade.
Exemplo 9 Seja F (x, y, z) = (x+ y).z.
Utilizando a dualidade, obtemos a expressa˜o 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.
Como consequencia da dualidade, podemos formular a seguinte regra
pra´tica.
REGRA 1 (Dualizac¸a˜o) Para determinar a expressa˜o dual, substitua
+ por . . por +
0 por 1 1 por 0
e a expressa˜o resultante e´ a dual.
Exemplo 10 Seja F (x, y, z) = (x+ y).z.
Pela regra de dualizac¸a˜o, obtemos a expressa˜o dual FD como
FD(x, y, z) = ((x + y) . z)D
= (x . y) + z
Exerc´ıcio 8 Determine a expressa˜o 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.
16 CAPI´TULO 3. ARGUMENTAC¸A˜O
3.3 Implicac¸a˜o
3.3.1 Definic¸a˜o
A partir das operac¸o˜es ba´sicas de uma a´lgebra booleana podemos definir
operac¸o˜es auxiliares. Estas operac¸o˜es reunem combinac¸o˜es interessantes e
convenientes dos operadores ba´sicos. Por sua alta frequencia de uso, recebem
um novo s´ımbolo especial que as identifica.
A mais importante delas e´ a implicac¸a˜o, que definimos a seguir. O seu
s´ımbolo e´ a seta para a direita mostrada abaixo
→
Definic¸a˜o 2 (Implicac¸a˜o) Numa a´lgebra booleana, definimos a operac¸a˜o
bina´ria a→ b por
a→ b = a+ b
IMPL 1 (Contraposic¸a˜o)
a→ b = b→ a
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 treˆs propriedades da implicac¸a˜o.
3.3.2 Ordenac¸a˜o
Numa a´lgebra booleana, uma relac¸a˜o 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
3.4. RACIOCI´NIO 17
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-sime´trica se a ≤ b e b ≤ a enta˜o a = b
transitiva se a ≤ b e b ≤ c enta˜o a ≤ c
OBL 5 a.b ≤ a ≤ a+ b
OBL 6 a ≤ b se e somente se b ≤ a
OBL 7 se a ≤ b enta˜o a+ c ≤ b+ c.
OBL 8 se a ≤ b enta˜o c.a ≤ c.b.
OBL 9 se a ≤ b e c ≤ d enta˜o a+ c ≤ b+ d.
OBL 10 se a ≤ b e c ≤ d enta˜o 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 ordenac¸a˜o
booleana.
3.4 Racioc´ınio
As a´lgebras Booleanas traduzem num formato alge´brico diferentes concei-
tos estruturais. Dentre eles destacamos aqueles necessa´rios a uma boa ar-
gumentac¸a˜o, bem como os envolvidos no tratamento de conjuntos e seus
elementos.
18 CAPI´TULO 3. ARGUMENTAC¸A˜O
3.4.1 Equac¸o˜es
A partir de expresso˜es envolvendo variaveis e operadores de uma a´lgebra
Booleana podemos estabelecer interessantes equac¸o˜es. Estas sa˜o as chamadas
equac¸o˜es booleanas.
A seguir, examinamos algumas equac¸o˜es extremamente simples apresen-
tando suas respectivas soluc¸o˜es.
EQN 1 x+ y = 0
Neste caso,
x+ y = 0
(x+ y).x = 0.x
(x+ y).x = 0
x = 0
Pela comutatividade da adic¸a˜o segue que
y = 0
Exerc´ıcio 13 Resolva a equac¸a˜o x + y = 0 utilizandoas propriedades da
ordem parcial ≤ definida na a´lgebra Booleana.
EQN 2 x.y = 1
Neste caso,
x.y = 1
(x.y) + x = 1 + x
(x.y) + x = 1
x = 1
Pela comutatividade da adic¸a˜o segue que
y = 1
Exerc´ıcio 14 Resolva a equac¸a˜o x.y = 1 utilizando as propriedades da or-
dem parcial ≤ definida na a´lgebra Booleana.
3.4. RACIOCI´NIO 19
Como para os neutros temos obviamente que 0 + 0 = 0 e 1 + 1 = 1,
podemos concluir enta˜o que
x+ y = 0⇔ x = 0 , y = 0
e
x.y = 1⇔ x = 1 , y = 1
Uma consequencia imediata do resultado anterior e´ que um sistema de
equac¸o˜es booleanas do tipo
expression1 = 1
expression2 = 1
...
expressionn = 1
e´ equivalente a uma u´nica equac¸a˜o dada por
expression1.expression2. · · · .expressionn = 1
Exemplo 11 O sistema de equac¸o˜es booleanas dado por
(x+ y).(z + w) = 1
w + y = 1
z.y = 1
equivale a
[(x+ y).(z + w)].(w + y).(z.y) = 1
3.4.2 Deduc¸a˜o
Aqui vamos mostrar como diversas regras de deduc¸a˜o podem ser obtidas via
a manipulac¸a˜o alge´brica de alguns sistemas simples de relac¸o˜es booleanas.
RD 1 (Modus Ponens) Para o sistema de relac¸o˜es booleanas{
x = 1
x ≤ y
temos que y = 1.
20 CAPI´TULO 3. ARGUMENTAC¸A˜O
RD 2 (Silogismo Hipote´tico) Para o sistema de relac¸o˜es booleanas{
x ≤ y
y ≤ z
temos que x ≤ z.
RD 3 Para o sistema de relac¸o˜es booleanas
x1 ≤ x2
x2 ≤ x3
...
xn−1 ≤ xn
temos que x1 ≤ xn.
RD 4 (Contraposic¸a˜o) y ≤ x se e so´ se x ≤ y
RD 5 (Modus Tolens) Para o sistema de relac¸o˜es booleanas{
x = 1
y ≤ x
temos que y = 1.
RD 6 (Reduc¸a˜o a Casos) Para o sistema de relac¸o˜es booleanas{
c ≤ x
c ≤ x
temos que x = 1.
RD 7 (Resoluc¸a˜o) Para o sistema de relac¸o˜es booleanas{
c ≤ x
c ≤ y
temos que x+ y = 1.
RD 8 (Reduc¸a˜o ao Absurdo) x.y ≤ 0 se e so´ se x ≤ y
Exerc´ıcio 15 Demonstre a validade das oito regras de deduc¸a˜o apresenta-
das.
Cap´ıtulo 4
Induc¸a˜o Fraca
4.1 Os Naturais
4.2 O Princ´ıpio
Para o sistema de relac¸o˜es booleanas
x1 = 1
x1 ≤ x2
x2 ≤ x3
...
xn−1 ≤ xn
...
temos que xn = 1 para n = 1, 2, ....
Reformulando, se pudermos mostrar que{
x1 = 1 (passo ba´sico)
xn ≤ xn+1 para n = 1, 2, · · · (passo indutivo)
enta˜o temos que
xn = 1 para n = 1, 2, · · ·
Assim, basta mostrar a validade do passo ba´sico e do passo indutivo.
Como consequeˆncia temos xn = 1 para n = 1, 2, · · ·.
21
22 CAPI´TULO 4. INDUC¸A˜O FRACA
4.3 Exemplos
4.3.1 Somas
Exemplo 12 (Soma de Inteiros) Para n = 1, 2, ... temos que
n∑
i=1
i = n.(n+ 1)/2
Exemplo 13 (Soma de ı´mpares) Para n = 1, 2, ... temos que
n∑
i=1
(2.i− 1) = n2
Exemplo 14 (Soma de Quadrados) Para n = 1, 2, ... temos que
n∑
i=1
i2 = n.(n+ 1).(2n+ 1)/6
Exemplo 15 Para n = 1, 2, ... temos que
n∑
i=1
i.(i+ 1) = n.(n+ 1).(n+ 2)/3
Exemplo 16 (Soma de Cubos) Para n = 1, 2, ... temos que
n∑
i=1
i3 = n2.(n+ 1)2/4
Exemplo 17 (Soma da P.G.) Para n = 1, 2, ... temos que
n∑
i=0
2i = 2n+1 − 1
4.3.2 Divisibilidade Exata
Definic¸a˜o 3 (Mu´ltiplo) Sejam a e b dois inteiros. Dizemos que a e´ mu´ltiplo
de b quando existe um inteiro c tal que
a = c.b .
4.3. EXEMPLOS 23
Exemplo 18 Para n = 1, 2, ... temos que
n.(n+ 1) e´ mu´ltiplo de 2.
Exemplo 19 Para n = 1, 2, ... temos que
n.(n+ 1).(n+ 2) e´ mu´ltiplo de 3.
Exemplo 20 Seja k um inteiro maior que 1. Para n = 1, 2, ... temos que
n.(n+ 1). · · · .(n+ k − 1) e´ mu´ltiplo de k.
Exemplo 21 Para n = 1, 2, ... temos que
n3 − n e´ mu´ltiplo de 3.
Exemplo 22 Seja b um natural fixo. Para n = 1, 2, ... temos que
bn − 1 e´ mu´ltiplo de b− 1.
Exemplo 23 Seja b um natural fixo. Para n = 1, 2, ... temos que
bn − 1 = (b− 1).
n−1∑
i=0
bi.
Exemplo 24 Para n = 0, 1, ... temos que
10n − 1 e´ mu´ltiplo de 9.
Exemplo 25 Para n = 0, 1, ... temos que
11n+2 + 122n+1 e´ mu´ltiplo de 133.
Exemplo 26 Para n = 0, 1, ... temos que
5n+1 + 2.3n + 1 e´ mu´ltiplo de 8.
24 CAPI´TULO 4. INDUC¸A˜O FRACA
4.3.3 Combinato´ria
Exemplo 27 (Cobertura com Triomino´s) Considere um tabuleiro T com
2n× 2n casas. Um triomino´ e´ um conjunto de treˆs casas adjacentes no tabu-
leiro, no formato de um L. Uma cobertura de T por triomino´s e´ um conjunto
de triomino´s com as seguintes propriedades:
1. os triomino´s sa˜o disjuntos dois a dois;
2. apenas uma u´nica casa de T na˜o pertence a algum dos triomino´s.
Seja c ∈ T . Mostre que existe uma cobertura de T por triomino´s cuja
casa na˜o coberta e´ exatamente a casa c.
Exemplo 28 (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 29 (Combinato´ria) 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´ mu´ltiplo de a.
4.4 Exerc´ıcios
Para cada um dos exerc´ıcios a seguir, demonstre por induc¸a˜o fraca a validade
da 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
Cap´ıtulo 5
Induc¸a˜o Forte
5.1 O Princ´ıpio
Para o sistema de relac¸o˜es booleanas
x1 = 1
x1 ≤ x2
x1.x2 ≤ x3
...
x1.x2. · · · .xn−1 ≤ xn
...
temos que xn = 1 para n = 1, 2, ....
5.2 Exemplos
Exemplo 30 (Selos Postais) Para cada inteiro n ≥ 12 temos que existem
a e b tais que
n = a.4 + b.5 .
Exemplo 31 Uma barra retangular de chocolate e´ constituida por n qua-
drados de igual dimensa˜o. Vamos quebrar a barra de chocolate, ao longo
das linhas que delimitam os quadrados, ate´ separarmos a barra em seus n
quadrados. Para n = 1,2,3,... temos que o nu´mero necessa´rio de quebras e´
sempre n-1.
25
26 CAPI´TULO 5. INDUC¸A˜O FORTE
Exemplo 32 (Divisa˜o por 3) Para cada natural n considere a sua repre-
sentac¸a˜o 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 que
n e´ mu´ltiplo de 3 se e so´ se dk + . . .+ d0 e´ mu´ltiplo de 3.
Exemplo 33 (Teorema Fundamental da Aritme´tica) Para cada inteiro
n ≥ 2 temos que existem k primos p1, p2, · · · , pk tais que
n = p1.p2. · · · .pk .
Cap´ıtulo 6
Induc¸a˜o Estrutural
Ate´ aqui, trabalhamos apenas com treˆs tipos elementares de dados, a saber:
bits com as operac¸o˜es lo´gicas de e, ou e na˜o;
conjuntos com as operac¸o˜es de intersec¸a˜o, unia˜o e complemento; e,
naturais com as operac¸o˜es de soma, subtrac¸a˜o, mutiplicac¸a˜o e divisa˜o.
Agora, vamos criar tipos especiais, mais interessantes para nossas aplicac¸o˜es.
Os novos tipos sa˜o criados a partir de combinac¸o˜es dos tipos elementares.
Dentre eles, examinaremos os seguintes: sequencias, expresso˜es bem forma-
das, a´rvores e grafos.
Com estes tipos vamos ilustrar o uso da induc¸a˜o estrutural.
6.1 Sequencias
Exemplo 34 (Nu´meros Primos) Considere a sequencia de nu´meros na-
turais
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, . . . .
Enfatizemos os nu´meros que so´ tem divisores triviais, isto e´, apenas o
pro´prio nu´mero e 1 sa˜o os seus divisores. Assim, temos
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, . . . .
Eliminando os na˜o enfatizados, obtemos a sequencia de interesse
2, 3, 5, 7, 11, 13, . . . .
27
28 CAPI´TULO 6. INDUC¸A˜O ESTRUTURAL
Esta e´ a sequencia dos nu´meros primos.
Os nu´meros primos tem propriedades muito poderosas, exaustivamente
estudadas por alguns dos mais brilhantes matema´ticos. Algumas delas sa˜o a
base para a elaborac¸a˜o do conhecido Sistema RSA de criptografia por chaves-
pu´blicas.
Na sec¸a˜o 6.3, vamos examinar um caso especial: os nu´meros de Fibonacci.
Este e´ o caso mais simples onde usamos a Induc¸a˜o Estrutural para demonstrar
diversas propriedades dacorrespondente sequencia.
6.2 O Princ´ıpio
6.3 Nu´meros de Fibonacci
Seja R um retaˆngulo com lados de tamanho a e a + 1, onde 1 < a < 2. e´
claro que este retaˆngulo conte´m um quadrado Q de lado a. Se retirarmos Q
de R, sobra um retaˆngulo menor R′. O lado menor de R′ mede 1 e o maior
mede a.
Vamos escolher o valor de a de tal forma que os retaˆngulos R e R′ sejam
semelhantes. Para isto, devemos ter
a+ 1
a
=
a
1
.
Consequentemente,
a+ 1 = a2
a2 − a− 1 = 0.
As ra´ızes dessa equac¸a˜o sa˜o 1+
√
5
2
e 1−
√
5
2
. Como a > 1, segue-se enta˜o
que a = 1+
√
5
2
≈ 1.618.
A raza˜o entre os lados maiores de R e R′ e´ igual a a. Portanto, quando
escolhemos a = 1+
√
5
2
, obtemos a chamada raza˜o a´urea, cujo valor e´ aproxi-
madamente igual a
1.6180339887.
Exerc´ıcio 17 A partir de uma busca na web para a expressa˜o golden ratio,
identifique quatro manifestac¸o˜es naturais e este´ticas apresentadas para a
raza˜o a´urea.
6.3. NU´MEROS DE FIBONACCI 29
Definic¸a˜o 4 A sequencia de nu´meros de Fibonacci e´ definida recursivamente
por {
f0 = 0 f1 = 1 (caso base)
fn = fn−1 + fn−2 para n = 2, 3, · · · (relac¸a˜o estrutural)
Observe as similaridades e diferenc¸as com a definic¸a˜o recursiva dos nu´meros
naturais apresentada abaixo.
Definic¸a˜o 5 A sequencia dos nu´meros naturais e´ definida recursivamente
por {
a0 = 0 (caso base)
an = an−1 + 1 para n = 1, 2, · · · (relac¸a˜o estrutural)
A seguir, enumeramos diversas propriedades dos nu´meros de Fibonacci.
Todas elas podem ser facilmente demonstradas utilizando induc¸a˜o 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
30 CAPI´TULO 6. INDUC¸A˜O ESTRUTURAL
FIBO 6 Para n = 1, 2, · · · temos que
2n∑
i=0
(−1)i.fi = f2n−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
2
2n
FIBO 9 Para n = 0, 1, · · · temos que
fn =
1√
5
[φn − (1− φ)n]
onde φ = 1+
√
5
2
.
6.4 Sequencias de Pareˆnteses
Em expresso˜es aritme´ticas, usamos pareˆnteses para indicar a ordem de pre-
cedeˆncia entre as diversas operac¸o˜es. A expressa˜o
((5 + 7).(4− 1))/(14− (3.4)),
cujo resultado e´ 18, ilustra claramente esse uso dos pareˆnteses. Eliminando
os pareˆnteses, obtemos a expressa˜o
5 + 7.4− 1/14− 3.4,
cujo resultado e´ 293/14, evidentemente diferente de 18.
Usamos tambe´m pareˆnteses para indicar a decomposic¸a˜o de uma frase
nas suas orac¸o˜es. Na maioria dessas aplicac¸o˜es, os pareˆnteses formam uma
estrutura aninhada.
O tamanho de uma sequencia S = s1s2 · · · sk e´ k. Usamos |S| para denotar
o tamanho de S.
6.4. SEQUENCIAS DE PAREˆNTESES 31
Definic¸a˜o 6 (Concatenac¸a˜o) Sejam S = s1s2 · · · sk e T = t1t2 · · · tl duas
sequencias quaisquer de s´ımbolos abre-pareˆnteses e fecha-pareˆnteses. Defini-
mos a concatenac¸a˜o ST de S e T por
ST = s1s2 · · · skt1t2 · · · tl.
Definic¸a˜o 7 Uma Sequencia Bem Formada de Pareˆnteses (SBFP) S e´ de-
finida recursivamente por
S = ( ) (caso base)
S = AB A e B sa˜o SBFP (relac¸a˜o estrutural)
S = (A) A e´ SBFP (relac¸a˜o estrutural)
A seguir, enumeramos diversas propriedades das SBFP. Todas elas podem
ser facilmente demonstradas utilizando induc¸a˜o estrutural.
SBFP 1 Toda sequencia bem formada de pareˆnteses tem como primeiro
s´ımbolo um abre-pareˆnteses.
SBFP 2 Toda sequencia bem formada de pareˆnteses tem como u´ltimo s´ımbolo
um fecha-pareˆnteses.
SBFP 3 Toda sequencia bem formada de pareˆnteses e´ constituida por um
nu´mero par de s´ımbolos.
SBFP 4 Toda sequencia bem formada de pareˆnteses tem o nu´mero total de
abre-pareˆnteses igual ao nu´mero total de fecha-pareˆnteses.
Existe um teste muito simples e eficiente para verificar se uma sequencia
de pareˆnteses e´ ou na˜o e´ uma SBFP. Esse teste esta´ baseado em percorrer a
sequencia mantendo dois contadores: um para o nu´mero acumulado de abre-
pareˆnteses, e outro para o nu´mero acumulado de fecha-pareˆnteses. Para
formalizar este processo vamos definir esses contadores.
Definic¸a˜o 8 (Indicadoras) Seja s um abre-pareˆnteses ou um fecha-pareˆnteses.
Definimos as varia´veis indicadoras Iabre(s) e Ifecha(s) por
Iabre(s) =
{
1 se s e´ um abre pareˆnteses
0 caso contra´rio
e por
Ifecha(s) =
{
1 se s e´ um fecha pareˆnteses
0 caso contra´rio
32 CAPI´TULO 6. INDUC¸A˜O ESTRUTURAL
Definic¸a˜o 9 (Contadores) Seja S = s1s2 · · · sk uma sequencia qualquer de
s´ımbolos abre-pareˆnteses e fecha-pareˆnteses. Para i = 1, · · · , k definimos os
contadores nabre(S, i) e nfecha(S, i) por
nabre(S, i) =
∑i
j=1 Iabre(sj)
nfecha(S, i) =
∑i
j=1 Ifecha(sj).
SBFP 5 Seja S = s1s2 · · · sk uma sequencia qualquer de s´ımbolos abre-
pareˆnteses e fecha-pareˆnteses. 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-
pareˆnteses e fecha-pareˆnteses. Para i = 1, · · · , k, as treˆs afirmac¸o˜es abaixo
sa˜o 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-pareˆnteses
e fecha-pareˆnteses. 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 pareˆnteses.
Neste caso, temos que
nabre(S, k) = nfecha(S, k).
SBFP 9 Seja S = s1s2 · · · sk uma sequencia bem formada de pareˆnteses.
Para i = 1, · · · , k, temos que
nabre(S, i) ≥ nfecha(S, i).
SBFP 10 Seja S = s1s2 · · · sk uma sequencia bem formada de pareˆnteses.
Neste caso, temos que
2.nabre(S, k) = k.
6.4. SEQUENCIAS DE PAREˆNTESES 33
SBFP 11 Seja S = s1s2 · · · sk uma sequencia bem formada de pareˆnteses.
Para i = 1, · · · , k, temos que
2.nabre(S, i) ≥ i.
SBFP 12 (Caracterizac¸a˜o I) Seja S = s1s2 · · · sk uma sequencia qualquer
de s´ımbolos abre-pareˆnteses e fecha-pareˆnteses, 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-pareˆnteses.
SBFP 13 (Caracterizac¸a˜o II) Seja S = s1s2 · · · sk uma sequencia qual-
quer de s´ımbolos abre-pareˆnteses e fecha-pareˆnteses, 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-pareˆnteses.
SBFP 14 (Caracterizac¸a˜o III) Seja S = s1s2 · · · sk uma sequencia qual-
quer de s´ımbolos abre-pareˆnteses e fecha-pareˆnteses, 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 numa
sequencia de pareˆnteses, determine se a mesma e´ ou na˜o e´ uma SBPF.
34 CAPI´TULO 6. INDUC¸A˜O ESTRUTURAL
Cap´ıtulo 7
A´rvores e Florestas Livres
7.1 A´rvores Livres
Definic¸a˜o 10 Uma A´rvore Livre T = (V,A) e´ definida recursivamente por{
T = ({v}, {}) (caso base)
T = (V1 ∪ {v}, A1 ∪ {{v, u}}) (relac¸a˜o estrutural)
onde v /∈ V1, u ∈ V1, e T1 = (V1, A1) e´ uma a´rvore livre.
AL 1 Seja T = (V,A) uma a´rvore livre. Para toda aresta a ∈ A, temos que
(i) a ⊆ V
(ii) |a| = 2 .
AL 2 Seja T = (V,A) uma a´rvore livre com n ve´rtices e m arestas. Neste
caso, temos que
m = n−1.
Definic¸a˜o 11 (Indicadoras) Seja T = (V,A) uma a´rvore livre e W um
conjunto tal que V ⊆ W . Para cada par w ∈ W e a ∈ A definimos a varia´vel
indicadora Ia(w) por
Ia(w) =
{
1 se w ∈ a
0 caso contra´rio
Quando Ia(w) = 1, dizemos que a aresta a e´ incidente no ve´rtice w.
35
36 CAPI´TULO 7. A´RVORES E FLORESTAS LIVRES
AL 3 Seja T = (V,A) uma a´rvore livre. Neste caso, se a ∈ A e w /∈ V
enta˜o Ia(w) = 0.
Definic¸a˜o 12 Seja T = (V,A) uma a´rvore livre. Para todo ve´rtice v ∈ V
definimos o grau(v) por
grau(v) =
∑
a∈A
Ia(v).
E´ fa´cil ver que o grau(v) e´ o nu´mero total de arestas incidentes em v.
AL 4 Seja T1 = (V1, A1) uma a´rvore livre e T = (V1 ∪ {v}, A1 ∪ {{v, u}}),
com v /∈ V1 e u ∈ V1. Neste caso, para todo ve´rtice x ∈ V temos que
grauT (x) = grauT1(x) + I{v,u}(x).
AL 5 Seja T = (V,A) uma a´rvore livre com |V | ≥ 2. Para todo ve´rtice
v ∈ V temos que
grau(v) ≥ 1.
Exerc´ıcio 19 Seja T = (V,A) uma a´rvore livre. Para v ∈ V , formule uma
definic¸a˜o recursiva para o grau(v).
AL 6 (Teorema do Aperto de Ma˜o) Seja T = (V,A) uma a´rvore livre.
Para |A| = m temos que ∑
v∈V
grau(v) = 2.m .
Definic¸a˜o 13 Seja T = (V,A) uma a´rvore livre. Dizemos que um ve´rtice
v ∈ V e´ uma folha se e so´ se
grau(v) ≤ 1.
AL 7 Seja T = (V,A) uma a´rvore livre com |V | ≥ 2. Neste caso, temos que
T tem pelo menos duas folhas.
AL 8 Seja T = (V,A) uma a´rvore livre com |V | ≥ 3. Neste caso, temos que
T tem pelo menos um ve´rtice v ∈ V tal que
grau(v) > 1.
7.2. REPRESENTAC¸A˜O SEQUENCIAL 37
AL 9 Seja T = (V,A) uma a´rvore livre com |V | ≥ 2. Se f ∈ V , {f, w} ∈ A
e grau(f) = 1 enta˜o T ′ = (V −{f}, A−{f, w}) tambe´m e´ uma a´rvore livre.
AL 10 Seja T = (V,A) uma a´rvore livre com |V | ≥ 2. Seja ainda T ′ =
(V − {f}, A− {f, w}) com f ∈ V , {f, w} ∈ A e grauT (f) = 1. Enta˜o
(i) grauT (f) = 1
(ii) grauT (w) = 1 + grauT ′(w)
(iii) grauT (v) = grauT ′(v) v ∈ V − {f, w}
7.2 Representac¸a˜o Sequencial
Definic¸a˜o 14 Seja T = (V,A) uma a´rvore livre com |V | ≥ 2, sendo V um
subconjunto dos naturais. Definimos recursivamente a representac¸a˜o sequen-
cial S(T ) de T por{
S(T ) = (V, �) se |V | = 2 (caso base)
S(T ) = (V,w W ′) se |V | ≥ 3 (relac¸a˜o 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 35 Considere T = ({1, 2, 3, 4, 5}, {{1, 4}, {2, 4}, {2, 3}, {2, 5}}). Neste
caso, temos que a representac¸a˜o sequencial e´ dada por S(T ) = ({1, 2, 3, 4, 5}, (4 2 2).
AL 11 Seja T = (V,A) uma a´rvore livre com n ve´rtices. Se S(T ) =
(V,w1w2 · · ·wk) e´ a representac¸a˜o sequencial de T enta˜o
k = n− 2.
AL 12 Seja T = (V,A) uma A´rvore livre com n ve´rtices. Se S(T ) =
(V,w1w2 · · ·wn−2) e´ a representac¸a˜o sequencial de T enta˜o, para todo v ∈ V ,
temos que
v e´ folha de T se e so se v 6= wi para i = 1, · · · , n− 2.
AL 13 Seja T = (V,A) uma a´rvore livre com n ve´rtices. Se S(T ) =
(V,w1w2 · · ·wn−2) e´ a representac¸a˜o sequencial de T enta˜o para todo v ∈ V
temos que
grau(v) = 1 +
n−2∑
i=1
Iv(wi),
38 CAPI´TULO 7. A´RVORES E FLORESTAS LIVRES
onde
Iv(w) =
{
1 se w = v
0 caso contra´rio.
AL 14 Seja V um conjunto com n nu´meros naturais. Seja W = w1w2 · · ·wn−2
uma sequencia tal que wi ∈ V para i = 1 · · ·n− 2. Neste caso, existe exata-
mente uma u´nica a´rvore livre T = (V,A) tal que
S(T ) = (V,W ).
AL 15 (Cayley) Seja V um conjunto com n elementos. Existem exata-
mente nn−2 a´rvores livres cujo conjunto de ve´rtices e´ V .
7.3 Florestas Livres
Definic¸a˜o 15 Uma Floresta Livre F = (V,A) e´ definida recursivamente por
F = ({v}, {}) (caso base)
F = (V1 ∪ {v}, A1) (relac¸a˜o estrutural)
F = (V1 ∪ {v}, A1 ∪ {{v, u}}) (relac¸a˜o 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 ve´rtices e m arestas. Neste
caso, existem k a´rvores 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 a´rvores livres compo˜em F .
FL 2 Seja F = (V,A) uma floresta livre com n ve´rtices e m arestas. Neste
caso, temos que
m = n− k
onde k e´ o nu´mero total de a´rvores livres que compo˜em F .
Cap´ıtulo 8
A´rvores Bina´rias
As a´rvores bina´rias mais usadas na computac¸a˜o sa˜o as posicionais. Numa
a´rvore posicional, cada ve´rtice pode ter um filho a esquerda e outro a direita.
Nas a´rvores bina´rias na˜o posicionais, cada ve´rtice pode ter ate´ dois filhos,
sendo irrelevante a noc¸a˜o de posic¸a˜o desses filhos.
Neste cap´ıtulo, apresentamos inicialmente as a´rvores bina´rias na˜o posi-
cionais, aqui denominadas resumidamente de a´rvores bina´rias. Dentre elas,
destacamos diferentes tipos de a´rvores bina´rias: estendidas, estritas, cheias,
balanceadas por altura e de Fibonacci.
Na sec¸a˜o 8.6, apresentamos enta˜o as a´rvores bina´rias posicionais.
8.1 A´rvores Bina´rias Estendidas
Definic¸a˜o 16 Uma a´rvore Bina´ria Estendida T = (V,A) de ra´ız r e´ definida
recursivamente por
T = ({r}, {}) (caso base)
T = ({r} ∪ V1, {(r, r1)} ∪ A1) (relac¸a˜o estrutural)
T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relac¸a˜o estrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores bina´rias estendidas de ra´ızes
r1 e r2 respectivamente, V1 ∩ V2 = ∅ e r /∈ V1 ∪ V2.
As a´rvores T1 e T2 sa˜o denominadas de componentes de T .
Para uma a´rvore bina´ria estendida T , definimos adicionalmente o seu
nu´mero total de ve´rtices n(T ) e o seu nu´mero total de arestas m(T ) por
n(T ) = |V | m(T ) = |A|.
39
40 CAPI´TULO 8. A´RVORES BINA´RIAS
A sua altura h(T ) e´ definida recursivamente por
h(({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 definic¸o˜es recursivas de n(T ) e m(T ).
AB 1 Seja T uma a´rvore bina´ria estendida com n(T ) ve´rtices e m(T ) ares-
tas. Neste caso,
m(T ) = n(T )− 1
AB 2 Seja T uma a´rvore bina´ria com n(T ) no´s e de altura h(T ). Neste
caso,
n(T ) ≤ 2h(T )+1 − 1
Definic¸a˜o 17 (Indicadoras) Seja T = (V,A) uma a´rvore bina´ria esten-
dida. Para cada v ∈ V e a ∈ A definimos as varia´veis indicadoras I ina (v) e
Iouta (v) por
I ina (v) =
{
1 se a = (w, v)
0 caso contra´rio
e
Iouta (v) =
{
1 se a = (v, w)
0 caso contra´rio
Quando I ina (v) = 1, dizemos que a aresta a entra no ve´rtice v. Analoga-
mente, quando Iouta (v) = 1, dizemos que a aresta a sai no ve´rtice v.
Definic¸a˜o 18 Seja T = (V,A) uma a´rvore bina´ria estendida. Para todo
ve´rtice v ∈ V definimos grauin(v) e grauout(v) por
grauinT (v) =
∑
a∈A I ina (v)
grauoutT (v) =
∑
a∈A Iouta (v).
AB 3 Seja T = (V,A) uma a´rvore bina´ria estendida. Neste caso, a ra´ız r e´
o u´nico ve´rtice v ∈ V tal que
grauinT (v) = 0.
8.2. A´RVORES ESTRITAMENTE BINA´RIAS 41
AB 4 Seja T = (V,A) uma a´rvore bina´ria estendida de ra´ız r. Neste caso,
para todo ve´rtice v ∈ V − {r} temos que
grauinT (v) = 1.
AB 5 Seja T = (V,A) uma a´rvore bina´ria estendida. Neste caso, para todo
ve´rtice v ∈ V − {r} temos que
grauoutT (v) = grau
out
T1
(v) + grauoutT2 (v).
AB 6 Seja T = (V,A) uma a´rvore bina´ria estendida. Neste caso, para todo
ve´rtice v ∈ V temos que
grauoutT (v) ≤ 2.
Definic¸a˜o 19 Seja T = (V,A) uma a´rvore bina´ria estendida. Dizemos que
v ∈ V e´ uma folha de T se e so´ se
grauoutT (v) = 0.
Definic¸a˜o 20 Seja T = (V,A) uma a´rvore bina´ria estendida. Dizemos que
v ∈ V e´ um ve´rtice interno de T se e so´ se
grauoutT (v) > 0.
8.2 A´rvores Estritamente Bina´rias
Definic¸a˜o 21 Uma a´rvore Estritamente Bina´ria T = (V,A) de ra´ız r e´
definida recursivamente por{
T = ({r}, {}) (caso base)
T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relac¸a˜oestrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores estritamente bina´rias de
ra´ızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.
AB 7 Toda a´rvore estritamente bina´ria tambe´m e´ uma a´rvore bina´ria es-
tendida.
AB 8 O nu´mero total de ve´rtices de uma a´rvore estritamente bina´ria e´ sem-
pre ı´mpar.
42 CAPI´TULO 8. A´RVORES BINA´RIAS
AB 9 Seja T = (V,A) uma a´rvore estritamente bina´ria. Neste caso, para
todo ve´rtice v ∈ V temos que
grauoutT (v) ∈ {0, 2}.
AB 10 Numa a´rvore estritamente bina´ria com nf folhas e ni ve´rtices inter-
nos, temos que
ni = nf − 1.
8.3 A´rvores Bina´rias Cheias
Definic¸a˜o 22 Uma a´rvore Bina´ria Cheia T = (V,A) de ra´ız r e´ definida
recursivamente por{
T = ({r}, {}) (caso base)
T = ({r} ∪ V1 ∪ V2, {(r, r1), (r, r2)} ∪ A1 ∪ A2) (relac¸a˜o estrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores bina´rias cheias de ra´ızes r1 e
r2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, ale´m disso,
n(T1) = n(T2).
ABC 1 Seja T uma a´rvore bina´ria cheia de ra´ız r, com suba´rvores T1 e T2,
n(T ) ve´rtices, 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 ) = 2
h(T )
8.4 A´rvores Bina´rias Balanceadas por Altura
Definic¸a˜o 23 Uma a´rvore Bina´ria T Balanceada por Altura com ra´ız r 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) (relac¸a˜o estrutural)
8.5. A´RVORES DE FIBONACCI 43
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores bina´rias balanceadas por
altura de ra´ızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, ale´m
disso,
|h(T1)− h(T2)| ≤ 1.
ABBA 1 Seja T uma a´rvore bina´ria balanceada por altura com n(T ) ve´rtices
e altura h(T ). Neste caso, temos que
n(T ) ≥ fh(T )+3 − 1.
onde fi e´ o i−e´simo nu´mero de Fibonacci.
ABBA 2 Seja T uma a´rvore bina´ria balanceada por altura com n(T ) ve´rtices
e altura h(T ). Neste caso, temos que
n(T ) ≥ φh(T )+1 − 1
onde φ = 1+
√
5
2
.
ABBA 3 Seja T uma a´rvore bina´ria balanceada por altura com n(T ) ve´rtices
e altura h(T ). Neste caso, temos que
h(T ) < C. lg (n(T ) + 1)
onde C = 1
lg(φ)
.
8.5 A´rvores de Fibonacci
Definic¸a˜o 24 Uma a´rvore de Fibonacci T com ra´ız r e conjunto de ve´rtices
V 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) (relac¸a˜o estrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores bina´rias balanceadas por
altura de ra´ızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, r /∈ V1 ∪ V2 e, ale´m
disso,
|h(T1)− h(T2)| = 1.
AF 1 Seja T uma a´rvore de Fibonacci com n(T ) ve´rtices e altura h(T ).
Neste caso, temos que
n(T ) = fh(T )+3 − 1.
onde fi e´ o i−e´simo nu´mero de Fibonacci.
44 CAPI´TULO 8. A´RVORES BINA´RIAS
8.6 A´rvores Bina´rias Posicionais
Numa a´rvore bina´ria na˜o posicional, um arco que vai do ve´rtice pai para o
ve´rtice filho e´ identificado por
(pai, filho).
Numa a´rvore bina´ria posicional, um arco que vai do ve´rtice pai para o ve´rtice
filho 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.
Definic¸a˜o 25 Uma a´rvore Posicional Bina´ria Estendida T = (V,A) de ra´ız
r e´ definida recursivamente por
T = ({r}, {}) (caso base)
T = ({r} ∪ V1, {(r, r1,0)} ∪ A1) (relac¸a˜o estrutural)
T = ({r} ∪ V2, {(r, r2,1)} ∪ A2) (relac¸a˜o estrutural)
T = ({r} ∪ V1 ∪ V2, {(r, r1,0), (r, r2,1)} ∪ A1 ∪ A2) (relac¸a˜o estrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores posicionais bina´rias estendi-
das de ra´ızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.
A a´rvore T1 e´ a suba´rvore a esquerda de r, enquanto que a a´rvore T2 e´ a
suba´rvore a direita de r.
Definic¸a˜o 26 Uma a´rvore Posicional Estritamente Bina´ria T = (V,A) de
ra´ız r e´ definida recursivamente por{
T = ({r}, {}) (caso base)
T = ({r} ∪ V1 ∪ V2, {(r, r1,0), (r, r2,1)} ∪ A1 ∪ A2) (relac¸a˜o estrutural)
onde T1 = (V1, A1) e T2 = (V2, A2) sa˜o a´rvores posicionais estritamente
bina´rias de ra´ızes r1 e r2 respectivamente, V1 ∩ V2 = ∅, e r /∈ V1 ∪ V2.
Exerc´ıcio 21 Para as a´rvores posicionais, formule propriedades similares as
das a´rvores na˜o posicionais. Ale´m disso, demonstre que essas propriedades
sa˜o verdadeiras.
Cap´ıtulo 9
Florestas de Unia˜o e Busca
Definic¸a˜o 27 Seja S um conjunto finito. Uma (FUB) Floresta de Unia˜o e
Busca 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)}) (relac¸a˜o 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 grau
out
F1
(s2) = 0
(iii) l′ = l1 + l2 h′ = h2 + Ih1(h2)
Se (s, h, l) ∈ V dizemos que este ve´rtice e´ rotulado por s, tem altura h e
l descendentes.
Definic¸a˜o 28 (Indicadoras) Seja F = (V,A) uma FUB em S. Para cada
v ∈ S e a ∈ A definimos as varia´veis indicadoras I ina (v) e Iouta (v) por
I ina (v) =
{
1 se a = (w, v)
0 caso contra´rio
e
Iouta (v) =
{
1 se a = (v, w)
0 caso contra´rio
Quando I ina (v) = 1, dizemos que a aresta a entra no ve´rtice v. Analoga-
mente, quando Iouta (v) = 1, dizemos que a aresta a sai no ve´rtice v.
45
46 CAPI´TULO 9. FLORESTAS DE UNIA˜O E BUSCA
Definic¸a˜o 29 Seja F = (V,A) uma FUB em S. Para todo ve´rtice (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, temos
que
|V | = |S| .
FUB 3 Seja F = (V,A) uma FUB. Neste caso, temos que
grauoutF (s) ∈ {0, 1}
para todo (s, h, l) ∈ V .
Definic¸a˜o 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 de
representantes e´. Neste caso, temos que∑
s∈R, (s,h,l)∈V
l = n .
FUB 5 Seja F = (V,A) uma FUB, com |V | = n. Neste caso, temos que
n ≥ l
para todo (s, h, l) ∈ V .
47
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 .
48 CAPI´TULO 9. FLORESTAS DE UNIA˜O E BUSCA
Cap´ıtulo 10
O Algoritmo de Euclides
10.1 Ma´ximo Divisor Comum
Definic¸a˜o 31 Sejam a e b dois nu´meros naturais. O ma´ximo divisor comum
de a e b e´ dado por
mdc(a, b) = max {d ∈ N | d\a, d\b} .
MDC 1 Seja a um inteiro positivo. Enta˜o mdc(a, 0) = a.
MDC 2 Sejam a e b dois inteiros positivos, com b 6= 0. Enta˜o 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 o
esforc¸o total deste algoritmo e´ O(min(a, b)) sempre.
Ja´ o Algoritmo 2, resolve o mesmo problema com esforc¸o totalO(min(a, b))
no pior caso.
Finalmente, apresentamos o Algoritmo 3, que tambe´m determina omdc(a, b).
Posteriormente, vamos demonstrar que o esforc¸o total deste terceiro algo-
ritmo e´ O(log(min(a, b))) no pior caso.
49
50 CAPI´TULO 10. O ALGORITMO DE EUCLIDES
Algorithm 1 Forc¸a Bruta.
maiorCandidato ← min(a,b)
for candidato = 1 to maiorCandidato do
if (candidato \ a and candidato \ b) then
mdc ← candidato
end if
end for
return mdc
Algorithm 2 Forc¸a Bruta melhorado.
maiorCandidato ← min(a,b)
for candidato = maiorCandidatodownto 1 do
if (candidato \ a and candidato \ b) then
return candidato
end if
end for
Algorithm 3 Algoritmo de Euclides.
primeiro ← max(a,b)
segundo ← min(a,b)
while segundo > 0 do
resto ← primeiro mod segundo
primeiro ← segundo
segundo ← resto
end while
return primeiro
10.3. CORRETUDE 51
10.3 Corretude
Na˜o e´ o´bvio que o Algoritmo de Euclides calcula corretamente o valor do
mdc. Vamos usar da Induc¸a˜o Estrutural para provar este fato. Para isto,
considere a sequeˆncia
resto1, . . . , reston
de valores atribuidos a varia´vel resto durante a execuc¸a˜o do algoritmo. Ob-
serve que restoi e´ o resto da i-e´sima divisa˜o efetuada pelo algoritmo.
Por exemplo, ao calcular o mdc(783, 534) obtemos a sequeˆncia de restos
249, 36, 33, 3, 0
concluindo que mdc(783, 534) = 3.
Para i = 3, 4, . . . , n temos que
restoi = primeiroi mod segundoi.
e
segundoi+1 = restoi primeiroi+1 = segundoi.
donde,
primeiroi = segundoi−1 = restoi−2.
Portanto, temos a seguinte equac¸a˜o recursiva
restoi = restoi−2 mod restoi−1
para i = 3, 4, . . . , n.
E´ fa´cil ver que, definindo resto0 = min(a, b) e resto−1 = max(a, b), obte-
mos a sequeˆncia expandida
resto−1, resto0, resto1, . . . , reston
que satisfaz a equac¸a˜o recursiva
restoi = restoi−2 mod restoi−1
para i = 1, 2, . . . , n.
No ca´lculo do mdc(783, 534) a sequeˆncia expandida de restos e´
783, 534, 249, 36, 33, 3, 0.
Seja n o nu´mero total de diviso˜es efetuadas pelo Algoritmo de Euclides.
As seguintes propriedades demonstram a corretude deste algoritmo.
52 CAPI´TULO 10. O ALGORITMO DE EUCLIDES
EUC 1 Se n = 0 enta˜o mdc(a, b) = max(a, b).
EUC 2 Se n > 0 enta˜o, 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 Eficieˆncia
Seja n o nu´mero total de diviso˜es efetuadas pelo Algoritmo de Euclides. A
sequeˆncia de valores de restos gerada no ca´lculo do mdc(a, b) pelo Algoritmo
de Euclides obedece as seguintes equac¸o˜es
resto−1 = max(a, b) (caso base)
resto0 = min(a, b) (caso base)
restoi = restoi−2 mod restoi−1 (relac¸a˜o estrutural)
onde i = 1, 2, · · · , n.
As seguintes propriedades estabelecem a eficieˆncia deste algoritmo.
EUC 3 Se n > 0 enta˜o, 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 nu´mero total de diviso˜es efetuadas pelo Algoritmo de Eu-
clides no ca´lculo do mdc(a, b). Temos que
n ≤ 1 + 2. lg2(min(a, b)).
Cap´ıtulo 11
O Teorema de Stone
Neste cap´ıtulo, mostramos que toda a´lgebra booleana finita (B, +, .,−) e´
isomorfa a uma a´lgebra de conjuntos. Este e´ o Teorema de Stone.
Para |B| = 1, a demonstrac¸a˜o e´ trivial. Apresentamos uma demonstrac¸a˜o
por induc¸a˜o estrutural para o caso em que |B| ≥ 2.
Uma consequeˆncia imediata deste teorema e´ que para toda a´lgebra boo-
leana finita (B, +, .,−) existe um nu´mero natural k tal que |B| = 2k.
11.1 A´tomos
Definic¸a˜o 32 Seja (B, +, ., −) uma a´lgebra booleana. Dizemos que um ele-
mento a ∈ B e´ um a´tomo se e so´ se para todo x ≤ a temos que x ∈ {0, a}.
Diversas propriedades da ordenac¸a˜o booleana esta˜o fortemente associadas
a noc¸a˜o de a´tomo. A seguir, apresentamos algumas destas.
OBL 14 a ≤ b e a ≤ c e b.c = 0 enta˜o a = 0.
OBL 15 a ≤ b.c enta˜o a ≤ b+ c.
OBL 16 a ≤ b enta˜o 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} enta˜o a 6= b.
ATM 1 Sejam a1 e a2 dois a´tomos distintos de uma a´lgebra booleana (B, +, .,
−).
Neste caso, temos que a1.a2 = 0.
53
54 CAPI´TULO 11. O TEOREMA DE STONE
11.2 Decomposic¸a˜o Estrutural
Definic¸a˜o 33 Dizemos que b < a se e so´ se b ≤ a e b 6= a.
STN 1 Se b na˜o e´ um a´tomo, enta˜o existe c ∈ B tal que
0 < c < b.
STN 2 Se b ∈ B na˜o e´ um a´tomo, enta˜o 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´ a´tomo
(iv) b = a1 + · · ·+ ak.
para i, j = 1, · · · , k. Ale´m disso, essa decomposic¸a˜o e´ u´nica.
STN 4 Seja b = a1 + · · ·+ak a decomposic¸a˜o de b em a´tomos. Seja tambe´m
a um a´tomo tal que a ≤ b. Neste caso, temos que existe 1 ≤ i ≤ k tal que
a = ai.
STN 5 Sejam b =
∑k
i=1 ai e b
′ =
∑k′
i=1 a
′
i as respectivas decomposic¸o˜es de b
e b′ em a´tomos. Sejam s = b+ b′ e p = b.b′. Neste caso, temos que
(i) s =
∑j
i=1 xi
(ii) p =
∑l
i=1 yi
onde {x1, · · · , xj} = {a1, · · · , ak}∪{a′1, · · · , a′k′} e {y1, · · · , yl} = {a1, · · · , ak}∩
{a′1, · · · , a′k′}.
Cap´ıtulo 12
Grafos
12.1 Conceitos Ba´sicos
Os elementos atoˆmicos empregados na construc¸a˜o de grafos sa˜o os ve´rtices e
as arestas.
Primeiramente, vamos definir esses elementos. A partir deles, vamos
enta˜o construir os grafos.
12.1.1 Ve´rtices
Um conjunto na˜o vazio V com n ve´rtices e´ simplesmente um conjunto com
n 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 elementos
distintos, isto e´,
A = {a1, · · · , am}
onde m ≥ 0.
55
56 CAPI´TULO 12. GRAFOS
12.1.3 Incideˆncia
A cada aresta a ∈ A esta˜o associados dois ve´rtices u, v ∈ V nos quais dizemos
que a aresta a incide. Desta forma, fazemos as arestas incidirem nos ve´rtices.
Definimos dois tipos diferentes de incideˆncia: a dirigida e a na˜o dirigida.
Na incideˆncia 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 incideˆncia na˜o dirigida, a aresta a e´ associada a um conjunto {u, v}.
Neste caso, a e´ dita na˜o dirigida entre u e v.
Formalmente, a incideˆncia dirigida e´ uma func¸a˜o f : A→ V × V .
Analogamente, a incideˆncia na˜o dirigida e´ uma func¸a˜o f : A→ V (2), onde
V (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
Definic¸a˜o 34 (Grafo) Um grafo G e´ uma estrutura composta de treˆs ele-
mentos, isto e´,
G = (V,A, f)
onde V e´ um conjunto de ve´rtices, A e´ um conjunto de arestas e f e´ uma
func¸a˜o de incideˆncia.
Quando as arestas deG esta˜o 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 esta˜o na˜o dirigidas,, dizemos que G e´ um grafo
na˜o dirigido. Se f(a) = {u}, dizemos que a aresta a e´ um lacete na˜o dirigido.
Duas arestas distintas a1 e a2 de um grafo G sa˜o ditas paralelas quando
f(a1) = f(a2).
Exemplo 36 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 36 tem cinco ve´rtices e sete arestas na˜o dirigidas.
Observe que as arestas 3, 4, 5, 6 e 7 sa˜o incidentes no ve´rtice 2. Nesse grafo,
as arestas 6 e 7 sa˜o paralelas entre si, bem como as arestas 4 e 5.
12.2. GRAFOS E SUBGRAFOS 57
Os grafos sa˜o classificados segundo va´rios crite´rios, como por exemplo os
seguintes: o direcionamento ou na˜o das arestas, a presenc¸a ou na˜o de lacetes,
e a presenc¸a ou na˜o de arestas paralelas.
Grafos na˜o dirigidos, sem lacetes nem arestas paralelas, sa˜o denominados
Grafos Simples.
Grafos com arestas na˜o dirigidas, sem lacetes mas com arestas paralelas,
sa˜o denominados Multigrafos.
Grafos com arestas na˜o dirigidas, com lacetes e com arestas paralelas, sa˜o
denominados Pseudografos.
Grafos com arestas dirigidas, com lacetes e sem arestas paralelas, sa˜o
denominadosGrafos Dirigidos.
Grafos com arestas dirigidas, com lacetes e com arestas paralelas, sa˜o
denominados Multigrafos Dirigidos.
Definic¸a˜o 35 Seja G = (V,A, f) um grafo na˜o dirigido. Dizemos que o
grafo H = (V ′, A′, f ′) e´ um subgrafo de G se e somente se
(i) V ′ ⊆ V ;
(ii) A′ ⊆ A;
(iii) a ∈ A′ enta˜o f ′(a) = f(a) ⊆ V ′.
Um subgrafo de um grafo dirigido e´ definido de maneira ana´loga. Quando
H e´ um subgrafo de G, denotamos por H ≤ G. Adicionalmente, se H ≤ G
e H 6= G, denotamos por H < G.
Definic¸a˜o 36 Seja α uma famı´lia de grafos. Seja G um grafo. Dizemos que
H e´ um componente-α de G se e somente se
(i) H ≤ G;
(ii) H ∈ α;
(iii) na˜o existe H ′ ∈ α tal que H < H ′ ≤ G.
58 CAPI´TULO 12. GRAFOS
Cap´ıtulo 13
Grafos Simples
13.1 Representac¸a˜o
Seja G = (V,A, f) um grafo simples. Para a ∈ A e f(a) = {u, v} temos
que na˜o existe outra a′ ∈ A com f(a′) = {u, v}. Portanto, o par de ve´rtices
{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 definic¸a˜o simplificada para
os Grafos Simples.
Definic¸a˜o 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 G = (V,A) um grafo simples. Para |V | = n e |A| = m temos
que
m ≤ n.(n− 1)
2
.
SIM 2 Seja T = (V,A) uma a´rvore livre. Neste caso, T e´ tambe´m um grafo
simples.
59
60 CAPI´TULO 13. GRAFOS SIMPLES
Alternativamente, podemos definir um grafo simples recursivamente.
Definic¸a˜o 38 Um Grafo Simples G = (V,A) e´ definido recursivamente por
T = ({v}, {}) (caso base)
T = (V1 ∪ {v}, A1) (relac¸a˜o estrutural)
T = (V1, A1 ∪ {{u,w}}) (relac¸a˜o estrutural)
onde v /∈ V1, u,w ∈ V1, {u,w} /∈ A1, e G1 = (V1, A1) e´ um grafo simples.
Definic¸a˜o 39 (Indicadoras) Seja G = (V,A) um grafo simples. Para v ∈
V e a ∈ A, definimos a varia´vel indicadora Ia(v) por
Ia(v) =
{
1 se v ∈ a
0 se v /∈ a
Definic¸a˜o 40 Seja G = (V,A) um grafo simples. Para todo ve´rtice v ∈ V
definimos o grau(v) por
grau(v) =
∑
a∈A
Ia(v)
SIM 3 (Teorema do Aperto de Ma˜o) Seja G = (V,A) um grafo sim-
ples. Para |A| = m temos que∑
v∈V
grau(v) = 2.m .
SIM 4 Seja G = (V,A) um grafo simples, com |V | = n e |A| = m. Se
grau(v) = 2 para todo v ∈ V enta˜o temos que m = n.
Exerc´ıcio 22 Seja T o nu´mero total de ve´rtices de grau ı´mpar em G. Mostre
que T e´ par.
Exerc´ıcio 23 Generalize o Teorema do Aperto de Ma˜o para o caso em que
G e´ um multigrafo.
Definic¸a˜o 41 Se grau(v) = 0 dizemos que v e´ um ve´rtice isolado de G.
Definic¸a˜o 42 Se grau(v) = 1 dizemos que v e´ uma folha de G.
A seguir, relembramos uma propriedade relativa a folhas em uma A´rvore
Livre.
SIM 5 Seja T = (V,A) uma a´rvore livre com n ≥ 2, onde n = |V |. Neste
caso, temos que T tem pelo menos duas folhas.
13.2. GRAFOS DERIVADOS 61
13.2 Grafos Derivados
Definic¸a˜o 43 Seja G = (V,A) um grafo simples. Seja tambe´m A¯ = {(u, 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.
Definic¸a˜o 44 (Passeio) Dizemos que p e´ um passeio de tamanho k em G
se 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. Ale´m disso, os ve´rtices v0 e vk
sa˜o denominados terminais do passeio p. O ve´rtice v0 e´ a origem do passeio,
enquanto o ve´rtice vk e´ o destino do passeio. Usamos ‖p‖ para denotar o
tamanho 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, enta˜o p′ = (vk, vk−1, · · · , v0)
tambe´m 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) sa˜o dois passeios em
G e vk = u0, enta˜o p3 = (v0, v1, · · · , vk, u1, · · · , ul) tambe´m e´ um passeio em
G e ‖p3‖ = k + l.
Definic¸a˜o 45 (Trilha) Dizemos que um passeio p = (v0, v1, · · · , vk) e´ uma
trilha em G se somente se {vi−1, vi} 6= {vj−1, vj} para 1 ≤ i < j ≤ k.
62 CAPI´TULO 13. GRAFOS SIMPLES
Definic¸a˜o 46 (Caminho) Dizemos que um passeio p = (v0, v1, · · · , vk) e´
um 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´ tambe´m 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.
Definic¸a˜o 47 (Conexo) Um grafo simples G = (V,A) e´ dito conexo se e
so´ se para todo par de ve´rtices u, v ∈ V temos que existe um caminho em G
de u a v.
CAM 3 Seja T = (V,A) uma a´rvore livre. Sejam u, v ∈ V . Neste caso,
existe um u´nico caminho de u a v em T .
CAM 4 Toda a´rvore livre e´ um grafo conexo.
CAM 5 Seja T = (V,A) uma a´rvore livre com n ≥ 2, onde n = |V |. Neste
caso, u e v sa˜o as u´nicas folhas de T se e so´ se existe um caminho de tamanho
n− 1 em T de u a v.
CAM 6 Sejam T = (V,A) uma a´rvore livre e S ⊂ V . Sejam ainda u ∈ S e
v ∈ V − S. Neste caso, existe um caminho de u a v em T que conte´m pelo
menos uma aresta a tal que
|a ∩ S| = |a ∩ (V − S)| = 1.
Definic¸a˜o 48 Dizemos que um passeio ou trilha p = (v0, v1, · · · , vk) e´ fe-
chado em G se somente se
v0 = vk.
Caso contra´rio, p e´ aberto em G.
PSS 3 Seja p um passeio fechado em G. Neste caso,
‖p‖ 6= 1.
13.4. CIRCUITOS E CICLOS 63
13.4 Circuitos e Ciclos
Definic¸a˜o 49 (Circuito) Uma trilha fechada em G e´ denominada circuito.
Definic¸a˜o 50 (Ciclo) Um caminho fechado de tamanho k ≥ 3 em G e´
denominado ciclo.
CIC 1 Se p e´ um passeio fechado de tamanho treˆs enta˜o p e´ um ciclo.
CIC 2 Se G conte´m um passeio fechado de tamanho ı´mpar enta˜o G conte´m
um ciclo de tamanho ı´mpar.
CIC 3 Se G conte´m dois passeios distintos de u a v enta˜o G conte´m um
passeio fechado iniciando por u e passando por v.
CIC 4 Se G na˜o tem ciclos nem ve´rtices isolados enta˜o G tem pelo menos
duas folhas.
CIC 5 Sejam T = (V,A) uma a´rvore livre, u, v ∈ V e {u, v} /∈ A. Neste
caso, o grafo G = (V,A ∪ {{u, v}}) tem um u´nico ciclo.
CIC 6 Sejam G = (V,A) um grafo conexo, onde grau(v) = 2 para todo
v ∈ V . Neste caso, o grafo G e´ um ciclo.
13.5 Esparsidade
13.6 A´rvores Livres e Geradoras
13.7 Componentes Conexos
Seja G = (V,A) um grafo simples com n ve´rtices e m arestas.
Definic¸a˜o 51 Dizemos que H e´ um componente conexo de G se e somente
se
(i) H ≤ G
(ii) H e´ conexo
(iii) na˜o existe H ′ conexo, com H < H ′ ≤ G
CMP 1 Se G e´ conexo enta˜o G e´ seu u´nico componente conexo.
64 CAPI´TULO 13. GRAFOS SIMPLES
CMP 2 Se G tem c componentes conexos enta˜o n− c ≤ m.
CMP 3 Se G e´ conexo enta˜o n− 1 ≤ m.
Definic¸a˜o 52 Sejam u e v dois ve´rtices quaisquer em V . Dizemos que u _ v
se e somente se existe um caminho de u a v em G.
CMP 4 A relac¸a˜o _ e´ uma relac¸a˜o de equivalencia em V , isto e´,
(i) reflexiva;
(ii) sime´trica;
(iii) transitiva.
Definic¸a˜o 53 Seja u um ve´rtice 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 enta˜o Vx = Vy.
CMP 6 Se x _ y enta˜o Ax = Ay.
CMP 7 Se x _ y enta˜o Hx = Hy.
CMP 8 Se x ∈ V enta˜o Hx e´ conexo maximal.
CMP 9 (Caracterizac¸a˜o) H e´ um componente conexo de G se e somente
se existe um u ∈ V tal que H = Hu.
CMP 10 (Graus Pequenos) Se para todo v ∈ V temos grau(v) ≤ 2 enta˜o
os componentes conexos de G sa˜o
(i) ou ve´rtices isolados;
(ii) ou ciclos;
(iii) ou caminhos.
13.8. GRAFOS BIPARTIDOS 65
13.8 Grafos Bipartidos
Definic¸a˜o 54 Seja G = (V,A) um grafo simples. Dizemosque G e´ um grafo
bipartido 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. Se H ≤ G enta˜o H e´ um grafo bipartido.
BIP 2 G e´ um grafo bipartido se e somente se todos os componentes conexos
de G sa˜o grafos bipartidos.
BIP 3 Seja G um grafo bipartido em S e T e (v0, v1, · · · , vk) um passeio em
G. Se v0 ∈ S enta˜o
(i) v2i ∈ S para i = 0, 1, · · · , k/2;
(ii) v2i+1 ∈ T para i = 0, 1, · · · , (k − 1)/2.
BIP 4 Se G e´ um grafo bipartido enta˜o todo ciclo de G tem tamanho par.
BIP 5 Se G e´ conexo e todo ciclo de G tem tamanho par enta˜o G e´ um
grafo bipartido.
BIP 6 (Caracterizac¸a˜o - Ko¨nig, 1936) G e´ um grafo bipartido se e so-
mente se todo ciclo de G tem tamanho par.
13.9 Articulac¸o˜es e Pontes
Seja G = (V,A) um grafo simples.
Definic¸a˜o 55 Dizemos que v ∈ V e´ um ponto de articulac¸a˜o de G se e
somente se existem x, y ∈ V tais que
(i) x _ y
(ii) todo caminho de x a y passa por v
66 CAPI´TULO 13. GRAFOS SIMPLES
ART 1 (Caracterizac¸a˜o) O ve´rtice v ∈ V e´ um ponto de articulac¸a˜o de
G se e somente se existem arcos {r, v}, {v, s} ∈ A tais que todo caminho de
r a s passa por v.
Definic¸a˜o 56 Dizemos que a ∈ A e´ uma ponte em G se e somente se existem
x, y ∈ V tais que
(i) x _ y
(ii) todo caminho de x a y conte´m a
PNT 1 Se {u, v} ∈ A e v e´ uma folha de G enta˜o {u, v} e´ uma ponte em
G.
PNT 2 Se {u, v} ∈ A e u e v sa˜o pontos de articulac¸a˜o de G enta˜o {u, v}
e´ uma ponte em G.
PNT 3 (Caracterizac¸a˜o) 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 sa˜o pontos de articulac¸a˜o
(ii) u ou v sa˜o folhas.
13.10 Componentes Biconexos
Seja G = (V,A) um grafo simples.
Definic¸a˜o 57 Dizemos que G e´ biconexo se e somente se
(i) G e´ conexo
(ii) G na˜o tem pontos de articulac¸a˜o.
BCX 1 G e´ biconexo e |V | ≥ 3 se e somente se para todo par u, v ∈ V
existem dois caminhos ve´rtices disjuntos de u a v.
BCX 2 G e´ biconexo e |V | ≥ 3 se e somente se para todo par u, v ∈ V existe
um ciclo contendo u e v.
BCX 3 G e´ biconexo e |V | ≥ 3 se e somente se para toda tripla u, v, w ∈ V
existe um ciclo contendo u, v e w.
13.10. COMPONENTES BICONEXOS 67
Definic¸a˜o 58 Dizemos que H e´ um componente biconexo de G se e somente
se
(i) H ≤ G
(ii) H e´ biconexo
(iii) na˜o existe H ′ biconexo, com H < H ′ ≤ G
Definic¸a˜o 59 Sejam a, a′ ∈ A. Dizemos que a ≡ a′ se e somente se ocorre
exatamente uma das seguintes alternativas
(i) a = a′
(ii) existe um ciclo em G que conte´m a e a′.
BCX 4 A relac¸a˜o ≡ e´ uma relac¸a˜o de equivalencia em A, isto e´,
(i) reflexiva;
(ii) sime´trica;
(iii) transitiva.
Definic¸a˜o 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 enta˜o Aa = Ab.
BCX 6 Se a ≡ b enta˜o Ha = Hb.
BCX 7 Para todo a ∈ A, Ha e´ biconexo.
BCX 8 Se Aa ∩ Ab = φ enta˜o |Va ∩ Vb| ≤ 1.
BCX 9 Se Aa ∩Ab = φ e v ∈ Va ∩ Vb enta˜o v e´ um ponto de articulac¸a˜o de
G.
BCX 10 H e´ um componente biconexo de G se e somente se existe um
a ∈ A tal que H = Ha.
BCX 11 Os componentes biconexos formam uma estrutura de arboresceˆncia.
68 CAPI´TULO 13. GRAFOS SIMPLES
Cap´ıtulo 14
Grafos Dirigidos
14.1 Representac¸a˜o
Por na˜o terem arestas paralelas, os grafos dirigidos tambe´m tem uma de-
finic¸a˜o simplificada.
Definic¸a˜o 61 Dizemos que G = (V,A) e´ um grafo dirigido se e somente se
A ⊆ V × V .
Definic¸a˜o 62 (Indicadoras) Para cada v, w ∈ V e a ∈ A definimos a
varia´vel indicadora Ia(v, w) por
Ia(v, w) =
{
1 se a = (v, w)
0 caso contra´rio
Definic¸a˜o 63 Para todo ve´rtice 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).
Definic¸a˜o 64 Se grauin(v) = 0 dizemos que v e´ uma fonte em G.
Definic¸a˜o 65 Se grauout(v) = 0 dizemos que v e´ um sumidouro em G.
69
70 CAPI´TULO 14. GRAFOS DIRIGIDOS
14.2 Grafos Derivados
Definic¸a˜o 66 Seja G = (V,A) um grafo dirigido. Seja tambe´m A′ = {(v, u)|(u, v) ∈
A}. Definimos o grafo transposto GT por
GT = (V,A′)
TRP 1 (GT )T = G.
TRP 2 O ve´rtice v e´ uma fonte em G se e somente se o ve´rtice v e´ um
sumidouro em GT .
TRP 3 O ve´rtice v e´ um sumidouro em G se e somente se o ve´rtice v e´ uma
fonte em GT .
14.3 Passeios, Trilhas e Caminhos
Seja G = (V,A) um grafo dirigido.
Definic¸a˜o 67 (Passeio) Dizemos que p e´ um passeio de tamanho k em G
se 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. Ale´m disso, os ve´rtices v0 e vk
sa˜o denominados terminais do passeio p. O ve´rtice v0 e´ a origem do passeio,
enquanto o ve´rtice vk e´ o destino do passeio. Usamos ‖p‖ para denotar o
tamanho 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) sa˜o dois passeios em
G e vk = u0, enta˜o p3 = (v0, v1, · · · , vk, u1, · · · , ul) tambe´m e´ um passeio em
G e ‖p3‖ = k + l.
Definic¸a˜o 68 (Trilha) Dizemos que um passeio p = (v0, v1, · · · , vk) e´ uma
trilha em G se somente se (vi−1, vi) 6= (vj−1, vj) para 1 ≤ i < j ≤ k.
14.4. CIRCUITOS E CICLOS 71
Definic¸a˜o 69 (Caminho) Dizemos que um passeio p = (v0, v1, · · · , vk) e´
um caminho em G se somente se vi 6= vj para 1 ≤ i < j ≤ k
CAM 7 Todo caminho em G e´ tambe´m uma trilha em G.
Definic¸a˜o 70 Dizemos que um passeio ou trilha p = (v0, v1, · · · , vk) e´ fe-
chado em G se somente se
v0 = vk.
Caso contra´rio, p e´ aberto em G.
14.4 Circuitos e Ciclos
Definic¸a˜o 71 (Circuito) Uma trilha fechada em G e´ denominada circuito.
Definic¸a˜o 72 (Ciclo) Dizemos que um passeio p = (v0, v1, · · · , vk) e´ um
ciclo em G se somente se
(i) 3 ≤ k;
(ii) p = (v0, v1, · · · , vk−1) e´ um caminho;
(iii) v0 = vk.
CIC 7 Se G conte´m um passeio fechado de tamanho ı´mpar enta˜o G conte´m
um ciclo de tamanho ı´mpar.
14.5 Grafos Especiais
14.6 Grafos Ac´ıclicos
Definic¸a˜o 73 Seja G = (V,A) um grafo dirigido. Dizemos que G e´ um
grafo dirigido ac´ıclico se e somente se na˜o existem ciclos dirigidos em G.
GDA 1 G e´ um grafo dirigido ac´ıclico se e somente se todo subgrafo de G
e´ 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.
72 CAPI´TULO 14. GRAFOS DIRIGIDOS
GDA 4 Todo grafo dirigido ac´ıclico G tem pelo menos um sumidouro.
GDA 5 (Caracterizac¸a˜o) G e´ um grafo dirigido ac´ıclico se e somente se
todo 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 caracterizac¸a˜o anterior.
GDA 6 G e´ um grafo dirigido ac´ıclico se e somente se todo subgrafo de G
tem pelo menos um sumidouro.
14.7 Ordenac¸a˜o Topolo´gica
Seja G = (V,A) um grafo dirigido com |V | = n.
Definic¸a˜o 74 Dizemos que uma bijec¸a˜o f : V −→ {1, · · · , n} e´ uma or-
denac¸a˜o topolo´gica de G se e somente se
f(u) < f(v) para (u, v) ∈ A.
OTP 1 (Caracterizac¸a˜o) G e´ um grafo dirigido ac´ıclico se e somente se
G tem uma ordenac¸a˜o topolo´gica.
Exerc´ıcio 25 Projete um algoritmo para testar se um grafo e´ ac´ıclico, uti-
lizando a caracterizac¸a˜o anterior.
14.8 Componentes Fortemente Conexos
FCX 1 Os componentes fortemente conexos formam uma estrutura dirigida
ac´ıclica.
Cap´ıtulo 15
Otimizac¸a˜o em Grafos
15.1 Pareamentos Ma´ximos
Seja G = (V,A) um grafo bipartido.
Definic¸a˜o 75 Seja P ⊆ A. Dizemos que P e´ um pareamento em G se e
somente se

Outros materiais